Тестирование программных продуктов
Разработка тестов
Разработка тестов
Разбиение на классы эквивалентности
Разбиение на классы эквивалентности
Разбиение на классы эквивалентности
Разбиение на классы эквивалентности - пример
Разбиение на классы эквивалентности – пример неправильного оформления результатов
Разработка тестов: граничные значения
Граничные значения
Разработка тестов: таблицы решений
Разработка тестов: таблицы решений
Разработка тестов: таблицы решений
Разработка тестов: таблицы решений
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: функциональные диаграммы
Разработка тестов: предположение об ошибке
528.50K

Тестирование программных продуктов

1. Тестирование программных продуктов

«Разработка тестов (test
case design)»
СПб 2020, Набока О.А.

2. Разработка тестов

Техники тестирования
Разработка тестов
Как можно «обнаружить» тест?

3. Разработка тестов

Техники тестирования
Разработка тестов
Тщательное изучение и анализ требований (описания
функции, модуля, спецификации, и т.д.).
Декомпозиция требований\функций.
Выявление всех условий, входных и выходных данных (что)
Анализ поведения (как)
Использование различных техник для выделения
определенных тестов
Использование накопленных знаний о выполненных
проектах (оттестированных продуктах)
Интуиция
Анализ\просмотр выявленных тестов и добавление новых

4.

Техники тестирования
Методология «черный ящик» (black-box testing)

5. Разбиение на классы эквивалентности

Техники тестирования
Разбиение на классы эквивалентности
Разбиение на классы эквивалентности
(Equivalence Class Testing\ Equivalence Portioning)
Анализируем требования - входные и выходные
данные\условия
правильные классы эквивалентности
(корректные входные данные)
неправильные классы эквивалентности
(ошибочные входные данные)

6. Разбиение на классы эквивалентности

Техники тестирования
Разбиение на классы эквивалентности
Классы эквивалентности: множество значений:
-> правильный класс для каждого корректного
значения (комбинации корректных значений)
-> один тест-кейс на класс эквивалентности*
*если есть корректные значения в виде списка, то необходимо проверить каждый элемент списка
(количество тест-кейсов = количеству значений в списке)

7. Разбиение на классы эквивалентности

Техники тестирования
Разбиение на классы эквивалентности
Классы эквивалентности: некорректные
значения
-> тестировать одно некорректное значение за
раз для того, чтобы проверить, что система
идентифицирует его корректно.
-> в одном «неправильном» классе
эквивалентности одно некорректное значение

8. Разбиение на классы эквивалентности - пример

Техники тестирования
Разбиение на классы эквивалентности - пример
Длина = 5, допускаются строчные и заглавные буквы латинского алфавита, арабские цифры. Обязательно должна быть как
минимум одна заглавная буква латинского алфавита.
Правильные классы:
1.
Длина равна 5, обязательно присутствуют и строчные и заглавные буквы латинского алфавита и арабские цифры.
(пример тестового значения: D1f3n)
2.
Длина = 5, есть строчные буквы латинского алфавита и, как минимум, одна заглавная буква латинского алфавита. Нет
цифр. (пример тестового значения: DfnFy)
3.
Длина - 5 символов, есть, как минимум, одна заглавная буква латинского алфавита и арабские цифры. Нет строчных
букв латинского алфавита. (пример тестового значения: D45R6)
Неправильные классы:
1.
Длина не равна 5, есть и строчные и заглавные буквы латинского алфавита и арабские цифры. (пример тестового
значения: D1f3n7g)
2.
Длина равна 5, есть строчные буквы латинского алфавита и арабские цифры. Нет заглавных букв латинского
алфавита. (пример тестового значения: v45r6).
3.
Длина = 5, присутствуют строчные и заглавные буквы латинского алфавита, и арабские цифры. Есть буквы не
латинского алфавита. (пример тестового значения: 4L5rш).

9. Разбиение на классы эквивалентности – пример неправильного оформления результатов

Техники тестирования
Разбиение на классы эквивалентности – пример неправильного оформления
результатов
Правильные значения:
1) A567cfgh
2) Есть буквы латинского алфавита, одна и более цифр, один
спец. Символ из списка. Общее количество символов больше или
равно 6 и меньше или равно 10.
Тесты:
1) Отсутствуют заглавные буквы латинского алфавита.
2) Lat +\Num+\Symb

10. Разработка тестов: граничные значения

Техники тестирования
Разработка тестов: граничные значения
Анализ граничных значений (Boundary Value Testing)
идентифицировать граничные значения для каждого
входного значения (класса эквивалентности)
на границе
значение, меньшее граничного («у границы»\’below
point’)
значение, большее граничного («за границей» \’above
point’)
Примеры:
Максимальная длина слова – 5 символов
- > 4,5,6
Область выходных значений: минимум расхода 0.00, максимум 2000
-> -0.01, 0.00, 2000.00, 2000.01

11. Граничные значения

Техники тестирования
Граничные значения
Граничные значения: «точка»: Z
-> Z-1, Z, Z+1
Граничные значения: область корректных
значений [x, y]
-> x-1, x, y, y+1

