Глава № 2 – Введение в тестирование программного обеспечения.
Узнайте, что значит тестировать!
По сути, тестирование является процессом проверки ПО на наличие ошибок.
Тестирование решает целый спектр различных задач. Оно определяет и качество продукта, и соответствие его требованиям, и учитывает ожидания пользователей, удобство пользования продуктом, надежность продукта, и множество других параметров. Поэтому с тем, что тестирование необходимо, никто уже давно не спорит.
Я рассмотрю жизненный цикл проекта по созданию программного продукта, а также рассмотрю, какая роль процессу тестирования отведена в процессе разработки.
Глобально существуют 2 модели жизненного цикла: модель водопада, эволюционная модель.
Более подробно о каждой из них.
Модель водопада – схематически ее можно изобразить ступенчато в виде маленьких водопадов. Соответственно, рассмотрим каждую ступеньку.
Каждая ступень включает в себя:
- Определение задачи.
Аналитики или маркетологи (если продукт создаётся для потребностей рынка) определяют задачи.
- Определение требований: как продукт должен выглядеть, что он должен делать, какой функциональностью обладать.
- Определение дизайна.
После определения всех требований проект передается разработчикам.
- Разработка программы, ее кодирование программистами.
- Тестирование программы – тестировщики проверяют программный продукт на наличие ошибок, на соответствие документации, соответствие требованиям и другим параметрам.
Методологию тестирования я буду рассматривать отдельно.
Пока скажу, что тестирование в рамках жизненного цикла проекта можно разделить на дополнительных 2 этапа: альфа-тестирование, бета-тестирование.
Альфа-тестирование можно рассматривать как приемочное тестирование.
Оно происходит непосредственно внутри организации, которая разрабатывает этот продукт. Соответственно, разработчики или тестировщики проверяют продукт с точки зрения пользователя. Если на этом этапе обнаруживаются ошибки, они передаются тестировщикам для дальнейшего анализа.
Бета-тестирование – тестирование конечными пользователями продукта. Обычно программный продукт отдают на условиях ограничений, но бесплатно. Наверняка, вы сами не раз скачивали бета-версии программ, которые имеют ограниченную функциональность или ограниченный временной лимит пользования,
но при этом продукт дается бесплатно. Это делается для того, чтобы найти дополнительные ошибки, которые могут содержаться в программе, или подтвердить, что этих ошибок нет, а также для получения обратной связи от клиентов.
Параллельно с альфа- и бета- тестированием идёт постоянное тестирование программного продукта в рабочем режиме.
После того, как программа уже выпущена, прошла итерацию тестирования, приходит решение о выпуске программы в свет, наступает следующая стадия жизненного цикла проекта.
- Внедрение программы, ее распространение.
- Сопровождение программы и ее поддержка, когда пользователь задаёт вопросы, возможно, даже находит какие-то ошибки и несоответствия. Это может зайти настолько далеко, что наступает следующая – неприятная стадия жизненного цикла продукта. В России она бывает довольно редко, но за рубежом довольно часто.
- Судебные тяжбы, которые разочарованные пользователи устраивают разработчикам.
Поэтому тестировщик становится ключевой фигурой. Он завершает ступеньку водопада, стоит на последнем рубеже перед выходом продукта.
При переходе на следующую ступеньку, когда заново формируются требования для следующей версии продукта, и вся эта машина начинает крутиться вновь, вернуться обратно уже очень сложно. Это большие временные и денежные затраты.
Таким образом, тестировщик является последним оплотом перед выходом версии программы. Поэтому на нем лежит огромная ответственность, соответственно, он имеет и хорошие бонусы за свою работу.