2.2 Этапы разработки и тестирования ПО. Основные роли в IT
Что такое жизненный цикл разработки программного продукта и его этапы
Жизненный цикл разработки программного продукта (SDLC – Software development lifecycle) - процесс, направленный на создание, поддержание работоспособности, качества и надежности ПП.
Этапы SDLC:
Этап 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) - процесс, направленный на тестирование программного продукта.
- Анализ требований
- Тестовое планирование
- Написание тестовых сценариев
- Подготовка тестовой среды
- Выполнение тестов
- Завершающая фаза
Этап 1: Анализ требований
На данном этапе, мы анализируем наши требования на логичность и отсутствие противоречия в требованиях друг другу. Более подробнее мы рассмотрим этот вопрос, когда будем разбирать работу с требованиями
Этап 2: Тестовое планирование
Оно включает в себя составление плана тестирования, в котором будут указаны сроки, способы и методы тестирования.
Этап 3: Написание тестовых сценариев
Очень важный этап, в котором мы производим написание тестовых сценариев тестирования программного продукта, то есть сценариев и вариантов комбинаций исходных данных и действий. Подготовка тестовых данных - то есть создание пользователей от чьих лиц мы будем тестировать. Ведь мы всегда имитируем деятельность, конечного пользователя.
Этап 4: Подготовка тестовой среды
Это подготовка стендов (серверов) для тестирования, то есть стенда, которым будут пользоваться наши тестировщики, с актуальной версией продукта, в этом нам помогают DevOps. Это может происходить локально, удаленно или же на специализированных сервисах. Подготовка вспомогательного ПО, настройка различных доступов.
Этап 5: Выполнение тестов
На данном этапе происходит сам процесс тестирования программного продукта, используя тестовые сценарии, написанные нами ранее.
Этап 6: Завершающая фаза
Если в результате выполнения нашего тестирования, тесты выполнены успешно, то происходит передача протестированного функционала в релиз, если же нет, то возвращаем в разработку, для дальнейшего исправления найденных дефектов.