Сладкоголосое пение тест-метрик |
22.10.2018 14:42 |
Перевод: Ольга Алифанова Когда вы отчитываетесь о тестировании, используя метрики, это может привести к незапланированным последствиям. Какие метрики мы регулярно используем для отчетов, и какую информацию почерпнут из них заинтересованные лица? Давайте детально рассмотрим несколько реальных примеров. 95% тестов прошло, 1% упал, 4% не прогонялись Метрики "прошло/упало" очень популярны в традиционных отчетах о прогрессе тестирования. Представьте на минутку, что вы продакт-оунер, и ваше слово – решающее в вопросе, выпускать ли продукт в релиз. Тест-менеджер предоставляет вам вот такой график: На картинке, безусловно, много зеленого цвета, а зеленый – это обычно хорошо. Побудит ли этот график вас одобрить релиз продукта? Когда я разглядываю этот график, он рождает больше вопросов, чем ответов: Упавшие тесты
Тесты, которые не прогонялись
Прошедшие тесты
Риски
Конечно, представленный график выглядит более многообещающим, нежели аналогичный с 50% прошедших и 50% не прогонявшихся тестов, но он все еще отражает лишь небольшую часть тест-истории. Если рассматривать его изолированно, то в нем практически нет смысла, и он может вселить в заинтересованных лиц ложную уверенность в качестве продукта. 100% покрытие требований Эта метрика звучит очень успокаивающе, и внушительно выглядит на круговой диаграмме. Что за информация представлена здесь? Источник данных для этой метрики – как правило, матрица отслеживания требований (RTM). Набор тестов сравнивается с бизнес-требованиями, и каждое требование "покрывается" как минимум одним тестом. RTM не принимает во внимание (и не может принимать) неявные требования, она ограничена только внятно сформулированными. Ряд команд докладывает о 100% покрытии требований, даже не запустив ни единого теста, поскольку RTM соотносит тесты и требования вне зависимости от того, запускались ли эти тесты. Команда традиционного проекта, в муках составившая тесты для каждого требования, может доложить о 100% покрытии требований на основании спецификации, даже ни разу не прикоснувшись к продукту. Во время цикла разработки и тестирования фичи неминуемо начнут отличаться от оригинальных требований. Это может быть связано с ограничениями внедрения, изменениями масштаба фич, правках дизайна, и так далее, и тому подобное. Требования и тесты быстро устаревают. Насколько полезна эта метрика на таком этапе? Возьмем гипотетический, хорошо организованный и полностью документированный проект. Если мы постоянно поддерживаем требования и тесты в актуальном состоянии, а также запускаем все запланированные тесты, можем ли мы сообщить о 100% покрытии требований? RTM демонстрирует, какие требования, по мнению тестировщиков, должны быть покрыты как минимум одним тест-кейсом. Она не показывает объем тестирования этого конкретного требования. Как можно увидеть в этой лекции Кема Кейнера, 100% покрытия требований невозможно добиться при любом более-менее реалистичном сценарии тестирования. Мы не можем проверить все варианты ввода, все комбинации ввода, и все пути через код. Если вы отчитываетесь по этой метрике, будьте осторожны, и предупредите читателя о ее ограничениях. Эта метрика, опять же, может вселить в заинтересованных лиц ложное чувство уверенности в качестве. Сегодня поставлено 12 багов Метрика "количество багов в день" может быть улучшена, если она детализирована. К примеру, она может быть разбита по серьезности багов и временным трендам. Основной риск – это простая передача этих данных заинтересованным лицам через график, который можно интерпретировать каким угодно образом. Вот ряд реальных интерпретаций этой метрики от разных заинтересованных лиц.
Некоторые из этих интерпретаций могут случайно оказаться правдой, но могут и не оказаться. Если вашим заинтересованным лицам демонстрируется подобный график, будут ли они задавать вопросы и уточнять информацию, или сразу перейдут к далеко идущим выводам? Если тестировщики замечают, что руководство приравнивает большое количество багов к росту усилий тестирования, как это повлияет на их поведение? К примеру, тестировщик нашел три опечатки на странице. Он может поставить их отдельно, чтобы поднять количество найденных за день багов. Это прибавит работы по обработке этих задач в системе баг-трекинга. В свою очередь, это будет расценено, как трата ценного времени других людей, и обострит отношения между разработкой и тестированием. Отмечено 0 блокеров, 3 критических бага В этом релизе нет блокирующих багов (критичность 1), ожидающих фикса, и всего три критических бага (критичность 2). Эта метрика – отличное начало для беседы, и подводит к очевидному вопросу – что это за три критических бага, и не нужно ли с ними разобраться до релиза? Есть и менее очевидные вопросы:
Концентрация исключительно на багах высокой критичности может маскировать большие объемы минорных багов. Если в какой-либо фиче или аспекте продукта сидит группа минорных багов, они в совокупности могут быть приравнены к критической проблеме. К примеру, несколько минорных багов в интерфейсе бэкэнда приводит к тому, что персонал тратит больше времени на часто повторяющиеся задачи, замедляя общую производительность и вызывая раздражение. Злоупотребление метриками В большинстве случаев отчетность, состоящая исключительно из метрик – это признак неопытного, раздосадованного и не наделенного достаточными полномочиями тест-лида, который делает все это из лучших побуждений. Я знаю тест-лидов, которые предоставляют требуемые (обычно ПМами) метрики, хотя и раздражаются, потому что метрики нечетко отражают их мнение по поводу качества продукта, так как описывают тестирование лишь частично. Реальный пример такой ситуации – проект, в котором каждое требование покрыто как минимум одним тестом, 95% тестов пройдено, и нет блокирующих багов. На основании этих метрик ПМ решил, что продукт соответствует выходным критериям, и дополнительное время тестирования не требуется. Как мы видели выше, у каждой из этих метрик, поданной изолированно, есть недостатки. В этом случае тест-менеджеру пришлось сражаться на высшем уровне, объясняя, почему тестированию требуется больше времени на тщательное изучение основных областей риска, несмотря на то, что графики фактически давали релизу зеленый свет. Я сталкивалась с ситуацией, когда метрики намеренно вводили читателя в заблуждение. В одном моем проекте предыдущий тест-менеджер просил команду подготовить два кейса на каждое требование: один позитивный и один негативный. Вот пример требования к этому проекту: Доступ персонала к системе ограничен соответственно их роли. Написать пару тестов, которые, на первый взгляд, покрывают это требование, довольно легко:
Требованию очевидно не хватает детализации – к примеру, информации, какими функциями должны и не должны пользоваться сотрудники. Это реальный пример (требования даже прошли ревью и получили одобрение заинтересованных лиц). Вместо того, чтобы бить тревогу, тест-менеджер подготовил тест-артефакты, основанные на этой куцей информации, и увязал их с требованиями. Это скрыло тот факт, что для тестирования требования необходимо больше информации. Менеджер рапортовал о 100% покрытии требований до того, как тесты начали прогоняться, основываясь на RTM. Прочитав образец требований и связанного с ним покрытия, насколько ценной вы сочтете эту метрику? Что, с вашей точки зрения, произойдет, когда команда тестирования попытается удостовериться, что система соответствует этому требованию? Мораль Тест-метрики и графики могут улучшить отчет о тестировании, но не могут его заменить. Не отчитывайтесь таким образом и не судите о прогрессе тестирования исключительно по метрикам, используйте не только количественную, но и качественную информацию. Регулярно беседуйте с командой тестирования, чтобы понимать картину целиком. Эти графики напоминают сладкоголосых сирен из греческих мифов. Они привлекательны, пусты внутри, и несут с собой многие горести и беды, если бездумно за ними последовать. Чтобы узнать об альтернативных методах отчетности, прочитайте мою статью в Testing Trapeze за август 2015 года. |