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

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

жизненный цикл тестирования ПО

Роль тестирования в жизненном цикле разработки ПО

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

  1. Анализ требований
  2. Дизайн
  3. Разработка
  4. Тестирование и дебаггинг
  5. Эксплуатация и поддержка

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

Преимущества проведения тестов на каждом этапе жизненного цикла ПО

Давайте детально рассмотрим какие преимущества может принести проведение тестирования на каждом этапе процесса разработки, начиная с самого первого.

Первый этап. Анализ требований

Давайте начнем с первого этапа жизненного цикла разработки: анализ требований. Требования к конечному продукту обычно формулируются заказчиком или менеджером проекта. Эти требования могут быть как функциональными, так и нефункциональными. Они формируются в процессе общения с заказчиком или анализа стандартов и нормативной документации. Зачем же необходимо проводить тесты ПО на этом этапе жизненного цикла и какие преимущества это может нам принести?

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

Второй этап. Процесс дизайна

Следующим этапом жизненного цикла разработки ПО является процесс дизайна. Как и тестирование требований на стадии анализа требований, этот этап подразумевает проверку уже созданных прототипов и мокапов на предмет их корректности и соответствия ожиданиям заказчика. Более того, проверка удобства в использовании также должна быть проведена на этом этапе. Также следует начать создание тестовой документации для данного проекта. Эта задача включает в себя подготовку плана тестирования, тест-кейсов, юзкейсов, а также другой документации по требованию заказчика. Процесс тестирования ПО на этом этапе обеспечивает способность проникновения в суть продукта и понимание ее соответствия требованиям. Важным является точное понимание задач, стоящих перед отделом QA на протяжении всего жизненного цикла разработки.

Третий этап. Разработка

В течении этапа разработки важно провести модульное, интеграционное и системное тестирование. В самом начале этого шага разработки проводится модульное тестирование. Этот процесс представляет собой проверку отдельного модуля системы или функционала. Интеграционное тестирование проводится после того, как несколько модулей объединены вместе как отдельная часть приложения. В дальнейшем в процессе разработки все больше и больше модулей объединяются воедино. После того, как разработка закончена, наступает время подготовки к системному тестированию. Эта стадия жизненного цикла разработки ПО подразумевает общий тест системы на предмет интеграции ее компонентов. Это значит, что в случае, если система состоит из различных модулей, мы должны проверить, насколько хорошо или насколько плохо каждый из них работает внутри системы. Более того, на этом этапе важно произвести тестирование пользовательского интерфейса.

Четвертый этап. Процесс тестирования и дебаггинга

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

Пятый этап. Эксплуатация и поддержка

Даже после достижения стадии релиза продукта, остается необходимость в тестировании, проводимом на этапе эксплуатации и поддержки. Разные пользователи могут работать в абсолютно разных окружениях. Поэтому всегда возможно, что новые ошибки, которые не были выявлены ранее дадут о себе знать. Более того, пользователи могут использовать ПО изначально непредвиденным способом. Это, в свою очередь, может вызвать некоторые непредвиденные проблемы. В таком случае потребуется вмешательство отдела QA.

Заключение

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

Жизненный цикл тестирования ПО является процессом, которого нельзя избежать. Он непрерывен, продолжителен и требует наличия команды QA, достаточно опытной для того, чтобы произвести полный цикл тестирования. Эта неотъемлемая часть современного процесса разработки ПО помогает заказчику, команде разработчиков, а также конечному пользователю получить продукт высокого качества.