Контроль качества

    Тестирование – это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему. В зависимости от задач мы используем следующие типы тестирования:

    • Unit Testing – тестирование отдельных «кусков» кода программы на соответствие реального поведения программы с ожидаемым. Выполняется непосредственно программистом в процессе создания ПО.
    • Change Testing – тестирование изменения, вносимого программистом в программу, на соответствие заявленным спецификациям этого изменения. Выполняется тестировщиком посредством прохождения заранее определенных тестовых сценариев (т.н. Test Cases) – набора последовательных шагов и ожидаемых результатов.
    • Exploratory Testing – тип тестирования, выполняемый тестировщиком вручную без определенного заранее сценария (Test Case) и направленный на поиск ошибок в функциональности ПО путем попыток создания нестандартных ситуаций, при которых программа может давать сбои.
    • Spot Testing – тип тестирования с целью проверки базовой (основной) функциональности ПО. Выполняется тестировщиком посредством прохождения тестовых сценариев.
    • System Testing – тестирование, направленное на проверку глубокой функциональности ПО. В отличие от Change Testing проверяется не только само изменение, но и функциональность, связанная с этим изменением. Выполняется тестировщиком посредством прохождения тестовых сценариев.
    • Regression Testing – тестирование с целью проверки не повлияло ли вносимое изменение на всю функциональность ПО. Выполняется тестировщиком посредством прохождения Test Case-ов.
    • Integration Testing – тестирование, направленное на проверку корректности взаимодействия различных программных модулей между собой в интегрированных системах. Выполняется тестировщиком посредством прохождения Test Case-ов.

    Отдельно стоит упомянуть Automated Testing – вид тестирования, при котором реализацию тестовых сценариев осуществляет не тестировщик, а другая программа, которая действует как виртуальный пользователь (один или несколько) и позволяет сократить время на прохождение тестового сценария по сравнению с ручным тестированием. Автоматическим может быть любой из перечисленных выше типов тестирования, кроме Exploratory.

    Мы обеспечиваем качество разрабатываемых продуктов не только путем тестирования программного продукта, но и путем контроля качества реализации самого процесса проектирования, разработки и тестирования продукта. Это является основной задачей отдела QA (Quality Assurance, т.е. "гарантирование качества").

    Мы выделяем 2 основных направления в деятельности отдела QA: снижение веротности появления ошибок и гарантирование обработки всех ранее найденных ошибок. Так для снижения вероятности появления ошибок мы:

    • разрабатываем и применяем стандарты кодирования для разных языков программирования;
    • разрабатываем и применяем метрики для оценки качества наших программных решений;
    • проводим предварительную подготовку новых сотрудников.

    Для гарантирования обработки всех дефектов:

    • существует система уведомлений и напоминаний для программистов, тестировщиков и команд сопровождения ПО о новых и открытых проблемах;
    • осуществляется регулярный мониторинг проблем, которые должны быть рeшены или находятся на разных этапах решения;
    • применяем жесткий процесс обработки дефектов.