2. Техники «черного ящика»
Техники «белого ящика»
Техники, основанные на опыте
тестировщика
3. Основаны на анализе документации
Не принимают во внимание внутреннюю
структуру системы
Вводные
Тестируемый
элемент
Результаты
4. Основаны на анализе внутренней структуры
Направлены непосредственно на код
Легко поддаются измерению тестового
покрытия
А > 2
Yes
No
5. Используют знания и опыт тестирующего:
◦ программиста;
◦ тестировщика;
◦ пользователя
Важны знания:
◦ системы;
◦ предметной области;
◦ наиболее вероятных ошибок...
6. Классы эквивалентности
Граничные условия
Таблица возможных решений
Тестирование переходов между
состояниями
Пользовательские сценарии
7. Предполагает разделение тестируемых
данных на группы (классы) на основе каких-
либо общих характеристик:
Одинаковые способы обработки
Одинаковое поведение
Время: до / после / в течение
Корректные / некорректные данные
В пределах лимита / превышает
8. Важно протестировать как минимум одно
значение из каждого класса
Может работать с данными полученными из
разных источников (введенными вручную,
сгенерированными системой, переданными из
другой системы)
Используется для разных уровней тестирования
Применяется для тестирования как вводных, так
и ожидаемых результатов
Важно тестирование как «допустимых», так и
«недопустимых» классов эквивалентности
9. Не замужем / не
женат
Замужем / женат
Разведена /
разведен
Вдова /вдовец
Гражданский
брак
Семейное положение
11. Задание 1: Определите классы
эквивалентности для операции снятия
наличности в банкомате:
Минимальная купюра – 10 грн.
Максимальная сумма разового снятия – 5000 грн.
Задание 2: Определите классы
эквивалентности по уровню образования для
использования в системе анкетирования
12. Граничными являются минимальные и
максимальные значения отдельного класса
эквивалентности
Обладают высокой вероятностью ошибки
Тестирование граничных условий считается
расширенным тестированием классов
эквивалентности
13. Может применятся на различных уровнях
тестирования
Достаточно легко определяются, при этом
очень эффективны
Должен создаваться отдельный тест-кейс
на каждое граничное условие
Необходимо тестировать граничные
условия как «допустимых», так и
«недопустимых» классов эквивалентности
15. Задание 3: Определите граничные условия
для классов эквивалентности из Задания 1:
Минимальная купюра – 10 грн.
Максимальная сумма разового снятия – 5000 грн.
Задание 4: Определите граничные условия
для классов эквивалентности из Задания 2
(уровень образования).
16. Задание 5: Определите граничные условия
для системы учета выплаты больничных:
Общий стаж работы до 1 года – 50% оклада;
Общий стаж работы до 5 лет – 70% оклада;
Общий стаж работы до 8 лет – 80% оклада;
Общий стаж работы свыше 8 лет – 100% оклада.
17. Варианты
Условия 1 2 3 4 5 6 7 8 9 10 11 12
Возраст <18 Да Да Да Да Нет Нет Нет Нет Нет Нет Нет Нет
18-25 Нет Нет Нет Нет Да Да Да Да Нет Нет Нет Нет
>=25 Нет Нет Нет Нет Нет Нет Нет Нет Да Да Да Да
Состояние
здоровья Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров
Отсрочка Нет Да Нет Да Нет Да Нет Да Нет Да Нет Да
Действия
(повестка) Нет Нет Нет Нет Да Нет Нет Нет Нет Нет Нет Нет
Рассылка повестки в армию
• Каждое условие предполагает Да / Нет ответ
• Каждый вариант содержит различную комбинацию
ответов, приводящую к разным действиям
Отдельный тест-кейс необходим для каждого столбика таблицы!
18. Используется, если действия системы
зависят от принятия логических решений
Основана на анализе технического задания
Применяется на любых уровнях
тестирования
Техника эффективна для определения
комбинаций, которые в других случаях
могут быть не замечены
19. Задание 6: Создайте таблицу возможных
решений для тестирования системы продажи
билетов
В кинотеатре предоставляется скидка в
размере 50% на сеансы в таких случаях:
На утренний сеанс в любой день;
На все сеансы в день зрителя;
Льготным категориям зрителей
(студенты, пенсионеры, инвалиды) при условии
предъявления удостоверения.
Скидки не суммируются!
20. Варианты
Условия
1 2 3 4 5 6 7 8
Утренний сеанс Да Да Да Нет Нет Нет Да Нет
День зрителя Да Да Нет Нет Нет Да Нет Да
Льготная
категория
зрителя
Да Нет Нет Нет Да Да Да Да
Действия Скидка Скидка Скидка Нет
скидки
Скидка Скидка Скидка Скидка
Предоставление скидки в кинотеатре
21. Задание 7: Создайте таблицу возможных решений
для тестирования системы лояльности
авиаперевозчика.
Система лояльности авиаперевозчика предполагает
наличие у пассажиров одной из карт клуба:
голубой, серебряной и золотой.
Голубая карта дает возможность первоочередной посадки;
Серебряная карта дает возможность первоочередной
посадки и повышение класса за 20 долларов США;
Золотая карта дает возможность первоочередной
посадки, повышение класса бесплатно и доступ в VIP-зал;
Доступ в VIP-зал также предоставляется держателям
голубой или серебряной карты при наличии более 10 000
бонусных баллов.
22. Варианты
Условия
1 2 3 4 5 6
Голубая карта Да Да Нет Нет Нет Нет
Серебряная карта Нет Нет Да Да Нет Нет
Золотая карта Нет Нет Нет Нет Да Да
> 10000 бонусов Нет Да Нет Да Нет Да
Первоочередная посадка Да Да Да Да Да Да
Повышение класса за 20
долларов
Нет Нет Да Да Нет Нет
Бесплатное повышение
класса
Нет Нет Нет Нет Да Да
Доступ в VIP-зал Нет Да Нет Да Да Да
23. Pairwise testing
Техника формирования наборов тестовых
данных, при которой каждое тестируемое значение
каждого из проверяемых параметров хотя бы раз
сочетается с каждым из тестируемых значений всех
остальных проверяемых параметров
24. Варианты
Условия 1 2 3 4 5 6 7 8 9 10 11 12
Возраст <18 Да Да Да Да Нет Нет Нет Нет Нет Нет Нет Нет
18-25 Нет Нет Нет Нет Да Да Да Да Нет Нет Нет Нет
>=25 Нет Нет Нет Нет Нет Нет Нет Нет Да Да Да Да
Состояние
здоровья Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров
Отсрочка Нет Да Нет Да Нет Да Нет Да Нет Да Нет Да
Действия
(повестка) Нет Нет Нет Нет Да Нет Нет Нет Нет Нет Нет Нет
Рассылка повестки в армию
• Каждое значение тестируемого параметра хотя бы раз сочетается с
каждым из значений всех остальных параметров
• Не забываем о различных результирующих действиях: каждое из
возможных действий должно выполняться хотя бы раз
Отдельный тест-кейс необходим для каждого столбика таблицы!
25. Система налогообложения учитывает
следующие параметры при расчеты суммы
налога:
Пол (мужской / женский);
Возраст (моложе 25 лет, в возрасте от 25 до
60 лет, старше 60 лет);
Наличие / отсутствие детей.
Создайте наборы тестовых данных с
использованием техники попарного
тестирования.
26. Варианты
Условия
1 2 3 4 5 6
Возраст <25
Да Да Нет Нет Нет Нет
25-60
Нет Нет Да Да Нет Нет
>=60
Нет Нет Нет Нет Да Да
Пол
М Ж М Ж М Ж
Дети
Есть Нет Нет Есть Есть Нет
Наборы тестовых данных для тестирования
системы налогообложения
27. Система может «реагировать» по-разному в
зависимости от:
Действий, выполненых пользователем (вводных);
Состояния, в котором она находила перед
выполнением действий (или череды состояний)
Состояние 1
Состояние 2
Вводные
Действия
28. Состояния должны быть:
обособленными
определяемыми
конечными по количеству
Система анализируется с точки зрения:
Возможности определения состояний
Переходов между состояниями
Условий (вводных)
Действий (результатов)
29. Используется для тестирования
встраиваемого ПО (сигнализация)
Удобно для тестирование очередности
действий;
Эффективно для тестирования
некорректных данных / действий;
Может использоваться для тестирования
диалоговых окон.
30. Сигнализация для автомобиля, защищенная кодом
Правильный код
НЕправильный
код
НЕправильный
код
Открыть
дверь
Сигнализация
включена
Сигнализация
отключена
Сигнализация
сработала
НЕправильный
код
Правильный
код
31. Вводные / Действия
Первоначальное
состояние
Правильный код Неправильный код Открыть дверь
Сигнализация отключена
Сигнализация
включена
Сигнализация
отключена
-
Сигнализация включена
Сигнализация
отключена
Сигнализация
включена
Сигнализация
сработала
Сигнализация сработала
Сигнализация
отключена
Сигнализация
сработала
-
Сигнализация для автомобиля, защищенная кодом
32. Нулевой уровень - 0-switch coverage:
тестирование перехода из одного состояния в
другое:
Сигнализация отключена ⇒ сигнализация включена
Сигнализация включена ⇒ сигнализация сработала
Первый уровень – 1-switch coverage:
тестирование переходов парами («транзитом»):
Сигнализация отключена ⇒ сигнализация включена ⇒
сигнализация сработала
Сигнализация включена ⇒ сигнализация сработала ⇒
сигнализация отключена
33. Задание 8: Создайте схему / таблицу
перехода состояний кофе-машины.
В нашей кофе-машине возможны три
состояния:
Ожидание;
Приготовление напитка;
Требование пополнение ингридиентов.
Имеется только одна кнопка Старт/Стоп и
резервуары для пополнения запасов воды /
кофе.
34. Вводные / Действия
Первоначальное состояние Старт / Стоп Наполнить резервуары
Ожидание Готовит напиток Ожидание
Готовит напиток Ожидание -
Требуется пополнение Требуется пополнение Ожидание
Таблица переходов между состояниями кофе-машины
35. Задание 9: Создайте схему / таблицу
перехода состояний мобильного телефона
из режима ожидания в режим совершения
звонка (требуется введение кода). По
завершении звонка телефон возвращается в
режим ожидания. В случае введения
неверного кода три раза подряд телефон
блокируется.
36. Описывают поведение системы с точки
зрения пользователя
Действия тестировщика имеют реальное
значение для пользователя
Могут иметь основные и «запасные»
сценарии
Имеют предварительные условия и
конечные результаты
Имеют «завершенный» вид, предполагают
сквозное тестирование
37. “include”
“extend”
ATM – bank machine
get money
extension points
PIN query
eat cardcondition:
{3
rd
wrong PIN input}
payment unit
bank
client
Снятие наличности в банкомате
38. Совершение покупки в Интернет-магазине
Пользователь ищет желаемый товар ⇒
находит его ⇒ помещает в корзину ⇒
указывает адрес доставки ⇒ оплачивает
товар с использованием платежной карты
39. Тест-кейсы (планы) создаются на основе
реальных сценариев использования
системы
Найденные ошибки имеют большое
значение для качества и огромные шансы
быть обнаружеными пользователями
Чаще всего используется при приемочном
тестировании
Эффективны при интеграционном
(объединении компонентов или систем)
тестировании
40. Задание 10: Опишите наиболее вероятный
пользовательский сценарий для пополнения
телефона с помощью I-box
41. Основаны на анализе внутренней структуры
Направлены непосредственно на код
Легко поддаются измерению тестового
покрытия
А > 2
Yes
No
42. Чаще всего используются при компонентном
тестировании
Однако могут использовать и на других
уровнях тестирования:
интеграционное тестирование (иерархия)
тестирование системы (меню, процессы, навигация
WEB-страницы)
Легко и точно определяется покрытие (охват)
выполненного теста!
43. Тестирование утверждений
Тестирование ветвлений (решений)
READ A
IF A > 5 THEN
IF A =21 THEN
PRINT “Key”
ENDIF
ENDIF
44. Тестирование утверждений- техника тест-
дизайна, основанная на создании тест-кейсов
для покрытия утверждений, использованных в
коде
Покрытие утверждений– соотношение
количества утверждений, покрытых тестом, к
общему количеству утверждений в коде
Для достижения 100% покрытия утверждений
необходимо выполнение минимум одного
сценария для каждого утверждения
45. Тестирование решений- техника тест-
дизайна, основанная на создании тест-кейсов для
покрытия решений (веток) кода
Покрытие решений– соотношение количества
решений, покрытых тестом, общему количеству
решений (веток) кода
Для достижения 100% покрытия решений
необходимо выполнение минимум одного сценария
для каждого решения (ветки) кода
100% покрытие решений гарантирует 100% покрытие
утверждений!
46. Определите минимально необходимое
количество тест-кейсов для обеспечения:
100% покрытия при тестировании
утверждений;
100% покрытия при тестировании решений
Укажите значение переменных
Для удобства код можно переводить в схему
(см.слайд №43)
47. READ A
READ B
IF A < 0 THEN
PRINT “A negative”
ELSE
PRINT “A positive or zero”
ENDIF
IF B < 0 THEN
PRINT “B negative”
ELSE
PRINT “B positive or zero”
ENDIF
Для 100% покрытия утверждений и
решений достаточно 2 тест-кейсов
48. READ A
READ B
IF A > B THEN
A = A + 1
ELSE
B = B + 1
ENDIF
WHILE A > B
B = A * B
A = A + 1
ENDWHILE
Для 100% покрытия утверждений и
решений достаточно 2 тест-кейсов
49. READ A
READ B
WHILE B > A
PRINT “hello”
WHILE B > 10
B = B – 1
ENDWHILE
ENDWHILE
Для 100% покрытия утверждений и
решений достаточно 1 тест-кейса
50. READ A
READ B
IF B < A THEN
WHILE A < 2
A = A +2
PRINT “a”
ENDWHILE
ELSE
IF A = B THEN
B = 2B
ELSE
A = 2A
ENDIF
ENDIF
Для 100% покрытия утверждений и
решений достаточно 3 тест-кейсов
52. Тестирование условий – техника тест-
дизайна, основанная на создании тест-
кейсов для покрытия каждой отдельной
части «сложного» условия
Части условия (atomic or partial conditions)
связаны между собой логическими
операторами AND, OR, NOT
53. READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
A=6 (T), B=8 (F), A>3 OR B<5 (T)
A=2 (F), B=3 (T), A>3 OR B<5 (T)
Минимальное требование к покрытию условий -
тестирования сценариев, приводящих к обеим
возможным результатам TRUE / FALSE для
каждой части условия
54. READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
A=6 (T), B=3 (Т), A>3 OR B<5 (T)
A=6 (T), B=8 (F), A>3 OR B<5 (T)
A=2 (F), B=3 (T), A>3 OR B<5 (T)
A=2 (F), B=8 (F), A>3 OR B<5 (F)
Множественное тестирование условий
предполагает покрытие всех возможных
TRUE/FALSE комбинаций для частичных условий
55. READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
A=6 (T), B=3 (Т), A>3 OR B<5 (T)
A=6 (T), B=8 (F), A>3 OR B<5 (T)
A=2 (F), B=3 (T), A>3 OR B<5 (T)
A=2 (F), B=8 (F), A>3 OR B<5 (F)
При выборе сценария тестирования важно
определить тот, который является чувствительным к
ошибкам (позволяет их выявить). Сценарии, в
которых ошибки «маскируются», выполнять не
обязательно.
56. Определите сценарии тестирования
условий, обеспечивающие минимально
необходимое покрытие, множественное
тестирование, а также выберите
сценарии, чувствительные к ошибкам.
READ A
READ B
IF A < 18 OR B > 55 THEN
PRINT “OK”
ENDIF
58. Определите сценарии тестирования
условий, обеспечивающие минимально
необходимое покрытие, множественное
тестирование, а также выберите
сценарии, чувствительные к ошибкам.
READ A
IF A > 3 AND A < 5 THEN
PRINT “Key”
ENDIF
59. A=8: A>3 (T), A<5 (F), A>3 AND A<5 (F)
A=1: A>3 (F), A<5 (T), A>3 AND A<5 (F)
A=4: A>3 (T), A<5 (T), A>3 AND A<5 (T)
A=?: A>3 (F), A<5 (F), A>3 AND A<5 (F)
60. Направленность тестирования
Полный охват кода
Управление потоком
Отслеживание целостности данных
Тестирование, определяемое внутренним
алгоритмом (сортировка, преобразование
матрицы)
Не позволяет обнаружить не разработанные
требования!