12. Разработка тестов: таблицы решений

Техники тестирования
Разработка тестов: таблицы решений
Таблицы решений (Decision Table Testing)
1. Анализируя требования, определить список всех
условий
Условия:
Условие 1
Условие 2

13. Разработка тестов: таблицы решений

Техники тестирования
Разработка тестов: таблицы решений
Таблицы решений (Decision Table Testing)
2. Определить список всех возможных действий
(ожидаемых результатов для условий).
Условия:
Условие 1
Условие 2
Действия:
Действие 1
Действие 2

14. Разработка тестов: таблицы решений

Техники тестирования
Разработка тестов: таблицы решений
Таблицы решений (Decision Table Testing)
3. Определить все значения для условий («да»\«нет» или более 2х
значений) и их уникальные комбинации, которые приводят к
выполнению ожидаемых результатов
Условия:
Условие 1
да
да
нет
нет
Условие 2
нет
да
да
нет
Действия:
Действие 1
Действие 2
да
нет
нет
да
нет
да
да
нет

15. Разработка тестов: таблицы решений

Техники тестирования
Разработка тестов: таблицы решений
Таблицы решений (Decision Table Testing)
4. Создать тест кейс для каждого правила (столбца) – как
минимум один, если условия бинарные и если условие –
интервал значений, рассмотреть тесты как для нижней так и
для верхней границы интервала

16. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
Метод функциональных диаграмм (Cause-Effect
Graphing)
предлагает
способ
перевода
спецификаций,
написанных на естественном языке, на язык
формальный
способствует проектированию высокорезультативных
тестов,
не
страдающих
избыточностью,
и
обнаруживающих случаи неполноты и неоднозначности
во входных спецификациях

17. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
1. Разбить внешние спецификации на отдельные
функции, которые будут тестироваться (декомпозиция
фугкциональных требований)
2. Идентифицировать явные и неявные причины
(условия на входе) и присвоить каждой из них
уникальный номер
3. Идентифицировать явные и неявные
эффекты(следствия) (действия на выходе) и
присвоить каждому из них уникальный номер
4. Перевести семантику спецификации в граф
«причина-следствие» (Boolean cause-effect graphing)
5. Добавить информацию о невозможных комбинация
причин\эффектов
6. Построить таблицу решений (бинарные значения)
7. Записать тест кейс для каждого столбца

18. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
Пример
1
-> Требования для расчета страховой премии:
Для женщин моложе 65, премия составляет $500
Для мужчин моложе 25, премия составляет $3000
Для мужчин старше 25, но моложе 65, премия составляет
$1000
Для женщин и мужчин старше 64, премия составляет $1500

19. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
2
Причины (Causes (input conditions)):
1. Пол: мужской
2. Пол: женский
3. Возраст: <25
4. Возраст: >=25 and < 65
5. Возраст: >= 65

20. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
3
Следствия (Effects (output conditions)):
100. Премия = $1000
101. Премия = $3000
102. Премия = $1500
103. Премия = $500

21. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
4
Причина: 1. Пол: мужской and 4. Возраст: >=25 and < 65
Следствие: 100: Премия = $1000
CEG # 1

22. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
4
Причина: 1. Пол: мужской and 3. Возраст: < 25
Следствие: 101: Премия = $1000
CEG # 2

23. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
4
Причина: 1. Пол: мужской and 5. Возраст: >= 65 or 2. Пол:
женский and 5. Возраст: >= 65
Следствие: 102: Премия = $1500
CEG # 3

24. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
4
Причина: 2. Пол: женский and 3. Возраст: < 25 or 2. Пол: женский
and 4. Возраст: >=25 and < 65
Следствие: 103: Премия = $500
CEG # 4

25. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
5
Причина: 1. Пол: мужской and 5. Возраст: >= 65 or 2. Пол:
женский and 5. Возраст: >= 65
Следствие: 102: Премия = $1500
CEG # 3

26. Разработка тестов: функциональные диаграммы

Техники тестирования
Разработка тестов: функциональные диаграммы
6
Причины:
1 Пол: мужской
1
1
1
0
0
0
2 Пол: женский
0
0
0
1
1
1
3 Возраст: < 25
1
0
0
0
1
0
4 Возраст: >= 25 and < 65
0
1
0
0
0
1
5 Возраст: >= 65
0
0
1
1
0
0
100 Премия = 1000$
0
1
0
0
0
0
101 Премия = 3000$
1
0
0
0
0
0
102 Премия = 1500$
0
0
1
1
0
0
103 Премия = 500$
0
0
0
0
1
1
Следствия:

27. Разработка тестов: предположение об ошибке

Техники тестирования
Разработка тестов: предположение об ошибке
Предположение об ошибке (Error Guessing)
Этот метод в значительной степени является интуитивным.
Тест инженер использует свои знания системы и способность
к интерпретации спецификации на предмет того, чтобы
"предугадать" при каких входных условиях система может
выдать ошибку.
Перечислить в некотором списке возможные ошибки или
ситуации, в которых они могут появиться, а затем на основе
этого списка написать тесты.
English     Русский Правила