354.33K
Категория: ПрограммированиеПрограммирование

Техники тест дизайна

1.

ЛЕКЦИЯ 8
«Техники тест дизайна»

2.

Содержание:
Что такое тест дизайн?
Техника эквивалентного разбиения
Техника анализа граничных значений
Таблица принятия решений
2

3.

Что такое тест дизайн?
Это этап процесса тестирования ПО, на
котором проектируются и создаются
тестовые случаи (тест кейсы), в соответствии
с определёнными ранее критериями
качества и целями тестирования.
Это разработка или придумывание тестов.
3

4.

Что такое тест дизайн?
4

5.

Цели тест дизайна
• Придумать тесты, которые обнаружат
наиболее серьезные ошибки продукта.
• Минимизировать количество тестов,
необходимых
для
нахождения
большинства серьезных ошибок.
5

6.

Основные навыки
1. Умение разделять систему на
составляющие (делать
декомпозицию).
2. Умение собирать и анализировать
требования к продукту.
3. Умение расставлять приоритеты.
4. Умение формулировать свои
мысли (письменно и устно)
5. Знание техник тест дизайна.
6. Умение применять их на практике.
6

7.

Техники тест дизайна:
1. Техника эквивалентного разбиения
(Equivalence Partitioning Testing)
2. Техника анализа граничных значений
(Boundary Value Testing)
3. Попарное тестирование (Pairwise testing)
4. Тестирование состояний и переходов
(State-Transition Testing)
5. Тестирование по таблице принятия решений
(Decision Table Testing)
6. …
7

8.

Эквивалентное разбиение
Equivalence Classes (Класс эквивалентности) – это
входные (а иногда и выходные) данные, которые
обрабатываются приложением одинаково или
обработка которых приводит к одному и тому же
результату.
Equivalence Class Testing (Тестирование классами
эквивалентности) – это техника тест дизайна,
способная сократить число тестов путем выбора
одного теста из эквивалентного набора.
8

9.

Эквивалентное разбиение
Основные правила:
1. Определите классы эквивалентности.
2. На каждый класс эквивалентности
сделайте хотя бы 1 тест-кейс.
9

10.

Эквивалентное разбиение
Например, мы тестируем часть функциональности приложения,
позволяющего покупать железнодорожные билеты онлайн.
Стоимость билета будет зависеть от возраста пассажира.
У нас есть четыре возрастных группы:
1.) < 15 лет,
2.) 15 - 25 лет (например от 15 лет и 1 месяца),
3.) 25 - 60 лет (например от 25 лет и 1 месяца),
4.) > 60 лет.

11.

Эквивалентное разбиение
Представим, что мы тестируем модуль для отдела
кадров, который определяет брать на работу
кандидата или нет, базируясь на возрасте
кандидата.
Условия такие:
0–15 : Не нанимать
16–18 : Можем нанять только на part time
19–55 : Можем нанять на full time
56–99 : Не нанимать
11

12.

Эквивалентное разбиение
Выделим классы эквивалентности:
Класс эквивалентности NO: 0-15.
Класс эквивалентности PART: 16-18.
Класс эквивалентности FULL: 19-55.
Класс эквивалентности NO: 56-99.
Класс эквивалентности NEG1: 0 - бесконечность
Класс эквивалентности NEG2: 100 + бесконечность
12

13.

Анализ граничных значений
Boundary Value Testing (техника анализа
граничных значений) наиболее известная и
простая
техника
тест
дизайна,
призванная
помогать рядовому тестировщику
выбирать наиболее эффективные значения для
тестирования. Техника граничных значений
основана на предположении, что большинство
ошибок
может
возникнуть
на
границах
эквивалентных классов. Она тесно связана
с
вышеописанной техникой эквивалентного
разбиения, из-за чего часто используется с ней в
паре.
13

14.

Анализ граничных значений
Основные правила:
1. Определите диапазон значений (как
правило это класс эквивалентности).
2. Определите границы диапазонов.
3. На каждую границу создайте 3 тест кейса:
проверяющий значение границы;
на значение ниже границы;
на значение выше границы.
14

15.

Анализ граничных значений
Например, мы тестируем часть функциональности приложения,
позволяющего покупать железнодорожные билеты онлайн. Стоимость
билета будет зависеть от возраста пассажира.
У нас есть четыре возрастных группы:
1.) < 15 лет,
2.) 15 - 25 лет,
3.) 25 - 60 лет,
4.) > 60 лет.

16.

