SlideShare uma empresa Scribd logo
1 de 35
Основные техники 
ТЕСТ ДИЗАЙНА 
для 
черноящичного 
тестирования
Что скрывается 
в определении 
“ТЕСТ 
ДИЗАЙН”?
ТЕСТ ДИЗАЙН 
Этап процесса тестирования 
ПО, на котором проектируются 
и создаются тестовые случаи.
ОПТИМАЛЬНОЕ ТЕСТОВОЕ 
ПОКРЫТИЕ тестируемого приложения 
Т.Е: 1) минимум тестов 
2) максимум выявленных дефектов 
3) ...поменьше слайдов этой 
презы 
Цели
A Practitioner's Guide to 
Software Test Design 
Lee Copeland
A Practitioner's Guide to 
Software Test Design 
Lee Copeland
ПОПАРНОЕ ТЕСТИРОВАНИЕ
ЧТО ЭТО ? 
PAIRWISE- методика 
тестирования, основанная на 
ПРЕДПОЛОЖЕНИИ, что 
большинство дефектов 
возникает при взаимодействии 
не более чем ДВУХ факторов.
- ЭТО МАГИЯ? 
- ЭТО ТЕОРВЕР, ДЕТКА
Простой пример: ПУСТЬ выпадение 
ЕДИНИЦ на кубиках - это БАГА 
Тогда вероятность ее появления для 1-го кубика равна: 
P(bug) = 1/6 =0.167 
Для нескольких событий – вероятность перемножается. 
P(A*B) = P(A)*P(B) 
P2(bug) =0.167 * 0.167 = 0.028 
P3(bug) = 0.167 * 0.167 * 0.167 = 0.005 
Вероятность бага 
при комбинации 3х и 
более паметров так 
мала что ее можно 
и нужно 
отбрасывать
ЧТО ГОВОРЯТ СТАНДАРТЫ? 
D. Richard Kuhn, Senior 
Member, IEEE, 
Dolores R. Wallace, Member, 
IEEE Computer Society 
Oпубликовали исследование, 
проводимое IEEE для ПО 
отозванных в течении 15 лет 
мед. устройств. 
Вывод: 98% дефектов возникают 
при конфликте ПАР входных 
данных или ОДНОГО входного 
параметра (что PAIRWISE 
TESTING также покрывает)
КРАТКОЕ ОБЪЯСНЕНИЕ ТЕХНИКИ: 
Приимер: есть три чекбокса 
У каждого чекбокса по 2 параметра: 
UNCHECKED (0) и CHECKED(1). 
Т.Е. Количество тестов при 
комбинации всех параметров равно 
23 = 8
Выпишем все комбинации для 
ПЕРВОГО и ВТОРОГО чекбоксов:
Добавим ТРЕТИЙ столбец так, чтобы 
во ВТОРОМ и ТРЕТЬЕМ столбце 
получились все 4 двоичные комбинации. 
Теперь смотрим на ПЕРВЫЙ и 
ТРЕТИЙ столбец каких комбинаций 
ПАР между ними не хватает?
Добавим комбинации для ПЕРВОГО и 
ТРЕТЕГО столбцов. А в пустые места 
ВТОРОГО столба допишем НУЛИ 
(т.к. это не имеет значения)
Поменяем порядок комбинаций, получаем: 
ЧЕТЫРЕ теста которые тестируют ВСЕ 
комбинации пар, вместа ВОСЬМИ изначальных. 
Выигрыш в 50% даже на таком простеньком 
примере. 
В случае 13 входных параметров, каждый из которых 
принимает 3 значения, то количество комбинаций будет 
313= 1 594 323. 
А ПОПАРНО, покрываются все входные значения за 15 
тест кейсов!!! 
* Чем больше параметров – тем эффективнее 
PAIRWISE техника
ОРТОГОНАЛЬНЫЙ МАССИВ 
Форма записи: 
1) Это 2х мерный массив, в котором 
любые 2 столбца содержат все 
комбинации значений этих столбцов. 
2) Если какая то пара значений 2х столбцов 
встречается несколько раз, то все 
возможные парные комбинации значений 
этих столбцов должны встретится 
столько же раз.
ИСПОЛЬЗОВАНИЕ ОРТОГОНАЛЬНЫХ МАССИВОВ 
1) ОПРЕДЕЛИТЕ ПЕРЕМЕННЫЕ (Необходимо 
выбирать входные данные, комбинации значений 
которых, могут логически существовать. Не 
исключая друг друга.) 
2) ОПРЕДЕЛИТЕ КОЛИЧЕСТВО ЗНАЧЕНИЙ 
для каждой переменной (Применяем разбиение на 
классы еквивалентности, пограничные заначения 
и др. простые техники для оптимизации) 
3) СКОМБИНИРУЙТЕ ПАРАМЕТРЫ 
и постройте вручную ортогональный 
массив....
ШУЧУ... 
3) ВОСПОЛЬЗУЙТЕСЬ ПРОГРАММОЙ 
Существует много инструментов работающих на 
алгоритме ALL-PAIRS. C данным алгоритмом можно 
ознакомится в книгах Lee Copeland’a. 
Много из TOOLS есть тут: 
http://www.pairwise.org/tools.asp 
Лично мне из-за удобного юая нравиться All-Pairs generator
ГДЕ ПОДСТЕРЕГАЕТ “СЮРПРИЗ”? 
1. Вы определили неверные входные значения 
2. Вы определили неверные Expected Results 
3. Вы не уделили внимание связям между 
переменными. 
(!) РЕМЕМБА: Редкий, 
труднонаходимый и 
маловероятный баг, как 
правило, в случае 
проявления, имеет более 
серьезные последствия. 
(теория Н.Талеба “Черный 
Лебедь”)
АНАЛИЗ ОБЛАСТЕЙ ОПРЕДЕЛЕНИЯ 
(DOMAIN ANALYSIS TESTING)
Но сперва... 
Equivalence Class Testing & 
Boundary Value Testing 
Простой пример: 
Есть модуль для найма на работу 
Базируясь на возрасте - условия приема кандидата такие: 
0–16 : Не нанимать 
16–18 : Можем нанять только на part time 
18–55 : Можем нанять на full time 
55–99 : Не нанимать 
Данные внутри каждого возрастного диапазона (и за 
границами их) – это классы эквивалентности 
(тестируем их = Equivalence Class Testing) 
Данные на границах каждого диапазона - это граничные 
значения (тестируем их = Boundary Value Testing)
ПОЧЕМУ ГРУППИРОВКА? 
Equivalence Class Testing и Boundary 
Value Testing это тот-же самый вид 
тестирования, что и Domain Analysis 
Testing, но только для одномерногого 
пространства.
ТЕОРИЯ 
Функция — это правило отражающее связь 
между параметрами (здесь: x и y) 
В функции y = f (x), 
ОБЛАСТЬ ОПРЕДЕЛЕНИЯ ФУНКЦИИ — это все 
значения, которые может принимать x. 
Границы области определения (a и b) могут быть 
невключенными (a < x < b) или включенными 
(a <= x <= b) в область определения. 
ВОТ И ВСЯ ТЕОРИЯ )))
ПРАКТИКА 
В случае тестирования функционала на который 
влияет 2 и более параметров, необходимо 
формировать тестовые данные, не только согласно 
классов эквивалентности и граничных значений 
каждого из параметров, но и учитывая логику 
влияния параметров друг на друга. 
Делим данные на 4 типа : ON, OFF, IN, OUT 
Мапим их на матрицу Биндера
ПРИМЕР 
Тестируем модуль создания новой страницы. Пользователь может 
ввести ширину (Width) и высоту (Height) страницы (2 параметра). 
Ширина может иметь int от 10 до 150 включительно. 
Высота может иметь int от 25 до 200 включительно. Также 
рассчитывается отношение высоты к ширине (H/W) float 
Действия: 
1) Разобьем значения каждого 
параметра на классы 
эквивалентности 
2) Определим строгие границы 
для каждого класса 
3) Найдем ON, OFF, IN, OUT 
значения для каждой границы 
4) Составим тесткейсы
ПОЛУЧАЕМ... 
* Матрица Биндера – наглядный инструмент 
помогающий не запутаться в эквивалентнтных 
данных, в пограничных значениях и функциональной 
связи между параметрами. (Наше все!)
ИНТЕРЕСНЫЙ ФАКТ о баге в проде 
Из-за неверно заданых границ области определения в функции 
навигационной системы истребителя F-16, при пересечения 
экватора, ультрасовременные на тот момент истребители 
самопроизвольно переворачивались вверх шасси, вниз кабиной, что 
стало следствием откладывания ряда военных кампаний.
Тестирование переходов состояний
State-Transition Diagrams 
Разберем пример резервации авиабилетов. 
Клиент предоставляет информацию для резервации: 
место отправления, место прибытия, дату и время 
отправления. 
• После этого резервация находится в состоянии “Made” 
• После создания резервации, система запускает таймер. 
• Если таймер выходит, а билет не оплачен - система 
отменяет резервацию. 
• Если оплатили система приобретает состояние “Paid”
ГЛОССАРИЙ: 
Состояние (state), круг на диаграмме - это состояние 
приложения, в котором оно ожидает 1 или более событий. 
Переход (transition), стрелки на диаграмме - переход одного 
состояния в другое, происходящий по событию. 
Событие (event) надпись над стрелкой - то, что заставляет 
приложение поменять свое состояние. События могут иметь 
параметры, например событие "payMoney" может иметь 
параметры "Cash", "Check","Credit Card“ в квадратных скобках “[]" 
Действие (action) указано после "/" в надписи над преходом - это 
действие инициированное сменой состояния. 
Точка входа - черная точка. 
Точка выхода - как мишень.
Продолжим... 
• Из состояния "Paid" - переход в состояние 
"Ticketed“. ВНИМАНИЕ: при переходе в 
состояние "Ticketed“, авиабилет (Ticket) 
является входными данными состояния. 
• Из состояния "Ticketed" - переход в состояние 
"Used" когда юзер отдает билет при посадке в 
самолет. 
• Путь диаграммы заканчивается символом 
мишени.
Но это еще не все... 
• Если резервация не оплачена по истечению таймера, то она 
отменяется как неоплаченная- Cancelled Non Pay 
• Отмена из состояния “Made” и “Paid” – “Cancelled By 
Customer” 
• Отменить резервацию можно и с состояния "Ticketed”, но 
только если клиент вернет билет (это описывают параметры)
Создание тест кейсов 
Необходимо создать набор тест-кейсов, который 
должен пройти по всем переходам хотя бы раз. 
* Каждое состояние диаграммы можно подробней 
описать в виде таблицы, и мы получим - Decision Table. 
* А описывая все переходы в виде сценариев, 
мы получим полноценные User Cases.
Вопросы или отдых? 
Created by D. Protsenko 
protsenko@engineer.com

