SlideShare a Scribd company logo
Основные техники тест дизайна
 Техники «черного ящика»
 Техники «белого ящика»
 Техники, основанные на опыте
тестировщика
Основаны на анализе документации
Не принимают во внимание внутреннюю
структуру системы
Вводные
Тестируемый
элемент
Результаты
 Основаны на анализе внутренней структуры
 Направлены непосредственно на код
 Легко поддаются измерению тестового
покрытия
А > 2
Yes
No
 Используют знания и опыт тестирующего:
◦ программиста;
◦ тестировщика;
◦ пользователя
 Важны знания:
◦ системы;
◦ предметной области;
◦ наиболее вероятных ошибок...
 Классы эквивалентности
 Граничные условия
 Таблица возможных решений
 Тестирование переходов между
состояниями
 Пользовательские сценарии
Предполагает разделение тестируемых
данных на группы (классы) на основе каких-
либо общих характеристик:
 Одинаковые способы обработки
 Одинаковое поведение
 Время: до / после / в течение
 Корректные / некорректные данные
 В пределах лимита / превышает
 Важно протестировать как минимум одно
значение из каждого класса
 Может работать с данными полученными из
разных источников (введенными вручную,
сгенерированными системой, переданными из
другой системы)
 Используется для разных уровней тестирования
 Применяется для тестирования как вводных, так
и ожидаемых результатов
 Важно тестирование как «допустимых», так и
«недопустимых» классов эквивалентности
Не замужем / не
женат
Замужем / женат
Разведена /
разведен
Вдова /вдовец
Гражданский
брак
Семейное положение
Не призывается
Призывается
Не призывается
17 18 23 25 26
Призыв в армию
Задание 1: Определите классы
эквивалентности для операции снятия
наличности в банкомате:
 Минимальная купюра – 10 грн.
 Максимальная сумма разового снятия – 5000 грн.
Задание 2: Определите классы
эквивалентности по уровню образования для
использования в системе анкетирования
Граничными являются минимальные и
максимальные значения отдельного класса
эквивалентности
Обладают высокой вероятностью ошибки
Тестирование граничных условий считается
расширенным тестированием классов
эквивалентности
 Может применятся на различных уровнях
тестирования
 Достаточно легко определяются, при этом
очень эффективны
 Должен создаваться отдельный тест-кейс
на каждое граничное условие
 Необходимо тестировать граничные
условия как «допустимых», так и
«недопустимых» классов эквивалентности
Не призывается
Призывается
Не призывается
17 18 23 25 26
Призыв в армию
Задание 3: Определите граничные условия
для классов эквивалентности из Задания 1:
 Минимальная купюра – 10 грн.
 Максимальная сумма разового снятия – 5000 грн.
Задание 4: Определите граничные условия
для классов эквивалентности из Задания 2
(уровень образования).
Задание 5: Определите граничные условия
для системы учета выплаты больничных:
 Общий стаж работы до 1 года – 50% оклада;
 Общий стаж работы до 5 лет – 70% оклада;
 Общий стаж работы до 8 лет – 80% оклада;
 Общий стаж работы свыше 8 лет – 100% оклада.
Варианты
Условия 1 2 3 4 5 6 7 8 9 10 11 12
Возраст <18 Да Да Да Да Нет Нет Нет Нет Нет Нет Нет Нет
18-25 Нет Нет Нет Нет Да Да Да Да Нет Нет Нет Нет
>=25 Нет Нет Нет Нет Нет Нет Нет Нет Да Да Да Да
Состояние
здоровья Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров
Отсрочка Нет Да Нет Да Нет Да Нет Да Нет Да Нет Да
Действия
(повестка) Нет Нет Нет Нет Да Нет Нет Нет Нет Нет Нет Нет
Рассылка повестки в армию
• Каждое условие предполагает Да / Нет ответ
• Каждый вариант содержит различную комбинацию
ответов, приводящую к разным действиям
Отдельный тест-кейс необходим для каждого столбика таблицы!
 Используется, если действия системы
