Задача: Оценка и улучшение схемы тестирования
Эта задача сфокусирована на своевременном внесении изменений в процесс тестирования для увеличения его эффективности.
Дисциплины: Тестирование
Назначение

Цель этой задачи:

  • Оценить эффективность, продуктивность и полноту тестирования
  • Скорректировать процесс тестирования (тактически и стратегически) для увеличения эффективности
Взаимосвязи
Шаги
Определение рабочего состояния
Цель:  Получить понимание состояния работы тестирования на данный момент по отношению к запланированному.  

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

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

Собрать показатели эффективности и продуктивности тестирования
Цель:  Собрать объективные данные, которые позволят коллективу тестировщиков оценить процесс тестирования.  

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

Обратите внимание на эффективность тестирования. Найдите данные, на которых были основаны ваши первоначальные наблюдения. Рассмотрите такие аспекты как частота обнаружения дефектов, показатели серьезности дефектов, статистика повторяемости дефектов и количество дефектов, обнаруженных как выходы их тестов.

Собрать показатели распределения Запросов на изменение, отклонения и старения
Цель:  Собрать и проверить объективные данные, которые позволят коллективу тестировщиков оценить внесенные в протокол проблемы и дефекты.  

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

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

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

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

Собрать показатели трассируемости, охвата и зависимости
Цель:  Собрать объективные данные, которые позволят оценить трассируемость ресурсов.  

Проанализируйте состояние взаимосвязей трассируемости между тестируемыми ресурсами (Идеями тестов, Вариантами использования, Тестовыми сценариями, Наборами тестов и Запросами на изменение) и ресурсами выше и ниже по течению, с которыми они связаны. Найдите подтверждения того, что тестирование сосредоточено на верных областях и основано на нужной мотивации. Найдите также негативные признаки того, что некоторые аспекты тестирования отсутствуют или больше не имеют ценности. Если существуют требования или разработчики заняты какими-то областями, которые не представлены в текущем процессе тестирования, об этом стоит побеспокоиться.

Вычислить показатели и сформулировать первоначальную оценку
Цель:  Вычислить и оценить данные показателей и сформулировать начальную оценку эффективности процесса тестирования по отношению к запланированной.  

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

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

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

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

Мы рекомендуем вам записать некоторые аспекты оценки тестирования в формате, который позволит сравнить их с последующими и предыдущими оценками. Это позволит проанализировать относительные тенденции во времени в процессе тестированию.

Представить оценку и получить обратную связь
Цель:  Привлечь заинтересованных лиц и получить от них обратную связь о том, насколько фактическое тестирование удовлетворяет их потребности.  

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

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

Запланировать и реализовать действия по усовершенствованию
Цель:  Определить области, требующие усовершенствования, и сформулировать первоначальные стратегии их достижения.  

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

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

Отслеживать и поддерживать действия по усовершенствованию
Цель:  Обеспечить, чтобы необходимые действия по усовершенствованию были сделаны удовлетворительно и своевременно.  

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

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

Оценить и проверить результаты
Цель:  Убедиться в том, что задача правильно выполнена, и что получены приемлемые рабочие продукты.  

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

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

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