Алекс Смит: Тестирование ПО с Нуля до Специалиста
January 26

2.2 Этапы разработки и тестирования ПО. Основные роли в IT

Что такое жизненный цикл разработки программного продукта и его этапы

Жизненный цикл разработки программного продукта (SDLC – Software development lifecycle) - процесс, направленный на создание, поддержание работоспособности, качества и надежности ПП.

Этапы SDLC:

  1. Требования
  2. Проектирование
  3. Разработка
  4. Тестирование
  5. Релиз
  6. Поддержка

Этап 1: Требования

Заказчик встречается с руководителем проекта и бизнес аналитиками из команды разработки, обсуждают требования к продукту и составляют документ ТРЕБОВАНИЯ. В данных требованиях описывается сам продукт, что он должен делать – то есть его функциональные свойства, как он должен это делать – его нефункциональные свойства, на каких платформах он должен работать, сроки и т.д

Лица, участвующие в процессе:

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

Бизнес-аналитик - специалист, который анализирует и разрабатывает бизнес-логику продукта.

Этап 2: Проектирование

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

Руководитель проекта, совместно с аналитиками и дизайнером проектируют будущий продукт с точки зрения графического дизайна продукта в виде Mock-up схем (дизайн страниц будущего программного продукта). Это и есть процесс проектирование графического интерфейса.

Лица, участвующие в процессе:

Дизайнер - специалист, отвечающий за визуальную составляющую продукта.

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

Этап 3: Разработка

В данном процессе участвуют Разработчики и DevOps. Они разворачивают базы данных, стенды (серверы) для разработки, интеграционные сервера и production сервер (сервер, где находится рабочая версия нашего продукта). Так же используя различные языки программирования и различные инструменты для непрерывной интеграции, развертывания и доставки кода и продукта, разрабатывают Frontend часть (ту что видит конечный пользователь на экране) и Backend часть (ту что скрыта от него).

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

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

Этап 5: Релиз

В процессе релиза происходит загрузка рабочего кода программного продукта, который разработал наш разработчик и проверил тестировщик, на пользовательский сервер или как его еще называют production. Которым уже пользуется конечный пользователь, то есть мы с вами. За это отвечают Разработчики и DevOps(как правило на начальном этапе, далее все администрируют уже разработчики, опять же все зависит от размера команды, штата и т.д)

Этап 6: Поддержка

Это помощь нашим конечным пользователям и заказчику, в поддержании надежности и работоспособности нашего программного продукта.

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

Специалисты технической поддержки делятся на 3 линии:

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

Жизненный цикл тестирования программного продукта и его этапы

Жизненный цикл тестирования программного продукта (STLC – Software testing lifecycle) - процесс, направленный на тестирование программного продукта.

Этапы STLC

  1. Анализ требований
  2. Тестовое планирование
  3. Написание тестовых сценариев
  4. Подготовка тестовой среды
  5. Выполнение тестов
  6. Завершающая фаза

Этап 1: Анализ требований

На данном этапе, мы анализируем наши требования на логичность и отсутствие противоречия в требованиях друг другу. Более подробнее мы рассмотрим этот вопрос, когда будем разбирать работу с требованиями

Этап 2: Тестовое планирование

Оно включает в себя составление плана тестирования, в котором будут указаны сроки, способы и методы тестирования.

Этап 3: Написание тестовых сценариев

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

Этап 4: Подготовка тестовой среды

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

Этап 5: Выполнение тестов

На данном этапе происходит сам процесс тестирования программного продукта, используя тестовые сценарии, написанные нами ранее.

Этап 6: Завершающая фаза

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