Собеседования

Требования к тестировщику ч.2: процессы и этапы разработки ПО

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

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

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

  • Планирование – формируется бизнес идея и определяются функциональные требования к ПО
  • Проектирование -  разрабатывается архитектурное решение системы и выполняется системный анализ, готовится техническое задание для разработки
  • Разработка – непосредственно написание программного продукта
  • Тестирование – выполняется проверка и отладка ПО в соответствии с требованиями. Сюда же относиться UAT - пользовательское тестирование и приемка ПО заказчиком
  • Внедрение – предварительная тестовая установка релиза - DryRun, подготовка всех необходимых инструкций, настройка окружения и установка ПО
  • Поддержка – консультирование пользователей, исправление ошибок, внедрение доработок

2. Помимо знания самих этапов разработки важно понимать кто выполняет работу на этих этапах, какие роли и задачи у участников процесса. В процессе разработки ПО все роли (по крайней мере в идеальном мире) тесно взаимодействуют между собой, поэтому важно знать кто за что отвечает как в рамках команды IT, так и за ее пределами. Отмечу основных участников процесса:

  • Заказчики – формируют  требования к продукту, верхнеуровнево описывают задачу на языке бизнес целей и выгоды
  • Архитекторы – разрабатывают архитектурное решение продукта, схему интеграций с другими системами
  • Аналитики – бизнес аналитики и системные аналитики. Бизнес аналитики отвечают за проработку бизнес задач и формирование основных функциональных и нефункциональных (если они критичны для заказчика) требований к ПО. Системные аналитики детализируют и переводят в техническую плоскость (на уровень таблиц, функций, классов, интерфейсов и т.п.) бизнес требования, формируют техническое задание для команды разработки
  • Разработчики – разрабатывают и документируют код ПО, занимаются отладкой и исправлением ошибок, проверяют код при помощи Unit-тестирования, собирают билды и поставки, готовят инструкции по установке
  • Тестировщики (QA специалисты) – отвечают за качество ПО, выполняя для этого анализ требований, разработку планов и сценариев тестирования, выполняя тестирование ПО и т.д.
  • Команда поддержки – занимаются выводом ПО в эксплуатацию, установками и настройкой среды для пользователей
  • Пользователи – являются конечными потребителями ПО, в рамках процесса разработки могут привлекаться к приемочному тестированию

3. Следующий вопрос, с кем из перечисленных выше ролей и как взаимодействует группа тестирования. Правильный ответ – со всеми. В идеале QA специалист включается в работу на всех этапах, взаимодействуя со всеми участниками процесса разработки ПО:

  • С заказчиками и бизнес аналитиками для уточнения требований, валидации тестовых сценариев, выявления критичности функционала, проработки рисков
  • С архитекторами и системными аналитиками для выяснения и уточнения технических требований и возможностей системы, подготовки и проверки тестовых сценариев, анализа найденных ошибок
  • С командой разработчиков во время уточнения деталей реализации ПО, работы над дефектами и ошибками ПО
  • С командами тестирования других систем\продуктов в рамках интеграционного тестирования
  • С командой поддержки при подготовке к установки ПО в промышленную среду, во время обсуждения возможных рисков и ограничений
  • С пользователями во время организации приемочного тестирования, в процессе исправления ошибок, обнаруженных в процессе эксплуатации ПО

4. Большим плюсом на собеседовании будет общее представление о моделях и методологиях разработки ПО. Достаточно знать основные модели и чем они отличаются, а также пару примеров методологий:

  • Модели разработки ПО, это виды процесса разработки, порядок выполнения работ. Есть три основных модели:
    • Каскадная – модель водопада, все этапы разработки ПО выполняются последовательно от планирования до внедрения и сопровождения, выстраиваясь в одну длинную цепочку
    • Итеративная – весь процесс разбивается на множество коротких циклов разработки – итераций. Цель каждой итерации – создание фрагмента или версии ПО. Разработка ведется с непрерывным анализом результатов каждой итерации и корректировкой последующих.
    • Спиральная – вариант итеративной модели, при котором в разработке выделяются уровни развития ПО – витки спирали, для получения контрольных точек и оценки рисков проекта
  •  Методологии разработки ПО, это подходы и практики, которые применяются для разработки. Существует множество методологий знать их все невозможно и это не нужно для прохождения собеседования. Но лучше всего иметь представление хотя бы о некоторых из них, например: Agile, RUP, MSF, TDD.

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

О проекте

  • Проведение тренингов и вебинаров: QA, Time management, People management, Agile
  • Консалтинг в области организации рабочих процессов в ИТ
  • Проведение и подготовка к собеседованиям

Информация об авторе проекта

 

Контакты

Skype: xpavnov

E-mail: xpavnov@gmail.com

VK: https://vk.com/doitsmartly

Группа вконтакте

doITsmartly©2024
Яндекс.Метрика

Search