зависят от принятия логических решений
 Основана на анализе технического задания
 Применяется на любых уровнях
тестирования
 Техника эффективна для определения
комбинаций, которые в других случаях
могут быть не замечены
Задание 6: Создайте таблицу возможных
решений для тестирования системы продажи
билетов
В кинотеатре предоставляется скидка в
размере 50% на сеансы в таких случаях:
 На утренний сеанс в любой день;
 На все сеансы в день зрителя;
 Льготным категориям зрителей
(студенты, пенсионеры, инвалиды) при условии
предъявления удостоверения.
Скидки не суммируются!
Варианты
Условия
1 2 3 4 5 6 7 8
Утренний сеанс Да Да Да Нет Нет Нет Да Нет
День зрителя Да Да Нет Нет Нет Да Нет Да
Льготная
категория
зрителя
Да Нет Нет Нет Да Да Да Да
Действия Скидка Скидка Скидка Нет
скидки
Скидка Скидка Скидка Скидка
Предоставление скидки в кинотеатре
Задание 7: Создайте таблицу возможных решений
для тестирования системы лояльности
авиаперевозчика.
Система лояльности авиаперевозчика предполагает
наличие у пассажиров одной из карт клуба:
голубой, серебряной и золотой.
 Голубая карта дает возможность первоочередной посадки;
 Серебряная карта дает возможность первоочередной
посадки и повышение класса за 20 долларов США;
 Золотая карта дает возможность первоочередной
посадки, повышение класса бесплатно и доступ в VIP-зал;
 Доступ в VIP-зал также предоставляется держателям
голубой или серебряной карты при наличии более 10 000
бонусных баллов.
Варианты
Условия
1 2 3 4 5 6
Голубая карта Да Да Нет Нет Нет Нет
Серебряная карта Нет Нет Да Да Нет Нет
Золотая карта Нет Нет Нет Нет Да Да
> 10000 бонусов Нет Да Нет Да Нет Да
Первоочередная посадка Да Да Да Да Да Да
Повышение класса за 20
долларов
Нет Нет Да Да Нет Нет
Бесплатное повышение
класса
Нет Нет Нет Нет Да Да
Доступ в VIP-зал Нет Да Нет Да Да Да
Pairwise testing
Техника формирования наборов тестовых
данных, при которой каждое тестируемое значение
каждого из проверяемых параметров хотя бы раз
сочетается с каждым из тестируемых значений всех
остальных проверяемых параметров
Варианты
Условия 1 2 3 4 5 6 7 8 9 10 11 12
Возраст <18 Да Да Да Да Нет Нет Нет Нет Нет Нет Нет Нет
18-25 Нет Нет Нет Нет Да Да Да Да Нет Нет Нет Нет
>=25 Нет Нет Нет Нет Нет Нет Нет Нет Да Да Да Да
Состояние
здоровья Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров Здоров Здоров
Не
здоров
Не
здоров
Отсрочка Нет Да Нет Да Нет Да Нет Да Нет Да Нет Да
Действия
(повестка) Нет Нет Нет Нет Да Нет Нет Нет Нет Нет Нет Нет
Рассылка повестки в армию
• Каждое значение тестируемого параметра хотя бы раз сочетается с
каждым из значений всех остальных параметров
• Не забываем о различных результирующих действиях: каждое из
возможных действий должно выполняться хотя бы раз
Отдельный тест-кейс необходим для каждого столбика таблицы!
Система налогообложения учитывает
следующие параметры при расчеты суммы
налога:
 Пол (мужской / женский);
 Возраст (моложе 25 лет, в возрасте от 25 до
60 лет, старше 60 лет);
 Наличие / отсутствие детей.
Создайте наборы тестовых данных с
использованием техники попарного
тестирования.
Варианты
Условия
1 2 3 4 5 6
Возраст <25
Да Да Нет Нет Нет Нет
25-60
Нет Нет Да Да Нет Нет
>=60
Нет Нет Нет Нет Да Да
Пол
М Ж М Ж М Ж
Дети
Есть Нет Нет Есть Есть Нет
Наборы тестовых данных для тестирования
системы налогообложения
Система может «реагировать» по-разному в
зависимости от:
 Действий, выполненых пользователем (вводных);
 Состояния, в котором она находила перед