Mais conteúdo relacionado

Mais procurados

Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answersTestbytes
 
Chapter 4 - Mobile Application Platforms, Tools and Environment
Chapter 4 - Mobile Application Platforms, Tools and EnvironmentChapter 4 - Mobile Application Platforms, Tools and Environment
Chapter 4 - Mobile Application Platforms, Tools and EnvironmentNeeraj Kumar Singh
 
Таблицы принятия решений
Таблицы принятия решенийТаблицы принятия решений
Таблицы принятия решенийSQALab
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Edureka!
 
Викторина для тестировщиков
Викторина для тестировщиковВикторина для тестировщиков
Викторина для тестировщиковUladzimir Kryvenka
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersAjit Jadhav
 
Test Case, Use Case and Test Scenario
Test Case, Use Case and Test ScenarioTest Case, Use Case and Test Scenario
Test Case, Use Case and Test ScenarioLokesh Agrawal
 
Chapter 2 - Mobile Application Test Types
Chapter 2 - Mobile Application Test TypesChapter 2 - Mobile Application Test Types
Chapter 2 - Mobile Application Test TypesNeeraj Kumar Singh
 
White box & Black box testing
White box & Black box testingWhite box & Black box testing
White box & Black box testingNitishMhaske1
 
General test cases for mobile app
General test cases for mobile appGeneral test cases for mobile app
General test cases for mobile appnatraj panner
 
