Тестирование требований: Зачем - понятно, а вот Как?

Preview:

DESCRIPTION

Выступление Юлии Нечаевой на Летнем Аналитическом Фестивале - 2010. 10 июля 2010 года

Citation preview

Кто я?

• Тестировщик

• Тест-менеджер

• Руководитель отдела тестирования

• Инструктор

• Активный участник конференций

2

Что будем делать?

- Выпустим продукт по плохим требованиям

- Посмеемся

- Я поделюсь существующей системой

- Обсудим её

- Внесем предложения

3

Часть 1. Иллюстрация

4

Вводные:

Компания «Вакуумная сфера»

- разработка ПО

- 50 человек, из них 35 – разработка

Завязка:

Желание владельца повысить производительность – поиск корня

5

6

Компания «Кофе для всех»

7

Бизнес-требования

Повысить производительность разработчиков

Для этого:

- снизить посещаемость кофейни программистами в рабочее время

8

3 варианта решения

- купить франшизу у кофейни, поставить бар

- купить кофемашину

- поставить кофемат (платный либо бесплатный за счет компании)

9

Выбранный вариант

-купить франшизу у кофейни, поставить бар с баристом

- купить кофемашину

- поставить кофемат (платный либо бесплатный за счет компании)

10

Процесс выявления требований

- Первоначальные требования

- Подсчет стоимости

- Урезание требований

11

Свершилось!

12

Проходит месяц

13

- Нельзя выпить то, что хочется

- С утра постоянно не работает

- 2 раза обжегся - Постоянно нет ложек- Невкусно

14

- Не умею пользоваться - Не заметил - Током бьет- Слишком горячий- Неудобно

- Вечно нет сдачи- Не принимает сторублевки - Кидает с купюрами - На рабочем месте нет

мусорки

Причины сложившейся ситуации

- Плохое выявление (невыявленные требования)

- Плохое тестирование (выявленные требования)

15

Причины сложившейся ситуации

- Плохое выявление (невыявленные требования)

- Плохое тестирование (выявленные требования)

16

Часть 2. Система, которая есть

17

Свойства хороших требований

- Полнота

- Правдивость

- Однозначность

- Измеримость

- Ранжируемость

- Не определяющее техническое решение

- Осуществимость (реализуемость)

- Проверяемость (тестируемость)

- Прослеживаемость

- Непротиворечивость

- Избыточность

18

Кубической формыРебро 75 ммКрепкий (ГОСТ №)Легкий (ГОСТ №)Травмобезопасный (ГОСТ №)Безвредный материал (ГОСТ №)Цветной

Кубической формыРебро 75 ммПластмассовый (полиэтилен)ПолыйВозможность покрасить

Требование 1: см. базовые требования «Кубик»Требование 2: зелёный, красный, жёлтый, голубой

Методы тестирования

- Проверка требований (документации)

- Анализ поведения системы

- Прототипирование

21

Кто должен тестировать?

Для эффективного тестирования важно вовлекать различных специалистов

За качество ответственна (в своей области) вся команда

- Тестировщики

- Аналитики

- Менеджер

- Разработчики

- …

22

Кто тестирует?

Для эффективного тестирования важно вовлекать различных специалистов

За качество ответственна вся команда

- Тестировщики

- Пользователи

- Аналитики

- Менеджер

- Разработчики

- …

23

Предусловия

• Список в виде «Система должна делать…»

• Требования сгруппированы по уровням:

- бизнес-требования (БТ)

- функциональные требования (ФТ)

- пользовательские

- к системе

- к подсистемам

- к компонентам

- нефункциональные требования (НТ)

24

Тест № 1

- Делим требования на управляемые группы

Можем ли мы при каждом изменении в требованиях определить все части системы, на которые оказывает влияние это изменение?

25

Тест № 1

- Делим требования на управляемые группы

Можем ли мы при каждом изменении в требованиях определить все части системы, на которые оказывает влияние это изменение?

Позволяет отследить взаимосвязи между требованиями, их однозначность и непротиворечивость

26

Тест № 2

- Все ли требования из уже известных зафиксированы:

Спрашивали ли мы заинтересованные стороны об осознанных, неосознаваемых и невообразимых требованиях

27

Тест № 2

- Все ли требования из уже известных зафиксированы:

Спрашивали ли мы заинтересованные стороны об осознанных, неосознаваемых и невообразимых требованиях

Позволяет как-то проверить полноту требований

28

Тест № 3

- Знаем ли мы значение, которое придает требованию заказчик?

Определено ли для каждого требования значение, придаваемое заинтересованными сторонами?

29

Тест № 3

- Знаем ли мы значение, которое придает требованию заказчик?

Определено ли для каждого требования значение, придаваемое заинтересованными сторонами?

Позволяет расставить приоритеты проектирования системы

30

Тест № 4

- Сопоставляем требования и сформулированные цели разработки системы:

Каждое ли требование в спецификации существенно для системы?

31

Тест № 4

