SlideShare a Scribd company logo
1 of 61
Основные техники тест дизайна
 Техники «черного ящика»
 Техники «белого ящика»
 Техники, основанные на опыте
тестировщика
Основаны на анализе документации
Не принимают во внимание внутреннюю
структуру системы
Вводные
Тестируемый
элемент
Результаты
 Основаны на анализе внутренней структуры
 Направлены непосредственно на код
 Легко поддаются измерению тестового
покрытия
А > 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

Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
White box techniques
White box techniquesWhite box techniques
White box techniquesQA Guards
 
QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...
QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...
QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...QAFest
 
Qa exploratory test charter template
Qa exploratory test charter templateQa exploratory test charter template
Qa exploratory test charter templateRob Swoboda
 
Test case techniques
Test case techniquesTest case techniques
Test case techniquesPina Parmar
 
Use cases на практике
Use cases на практикеUse cases на практике
Use cases на практикеSoftline
 
How To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaHow To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaEdureka!
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.pptKomal Garg
 
Unit 2 - Test Case Design
Unit 2 - Test Case DesignUnit 2 - Test Case Design
Unit 2 - Test Case DesignSelvi Vts
 
02 software test plan template
02 software test plan template02 software test plan template
02 software test plan templateAndrei Hortúa
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2Yogindernath Gupta
 
Chapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycleChapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycleNeeraj Kumar Singh
 
11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil BarotHarshil Barot
 
Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testingikhwanhayat
 

What's hot (20)

Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
White box techniques
White box techniquesWhite box techniques
White box techniques
 
Workshop unit test
Workshop   unit testWorkshop   unit test
Workshop unit test
 
QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...
QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...
QA Fest 2015. Артем Быковец. Техники тест дизайна или как правильно покрывать...
 
Testing methodology
Testing methodologyTesting methodology
Testing methodology
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software test life cycle
 
Test case development
Test case developmentTest case development
Test case development
 
Qa exploratory test charter template
Qa exploratory test charter templateQa exploratory test charter template
Qa exploratory test charter template
 
Types of testing
Types of testingTypes of testing
Types of testing
 
Test case techniques
Test case techniquesTest case techniques
Test case techniques
 
Use cases на практике
Use cases на практикеUse cases на практике
Use cases на практике
 
How To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaHow To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | Edureka
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
Unit 2 - Test Case Design
Unit 2 - Test Case DesignUnit 2 - Test Case Design
Unit 2 - Test Case Design
 
02 software test plan template
02 software test plan template02 software test plan template
02 software test plan template
 
Unit Testing (C#)
Unit Testing (C#)Unit Testing (C#)
Unit Testing (C#)
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 
Chapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycleChapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycle
 
11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot
 
Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testing
 

Viewers also liked

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

Viewers also liked (6)

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

Similar to Test design techniques

Андрей Ладутько - Тест дизайн. Беседа и немного практики
Андрей Ладутько - Тест дизайн. Беседа и немного практикиАндрей Ладутько - Тест дизайн. Беседа и немного практики
Андрей Ладутько - Тест дизайн. Беседа и немного практикиQA Club Minsk
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Technopark
 
тестирование по стратегии черного ящика
тестирование по стратегии черного ящикатестирование по стратегии черного ящика
тестирование по стратегии черного ящикаvyacheslavmaslov
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Technopark
 
Как мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППККак мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППКRina Uzhevko
 
Темная сторона метрик
Темная сторона метрикТемная сторона метрик
Темная сторона метрикRoman Ivliev
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестированияQA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестированияQAFest
 

Similar to Test design techniques (10)

Андрей Ладутько - Тест дизайн. Беседа и немного практики
Андрей Ладутько - Тест дизайн. Беседа и немного практикиАндрей Ладутько - Тест дизайн. Беседа и немного практики
Андрей Ладутько - Тест дизайн. Беседа и немного практики
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
 
05ka-nov
05ka-nov05ka-nov
05ka-nov
 
тестирование по стратегии черного ящика
тестирование по стратегии черного ящикатестирование по стратегии черного ящика
тестирование по стратегии черного ящика
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
 
Как мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППККак мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППК
 
Темная сторона метрик
Темная сторона метрикТемная сторона метрик
Темная сторона метрик
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестированияQA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
 

More from QA Guards

ISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - IntruductionISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - IntruductionQA Guards
 
Terms and definitions
Terms and definitionsTerms and definitions
Terms and definitionsQA Guards
 
Grey box techniques
Grey box techniquesGrey box techniques
Grey box techniquesQA Guards
 
Independence of testing
Independence of testingIndependence of testing
Independence of testingQA Guards
 
Test management
Test managementTest management
Test managementQA Guards
 
Testing tools
Testing toolsTesting tools
Testing toolsQA Guards
 
Test automation
Test automationTest automation
Test automationQA Guards
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycleQA Guards
 
Reporting error
Reporting errorReporting error
Reporting errorQA Guards
 
Static testing
Static testingStatic testing
Static testingQA Guards
 
Analysis and Design
Analysis and DesignAnalysis and Design
Analysis and DesignQA Guards
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test processQA Guards
 
IntroductionPrinciples
IntroductionPrinciplesIntroductionPrinciples
IntroductionPrinciplesQA Guards
 

More from QA Guards (15)

ISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - IntruductionISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - Intruduction
 
Terms and definitions
Terms and definitionsTerms and definitions
Terms and definitions
 
Grey box techniques
Grey box techniquesGrey box techniques
Grey box techniques
 
Independence of testing
Independence of testingIndependence of testing
Independence of testing
 
Test management
Test managementTest management
Test management
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Test automation
Test automationTest automation
Test automation
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycle
 
Reporting error
Reporting errorReporting error
Reporting error
 
Static testing
Static testingStatic testing
Static testing
 
Analysis and Design
Analysis and DesignAnalysis and Design
Analysis and Design
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test process
 
IntroductionPrinciples
IntroductionPrinciplesIntroductionPrinciples
IntroductionPrinciples
 
Test types
Test typesTest types
Test types
 
Test levels
Test levelsTest levels
Test levels
 

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.  Направленность тестирования  Полный охват кода  Управление потоком  Отслеживание целостности данных  Тестирование, определяемое внутренним алгоритмом (сортировка, преобразование матрицы) Не позволяет обнаружить не разработанные требования!