Этапы тестирования ПО
Тестирование — неотъемлемая часть жизненного цикла программного обеспечения. Само по себе тестирование — это длительный процесс проверок на соответствие продукта ожидаемому результату. Тестировщик не просто играет важную роль в создании продукта, а участвует на каждом этапе разработки от концепции до выхода продукта в свет.
Всего выделяют 7 этапов тестирования
- Работа с требованиями. Знакомство с требованиями заказчика. Обсуждение, что должен из себя представлять итоговый продукт
- Разработка стратегии тестирования. Оценка сроков тестирования, выявление среды тестирования, объединение всей информации, полученной при работе с требованиями.
- Создание тестовой документации. Написание сценариев, которые позволят проверить функционал.
- Тестирование прототипа. Тестирование основного функционала продукта, корректировка целей, добавление фичей.
- Основное тестирование. Выполнение общей проверки продукта.
- Стабилизация. На данном этапе происходит работа над устранением багов.
- Эксплуатация. Проводится регресс-тестирование, устранение ошибок, которые нашел конечный пользователь.
Прежде, чем переходить к описанию каждого цикла тестирования, необходимо запомнить важное правило: переход к следующему этапу допустим лишь после полного завершения работы на предыдущем.
Этап 1. Работа с требованиями
Команда тестирования знакомится с требованиями заказчика, функционалом продукта. На данном этапе важно непрерывное общение команд, необходимо задавать вопросы разработчикам.
Тщательное изучение требований должно:
- выявить противоречия в требованиях;
помочь определить потенциальные дефекты в функционале.
Общение является ключевым аспектом в разработке продукта, а продуманный roadmap (дорожная карта, стратегический план по реализации функционала продукта по определенным датам) позволит устранить нелогичность будущих внесенных изменений в продукт.
Этап 2. Разработка стратегии тестирования и планирование процедур контроля качества
Данный этап важен для лидов или менеджеров, поскольку от понимания полученной на предыдущем этапе информации зависит качество тестирования.
Тест — лид должен:
- Резюмировать полученную информацию;
- Оценить сроки тестирования;
- Разработать стратегию тестирования: определить виды тестирования, которые можно применить к проекту, проанализировать имеющиеся среды и ресурсы, что имеется для проведения тестирования, описать приоритеты для непредвиденных ситуаций, как и где будет вестись тестовая документация;
- Определение среды тестирования: какое оборудование необходимо для тестирования;
- Составить план, который содержит описание, с чего начинается и чем заканчивается тестирование, и что будет тестироваться.
Этап 3. Создание тестовой документации
Цель данного этапа — создать документацию, объем которой будет охватывать детализацию, ход работ, а также вносить ясность для заказчика. Общение с другими командами, понимание желаний заказчика напрямую влияют на качество тестовой документации. После проведенного тестирования можно проанализировать его успешность.
Тестовая документация может состоять из:
- тестовых сценариев: что и как будет проверяться при регресс-, дымовом и приемочном тестированиях;
- отчетности: результаты тестирования, списка багов и их серьезность;
методологий тестирования.
Детализация тестовой документации зависит от проекта, поэтому она может отличаться и по охвату, и по формату, и по объему. Для тестировщика важно поддерживать документацию в актуальном виде, вносить любые изменения, связанные с изменением итогового продукта.
Этап 4. Тестирование прототипа
При создании и тестировании прототипа продукта необходимо выявить основные отклонения от ожидаемого результата и соответствие с бизнес-стратегией. Здесь же выявляются ошибки в работе логики основного функционала, устраняются найденные уязвимости и дефекты, допущенные на этапе разработки. Заказчик может сам участвовать в процессе тестирования прототипа, чтобы оценить, на каком этапе находится разработка продукта.
После тестирования выдвигаются пожелания со стороны заказчика. Новые пожелания необходимо задокументировать, оценить сроки, внедрить в проект и передать на осмотр заказчику.
Самый подходящий метод тестирования прототипа — проведение закрытого бета-тестирования, когда продукт тестирует продукт малое количество людей, которые в итоге будут использовать его после релиза. Это помогает учесть пожелания конечных пользователей.
Этап 5. Основное тестирование
Тестирование программного обеспечения является самым длительным и объемным процессом. Здесь формируются репорты о найденных дефектах, выполняется набор тестовых сценариев, создается тестовая среда, выполняется тестирование, виды которого были задокументированы на этапе создания тестовой документации. Именно на этом этапе проводятся смоук- и регресс-тестирование.
Важно понимать: невозможно найти все ошибки в продукте. Но и не найти ошибки при тестировании можно считать провалом. Главная цель — не сделать идеальный продукт без ошибок, а найти максимальное количество дефектов, которые потенциально могут сломать систему.
Этап 6. Стабилизация
Наверное, самый непонятный с точки зрения формулировки этап. На нем заканчивается работа с пожеланиями заказчика и фиксируются найденные баги. Он является связующим звеном между командой тестирования и командой разработчиков. На протяжении создания онлайн-ресурса команда разработчиков занималась своими делами, реализуя «хотелки» заказчика, а тестировщики репортили о новых дефектах. А на этапе стабилизации разработчики начинают слушать тестировщиков, устраняя то, что уже работает, но некорректно.
Если продукт существует в какой-то большой системе, то на данном этапе также проверяется коммуникация системы и продукта, то есть проводится интеграционное тестирование.
Этап 7. Эксплуатация и поддержка
Пожалуй, самый волнительный период. После устранения дефектов команда разработчиков переходит в этап тестирования продукта в продакшн-среде. Так как многие ставят точку на проекте после релиза, очень важно подметить, что здесь происходит не только релиз продукта, но и пост-релизовая поддержка.
При всем желании нельзя учесть все нюансы использования, воссоздать ту среду, в которой будет использован продукт. Поэтому на данном этапе необходимо сделать акцент на том, что говорят пользователи. Теперь они — ваши главные тестировщики. Ваш продукт становится частью жизнедеятельности людей, поэтому устранение дефектов и их поиск проводятся быстро, но тщательно. Не всегда конечный пользователь может предоставить информацию о том, что он сделал для получения ошибки, поэтому за повторение дефекта берется QA-команда.
Заключение
Тестирование программного обеспечения — долгий и кропотливый процесс, результатом которого является каждая выявленная ошибка в системе. Тестирование начинается ещё на этапе проектирования работы и продолжается даже после выпуска продукта. Тестировщик должен четко формулировать свою позицию, почему найденная ошибка — действительно дефект; должен прислушиваться после релиза к позиции конечного пользователя и помнить, что ничто в этом мире не идеально.