К вопросу о тестировании программ.

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

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

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

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

Третья часть книги называется «Квадранты гибкого тестирования» и посвящена подробному описанию такого тестирования. Четыре квадранта представляют различные категории тестов: подтверждающие выполнение основной функциональности, критические, проверяющие соответствие требованиям бизнеса и используемым платформам, а также структурированным по типам (автоматическим, автоматическим и ручным, ручным и инструментальным).

Первый квадрант включает автоматические модульные и компонентные тесты, связанные с поддержкой командной работы и применяемых платформ. Второй квадрант, обращенный к бизнесу и поддержке команды, содержит автоматические и ручные функциональные тесты, примеры, тесты историй, прототипы и эмуляции. К третьему квадранту отнесены ручные тесты, обращенные к бизнесу и контролирующие продукт: исследовательские тесты, сценарии, проверяющие удобство использования продуктов, UAT (приемочное тестирование), альфа/бета-тесты. Наконец, к четвертому квадранту — инструментальные тесты, контролирующие продукт и исследующие степень использования системных средств: тестирование производительности и загрузки, безопасности.

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

Завершает работу часть «Итоги», в которой рассмотрены ключевые факторы успеха гибкого подхода к тестированию: использование командного подхода, принятие образа мышления, ориентированного на гибкое тестирование, автоматизация регрессивного тестирования, обработка откликов, построение фундамента для базовых гибких приемов, для которого кодирование и тестирование представляют собой части одного процесса, сотрудничество с заказчиком и постоянное наблюдение за общей картиной.

Лайза Криспин, Грегори Джанет. Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд. — М.: Вильямс, 2010. — 464 с. ISBN 978-5-8459-1625-9.