Тестирование

Для достижения максимального качества создаваемых программных продуктов мы применяем двусторонний контроль:

Со стороны разработчиков

Качество разрабатываемого продукта контролируется модульными тестами (unit-tests), отслеживающими любые изменения программного кода, а также контролирующими степень покрытия кода автоматическими тестами.

Со стороны отдела тестирования

Качество продукта контролируется функциональными тестами, основанными на техническом задании и покрывающими 100% разрабатываемой функциональности. Помимо этого, для некоторых проектов применяются нагрузочные тесты, моделирующие предполагаемую нагрузку на разрабатываемую систему и отслеживающие динамику поведения системы при различных нагрузках.

На каждой итерации разработки программного продукта тестирование проходит несколько стадий:

— Тестирование документации. Перед началом разработки спецификации технические требования тестируются на предмет выявления неточностей, нехватки информации и противоречивости.

— Предварительное тестирование. На этапе активной разработки программного продукта происходит его непрерывное тестирование, как со стороны разработчиков, так и со стороны отдела тестирования. Тестирование проводится на серверах разработчиков и направлено на выявление функциональных ошибок на ранних стадиях разработки программного продукта. Обнаруженные на этом этапе ошибки оперативно устраняются.

— Альфа-тестирование. Для альфа-тестирования продукт устанавливается на отдельные серверные компоненты, где проводится тщательное функциональное и нагрузочное тестирование. Обнаруженные ошибки устраняются разработчиками в следующем внутреннем релизе системы.

— Бета-тестирование. Для проведения бета-тестирования программный продукт устанавливается на оборудование максимально приближенное к тому, которое будет использоваться заказчиком в реальной системе. Это не всегда возможно в силу бюджетных ограничений, но мы стараемся использовать наилучшее приближение. Здесь происходит последняя проверка продукта перед внедрением. Во время бета тестирования специалисты из отдела тестирования стараются максимально точно смоделировать нагрузку на аппаратный и программный комплекс с целью выявления узких мест и потенциальных угроз.

— Внедрение. После установки на промышленные сервера происходит последняя стадия проверок перед запуском системы в эксплуатацию.

Использование различных методик тестирования позволяет контролировать качество на самом высоком уровне. В зависимости сложности проекта разрабатываются автоматизированные тесты, которые запускаются при каждой сборке проекта и используются как регрессионные тесты. Кроме этого выполняется:

— Тестирование производительности или нагрузочное тестирование

— Тестирование защищенности или безопасности системы

— Проверка в различных средах, операционных системах, браузерах

— Приемо-сдаточные испытания