Роль тестировщика в жизненном цикле ПО
Каждое программное обеспечение, будь то система учета, приложение на смартфоне или веб-сайт, проходит определенный жизненный цикл. Он начинается с бизнес-идеи (задумки) и заканчивается выводом ПО из эксплуатации.
В этой связи важно понимать, какие здесь есть этапы и какова роль тестировщика в каждом из них. Кроме того, этот вопрос могут задать на собеседовании на вакансию QA-специалиста.
Что такое жизненный цикл программного обеспечения
Жизненный цикл ПО (Software life cycle) – это совокупность этапов, которые проходит программа как система в процессе ее создания и использования.
Общепринятая модель состоит из следующих этапов:
- Создание бизнес-идеи (концепции).
- Определение требований к ПО.
- Составление дизайна продукта.
- Разработка.
- Тестирование.
- Установка и приемо-сдаточные испытания.
- Эксплуатация и обслуживание.
- Вывод из эксплуатации.
Очень важно понимать, что эти этапы могут частично перекрываться или даже выполняться итерациями в случае гибкой разработки ПО.
Тестирование на этапах жизненного цикла ПО
Существуют разные QA-подходы, модели, методы и инструменты. Главное – применять их правильно и вовремя. В данной статье мы расскажем о том, в чем состоит роль тестировщика для этих этапов жизненного цикла ПО.
Тестирование на этапе создания бизнес-идеи (концепции) ПО
Когда компания или просто стартапер придумал идею нового IT-продукта, ему важно понимать, насколько она реализуема. Для этого ее рекомендуется описать и исследовать с разных точек зрения. В основном этим занимаются маркетологи, финансисты, бизнес-консультанты и т.д. Айтишники здесь выступают больше в качестве экспертов.
Поэтому QA-инженеры здесь мало задействованы (по сравнению с другими этапами). Тестирование на данном этапе может применяться, например, в следующих случаях:
- Экспертная оценка по объемам QA-работ для создания и обслуживания продукта.
- Анализ баг-репортов из предыдущих аналогичных проектов для снижения стоимости разработки.
- Если сделан прототип – тестирование прототипа.
Тестирование на этапе определения требований к ПО
Требования обычно определяются представителями заказчика и исполнителя с подключением возможной команды проекта. Они формулируются в ходе совещаний, обсуждений, переговоров и записываются в нормативную документацию (ТЗ). Казалось бы, зачем нужен тестировщик для такой документации?
На самом деле, грамотный QA-специалист может внести существенный вклад на данном этапе жизненного цикла ПО и сэкономить существенные средства клиенту. Например:
- Обнаружение противоречий в функциях ПО еще на стадии «бумаги» (до кодинга).
- Проверка интерпретаций формулировок с точки зрения QA (что заказчик и исполнитель в будущем будут одинаково трактовать некоторые «дефектоопасные» требования).
- Подготовка к работам по тестированию (выбор целей, первая версия стратегии тестирования, шаблоны тестовой документации и т.п.).
Тестирование на этапе создания дизайна продукта
На этой стадии создаются макеты и прототипы продукта. Значит, тестировщик может начинать уже привычную для него работу – искать дефекты в них. Роль тестировщика в ходе дизайна продукта может быть следующей:
- Поиск багов в прототипах продукта.
- Проверка дизайна на соответствие требований к ПО.
- Юзабилити-тестирование.
- Тест-анализ ПО.
- Создание стартовой документации для тестирования (стратегия тестирования, тест-план, тест-кейсы и др.)
Тестирование на этапе разработки ПО
На этом этапе у QA-специалистов начинается самая жаркая пора. Тестировщикам надо проверять результаты работы программистов на предмет возникающих ошибок. Чем раньше обнаружен дефект – тем дешевле его исправление.
Здесь тестировщики могут проводить, например, следующие проверки:
- Модульное тестирование (проверка отдельных модулей/компонентов ПО).
- Интеграционное тестирование (проверка взаимосвязей между модулями).
- Системное тестирование (проверка всей системы как единого целого).
- Тестирование интерфейса.
- Регрессионное тестирование (проверка ПО после обновления).
На самом деле, есть большое многообразие видов тестирования, которые можно проводить на этапе разработки – более подробно о них можно почитать на нашем сайте.
Тестирование на этапе тестирования ПО
Что значит тестирование тестирования? На самом деле, это нужна вещь, чтобы повысить производительность работы QA-специалистов.
Этим занимаются старшие грейды QA. Здесь проводится оценка эффективности тестовых процедур, задействованных инструментов тестирования, анализ найденных багов (чтобы уберечься от «парадокса пестицидов»), при необходимости – корректировка стратегии тестирования и других организационных QA-документов.
Тестирование на этапе установки и приемо-сдаточных испытаний
На этом этапе тестировщик помогает сдать продукт заказчику. Проводится приемочное тестирование, при необходимости – дополнительные проверки. По завершению всех мероприятий составляется отчет о тестировании ПО.
Тестирование на этапе эксплуатации и обслуживания
Несмотря на то, что продукт может уже давно быть в эксплуатации, тестировщики также могут быть задействованы на этой стадии. Среди них могут быть следующие практики:
- Регрессионное тестирование после обновления версий.
- Проверка ПО на устройствах, не предусмотренных ранее (например, заказчика перевели на другие модели компьютеров или телефонов).
- Исследование случаев непредвиденного использования продукта.
Тестирование на этапе вывода из эксплуатации
Обычно здесь тестировщики мало задействованы. Но при необходимости они могут делать, например, следующие вещи:
- Проверка работоспособности систем клиента после деинсталляции продукта.
- Ретроспективный анализ QA-мероприятий для продукта.
- Разработка рекомендации по совершенствованию работы компании в целом и QA-отдела в частности (на будущее).
Резюме
Тестировщик играет важную роль на всех этапах жизненного цикла ПО. Его экспертный опыт, навыки, методы и QA-инструменты помогают значительно улучшить качество IT-продукта и тем самым сэкономить деньги для компании. Получить такую ценную и высокооплачиваемую профессию можно здесь.