Writing Test Cases in Agile
Writing Test Cases in AgileWriting Test Cases in Agile
Writing Test Cases in AgileSaroj Singh
 
White box techniques
White box techniquesWhite box techniques
White box techniquesQA Guards
 
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)SangIn Choung
 
Теория тестирования, часть 1
Теория тестирования, часть 1 Теория тестирования, часть 1
Теория тестирования, часть 1 DressTester
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and typesConfiz
 
тестирование по
тестирование потестирование по
тестирование поIon Griu
 

Mais procurados (20)

Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answers
 
Chapter 4 - Mobile Application Platforms, Tools and Environment
Chapter 4 - Mobile Application Platforms, Tools and EnvironmentChapter 4 - Mobile Application Platforms, Tools and Environment
Chapter 4 - Mobile Application Platforms, Tools and Environment
 
Таблицы принятия решений
Таблицы принятия решенийТаблицы принятия решений
Таблицы принятия решений
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
 
Викторина для тестировщиков
Викторина для тестировщиковВикторина для тестировщиков
Викторина для тестировщиков
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And Answers
 
Selenium WebDriver com Docker
Selenium WebDriver com DockerSelenium WebDriver com Docker
Selenium WebDriver com Docker
 
Test Case, Use Case and Test Scenario
Test Case, Use Case and Test ScenarioTest Case, Use Case and Test Scenario
Test Case, Use Case and Test Scenario
 
