Часть 1. Люди, организация и методы
емости. Вы должны знать, сколько времени займет выпол-
нение автоматических и ручных тестов. Имея эту информа-
цию, вы сможете точно предсказать, сколько времени зай-
мет тестирование следующей бета-версии или кандидата на
выпуск. Зная, сколько времени нужно для тестирования дру-
гой сборки, вы сможете оценить риск и стоимость внесе-
ния дополнительных изменений.
Кто должен тестировать?
За тестирование должны отвечать все участники проекта,
не взирая на лица и отведенные им роли. При использова-
нии продукта с любой целью и в любой форме делать это
надо с критической точки зрения. Кем бы вы ни были: ме-
неджером проекта, радостно рассматривающим новую
функцию, автором руководства пользователя, проверяю-
щим, как будет работать пример, или специалистом по ин-
женерной психологии, устанавливающим продукт для про-
верки пользовательского интерфейса, — вы должны отсле-
живать, искать и сообщать о проблемах качества.
Имея сжатые сроки и ограниченные ресурсы, трудно
ожидать, что одна группа сможет провести всю работу по
тестированию, особенно если учитывать, что в командах
тестировщиков дефицит кадров проявляется чаще всего.
Так что убедитесь в том, что ваши разработчики, техничес-
кие писатели, инженерные психологи, менеджер продукта,
менеджер проекта, вице-президент или студенты, проходя-
щие летнюю практику, будут искать проблемы каждый раз,
когда они используют продукт для своих нужд. Любой це-
ной заставьте их сообщать о найденных проблемах.
В период стабилизации и интеграции к тестированию
приступает вся команда разработчиков — это коллективная
работа. Появляется шанс увидеть, где команда находится в
данный момент и сколько еще нужно сделать. Обычно ру-
ководитель группы контроля качества выполняет эту зада-
Глава 6. Основы системы контроля качества
чу, распределяя ответственность за тестирование между
всеми членами команды. Большую часть времени работа
проводится в областях, где автоматические тестовые зада-
ния справляются плохо. Также сотрудников просят «сыграть
роль пользователя» для ключевых частей продукта. Итак,
команда, работавшая над продуктом в течение всего цикла
разработки, просто незаменима. Это то, что должно стать
частью вашей культуры и одним из ваших основных техно-
логических процессов.
Эту идею можно развить еще дальше — самим исполь-
зовать собственные программы. Такой подход называют
«питаться кормом своей собачки*, он хорошо известен в
нашей отрасли и может оказаться очень ценным. Для опре-
деления и разрешения проблем с качеством не нужно де-
лать ничего, кроме как задействовать свои программы в
реальной работе. Даже если в рамках вашей команды раз-
работчиков продукт применить нельзя, попробуйте попро-
сить нескольких опытных пользователей поэксперименти-
ровать с программой. То, что они найдут, может оказаться
для вас сюрпризом.
В определенный момент крайне необходимо четко раз-
граничить обязанности тестировщиков от обязанностей
других членов команды (прежде всего разработчиков) в
том, что касается тестирования. Чтобы люди концентриро-
вались на своих прямых задачах, необходимо разделение
труда.
Разработчики влияют на качество продукта больше все-
го. В конце концов они находятся ближе всего к коду, и риск
внесения ошибок исходит прежде всего от них. Чтобы га-
рантировать отлов «жучков» до того, как команда тестиров-
щиков увидит функциональный блок, они должны его тес-
тировать в процессе написания. Хороший разработчик
ускорит работу тестировщиков, предоставляя им надежные
функции. И наоборот, плохой разработчик затормозит ра-
142
143