Разделы портала

Онлайн-тренинги

.
Про ценность тест-кейсов
28.09.2015 14:15

Автор: Джорис Меертц (https://patternsofproof.wordpress.com/)

Оригинал статьи: https://patternsofproof.wordpress.com/2015/06/02/on-the-value-of-test-cases/

Перевод: Ольга Алифанова

Подгнило что-то в Датском королевстве...

Уильям Шекспир - Гамлет

Я несколько недель наблюдал за использованием тест-кейсов в проекте по разработке ПО. Команда приступила к созданию кейсов, когда функциональные спецификации были объявлены достаточно проработанными. Кейсы были разбиты на отдельные шаги и заведены в систему управления тестами (в данном случае - в HP Quality Center). Они были проанализированы, и команда планировала приступить к их выполнению, как только продукт будет передан в тестирование.

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

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

Безусловно, легче всего обвинить в неудаче выбранную модель жизненного цикла. Можно сказать, например, что это типичный "водопад" - а все мы знаем, что эта модель обречена на провал. Это утверждали еще в 1970-х годах (PDF, открывается в новом окне).Но вместо того, чтобы винить проект, давайте спросим себя, почему мы готовимся к тестированию именно таким образом? Тратя колоссальные силы и время на фиксацию возможных вариантов тестирования в тест-кейсах (и делая их бессмысленными, но об этом позже), мы добровольно ставим себя в позицию, которая будет максимально уязвима, если произойдет хоть что-то непредвиденное (см. книгу Нассима Николаса Талеба "Черный лебедь").Во-вторых, нам нужно серьезно пересмотреть ценность создания тест-кейсов как метода подготовки к тестированию. Существуют тысячи способов проводить такую подготовку. В частности, ничего не делать - и это было бы даже лучше, чем тратить время на создание подробных кейсов, которые впоследствии никому не пригодятся. Естественно, я не считаю это идеальным подходом к тестированию, но факт остается фактом.

Замечу, что среди иных методов подготовки можно выделить изучение требований и похожих продуктов, общение с заинтересованными лицами и экспертами отрасли, исследование имеющегося продукта, его истории, руководства пользователя. Отличный список методов можно найти в книге Рикарда Эдгрена "Маленькая Черная книга тест-дизайна" (PDF, открывается в новом окне).Если вы профессиональный тестировщик, вы не найдете там ничего нового. Моя мысль заключается в том, что тестировщикам нужно постоянно учиться, чтобы идти в ногу с проектом.

Однако создание кейсов все еще считается лучшим способом подготовки к тестированию, и транслируется всем новичкам профессии как незыблемая истина. Эту идею пропагандируют курсы ISTQB и TMap. Однако есть как минимум две причины, почему этот подход должен умереть. Первая: он дает тестировщику ложную надежду, что когда составлены все тест-кейсы - они исчерпывающе покрывают продукт и, следовательно, финализированы. Он укрепляет тестировщика в мысли, что мозг задействуется в тестировании только на этапе тест-дизайна. Кейсы готовы? Тестирование окончено. Осталось их просто прогнать, и это уже совсем не интересно.

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

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

Во имя более качественного тестирования, возьмите учебник по ISTQB и вычеркните оттуда все, что касается тест-кейсов! Замените эту часть учебника на что-нибудь из Декарта, Бэкона или Дьюи.

"Критика - это исследование и проверка предположений любого рода, чтобы определить, соответствуют они реальности или нет. Критичность - это продукт обучения и тренировок. Это привычка к размышлениям и сила ума. Это важнейшее условие благосостояния человека, и люди должны стремиться совершенствовать ее. Критичность - наша единственная защита против обмана, суеверий, недопониманий своего характера и внешних обстоятельств. Образование можно считать качественным, только если оно развивает эту сторону мышления. Любой преподаватель, настаивающий на точности и рациональном контроле над методиками и процессами, пересматривающий и перепроверяющий любые положения своей науки, развивает критичность как привычку в своих учениках. Люди, относящиеся ко всему критично, не ударятся в панику. Они ничему не верят на слово. Они относятся ко всему, как к возможному или вероятному, без излишней уверенности и излишнегостраха. Они ждут подтверждений и критически оценивают доказательства. Они противостоят собственным предрассудкам. Воспитание критичности - единственный навык, который создает настоящего гражданина".

Уильям Грэхэм Самнер - Народные обычаи: изучение нравов, манер, обычаев и этики.