27
Почему мы тестируем именно так? Тестирование как управление рисками продукта Григорий Сенин. Люксофт

SQA-11 (GSenin-Luxoft+comments)

Embed Size (px)

Citation preview

Page 1: SQA-11 (GSenin-Luxoft+comments)

Почему мы тестируем именно так?

Тестирование как управление рисками продукта

Григорий Сенин. Люксофт

Page 2: SQA-11 (GSenin-Luxoft+comments)

Язык рисков

Чем мы рискуем, если сейчас прекращаем тестирование и выпускаем продукт?

No risk -- no test

Чтобы ответить на этот вопрос, необходимо представлять себе риски продукта

Области, таящие риск и НЕ охваченные тестами, трактуются как угроза продукту

Page 3: SQA-11 (GSenin-Luxoft+comments)

Дефект – источник риска

• Проявление дефекта

– это неблагоприятное событие, которое может с некоторой вероятностью случиться при работе с продуктом

с каждым дефектом, остающимся в продукте, связан риск

• Остающийся в продукте риск мог бы быть вычислен как суммарный риск от всех неисправленных, а также ненайденных дефектов

Page 4: SQA-11 (GSenin-Luxoft+comments)

Примеры рисков, связанных с дефектами

• «слишком долгий отклик системы» – потеря времени поль-ля

• «неудобный интерфейс» – то же плюс невыполнение полезной функции

• «отсутствие нужной функции» – негативное воздействие на бизнес-процесс предприятия пользователя

• «крах системы» – потеря данных и др. тяжёлые последствия вплоть до потери заказчиком репутации

• При заказной разработке исполнитель может подвергнуться штрафным санкциям

• Разные дефекты таят в себе разный потенциальный ущерб для Заказчика/пользователя

• Поэтому важно не только считать их общее количество, но и оценивать размер последствий от наличия дефектов

Page 5: SQA-11 (GSenin-Luxoft+comments)

Тестирование с точки зрения управления рисками

Анализ и

ранжирование

требований

Проектирование

тестов

Выполнение

тестов

Измерения,

отчёты Стратегия,

подход

Page 6: SQA-11 (GSenin-Luxoft+comments)

Тестирование с точки зрения управления рисками

Этап управления рисками Деятельность группы тестирования

Идентификация рисков

Стр

ате

гия те

сти

ровани

я

Получение перечня рисков

Анализ атрибутов рисков Приоритеты тестирования;

ранжирование требований

План сдерживания рисков Тест-проектирование, планирование

тест-циклов

Отслеживание рисков Прогон тестов, регистрация дефектов,

верификация исправлений, отчёты

Контроль Анализ результатов, метрики,

коррекция приоритетов

Page 7: SQA-11 (GSenin-Luxoft+comments)

Идентификация рисков

Три метода

1. от рисков к продукту: ведение общего перечня рисков

2. от продукта к рискам: анализ слабых мест продукта

3. от требований к рискам -- атрибуты качества

Page 8: SQA-11 (GSenin-Luxoft+comments)

От рисков к продукту: перечни рисков

• пример

источник риска код риска категория

риска

риск

Immature vendor

capability

CUS-08 Technical

Development Risk

Customer-supplied components have poor

quality, resulting in extra testing, design,

and integration work and in extra customer-

relationship management.

Общие источники продуктовых рисков (Дж.Бах):

• «новое»

• «сложное»

• «важное»

• «интенсивность»

• интерфейсы

• место поломки

• оптимизация

• ...

Page 9: SQA-11 (GSenin-Luxoft+comments)

От продукта к рискам

Слабости Угрозы Ущерб

Page 10: SQA-11 (GSenin-Luxoft+comments)

Идентификация рисков по характеристикам качества

• Functionality – функциональные дефекты

• Reliability – низкая производительность

• Usability – неудоство пользовательского интерфейса

• Efficiency – неэффективная работа с вычислительными ресурсами

• Maintainability -- ...

• Portability -- ...