выполнением действий (или череды состояний)
Состояние 1
Состояние 2
Вводные
Действия
Состояния должны быть:
 обособленными
 определяемыми
 конечными по количеству
Система анализируется с точки зрения:
 Возможности определения состояний
 Переходов между состояниями
 Условий (вводных)
 Действий (результатов)
 Используется для тестирования
встраиваемого ПО (сигнализация)
 Удобно для тестирование очередности
действий;
 Эффективно для тестирования
некорректных данных / действий;
 Может использоваться для тестирования
диалоговых окон.
Сигнализация для автомобиля, защищенная кодом
Правильный код
НЕправильный
код
НЕправильный
код
Открыть
дверь
Сигнализация
включена
Сигнализация
отключена
Сигнализация
сработала
НЕправильный
код
Правильный
код
Вводные / Действия
Первоначальное
состояние
Правильный код Неправильный код Открыть дверь
Сигнализация отключена
Сигнализация
включена
Сигнализация
отключена
-
Сигнализация включена
Сигнализация
отключена
Сигнализация
включена
Сигнализация
сработала
Сигнализация сработала
Сигнализация
отключена
Сигнализация
сработала
-
Сигнализация для автомобиля, защищенная кодом
Нулевой уровень - 0-switch coverage:
тестирование перехода из одного состояния в
другое:
 Сигнализация отключена ⇒ сигнализация включена
 Сигнализация включена ⇒ сигнализация сработала
Первый уровень – 1-switch coverage:
тестирование переходов парами («транзитом»):
 Сигнализация отключена ⇒ сигнализация включена ⇒
сигнализация сработала
 Сигнализация включена ⇒ сигнализация сработала ⇒
сигнализация отключена
Задание 8: Создайте схему / таблицу
перехода состояний кофе-машины.
В нашей кофе-машине возможны три
состояния:
 Ожидание;
 Приготовление напитка;
 Требование пополнение ингридиентов.
Имеется только одна кнопка Старт/Стоп и
резервуары для пополнения запасов воды /
кофе.
Вводные / Действия
Первоначальное состояние Старт / Стоп Наполнить резервуары
Ожидание Готовит напиток Ожидание
Готовит напиток Ожидание -
Требуется пополнение Требуется пополнение Ожидание
Таблица переходов между состояниями кофе-машины
Задание 9: Создайте схему / таблицу
перехода состояний мобильного телефона
из режима ожидания в режим совершения
звонка (требуется введение кода). По
завершении звонка телефон возвращается в
режим ожидания. В случае введения
неверного кода три раза подряд телефон
блокируется.
 Описывают поведение системы с точки
зрения пользователя
 Действия тестировщика имеют реальное
значение для пользователя
 Могут иметь основные и «запасные»
сценарии
 Имеют предварительные условия и
конечные результаты
 Имеют «завершенный» вид, предполагают
сквозное тестирование
“include”
“extend”
ATM – bank machine
get money
extension points
PIN query
eat cardcondition:
{3
rd
wrong PIN input}
payment unit
bank
client
Снятие наличности в банкомате
Совершение покупки в Интернет-магазине
Пользователь ищет желаемый товар ⇒
находит его ⇒ помещает в корзину ⇒
указывает адрес доставки ⇒ оплачивает
товар с использованием платежной карты
 Тест-кейсы (планы) создаются на основе
реальных сценариев использования
системы
 Найденные ошибки имеют большое
значение для качества и огромные шансы
быть обнаружеными пользователями
 Чаще всего используется при приемочном
тестировании
 Эффективны при интеграционном
(объединении компонентов или систем)
тестировании
Задание 10: Опишите наиболее вероятный
пользовательский сценарий для пополнения
телефона с помощью I-box
 Основаны на анализе внутренней структуры
 Направлены непосредственно на код
 Легко поддаются измерению тестового
