Этапы тестирования ПО

Блог

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

Всего выделяют 7 этапов тестирования

  1.  Работа с требованиями. Знакомство с требованиями заказчика. Обсуждение, что должен из себя представлять итоговый продукт
  2. Разработка стратегии тестирования. Оценка сроков тестирования, выявление среды тестирования, объединение всей информации, полученной при работе с требованиями.
  3. Создание тестовой документации. Написание сценариев, которые позволят проверить функционал.
  4. Тестирование прототипа. Тестирование основного функционала продукта, корректировка целей, добавление фичей.
  5. Основное тестирование. Выполнение общей проверки продукта.
  6. Стабилизация. На данном этапе происходит работа над устранением багов.
  7. Эксплуатация. Проводится регресс-тестирование, устранение ошибок, которые нашел конечный пользователь.

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

Этап 1. Работа с требованиями

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

Тщательное изучение требований должно:

  • выявить противоречия в требованиях;
    помочь определить потенциальные дефекты в функционале.

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

Этап 2. Разработка стратегии тестирования и планирование процедур контроля качества

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

Тест — лид должен: 

  • Резюмировать полученную информацию;
  • Оценить сроки тестирования;
  • Разработать стратегию тестирования: определить виды тестирования, которые можно применить к проекту, проанализировать имеющиеся среды и ресурсы, что имеется для проведения тестирования, описать приоритеты для непредвиденных ситуаций, как и где будет вестись тестовая документация;
  • Определение среды тестирования: какое оборудование необходимо для тестирования;
  • Составить план, который содержит описание, с чего начинается и чем заканчивается тестирование, и что будет тестироваться.

Этап 3. Создание тестовой документации

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

Тестовая документация может состоять из:

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

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

Этап 4.  Тестирование прототипа

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

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

Этап 5. Основное тестирование

Тестирование программного обеспечения является самым длительным и объемным процессом. Здесь формируются репорты о найденных дефектах, выполняется набор тестовых сценариев, создается тестовая среда, выполняется тестирование, виды которого были задокументированы на этапе создания тестовой документации. Именно на этом этапе проводятся смоук- и регресс-тестирование.

Важно понимать: невозможно найти все ошибки в продукте. Но и не найти ошибки при тестировании можно считать провалом. Главная цель — не сделать идеальный продукт без ошибок, а найти максимальное количество дефектов, которые потенциально могут сломать систему.

Этап 6. Стабилизация

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

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

Этап 7. Эксплуатация и поддержка

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

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

Заключение

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