Задачи QA

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

Тестировать новую функциональность:

  • Выполнять тесты на основе заранее описанных сценариев;
  • Выполнять исследовательское или ad-hoc тестирование;
  • Проводить повторное тестирование и верифицировать исправленные ошибки.

Анализировать пользовательские истории (или подобные артефакты, содержащие требования).

 

Участвует в обсуждении требований/коммуникации связанной с деталями разработки.

Это важно для понимания работы приложения и планирования собственных задач.

Создавать и поддерживать существующую тестовую документацию:

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

Проводить регрессионное тестирование.

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

 

Сообщает о статусе и результатах тестирования.

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

Выполняет задачи, связанные с автоматизацией:

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

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