покрытия
А > 2
Yes
No
Чаще всего используются при компонентном
тестировании
Однако могут использовать и на других
уровнях тестирования:
 интеграционное тестирование (иерархия)
 тестирование системы (меню, процессы, навигация
WEB-страницы)
Легко и точно определяется покрытие (охват)
выполненного теста!
 Тестирование утверждений
 Тестирование ветвлений (решений)
READ A
IF A > 5 THEN
IF A =21 THEN
PRINT “Key”
ENDIF
ENDIF
Тестирование утверждений- техника тест-
дизайна, основанная на создании тест-кейсов
для покрытия утверждений, использованных в
коде
Покрытие утверждений– соотношение
количества утверждений, покрытых тестом, к
общему количеству утверждений в коде
Для достижения 100% покрытия утверждений
необходимо выполнение минимум одного
сценария для каждого утверждения
Тестирование решений- техника тест-
дизайна, основанная на создании тест-кейсов для
покрытия решений (веток) кода
Покрытие решений– соотношение количества
решений, покрытых тестом, общему количеству
решений (веток) кода
Для достижения 100% покрытия решений
необходимо выполнение минимум одного сценария
для каждого решения (ветки) кода
100% покрытие решений гарантирует 100% покрытие
утверждений!
Определите минимально необходимое
количество тест-кейсов для обеспечения:
 100% покрытия при тестировании
утверждений;
 100% покрытия при тестировании решений
 Укажите значение переменных
Для удобства код можно переводить в схему
(см.слайд №43)
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 тест-кейсов
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 тест-кейсов
READ A
READ B
WHILE B > A
PRINT “hello”
WHILE B > 10
B = B – 1
ENDWHILE
ENDWHILE
Для 100% покрытия утверждений и
решений достаточно 1 тест-кейса
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 тест-кейсов
 Тестирование условий
READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
Тестирование условий – техника тест-
дизайна, основанная на создании тест-
кейсов для покрытия каждой отдельной
части «сложного» условия
Части условия (atomic or partial conditions)
связаны между собой логическими
операторами AND, OR, NOT
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 для
каждой части условия
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 комбинаций для частичных условий
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)
При выборе сценария тестирования важно
определить тот, который является чувствительным к
ошибкам (позволяет их выявить). Сценарии, в
которых ошибки «маскируются», выполнять не
обязательно.
Определите сценарии тестирования
условий, обеспечивающие минимально
необходимое покрытие, множественное
тестирование, а также выберите
сценарии, чувствительные к ошибкам.
READ A
READ B
IF A < 18 OR B > 55 THEN
PRINT “OK”
ENDIF
A=10, B=27: A<18 (T), B>55 (F), A<18 OR B>55 (T)
A=27, B=72: A<18 (F), B>55 (T), A<18 OR B>55 (T)
A=31, B=31: A<18 (F), B>55 (F), A<18 OR B>55 (F)
A=5, B=75: A<18 (T), B>55 (T), A<18 OR B>55 (T)
Определите сценарии тестирования
условий, обеспечивающие минимально
необходимое покрытие, множественное
тестирование, а также выберите
сценарии, чувствительные к ошибкам.
READ A
IF A > 3 AND A < 5 THEN
PRINT “Key”
ENDIF
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)
 Направленность тестирования
 Полный охват кода
 Управление потоком
 Отслеживание целостности данных
 Тестирование, определяемое внутренним
алгоритмом (сортировка, преобразование
матрицы)
Не позволяет обнаружить не разработанные
требования!
Test design techniques

More Related Content

What's hot (20)

PPTX
Software testing
balamurugan.k Kalibalamurugan
 
PDF
Workshop unit test
Francesco Garavaglia
 
PPT
ISTQB, ISEB Lecture Notes- 2
onsoftwaretest
 
PDF
What is Integration Testing? | Edureka
Edureka!
 
PDF
Le rôle du testeur et le Blackbox testing
Geeks Anonymes
 