Chapter 2 - Mobile Application Test Types
Chapter 2 - Mobile Application Test TypesChapter 2 - Mobile Application Test Types
Chapter 2 - Mobile Application Test Types
 
White box & Black box testing
White box & Black box testingWhite box & Black box testing
White box & Black box testing
 
General test cases for mobile app
General test cases for mobile appGeneral test cases for mobile app
General test cases for mobile app
 
Writing Test Cases in Agile
Writing Test Cases in AgileWriting Test Cases in Agile
Writing Test Cases in Agile
 
Chapter 5 - Tools
Chapter 5 - ToolsChapter 5 - Tools
Chapter 5 - Tools
 
White box techniques
White box techniquesWhite box techniques
White box techniques
 
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
 
Теория тестирования, часть 1
Теория тестирования, часть 1 Теория тестирования, часть 1
Теория тестирования, часть 1
 
CTFL chapter 05
CTFL chapter 05CTFL chapter 05
CTFL chapter 05
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
тестирование по
тестирование потестирование по
тестирование по
 
CTFL Module 01
CTFL Module 01CTFL Module 01
CTFL Module 01
 

Destaque

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

Destaque (9)

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

Semelhante a Техники тест дизайна для черноящичного тестирования

Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Technopark
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Technopark
 
Meet up postanovka_zadach
Meet up postanovka_zadachMeet up postanovka_zadach
Meet up postanovka_zadachssuser9c807c
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Technopark
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Анастасия Бордонос - Проектирование тестов
Анастасия Бордонос - Проектирование тестовАнастасия Бордонос - Проектирование тестов
Анастасия Бордонос - Проектирование тестовYandex
 
Математика для тестировщиков
Математика для тестировщиковМатематика для тестировщиков
Математика для тестировщиковSQALab
 
Проблема тестовых входных данных
Проблема тестовых входных данныхПроблема тестовых входных данных
Проблема тестовых входных данныхMarat Akhin
 
Debunking Risk Management in Software (RUS)
Debunking Risk Management in Software (RUS)Debunking Risk Management in Software (RUS)
Debunking Risk Management in Software (RUS)Alexey Kuznetsov
 
тестирование по стратегии черного ящика
тестирование по стратегии черного ящикатестирование по стратегии черного ящика
тестирование по стратегии черного ящикаvyacheslavmaslov
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Sergey Xek
 
Статический анализ кода: современный взгляд
Статический анализ кода: современный взглядСтатический анализ кода: современный взгляд
Статический анализ кода: современный взглядAndrey Karpov
 