- Сопоставляем требования и сформулированные цели разработки системы:

Каждое ли требование в спецификации существенно для системы?

Позволяет выявить несущественные требования

32

Тест № 5

- Содержат ли требования выражения типа «подлежит определению», «и так далее», «и прочее» …

- Ссылаются ли требования на несуществующие источники?

- Ссылается ли на ещё не определенные источники?

33

Тест № 5

- Содержат ли требования выражения типа «подлежит определению», «и так далее», «и прочее» …

- Ссылаются ли требования на несуществующие источники?

- Ссылается ли на ещё не определенные источники?

34

Проверяем требования на однозначность

Тест № 6

- Определяем меру качества для каждого требования:

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

35

Тест № 6

- Определяем меру качества для каждого требования:

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

Позволяет выявить неизмеримые требования

36

Тест № 7

- Для каждого требования выясняем, сможем ли мы после реализации сказать, что реализовано именно то, что было нужно?

37

Тест № 7

- Для каждого требования выясняем, сможем ли мы после реализации сказать, что реализовано именно то, что было нужно?

Сможем ли мы протестировать однозначно протестировать реализацию?

38

Тест № 8

- Отслеживаем термины:

Всякая ли ссылка на термин, определенный в спецификации требований, согласуется с этим определением?

39

Тест № 8

- Отслеживаем термины:

Всякая ли ссылка на термин, определенный в спецификации требований, согласуется с этим определением?

Позволяет отследить неоднозначные требования

40

Тест № 9

- Для каждого требования выясняем, почему оно является требованием.

Содержит ли спецификация решения, представленные в виде требований?

41

Тест № 9

- Для каждого требования выясняем, почему оно является требованием.

Содержит ли спецификация решения, представленные в виде требований?

Позволяет понять, реально ли это ограничения, существующие в контексте проблемы

42

Тест № 10

- Входим в домен:

Достаточно ли широк контекст требований для охвата всего того, что мы хотим помнить?

43

Тест № 10

- Входим в домен:

Достаточно ли широк контекст требований для охвата всего того, что мы хотим помнить?

Позволяет проверить, рассмотрели ли мы все возможные требования в данном контексте, определить избыточные

44

Ограничения выделенного тестирования по системе:

- Наличие формализованных требований

- Наличие роли аналитика в проекте

- Выделяется время на старте проекта

- Найденные дефекты требований будут исправляться

45

Если требования не тестируются…

• Их все равно тестируют

- тестировщики

- пользователи

46

Проектируем тесты «Не хватает денег»

47

Кофемат включен и исправенКофемат свободен

Кофе в наличии

На табло надпись «Вы внесли 30р.»

На табло надпись

«Недостаточно средств»

Возвращено 30р.

На табло «Добро

пожаловать»

На табло надпись «Вы

выбрали напиток

<напиток>»

Ничего не происходит

Ничего не происходит

Выбрать напиток

ценой 35 р.

Нажать «Подтвердить»

Нажать «Подтвердить»Скормить

кофемату 30р.

Выбрать напиток за 25р.

Нажать «Сдача»

На табло надпись «Вы

выбрали напиток

<напиток>»

Выбрать напиток за 25р.

Возвращено 30р.

На табло «Добро

пожаловать»

Нажать «Сдача»

На табло надпись

«Недостаточно средств»

Выбрать напиток за 25р.

Проектируем тесты «Не хватает денег»

48

На табло надпись «Вы внесли 30р.»

На табло надпись

«Недостаточно средств»

На табло надпись «Вы

выбрали напиток

<напиток>»

Ничего не происходит

Выбрать напиток

ценой 35 р.

Нажать «Подтвердить»

Нажать «Подтвердить»Скормить

кофемату 30р.

Выбрать напиток за 25р.

На табло надпись «Вы

выбрали напиток

<напиток>»

Выбрать напиток за 25р.

Возвращено 30р.

На табло «Добро

пожаловать»

Нажать «Сдача»

На табло надпись

«Недостаточно средств»

Выбрать напиток за 25р.

Или «Вы не внесли

деньги?»

Или выбор напитков

неактивен?

Или «Подтвердить»

не активна?

Или дополн. звуковой сигнал?

Может отдельная

кнопка «Возврат»?

А если длинное название напитка?

Может быть, подсказывать,

сколько не хватает?

Возвращено 30р.

На табло «Добро

пожаловать»

Ничего не происходит

Нажать «Сдача»

А если вносили купюрами, а мелочи нет?

Кофемат включен и исправенКофемат свободен

Кофе в наличии

Ещё сигнал для

тугодумов!

Может отдельная

кнопка «Возврат»?

Итоги:

- Как только мы сформулируем хотя бы одно требование, мы можем приступать к его тестированию

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

- Способ и уровень формализации выбираете сами

49

Что могло бы быть?

50

Контакты.

Я пишу: http://jnechaeva.blogspot.com

Я общаюсь: lorien-julia@yandex.ru

Skype: julia.nechaeva

51

Recommended