PPT
Non Functional Testing
Nishant Worah
 
PDF
Altran soirée du test logiciel - assez des c 05-10-17
Marc Hage Chahine
 
PPTX
SW 테스트 프로세스& 메뉴얼_V 모델
KU HUISEONG
 
PPTX
Istqb 1-소프트웨어테스팅기초
Jongwon Lee
 
PDF
01 software test engineering (manual testing)
Siddireddy Balu
 
PPTX
ISTQB Foundation Level Basic
Selin Gungor
 
PDF
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 
PDF
Functional testing patterns
Premanand Chandrasekaran
 
PPTX
Testes Unitários
Jadson Santos
 
PPT
Software Testing
Dhanasekaran Nagarajan
 
PDF
An introduction to Google test framework
Abner Chih Yi Huang
 
PPSX
Manual testing
Vivek V
 
PPTX
Understanding Unit Testing
ikhwanhayat
 
PDF
ISTQB Foundation Level Basic
Erol Selitektay
 
PDF
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
Workshop unit test
Francesco Garavaglia
 
ISTQB, ISEB Lecture Notes- 2
onsoftwaretest
 
What is Integration Testing? | Edureka
Edureka!
 
Le rôle du testeur et le Blackbox testing
Geeks Anonymes
 
Non Functional Testing
Nishant Worah
 
Altran soirée du test logiciel - assez des c 05-10-17
Marc Hage Chahine
 
SW 테스트 프로세스& 메뉴얼_V 모델
KU HUISEONG
 
Istqb 1-소프트웨어테스팅기초
Jongwon Lee
 
01 software test engineering (manual testing)
Siddireddy Balu
 
ISTQB Foundation Level Basic
Selin Gungor
 
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 
Functional testing patterns
Premanand Chandrasekaran
 
Testes Unitários
Jadson Santos
 
Software Testing
Dhanasekaran Nagarajan
 
An introduction to Google test framework
Abner Chih Yi Huang
 
Manual testing
Vivek V
 
Understanding Unit Testing
ikhwanhayat
 
ISTQB Foundation Level Basic
Erol Selitektay
 
An Introduction to Test Driven Development
CodeOps Technologies LLP
 

Viewers also liked (7)

PPTX
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
sqadays8
 
PPT
Компонентное тестирование. Что это за зверь и с чем его едят?
SQALab
 
PDF
Не баг-трекер, а ...
SQALab
 
PPTX
Как найти побольше багов? (Особенно, если времени нет)
SQALab
 
PPT
Мини-школа тестировщиков, ориентированных на Web
SQALab
 
PPTX
Тест-дизайн в тестировании ПО. Задача "Треугольник"
OdessaQA
 
PPTX
Техники тест дизайна для черноящичного тестирования
Dmytro Protsenko
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
sqadays8
 
Компонентное тестирование. Что это за зверь и с чем его едят?
SQALab
 
Не баг-трекер, а ...
SQALab
 
Как найти побольше багов? (Особенно, если времени нет)
SQALab
 
Мини-школа тестировщиков, ориентированных на Web
SQALab
 
Тест-дизайн в тестировании ПО. Задача "Треугольник"
OdessaQA
 
Техники тест дизайна для черноящичного тестирования
Dmytro Protsenko
 
Ad

Similar to Test design techniques (19)

PDF
Андрей Ладутько - Тест дизайн. Беседа и немного практики
QA Club Minsk
 
PPTX
TestDesignReloaded(Ru)
Viktoriia Kravchenko (Paschenko)
 
PPT
3 лекция. презентация
vyacheslavmaslov
 
PPT
3 лекция. презентация
vyacheslavmaslov
 
PDF
Тестирование весна 2013 лекция 2
Technopark
 
PPT
CodeFest 2012. Зинченко Т. — Практики тест-дизайна: разделяй и властвуй!
CodeFest
 
PDF
Domain-тестирование
SPB SQA Group
 
PPTX
White box techniques
QA Guards
 
PDF
Istqb lesson 4
Eugene Bulba
 