Анализ граничных значений
Представим, что мы тестируем модуль для отдела
кадров, который определяет брать на работу
кандидата или нет, базируясь на возрасте
кандидата.
Условия такие:
0–15 : Не нанимать
16–18 : Можем нанять только на part time
19–55 : Можем нанять на full time
56–99 : Не нанимать
16

17.

Анализ граничных значений
Класс эквивалентности NO: 0-15.
Класс эквивалентности PART: 16-18.
Класс эквивалентности FULL: 19-55.
Класс эквивалентности NO: 56-99.
Класс эквивалентности NEG1: -100
Класс эквивалентности NEG2: 500
Значения, на которые мы должны составить тест кейсы:
• {-1, 0, 1},
• {14, 15, 16},
• {17, 18, 19},
• {18, 19, 20},
• {54, 55, 56},
• {55, 56, 57},
• {98, 99, 100}
17

18.

Таблица принятия решений
Таблица принятия решений (decision table) –
великолепный инструмент для упорядочения
сложных бизнес требований, которые должны
быть реализованы в продукте. В таблицах решений
представлен набор условий, одновременное
выполнение которых должно привести к
определенному действию.
18

19.

Таблица принятия решений
Правило 1
Правило 2

Правило p
Сущность
Свойство-1
Свойство-2

Свойство-m
Действия
Действие-1
Действие-2

Действие-n
19

20.

Таблица принятия решений
Представим, что тестируем приложение для
страховой компании. Это приложение вычисляет
скидку
на
страхование
автомобилей,
в
зависимости от того, был ли водитель хорошим
студентом и состоит ли он в браке.
Правило 1
Правило 2
Правило 3
Правило 4
Состоит в
браке?
Yes
Yes
No
No
Хороший
студент?
Yes
No
Yes
No
Сущность
20

21.

Таблица принятия решений
В зависимости от комбинации значений наших
сущностей у нас вычисляется скидка - то есть
скидка - это результат взаимодействия сущностей,
то есть - это и есть наше действие.
Правило 1
Правило 2
Правило 3
Правило 4
Состоит в
браке?
Yes
Yes
No
No
Хороший
студент?
Yes
No
Yes
No
60
25
50
0
Сущность
Действия
Скидка ($)
21

22.

Таблица принятия решений
Делать тест-кейсы по Decision table очень легко создайте как минимум 1 тест кейс на каждое
правило. Вот так:
Test Case ID
Состоит в
браке?
Хороший
студент?
Ожидаемый
результат
TC1
Yes
Yes
скидка = 60
TC2
Yes
No
скидка = 25
TC3
No
Yes
скидка = 50
TC4
No
No
скидка = 0
22

23.

Таблица принятия решений
Пример: есть форум, в котором можно оставлять
сообщения. Если пользователь имеет права админа, то
сообщение на форуме будет отображаться сразу. Если
нет – сообщение не будет сразу отображаться (уходит
модератору). Кроме этого есть чекбокс «Сохранить»,
который будет сохранять сообщение в личный кабинет.
Если пользователь не залогинен на форуме, то при
отправке сообщения его будет перенаправлять на
страницу логина.
Задача: составить тест кейсы на основе таблицы
принятия решений
23

24.

Тестирование состояний и переходов
(State Transition Testing)
Спецификация

25.

Слабое покрытие – пройти СТАТУС хотя бы раз
1) Draft > Canceled
2) Draft > Active > Withdrawn
3) Draft > Active > Decision Made

26.

Слабое покрытие – пройти каждый ПЕРЕХОД
(стрелки) хотя бы раз
1) Draft > Canceled
2) Draft > Active > Withdrawn > Re-submit
3) Draft > Active > Decision Made
3) Draft > Active > Decision Made > Active

27.

Хорошее покрытие – проверить все СОБЫТИЯ
хотя бы раз
1) Draft > Canceled
2) Draft > Active > Withdrawn
3) Draft > Active > Withdrawn > Active
3) Draft > Active > Decision Made (Recruiter: Not a Fit)
4) Draft > Active > Decision Made (Recruiter: Not
Selected)
5) Draft > Active > Decision Made (Recruiter: Hired)
6) 5) Draft > Active > Decision Made > Active

28.

Идеальное покрытие – проверить все ПУТИ хотя
бы раз
1) Draft > Canceled
2) Draft > Active
3) Draft > Active > Withdrawn
4) Draft > Active > Decision Made (Recruiter: Not a Fit)
5) Draft > Active > Decision Made (Recruiter: Not Selected)
6) Draft > Active > Decision Made (Recruiter: Hired)
7) Draft > Active > Withdrawn > Active
8) Draft > Active > Decision Made > Active
9) + циклы

29.

Спасибо за внимание!
Жду Ваших вопросов
29
English     Русский Правила