тестирование черного и белого ящиков презентация
тестирование черного и белого ящиков презентациятестирование черного и белого ящиков презентация
тестирование черного и белого ящиков презентацияРоман Растопшин
 
Беседа о тестовых данных
Беседа о тестовых данныхБеседа о тестовых данных
Беседа о тестовых данныхSQALab
 
Качество кода. NDepend
Качество кода. NDependКачество кода. NDepend
Качество кода. NDependRoman Kalita
 

Semelhante a Техники тест дизайна для черноящичного тестирования (20)

Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2
 
Meet up postanovka_zadach
Meet up postanovka_zadachMeet up postanovka_zadach
Meet up postanovka_zadach
 
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Анастасия Бордонос - Проектирование тестов
Анастасия Бордонос - Проектирование тестовАнастасия Бордонос - Проектирование тестов
Анастасия Бордонос - Проектирование тестов
 
Математика для тестировщиков
Математика для тестировщиковМатематика для тестировщиков
Математика для тестировщиков
 
Проблема тестовых входных данных
Проблема тестовых входных данныхПроблема тестовых входных данных
Проблема тестовых входных данных
 
Debunking Risk Management in Software (RUS)
Debunking Risk Management in Software (RUS)Debunking Risk Management in Software (RUS)
Debunking Risk Management in Software (RUS)
 
тестирование по стратегии черного ящика
тестирование по стратегии черного ящикатестирование по стратегии черного ящика
тестирование по стратегии черного ящика
 
05ka-nov
05ka-nov05ka-nov
05ka-nov
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
 
Статический анализ кода: современный взгляд
Статический анализ кода: современный взглядСтатический анализ кода: современный взгляд
Статический анализ кода: современный взгляд
 
тестирование черного и белого ящиков презентация
тестирование черного и белого ящиков презентациятестирование черного и белого ящиков презентация
тестирование черного и белого ящиков презентация
 
Беседа о тестовых данных
Беседа о тестовых данныхБеседа о тестовых данных
Беседа о тестовых данных
 
Качество кода. NDepend
Качество кода. NDependКачество кода. NDepend
Качество кода. NDepend
 