PDF
Тестирование осень 2013 лекция 2
Technopark
 
PDF
Анастасия Бордонос - Проектирование тестов
Yandex
 
PDF
Тестирование лекция 2 весна 2014
Technopark
 
PPTX
05ka-nov
vyacheslavmaslov
 
PPTX
тестирование по стратегии черного ящика
vyacheslavmaslov
 
PPTX
Testing po
Marina Bosova
 
PPTX
Testing po
Marina Bosova
 
PPTX
Математика для тестировщиков
SQALab
 
PPTX
Тестирование систем с большим количеством входных данных или как достичь цели...
SQALab
 
PPTX
Надежный тест-дизайн
SQALab
 
Андрей Ладутько - Тест дизайн. Беседа и немного практики
QA Club Minsk
 
TestDesignReloaded(Ru)
Viktoriia Kravchenko (Paschenko)
 
3 лекция. презентация
vyacheslavmaslov
 
3 лекция. презентация
vyacheslavmaslov
 
Тестирование весна 2013 лекция 2
Technopark
 
CodeFest 2012. Зинченко Т. — Практики тест-дизайна: разделяй и властвуй!
CodeFest
 
Domain-тестирование
SPB SQA Group
 
White box techniques
QA Guards
 
Istqb lesson 4
Eugene Bulba
 
Тестирование осень 2013 лекция 2
Technopark
 
Анастасия Бордонос - Проектирование тестов
Yandex
 
Тестирование лекция 2 весна 2014
Technopark
 
тестирование по стратегии черного ящика
vyacheslavmaslov
 
Testing po
Marina Bosova
 
Testing po
Marina Bosova
 
Математика для тестировщиков
SQALab
 
Тестирование систем с большим количеством входных данных или как достичь цели...
SQALab
 
Надежный тест-дизайн
SQALab
 
Ad

More from QA Guards (15)

PPTX
ISTQB Foundation Level Certification - Intruduction
QA Guards
 
PPTX
Terms and definitions
QA Guards
 
PPTX
Grey box techniques
QA Guards
 
PPTX
Independence of testing
QA Guards
 
PPTX
Test management
QA Guards
 
PPTX
Testing tools
QA Guards
 
PPTX
Test automation
QA Guards
 
PPTX
Software development lifecycle
QA Guards
 
PPTX
Reporting error
QA Guards
 
PPTX
Static testing
QA Guards
 
PPTX
Analysis and Design
QA Guards
 
PPTX
Fundamental test process
QA Guards
 
PPTX
IntroductionPrinciples
QA Guards
 
PPTX
Test types
QA Guards
 
PPTX
Test levels
QA Guards
 
ISTQB Foundation Level Certification - Intruduction
QA Guards
 
Terms and definitions
QA Guards
 
Grey box techniques
QA Guards
 
Independence of testing
QA Guards
 
Test management
QA Guards
 
Testing tools
QA Guards
 
Test automation
QA Guards
 
Software development lifecycle
QA Guards
 
Reporting error
QA Guards
 
Static testing
QA Guards
 
Analysis and Design
QA Guards
 
Fundamental test process
QA Guards
 
IntroductionPrinciples
QA Guards
 
Test types
QA Guards
 
Test levels
QA Guards
 

Test design techniques

  • 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 тест-кейсов
  • 51.  Тестирование условий READ A READ B IF A > 3 OR B < 5 THEN PRINT “Key” ENDIF
  • 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
  • 57. A=10, B=27: A<18 (T), B>55 (F), A<18 OR B>55 (T) A=27, B=72: A<18 (F), B>55 (T), A<18 OR B>55 (T) A=31, B=31: A<18 (F), B>55 (F), A<18 OR B>55 (F) A=5, B=75: A<18 (T), B>55 (T), A<18 OR B>55 (T)
  • 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.  Направленность тестирования  Полный охват кода  Управление потоком  Отслеживание целостности данных  Тестирование, определяемое внутренним алгоритмом (сортировка, преобразование матрицы) Не позволяет обнаружить не разработанные требования!