-- т.наз. FRUEMP-методика (по ISO 9126)

• Уровень риска: что случится, если требования данного типа не

будут удовлетворены?

• Важность (приоритет, ранг) требования можно трактовать как

размер потенциального ущерба

Page 11: SQA-11 (GSenin-Luxoft+comments)

Анализ атрибутов рисков

Вероятность – степень «видимости» дефекта

• Всегда: пользователь попадает сюда в каждой сессии

• Часто: сюда «рано или поздно» попадает каждый

пользователь, но не обязательно в каждой сессии

• Время от времени: обычно опытные пользователи

• Редко: большинство здесь не бывает никогда

– в эту область можно попасть только в результате весьма

специфической последовательности шагов

Ущерб

• Катастрофический: крах системы, потеря

данных

• Серьёзный: функция отсутствует

• Средний: функция отсутствует, но есть

обходной путь

• Незначительный: неудобный интерфейс

Page 12: SQA-11 (GSenin-Luxoft+comments)

Анализ атрибутов рисков2

Ущерб через приоритеты требований:

• Обязательное требование: продукт неприемлем, если требование не реализовано

• условно-необходимое, или желательное требование: усиливает продукт, но продукт остаётся приемлемым и без него

• необязательное требование: ценность его неочевидна

Соответствующие приоритеты тестирования:

• обязательные: должны быть реализованы безукоризненным образом (без дефектов)

• желательные: должны работать, но не обязательно безупречно (незначительные дефекты приемлемы)

• необязательные: могут содержать дефекты (приемлемы дефекты, кроме критических)

Page 13: SQA-11 (GSenin-Luxoft+comments)

Способы определения приоритетов требований

1. Заказчиком на основе собственных предпочтений (customer value)

2. Исполнителем на основе информации о ценности требований для заказчика:

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

ценность можно рассматривать как сумму этих величин

3. (Good enough approach) Какие усилия, вложенные в тестирование на соответствие требованиям некоторого уровня, будут оправданны?

Если тестировать в области риска становится дороже, чем понести потери от этого риска, то тестирование нецелесообразно

Page 14: SQA-11 (GSenin-Luxoft+comments)

Оценка рисков служит...

• для классификации дефектов

– серьёзность дефекта ставится в зависимость от критичности требования

• для формулировки критериев завершения тестирования

– суммарный риск, остающийся в продукте, должен быть достаточно низок

Page 15: SQA-11 (GSenin-Luxoft+comments)

Приоритеты для классификации дефектов

функция

недоступна

обходные пути,

неочевидные

действия

неудобство

использования

косметические

замечания,

пожелания

высокая фатальный серьёзный серьёзный средний

средняя серьёзный серьёзный средний незначит

низкая средний средний незначит незначит

Кри

тич

ност

ь т

ребо

вани

я

Симптом нарушения требования

Серьёзность ошибки в зависимости от важности требования

Page 16: SQA-11 (GSenin-Luxoft+comments)

Критерии завершения тестирования

• Идея: минимизировать суммарный остающийся в продукте риск

• Критерии опираются на классификацию дефектов в проекте

1. Классификация: критический, серьёзный, незначительный, косметический

– Критерий:

• Все критические тесты пройдены

• Все критические или серьёзные дефекты закрыты

2. Классификация: критический, серьёзный, незначительный – Критерий:

• Все критические тесты пройдены

• Все критические дефекты закрыты

• Все незакрытые серьёзные дефекты проанализированы и величина стоящего за ними риска признана приемлемой

Page 17: SQA-11 (GSenin-Luxoft+comments)

План сдерживания рисков продукта

• Специфика продуктовых рисков:

– Ответственность де-факто на тест-менеджере

– Риски рукотворные! Источник – в самом процессе разработки

Риск можно «вызвать» в виде дефекта, затем «разоблачить» и устранить

• Сдерживание рисков выявление дефектов

– План тестирования – инструмент для этого