Техники тест дизайна для черноящичного тестирования

  • 1. Основные техники ТЕСТ ДИЗАЙНА для черноящичного тестирования
  • 2. Что скрывается в определении “ТЕСТ ДИЗАЙН”?
  • 3. ТЕСТ ДИЗАЙН Этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи.
  • 4. ОПТИМАЛЬНОЕ ТЕСТОВОЕ ПОКРЫТИЕ тестируемого приложения Т.Е: 1) минимум тестов 2) максимум выявленных дефектов 3) ...поменьше слайдов этой презы Цели
  • 5. A Practitioner's Guide to Software Test Design Lee Copeland
  • 6. A Practitioner's Guide to Software Test Design Lee Copeland
  • 8. ЧТО ЭТО ? PAIRWISE- методика тестирования, основанная на ПРЕДПОЛОЖЕНИИ, что большинство дефектов возникает при взаимодействии не более чем ДВУХ факторов.
  • 9. - ЭТО МАГИЯ? - ЭТО ТЕОРВЕР, ДЕТКА
  • 10. Простой пример: ПУСТЬ выпадение ЕДИНИЦ на кубиках - это БАГА Тогда вероятность ее появления для 1-го кубика равна: P(bug) = 1/6 =0.167 Для нескольких событий – вероятность перемножается. P(A*B) = P(A)*P(B) P2(bug) =0.167 * 0.167 = 0.028 P3(bug) = 0.167 * 0.167 * 0.167 = 0.005 Вероятность бага при комбинации 3х и более паметров так мала что ее можно и нужно отбрасывать
  • 11. ЧТО ГОВОРЯТ СТАНДАРТЫ? D. Richard Kuhn, Senior Member, IEEE, Dolores R. Wallace, Member, IEEE Computer Society Oпубликовали исследование, проводимое IEEE для ПО отозванных в течении 15 лет мед. устройств. Вывод: 98% дефектов возникают при конфликте ПАР входных данных или ОДНОГО входного параметра (что PAIRWISE TESTING также покрывает)
  • 12. КРАТКОЕ ОБЪЯСНЕНИЕ ТЕХНИКИ: Приимер: есть три чекбокса У каждого чекбокса по 2 параметра: UNCHECKED (0) и CHECKED(1). Т.Е. Количество тестов при комбинации всех параметров равно 23 = 8
  • 13. Выпишем все комбинации для ПЕРВОГО и ВТОРОГО чекбоксов:
  • 14. Добавим ТРЕТИЙ столбец так, чтобы во ВТОРОМ и ТРЕТЬЕМ столбце получились все 4 двоичные комбинации. Теперь смотрим на ПЕРВЫЙ и ТРЕТИЙ столбец каких комбинаций ПАР между ними не хватает?
  • 15. Добавим комбинации для ПЕРВОГО и ТРЕТЕГО столбцов. А в пустые места ВТОРОГО столба допишем НУЛИ (т.к. это не имеет значения)
  • 16. Поменяем порядок комбинаций, получаем: ЧЕТЫРЕ теста которые тестируют ВСЕ комбинации пар, вместа ВОСЬМИ изначальных. Выигрыш в 50% даже на таком простеньком примере. В случае 13 входных параметров, каждый из которых принимает 3 значения, то количество комбинаций будет 313= 1 594 323. А ПОПАРНО, покрываются все входные значения за 15 тест кейсов!!! * Чем больше параметров – тем эффективнее PAIRWISE техника
  • 17. ОРТОГОНАЛЬНЫЙ МАССИВ Форма записи: 1) Это 2х мерный массив, в котором любые 2 столбца содержат все комбинации значений этих столбцов. 2) Если какая то пара значений 2х столбцов встречается несколько раз, то все возможные парные комбинации значений этих столбцов должны встретится столько же раз.
  • 18. ИСПОЛЬЗОВАНИЕ ОРТОГОНАЛЬНЫХ МАССИВОВ 1) ОПРЕДЕЛИТЕ ПЕРЕМЕННЫЕ (Необходимо выбирать входные данные, комбинации значений которых, могут логически существовать. Не исключая друг друга.) 2) ОПРЕДЕЛИТЕ КОЛИЧЕСТВО ЗНАЧЕНИЙ для каждой переменной (Применяем разбиение на классы еквивалентности, пограничные заначения и др. простые техники для оптимизации) 3) СКОМБИНИРУЙТЕ ПАРАМЕТРЫ и постройте вручную ортогональный массив....
  • 19. ШУЧУ... 3) ВОСПОЛЬЗУЙТЕСЬ ПРОГРАММОЙ Существует много инструментов работающих на алгоритме ALL-PAIRS. C данным алгоритмом можно ознакомится в книгах Lee Copeland’a. Много из TOOLS есть тут: http://www.pairwise.org/tools.asp Лично мне из-за удобного юая нравиться All-Pairs generator
  • 20. ГДЕ ПОДСТЕРЕГАЕТ “СЮРПРИЗ”? 1. Вы определили неверные входные значения 2. Вы определили неверные Expected Results 3. Вы не уделили внимание связям между переменными. (!) РЕМЕМБА: Редкий, труднонаходимый и маловероятный баг, как правило, в случае проявления, имеет более серьезные последствия. (теория Н.Талеба “Черный Лебедь”)
  • 22. Но сперва... Equivalence Class Testing & Boundary Value Testing Простой пример: Есть модуль для найма на работу Базируясь на возрасте - условия приема кандидата такие: 0–16 : Не нанимать 16–18 : Можем нанять только на part time 18–55 : Можем нанять на full time 55–99 : Не нанимать Данные внутри каждого возрастного диапазона (и за границами их) – это классы эквивалентности (тестируем их = Equivalence Class Testing) Данные на границах каждого диапазона - это граничные значения (тестируем их = Boundary Value Testing)
  • 23. ПОЧЕМУ ГРУППИРОВКА? Equivalence Class Testing и Boundary Value Testing это тот-же самый вид тестирования, что и Domain Analysis Testing, но только для одномерногого пространства.
  • 24. ТЕОРИЯ Функция — это правило отражающее связь между параметрами (здесь: x и y) В функции y = f (x), ОБЛАСТЬ ОПРЕДЕЛЕНИЯ ФУНКЦИИ — это все значения, которые может принимать x. Границы области определения (a и b) могут быть невключенными (a < x < b) или включенными (a <= x <= b) в область определения. ВОТ И ВСЯ ТЕОРИЯ )))
  • 25. ПРАКТИКА В случае тестирования функционала на который влияет 2 и более параметров, необходимо формировать тестовые данные, не только согласно классов эквивалентности и граничных значений каждого из параметров, но и учитывая логику влияния параметров друг на друга. Делим данные на 4 типа : ON, OFF, IN, OUT Мапим их на матрицу Биндера
  • 26. ПРИМЕР Тестируем модуль создания новой страницы. Пользователь может ввести ширину (Width) и высоту (Height) страницы (2 параметра). Ширина может иметь int от 10 до 150 включительно. Высота может иметь int от 25 до 200 включительно. Также рассчитывается отношение высоты к ширине (H/W) float Действия: 1) Разобьем значения каждого параметра на классы эквивалентности 2) Определим строгие границы для каждого класса 3) Найдем ON, OFF, IN, OUT значения для каждой границы 4) Составим тесткейсы
  • 27. ПОЛУЧАЕМ... * Матрица Биндера – наглядный инструмент помогающий не запутаться в эквивалентнтных данных, в пограничных значениях и функциональной связи между параметрами. (Наше все!)
  • 28. ИНТЕРЕСНЫЙ ФАКТ о баге в проде Из-за неверно заданых границ области определения в функции навигационной системы истребителя F-16, при пересечения экватора, ультрасовременные на тот момент истребители самопроизвольно переворачивались вверх шасси, вниз кабиной, что стало следствием откладывания ряда военных кампаний.
  • 30. State-Transition Diagrams Разберем пример резервации авиабилетов. Клиент предоставляет информацию для резервации: место отправления, место прибытия, дату и время отправления. • После этого резервация находится в состоянии “Made” • После создания резервации, система запускает таймер. • Если таймер выходит, а билет не оплачен - система отменяет резервацию. • Если оплатили система приобретает состояние “Paid”
  • 31. ГЛОССАРИЙ: Состояние (state), круг на диаграмме - это состояние приложения, в котором оно ожидает 1 или более событий. Переход (transition), стрелки на диаграмме - переход одного состояния в другое, происходящий по событию. Событие (event) надпись над стрелкой - то, что заставляет приложение поменять свое состояние. События могут иметь параметры, например событие "payMoney" может иметь параметры "Cash", "Check","Credit Card“ в квадратных скобках “[]" Действие (action) указано после "/" в надписи над преходом - это действие инициированное сменой состояния. Точка входа - черная точка. Точка выхода - как мишень.
  • 32. Продолжим... • Из состояния "Paid" - переход в состояние "Ticketed“. ВНИМАНИЕ: при переходе в состояние "Ticketed“, авиабилет (Ticket) является входными данными состояния. • Из состояния "Ticketed" - переход в состояние "Used" когда юзер отдает билет при посадке в самолет. • Путь диаграммы заканчивается символом мишени.
  • 33. Но это еще не все... • Если резервация не оплачена по истечению таймера, то она отменяется как неоплаченная- Cancelled Non Pay • Отмена из состояния “Made” и “Paid” – “Cancelled By Customer” • Отменить резервацию можно и с состояния "Ticketed”, но только если клиент вернет билет (это описывают параметры)
  • 34. Создание тест кейсов Необходимо создать набор тест-кейсов, который должен пройти по всем переходам хотя бы раз. * Каждое состояние диаграммы можно подробней описать в виде таблицы, и мы получим - Decision Table. * А описывая все переходы в виде сценариев, мы получим полноценные User Cases.
  • 35. Вопросы или отдых? Created by D. Protsenko protsenko@engineer.com