Вячеслав Панкратов, Software-testing.ru
Вокруг ролей и задач, связанных с тестированием и обеспечением качества, сложилось несколько противоположных идейных течений, которые усердно культивируются носителями этих идей. Точки зрения во многом противоположны, во многом противоречивы. Тестирование видится с одной стороны каким-то полумеханическим процессом, который не требует особенной квалификации: тестировщика видят эдаким «кликальщиком», который просто гоняет приложение, ждёт пока оно «упадёт», потом радостно сообщает об ошибке и продолжает в том же духе. В последнее время, надо отдать должное, появляются материалы о тестировании и качестве, выходят в свет книги, развиваются сайты посвящённые этому направлению — это направление мысли постепенно сходит на «нет». С другой точки зрения, которую, наверное, культивируют отчасти и сами тестировщики (в самом широком смысле этого слова), тестирование — это процесс, покрытый множеством неопределённостей, трудно формализируемый и поддающийся оценкам. Если же к тестированию добавить автоматизацию, которая по оценкам тех, кто внедрял инструменты и решения для тестирования, требует больших (по сравнению с ручным тестированием) трудозатрат и говорить об оценке качества продукта, направление тестирования получается совсем непрозрачным для стороннего наблюдателя, а порой и для самих тестировщиков и QA.
Как мне кажется, связана такая ситуация с тем, что существует определённое непонимание процессов связанных с тестированием и обеспечением качества. Между тем, направление тестирования чётко определено ролями и задачами, которое оно решает. Определившись с ролями и задачами, можно не только представить себе более-менее стандартный процесс тестирования, но также понять, что к нему не относится. Заметим, я не отождествляю процессы тестирования и обеспечения качества. К задачам обеспечения качества я планирую вернуться в последующих публикациях. Сейчас я предлагаю рассматривать тестирование, как часть процесса обеспечения качества.
Попробуем определиться и понять, какие же роли и задачи решаются направлением тестирования. Чтобы не изобретать велосипед, я предлагаю взять за основу существующую методологию RUP (Rational Unified Process), как наиболее общий и полный вариант.
Есть замечательная реклама: Как делают автомобили SAAB? Берут самолёт и отсекают всё лишнее, что помогает ему взлетать.
Попробуем взять шаблон RUP-а для MTP (Master Test Plan) и отсечь всё лишнее, что не касается темы данной статьи. Самое интересное, что отсечь пришлось практически весь шаблон, оставив только одно приложение и табличку, для расчета ресурсов. Добавим перевод, вырежем лишнее.
Рассмотрим более подробно существующие активности/задачи связанные с тестированием:
| Роль | Описание |
|
Тест-менеджер, менеджер проекта по тестированию
(Test Manager, Test Project Manager) |
Производит управленческий контроль (management
oversight) Ответственность:
|
|
Тест дизайнер
(Test Designer) |
Определяет, приоритизирует и обеспечивает разработку
тестовых случаев Ответственность:
|
|
Тестировщик, Инженер по тестированию
(Tester) |
Выполняет тесты Ответственность:
|
|
Администратор тестовой системы, приложений поддерживающих
жизненный цикл тестирования
(Test System Administrator) |
Обеспечивает управление и поддержку тестовых окружений и
данных Ответственность:
|
|
Администратор баз данных, менеджер баз данных
(Database Administrator, Database Manager) |
Обеспечивает управление и поддержку тестовых данных (баз
данных) Ответственность:
|
|
Тест-дизайнер
(Designer) |
Устанавливает и определяет операции, атрибуты и связи
тестовых классов Ответственность:
|
|
Разработчик тестов
(Implementer) |
Разрабатывает юнит тесты (unit tests), тестовые классы и
тестовые наборы (пакеты) Ответственность:
|
Как видите, при ближайшем рассмотрении, оказывается, что тестирование — вполне определённый процесс с выделенными ролями и зоной ответственности для различных игроков проекта. Порядок перечисления задачи определяет обычный (полный) цикл проведения тестирования. Такой цикл может применятся, как для проектов ориентированных на длительные итерации, так и для «быстрых» проектов ведущихся по эволюционным методикам (evolutionary) или согласно набирающему обороты XP.
Надеюсь, после небольшого экскурса во внутренний мир задач и ролей в тестировании, неразберихи станет меньше.