Page 18: SQA-11 (GSenin-Luxoft+comments)

Сдерживание рисков при тестировании

Приоритеты тестирования служат:

• для планирования тест-циклов

• критичные компоненты/подсистемы тестируются раньше

• для проектирования функциональных тестов

– моделирование угроз продукту («провокация» рисков)

– если функциональная область (или компонент) не покрыта тестами, это равносильно принятию риска

На сдерживание рисков направлены также:

• Регрессионное тестирование

• Автоматизированное тестирования

Page 19: SQA-11 (GSenin-Luxoft+comments)

Приоритеты при тест-проектировании

Глубина проектирования функциональных тестов

вероятность/частота выполнения сценария

Крит

ичност

ь с

цена

рия

высокая средняя низкая

высокая глубокое

средняя

низкая неглубокое

Page 20: SQA-11 (GSenin-Luxoft+comments)

Отслеживание рисков

• Выполнение тестов направлено на устранение рисков через обнаружение и исправление дефектов

– более критичные сценарии прогоняются чаще

• Отслеживание рисков ведётся в форме отслеживания дефектов

– Отчёты о тестировании, статистика

– Метрики тестирования; суммарный риск продукта

Page 21: SQA-11 (GSenin-Luxoft+comments)

Отслеживание рисков2

• Во время выполнения тестов наступившие риски исследуются в форме дефектов (те же фазы):

– Идентификация – обнаружен дефект

– Анализ – дефект воспроизведён, изолирован, уточнён, обобщён, взвешен (серьёзность);

– Планирование -- уточнены тест-спеки, контролируется статус дефекта

Page 22: SQA-11 (GSenin-Luxoft+comments)

Отслеживание и контроль рисков

• Пока дефект не исправлен, риск в продукте остаётся

• В результате исправления и верификации дефекта риск устраняется (eliminated)

• Когда известный дефект решено не исправлять, это принятие риска (accepted) – нормально для незначительных дефектов

• Когда не исправляется серьёзный дефект, его обычно необходимо разделить с кем-то (tranferred):

– с менеджером проекта (проектное совещание)

– с заказчиком (в ходе сдачи-приёмки)

– с пользователем (путём описания дефектов в сопроводительной документации ~ Known Bugs/Workarounds)

• Иногда можно пробовать избежать риска (avoided)

– переписать фрагмент кода, где коренятся дефекты

– урезать код -- сократить функционал

Page 23: SQA-11 (GSenin-Luxoft+comments)

Типичное состояние продукта в конце разработки

проверено и

исправлено

проверено, но не

исправлено

не проверено

Ож

ид

аем

ые х

аракте

ри

сти

ки

Ре

ал

ьны

е

ха

ра

ктер

исти

ки

Риски

остаются

неопределённость

Риски

устранёны

Page 24: SQA-11 (GSenin-Luxoft+comments)

• выявить самые высокие риски

качества в продукте как можно

раньше!

• Максимальные риски будут

вовремя устранены

• Остающиеся в продукте риски

будут на приемлемом уровне

• Область неопределённости не

будет источником

существенных рисков

Приоритеты помогают уменьшить риски продукта

не проверено

проверено, но не исправлено

проверено и

исправлено

Page 25: SQA-11 (GSenin-Luxoft+comments)

Тестирование на основе рисков качества

– что тестировать,

– что тестировать раньше,

– насколько тщательно тестировать,

– когда завершать тестирование.

Различать важное и неважное для тестирования

При нехватке времени уметь пожертвовать наименее существенным

Page 26: SQA-11 (GSenin-Luxoft+comments)

Риски продукта

Анализ рисков устанавливает приоритеты

Больше риска – больше тестирования

Риск

Вероятность (частота)

• кто будет пользоваться системой

• что будет с ней делать

• как часто

Ущерб, потери Что наихудшее может произойти,

если в этой функции или свойстве

системы произойдет отказ?

Page 27: SQA-11 (GSenin-Luxoft+comments)

Questions?