Основные активности процесса тестирования и место тестирования в цикле разработки ПО

Всем привет! 

Сегодня я расскажу вам о процессе тестирования и его месте в цикле разработки. 

Процесс тестирования - это совокупность нескольких видов активностей, таких как планирование, проектирование тестов, собственно выполнение тестирования, сбор и анализ полученных результатов. 

Отмечу, что для быстрого и эффективного выполнения этих активностей необходимо стремиться к использованию удобных инструментов, позволяющих максимально упростить и ускорить работы, в том числе и автоматизировать некоторую их часть. В своей работе я использую такие инструменты как TFS, Visual Studio, Microsoft Test Manager и, конечно же, расскажу о них более подробно в следующих статьях.

Теперь немного поговорим о каждой активности.

1) Планирование (Test Planning). 
Я поддерживаю практику, когда процесс тестирования при разработке нового ПО начинается как можно раньше, как только были получены первые спецификации, например, в виде Технического задания. Софт еще не написан, но на основании ТЗ тестировщик уже может приступить к планированию тестирования, обдумыванию стратегий, проектированию тестовых случаев и созданию плана тестирования. Кроме того уже на этом этапе можно задуматься о рациональности проведения автоматизированного тестирования, в том числе и нагрузочного. Параллельными процессами при стадии планирования (в случае имеющейся пригодной к тестированию версии ПО) могут являться работы по созданию и настройке необходимой инфраструктуры для проведения последующего тестирования (подготовка тестовых сред, баз данных с тестовыми данными и т. д.).

2) Проектирование тестов (Test Design).
После ознакомления с Техническим заданием тестировщик понимает, какие требования предъявляются к продукту, а значит, может приступить к разработке тестов, проверяющих, удовлетворяет ли им продукт. Вопросу проектирования тестов я отведу отдельную статью.

3) Выполнение тестирования (Test Execution).
К началу этой активности, как правило, выполнены все работы по настройке инфраструктуры, разработана программа и методика испытаний, спроектированы тесты. Для процесса тестирования - это основной вид активности; уровень качества ее выполнения напрямую зависит от первых двух предшествующих ей активностей - планирования и проектирования тестов. Хорошо спроектированные тестовые случаи и инструмент, позволяющий координировать их запуск и собирающий статистику, позволяют проводить работы быстрее и эффективнее. В своей работе я использую "запускатель тестов" Test Runner в составе Microsoft Test Manager (также доступный в Test Hub для TFS).

4) Сбор и анализ полученных результатов (Analysis & Reporting).
После выполнения тестов на основе полученных данных мы должны провести анализ и предоставить отчет, на основании которого можно будет принимать решение о соответствии исследуемого продукта ожидаемым требованиям, и насколько критичны имеющиеся несоответствия и ошибки. Это необходимо для дальнейшей расстановки приоритета задачам на их устранение (что очень важно при планировании работ в целом). Кроме того, собирается статистика при выполнении набора тестов от одной сборки (версии) приложения к другой, что позволяет отслеживать регрессию. На этом этапе также очень важен используемый для проведения тестирования инструмент, так как автоматически собираемая им статистика при запуске тестов может быть легко и быстро добавлена в отчет.


Существует ряд классических моделей цикла разработки ПО (каскадная, V-модель и др.). Не буду углубляться в подробности, да и нет в этом никакой необходимости, на мой взгляд многие из этих моделей уже архаичны и почти нигде не применяются сегодня в чистом виде. Приведу лишь схему одной из моделей (итеративную), чтобы увидеть место тестирования в цикле разработки ПО.


К сожалению, существует практика "урезания" времени на тестирование в целях увеличения времени на разработку. Как инженер-тестировщик, естественно, я против! При планировании и установке сроков должно отводиться достаточное количество времени для тестирования, а сам процесс тестирования должен быть налажен и включать в себя все четыре активности тестирования (Test Planning, Test Design, Test Execution, Analysis & Reporting). Нужно стремиться к уменьшению времени на тестирование не за счет его качества, а за счет использования эффективных инструментов, сопровождающих процесс тестирования, и, если это возможно, внедрения элементов автоматизации. Об этом и пойдет речь в моих следующих статьях.

Всем добра и до скорой встречи! =)


Комментарии

Популярные сообщения из этого блога

Используем TFS API для формирования сводных отчетов по автоматическим тестовым запускам

Предмет разговора