SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Бордонос Анастасия
ШТБС.
Проектирование тестов.
Инженер по контролю качества
Инструкция — наше все
С чего начать, или инструкция тестировщика
1.  Скрининг
“Фича не должна стать неприятным
сюрпризом”
С чего начать, или инструкция тестировщика
2. Анализ
2.1 Зачем?
2.2 Как?
2.3 Где?
С чего начать, или инструкция тестировщика
3. Описание + тест план
«Истина где-то рядом»
С чего начать, или инструкция тестировщика
5. Рассказ фичи
“…в третий раз объясняю. Сам уже понял. А
они не понимают...”
С чего начать, или инструкция тестировщика
6. Ревью
“Лучше перестраховаться, чем …
облажаться”
Основные определения
1. Тест-план (Test Plan) – полный набор
тестов.
2. Тест-сет (Test set) - совокупность
тестов(тестовых случаев), собранных
вместе с целью протестировать
определенные процессы системы.
3. Тест (Test Case) - совокупность шагов,
конкретных условий и параметров,
необходимых для проверки реализации
тестируемой функции или её части.
Подходы к Test Design
1. Equivalence Class Testing
2. Boundary Value Testing
3. Domain Analysis Testing
4. Pairwise Testing
5. Decision Table Testing
6. State-Transition Testing
7. Use Case Testing
Equivalence Class Testing
Классы эквивалентности
Эквивалентные тесты – тесты приводящие к одинаковому результату.
Пример: прием на работу
0 – 16: не принимать
16 – 18: принимать на полставки
18 – 55: принимать на полную ставку
55 – …: не принимать
Важно:
1.  Поиск классов эквивалентности – субъективный процесс
2.  Достаточно 1-2 проверки на класс
Поиск классов эквивалентности
•  Не забывать заведомо неверные значения (для
чисел обычно сразу +2 класса < и > диапазона)
•  Важно четко определять и проанализировать
диапазон входных данных (любой поддиапазон
– отдельный класс эквивалентности).
•  Выявление группы переменных, совместно
участвующих в вычислениях (например
треугольник, класс допустимых значений когда
сумма 2х сторон > 3ей, + 2 класса < >)
•  По возможности выходные данные, тоже
разбиваются на классы
Boundary Value Testing
Пример: прием на работу
0 – 16: не принимать
16 – 18: принимать на полставки
18 – 55: принимать на полную ставку
55 – …: не принимать
Правильный вариант:
0 – 15: не принимать
16 – 17: принимать на полставки
18 – 54: принимать на полную ставку
55 – …: не принимать
Boundary Value Testing
Что еще сказать про граничные значения?
Канер просил помнить про:
-числовые границы
-границы множеств
-границы циклов
-границы структур данных
-границы пространства (многомерные объекты)
-границы времени
-границы конфигураций
Таблица Майерса
Задача: Есть программа, которая складывает 2 числа, каждое из которых
может принимать следующие значения: -99..99 Нам требуется написать
оптимально число тестов для тестирования данной программы.
Всего вариантов: 199*199=39,601
Переменная	
  
Допустимые	
  
значения	
  
Недопустимые	
  
значения	
  
Граничные	
  и	
  особые	
  
значения	
  
Первая	
  цифра	
   -­‐99..99	
  
>99	
  
<-­‐99	
  
99,	
  100	
  
-­‐99,	
  -­‐100,	
  0	
  
Вторая	
  цифра	
   -­‐99..99	
  
>99	
  
<-­‐99	
  
99,	
  100	
  
-­‐99,	
  -­‐100,	
  0	
  
Сумма	
   -­‐198..198	
  
>198	
  
<-­‐198	
  
(-­‐99,-­‐99)	
  
(-­‐99,	
  99)	
  
(99,-­‐99)	
  
(99,	
  99)	
  
Таблица Майерса
Построение таблицы на практике:
1.  Вряд ли у вас будет набор полей с полной
спецификацией допустимых и недопустимых
значений.
2.  Начните с простого перечисления полей ввода
3.  В конце концов, таблица должна содержать все
значения
4.  На практике очень редко встречаются полные
таблицы, хотя они являются достаточно важным
элементом тестирования.
Domain Analysis Testing
1. Разбиение областей значений на
подобласти
2. Выбор конкретных значений из
подобластей
3. Сочетание выбранных значений разных
параметров
А1	
  
	
  
А2	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  А3	
  
a1	
  
a2	
  
a3	
  
b1	
  
a1	
   a1	
  
b2	
  
b3	
  
a3	
  b1	
   b2	
   b3	
   b3	
  a1	
  
b2	
  a1	
  
a3	
   b2	
  a3	
   b1	
  
В1	
  
В2	
  
В3	
  
Pairwise Testing
1.  Не тестировать вообще?
2.  Протестировать все?
3.  Выбрать 1-2 теста и надеяться на лучшее?
4.  Выбрать наиболее простые для создания тесты?
5.  Сделать список комбинаций параметров и выбрать
несколько первых или рандомное подмножество?
6.  По волшебству, выбрать специально подобранные,
довольно небольшое подмножество, который
находит очень много дефектов
Pairwise Testing
1.  Если система имеет 4 разных параметра и каждый из них
принимает 3 разных значения, то число комбинаций будет 3^4 =
81. Возможно охватить все попарные комбинации всего в 9
тестов.
2.  Если система имеет 13 разных параметров и каждый из них
принимает 3 разных значения, то число комбинаций будет 3^13 =
1594323. Возможно охватить все попарные комбинации всего в
15 тестов.
3.  Если система имеет 20 разных параметров и каждый из них
принимает 10 разных значений, то число комбинаций будет
10^20. Возможно охватить все попарные комбинации всего в 180
тестов.
Decision Table Testing
Правило	
  1	
   Правило	
  2	
   …	
   Правило	
  p	
  
Сущность	
  
	
  
	
  
Ввод	
  данных	
  
студента	
  
Нет	
  
Нет	
  
	
  
Да	
  
	
  
	
  
	
  
Ввод	
  ID	
  студента	
  
Нет	
  
	
  
Да	
  
	
  
Нет	
  
	
  
	
  
Выбор	
  «Изменить»	
  
Нет	
  
	
  
Нет	
  
	
  
Да	
  
	
  
	
  
	
  
Выбор	
  «Удалить»	
  
Нет	
  
	
  
Да	
  
	
  
Нет	
  
	
  
	
  
	
  
	
  
	
  
Действия	
  
	
  
	
  
Данные	
  изменились	
  
Нет	
  
	
  
Нет	
  
	
  
Да	
  
	
  
	
  
	
  
Данные	
  удалились	
  
Нет	
  
	
  
Да	
  
	
  
Нет	
  
	
  
	
  
	
  
…	
  
	
  
	
  
Действие-­‐n	
  
	
  
	
  
State-Transition Testing
Резервация авиабилетов
1.  "Made" (сделана)
2.  "Paid" (оплаченный)
3.  "Ticketed" (обилечен)
4.  "Used" (использованный)
5.  "Cancelled By Customer”
6.  "Cancelled NonPay”
State-Transition Testing
Use case testing
Тестирование на основе пользовательских сценариев
+ Хорошо подходит для тестирования
интерфейсов
-  Могут быть пропущены не очевидные
сценарии использования.
Use case test системы регистрации:
1.  Оставьте поля ввода пустыми, нажмите кнопку «ОК». Вывелись сообщение
об обязательности полей.
2.  Введите в поле «Логин» недопустимые символы. Нажмите кнопку «ОК».
Вывелось сообщение «Недопустимые символы в логине».
3.  Введите в поле «Пароль 3 символа». Нажмите кнопку «ОК». Вывелось
сообщение «Пароль может содержать минимум 8 символов»
4.  Введите корректные данные в поля. Нажмите кнопку «ОК». Регистрация
прошла успешно
Parameters based testing
Тестирование на основе параметров
На основе знаний о задаче и системе выявляется
набор значимых параметров.
Пример «Кружка».
Параметры:
1.  Содержимое: вода, спирт, чай, крупа, сахар
2.  t содержимого: 0C, 100C, -20C, 70
3.  Время теста(сек): 1,10,60,3600, 86400
4.  Доп. Действия: нагрев, охлаждение
Перебор параметров
1.  Ручной
Перебор параметров
2.  Перебор параметров относительно
фиксированных значений.
Пример «Кондиционер»:
•  Температура
•  Мощность
•  Таймер
Стандартный режим работы:
Т = 20, P = 2000 Вт, t = 20 мин
Перебор параметров
3.  Иерархическая проверка параметров.
Пример: Расчет площади треугольника по
формуле полупериметра.
A – считывание входных данных
B – расчет периметра
С – расчет площади
A(), B(A), C(B) - функции
Это интересно!
Magic number
Value	
   Hex	
   DescripXon	
  
0	
   0x00	
   Zero.	
  False.	
  NULL.	
  
4	
   0x04	
   4.	
  Размер	
  32	
  bit	
  integer	
  
37	
   0x25	
   Численное	
  значение	
  для	
  ASCII	
  символа	
  '%',	
  который	
  
является	
  управляющим	
  последовательность	
  ю	
  в	
  URL-­‐
адресах	
  и	
  в	
  C	
  runime	
  library.	
  
38	
   0x26	
   Численное	
  значение	
  для	
  ASCII	
  символа	
  '&'	
  ,	
  который	
  
часто	
  используется	
  в	
  атаках	
  на	
  сайт.	
  
48	
   0x30	
   Численное	
  значение	
  для	
  ASCII	
  символа	
  '0'	
  (zero).	
  
97	
   0x61	
   Численное	
  значение	
  для	
  ASCII	
  символа	
  	
  'a'.	
  
204	
   0xCC	
   x86	
  assembly	
  instrucion,	
  если	
  выполняется,	
  то	
  
останавливает	
  процесс("int	
  3").	
  
Error Guessing
Тестирование на основе предугадывания ошибки
Консольное приложение, которое на вход
принимает 3 целых числа, интерпретируемые
как длины сторон треугольника, а на выходе
выводит на экран является ли введенный
треугольник равнобедренным или
равносторонним.
Error Guessing
Тестирование на основе предугадывания ошибки
НЕ Консольное НЕ приложение, которое на
НЕ вход принимает НЕ 3 НЕ целых НЕ
числа, интерпретируемые как НЕ длины
сторон треугольника, а на выходе НЕ
выводит на экран является ли введенный
НЕ треугольник НЕ равнобедренным или
НЕ равносторонним.
Тест кейс
Свойства
1.  Простота (Понятность)
2.  Воспроизводимость
3.  Обоснованность
Пример:
Title(название): кружка + кипяток
Description(цель): проверяем возможность хранить в кружке воду в течение
времени остывания.
Начальное состояние: пустая, сухая кружка комнатной температуры.
Действие: Наливаем 0.5л кипятка в чашку
Что проверяем: что вода остается в кружке, по мере остывания воды
Ожидаемый результат : вода остается в кружке
Тест кейс. Статусы теста
Как заводить баги
1. Не откладывайте на завтра
2. Разберитесь в баге и локализуйте
проблему
3. Подумайте, где подобный баг может
встретиться ещё, покройте это тестами
4. В title кратко опишите суть проблемы
5. В тикете сделайте подробное описание
бага, приложите скрин
6. Опишите, как его воспроизвести
У багов тоже есть чувства
Жизненный цикл бага
Обнаружен	
  
(Open)	
  
Закрыт	
  
(Closed)	
  
Возвращен	
  
(Open)	
  
Ретест	
  
(Open)	
  
Отвергнут	
  
(Will	
  not	
  fix)	
  
Исправлен	
  
(Fixed)	
  
Принят	
  
(Open)	
  
Оценка тестирования
1. Покрытие требований (Requirements Coverage)
Requirements Traceability Matrix
FuncXonal	
  Requirements	
   Test	
  Cases	
  
Приложение	
  должно	
  принимать	
  на	
  вход	
  3	
  
целых	
  числа	
  
OQ,	
  Test	
  Case	
  1:	
  На	
  вход	
  	
  параметров	
  не	
  
подаем	
  
OQ,	
  Test	
  Case	
  2:	
  На	
  вход	
  	
  2	
  параметра	
  
…	
  
	
  
Приложение	
  должно	
  уметь	
  определять,	
  
является	
  ли	
  треугольник	
  равнобедренным	
  
OQ,	
  Test	
  Case	
  5:	
  Проверка	
  треугольника	
  на	
  
равнобедренность	
  	
  
Приложение	
  должно	
  уметь	
  определять,	
  
является	
  ли	
  треугольник	
  равносторонним	
  
OQ,	
  Test	
  Case	
  6:	
  Проверка	
  треугольника	
  на	
  
равносторонность	
  
Приложение	
  должно	
  выдавать	
  ошибку	
  в	
  ином	
  
случае	
  
OQ,	
  Test	
  Case	
  7:	
  Произвольный	
  треугольник	
  
OQ,	
  Test	
  Case	
  8:	
  Входные	
  данные	
  –	
  не	
  
треугольник	
  
…	
  	
  
Оценка тестирования
2. Покрытие кода (Code Coverage)
•  покрытие операторов ;
•  покрытие условий ;
•  покрытие путей ;
•  покрытие функций ;
•  покрытие вход/выход ;
•  покрытие значений параметров .
Code Coverage
Вопросы,
замечания,
помидоры?
Бордонос Анастасия
Инженер по контролю качества
Спасибо за
внимание!

Mais conteúdo relacionado

Mais procurados

Программирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереПрограммирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереAndrey Dolinin
 
Алгоритмы и исполнители
Алгоритмы и исполнителиАлгоритмы и исполнители
Алгоритмы и исполнителиAndrey Dolinin
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)sqadays8
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Technopark
 
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
 
Static Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformStatic Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformIosif Itkin
 
Java. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and DebuggingJava. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and Debuggingcolriot
 
Использование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииИспользование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииGetDev.NET
 
Join the python_side
Join the python_sideJoin the python_side
Join the python_sidePaul Dmitryev
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Technopark
 
Доклад АКТО-2012 Душкин, Смирнова
Доклад АКТО-2012 Душкин, СмирноваДоклад АКТО-2012 Душкин, Смирнова
Доклад АКТО-2012 Душкин, СмирноваDmitry Dushkin
 
White box techniques
White box techniquesWhite box techniques
White box techniquesQA Guards
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительностиvyacheslavmaslov
 
Илья Фофанов "Обработка ошибок в C#"
Илья Фофанов "Обработка ошибок в C#"Илья Фофанов "Обработка ошибок в C#"
Илья Фофанов "Обработка ошибок в C#"Yulia Tsisyk
 
Umnozhenie polozhitelnyh i_otricatelnyh_chisel
Umnozhenie polozhitelnyh i_otricatelnyh_chiselUmnozhenie polozhitelnyh i_otricatelnyh_chisel
Umnozhenie polozhitelnyh i_otricatelnyh_chiselИван Иванов
 
Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work»
Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work» Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work»
Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work» LogeekNightUkraine
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Levon Avakyan
 

Mais procurados (19)

Программирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереПрограммирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютере
 
Алгоритмы и исполнители
Алгоритмы и исполнителиАлгоритмы и исполнители
Алгоритмы и исполнители
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2
 
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
 
Static Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformStatic Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE Platform
 
Unit тесты java
Unit тесты javaUnit тесты java
Unit тесты java
 
Unit tests
Unit testsUnit tests
Unit tests
 
Java. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and DebuggingJava. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and Debugging
 
Использование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииИспользование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестировании
 
Join the python_side
Join the python_sideJoin the python_side
Join the python_side
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
 
Доклад АКТО-2012 Душкин, Смирнова
Доклад АКТО-2012 Душкин, СмирноваДоклад АКТО-2012 Душкин, Смирнова
Доклад АКТО-2012 Душкин, Смирнова
 
White box techniques
White box techniquesWhite box techniques
White box techniques
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
 
Илья Фофанов "Обработка ошибок в C#"
Илья Фофанов "Обработка ошибок в C#"Илья Фофанов "Обработка ошибок в C#"
Илья Фофанов "Обработка ошибок в C#"
 
Umnozhenie polozhitelnyh i_otricatelnyh_chisel
Umnozhenie polozhitelnyh i_otricatelnyh_chiselUmnozhenie polozhitelnyh i_otricatelnyh_chisel
Umnozhenie polozhitelnyh i_otricatelnyh_chisel
 
Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work»
Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work» Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work»
Dmitrii Dolzhenko «С++ Problems and How Test Frameworks Actually Work»
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 

Semelhante a Анастасия Бордонос - Проектирование тестов

Экспериментальное задание
Экспериментальное заданиеЭкспериментальное задание
Экспериментальное заданиеЮнный физик
 
Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Vitebsk Miniq
 
лабораторная работа 1 4
лабораторная работа 1 4лабораторная работа 1 4
лабораторная работа 1 4Gulnaz Shakirova
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Dmitry Kornev
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Bitworks Software
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклыSergey Nemchinsky
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!PyNSK
 
Практика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектомПрактика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектомDenisenko Sergei
 
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполненияАвтотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполненияSQALab
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Статический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeСтатический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeTatyanazaxarova
 
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...Mail.ru Group
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизацияisva69
 
04 - Введение в дискретную математику. Элементы теории сложности
04 - Введение в дискретную математику. Элементы теории сложности04 - Введение в дискретную математику. Элементы теории сложности
04 - Введение в дискретную математику. Элементы теории сложностиRoman Brovko
 

Semelhante a Анастасия Бордонос - Проектирование тестов (20)

2.ман 2011
2.ман 20112.ман 2011
2.ман 2011
 
Экспериментальное задание
Экспериментальное заданиеЭкспериментальное задание
Экспериментальное задание
 
Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)
 
лабораторная работа 1 4
лабораторная работа 1 4лабораторная работа 1 4
лабораторная работа 1 4
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
лекция4 qa
лекция4 qaлекция4 qa
лекция4 qa
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклы
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!
 
Практика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектомПрактика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектом
 
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполненияАвтотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Статический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeСтатический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMerge
 
Python
PythonPython
Python
 
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизация
 
04 - Введение в дискретную математику. Элементы теории сложности
04 - Введение в дискретную математику. Элементы теории сложности04 - Введение в дискретную математику. Элементы теории сложности
04 - Введение в дискретную математику. Элементы теории сложности
 

Mais de Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

Mais de Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Анастасия Бордонос - Проектирование тестов

  • 1.
  • 4. С чего начать, или инструкция тестировщика 1.  Скрининг “Фича не должна стать неприятным сюрпризом”
  • 5. С чего начать, или инструкция тестировщика 2. Анализ 2.1 Зачем? 2.2 Как? 2.3 Где?
  • 6. С чего начать, или инструкция тестировщика 3. Описание + тест план «Истина где-то рядом»
  • 7. С чего начать, или инструкция тестировщика 5. Рассказ фичи “…в третий раз объясняю. Сам уже понял. А они не понимают...”
  • 8. С чего начать, или инструкция тестировщика 6. Ревью “Лучше перестраховаться, чем … облажаться”
  • 9. Основные определения 1. Тест-план (Test Plan) – полный набор тестов. 2. Тест-сет (Test set) - совокупность тестов(тестовых случаев), собранных вместе с целью протестировать определенные процессы системы. 3. Тест (Test Case) - совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
  • 10. Подходы к Test Design 1. Equivalence Class Testing 2. Boundary Value Testing 3. Domain Analysis Testing 4. Pairwise Testing 5. Decision Table Testing 6. State-Transition Testing 7. Use Case Testing
  • 11. Equivalence Class Testing Классы эквивалентности Эквивалентные тесты – тесты приводящие к одинаковому результату. Пример: прием на работу 0 – 16: не принимать 16 – 18: принимать на полставки 18 – 55: принимать на полную ставку 55 – …: не принимать Важно: 1.  Поиск классов эквивалентности – субъективный процесс 2.  Достаточно 1-2 проверки на класс
  • 12. Поиск классов эквивалентности •  Не забывать заведомо неверные значения (для чисел обычно сразу +2 класса < и > диапазона) •  Важно четко определять и проанализировать диапазон входных данных (любой поддиапазон – отдельный класс эквивалентности). •  Выявление группы переменных, совместно участвующих в вычислениях (например треугольник, класс допустимых значений когда сумма 2х сторон > 3ей, + 2 класса < >) •  По возможности выходные данные, тоже разбиваются на классы
  • 13. Boundary Value Testing Пример: прием на работу 0 – 16: не принимать 16 – 18: принимать на полставки 18 – 55: принимать на полную ставку 55 – …: не принимать Правильный вариант: 0 – 15: не принимать 16 – 17: принимать на полставки 18 – 54: принимать на полную ставку 55 – …: не принимать
  • 14. Boundary Value Testing Что еще сказать про граничные значения? Канер просил помнить про: -числовые границы -границы множеств -границы циклов -границы структур данных -границы пространства (многомерные объекты) -границы времени -границы конфигураций
  • 15. Таблица Майерса Задача: Есть программа, которая складывает 2 числа, каждое из которых может принимать следующие значения: -99..99 Нам требуется написать оптимально число тестов для тестирования данной программы. Всего вариантов: 199*199=39,601 Переменная   Допустимые   значения   Недопустимые   значения   Граничные  и  особые   значения   Первая  цифра   -­‐99..99   >99   <-­‐99   99,  100   -­‐99,  -­‐100,  0   Вторая  цифра   -­‐99..99   >99   <-­‐99   99,  100   -­‐99,  -­‐100,  0   Сумма   -­‐198..198   >198   <-­‐198   (-­‐99,-­‐99)   (-­‐99,  99)   (99,-­‐99)   (99,  99)  
  • 16. Таблица Майерса Построение таблицы на практике: 1.  Вряд ли у вас будет набор полей с полной спецификацией допустимых и недопустимых значений. 2.  Начните с простого перечисления полей ввода 3.  В конце концов, таблица должна содержать все значения 4.  На практике очень редко встречаются полные таблицы, хотя они являются достаточно важным элементом тестирования.
  • 17. Domain Analysis Testing 1. Разбиение областей значений на подобласти 2. Выбор конкретных значений из подобластей 3. Сочетание выбранных значений разных параметров А1     А2                                        А3   a1   a2   a3   b1   a1   a1   b2   b3   a3  b1   b2   b3   b3  a1   b2  a1   a3   b2  a3   b1   В1   В2   В3  
  • 18. Pairwise Testing 1.  Не тестировать вообще? 2.  Протестировать все? 3.  Выбрать 1-2 теста и надеяться на лучшее? 4.  Выбрать наиболее простые для создания тесты? 5.  Сделать список комбинаций параметров и выбрать несколько первых или рандомное подмножество? 6.  По волшебству, выбрать специально подобранные, довольно небольшое подмножество, который находит очень много дефектов
  • 19. Pairwise Testing 1.  Если система имеет 4 разных параметра и каждый из них принимает 3 разных значения, то число комбинаций будет 3^4 = 81. Возможно охватить все попарные комбинации всего в 9 тестов. 2.  Если система имеет 13 разных параметров и каждый из них принимает 3 разных значения, то число комбинаций будет 3^13 = 1594323. Возможно охватить все попарные комбинации всего в 15 тестов. 3.  Если система имеет 20 разных параметров и каждый из них принимает 10 разных значений, то число комбинаций будет 10^20. Возможно охватить все попарные комбинации всего в 180 тестов.
  • 20. Decision Table Testing Правило  1   Правило  2   …   Правило  p   Сущность       Ввод  данных   студента   Нет   Нет     Да         Ввод  ID  студента   Нет     Да     Нет       Выбор  «Изменить»   Нет     Нет     Да         Выбор  «Удалить»   Нет     Да     Нет             Действия       Данные  изменились   Нет     Нет     Да         Данные  удалились   Нет     Да     Нет         …       Действие-­‐n      
  • 21. State-Transition Testing Резервация авиабилетов 1.  "Made" (сделана) 2.  "Paid" (оплаченный) 3.  "Ticketed" (обилечен) 4.  "Used" (использованный) 5.  "Cancelled By Customer” 6.  "Cancelled NonPay”
  • 23. Use case testing Тестирование на основе пользовательских сценариев + Хорошо подходит для тестирования интерфейсов -  Могут быть пропущены не очевидные сценарии использования. Use case test системы регистрации: 1.  Оставьте поля ввода пустыми, нажмите кнопку «ОК». Вывелись сообщение об обязательности полей. 2.  Введите в поле «Логин» недопустимые символы. Нажмите кнопку «ОК». Вывелось сообщение «Недопустимые символы в логине». 3.  Введите в поле «Пароль 3 символа». Нажмите кнопку «ОК». Вывелось сообщение «Пароль может содержать минимум 8 символов» 4.  Введите корректные данные в поля. Нажмите кнопку «ОК». Регистрация прошла успешно
  • 24. Parameters based testing Тестирование на основе параметров На основе знаний о задаче и системе выявляется набор значимых параметров. Пример «Кружка». Параметры: 1.  Содержимое: вода, спирт, чай, крупа, сахар 2.  t содержимого: 0C, 100C, -20C, 70 3.  Время теста(сек): 1,10,60,3600, 86400 4.  Доп. Действия: нагрев, охлаждение
  • 26. Перебор параметров 2.  Перебор параметров относительно фиксированных значений. Пример «Кондиционер»: •  Температура •  Мощность •  Таймер Стандартный режим работы: Т = 20, P = 2000 Вт, t = 20 мин
  • 27. Перебор параметров 3.  Иерархическая проверка параметров. Пример: Расчет площади треугольника по формуле полупериметра. A – считывание входных данных B – расчет периметра С – расчет площади A(), B(A), C(B) - функции
  • 29. Magic number Value   Hex   DescripXon   0   0x00   Zero.  False.  NULL.   4   0x04   4.  Размер  32  bit  integer   37   0x25   Численное  значение  для  ASCII  символа  '%',  который   является  управляющим  последовательность  ю  в  URL-­‐ адресах  и  в  C  runime  library.   38   0x26   Численное  значение  для  ASCII  символа  '&'  ,  который   часто  используется  в  атаках  на  сайт.   48   0x30   Численное  значение  для  ASCII  символа  '0'  (zero).   97   0x61   Численное  значение  для  ASCII  символа    'a'.   204   0xCC   x86  assembly  instrucion,  если  выполняется,  то   останавливает  процесс("int  3").  
  • 30. Error Guessing Тестирование на основе предугадывания ошибки Консольное приложение, которое на вход принимает 3 целых числа, интерпретируемые как длины сторон треугольника, а на выходе выводит на экран является ли введенный треугольник равнобедренным или равносторонним.
  • 31. Error Guessing Тестирование на основе предугадывания ошибки НЕ Консольное НЕ приложение, которое на НЕ вход принимает НЕ 3 НЕ целых НЕ числа, интерпретируемые как НЕ длины сторон треугольника, а на выходе НЕ выводит на экран является ли введенный НЕ треугольник НЕ равнобедренным или НЕ равносторонним.
  • 32. Тест кейс Свойства 1.  Простота (Понятность) 2.  Воспроизводимость 3.  Обоснованность Пример: Title(название): кружка + кипяток Description(цель): проверяем возможность хранить в кружке воду в течение времени остывания. Начальное состояние: пустая, сухая кружка комнатной температуры. Действие: Наливаем 0.5л кипятка в чашку Что проверяем: что вода остается в кружке, по мере остывания воды Ожидаемый результат : вода остается в кружке
  • 34. Как заводить баги 1. Не откладывайте на завтра 2. Разберитесь в баге и локализуйте проблему 3. Подумайте, где подобный баг может встретиться ещё, покройте это тестами 4. В title кратко опишите суть проблемы 5. В тикете сделайте подробное описание бага, приложите скрин 6. Опишите, как его воспроизвести
  • 35. У багов тоже есть чувства
  • 36. Жизненный цикл бага Обнаружен   (Open)   Закрыт   (Closed)   Возвращен   (Open)   Ретест   (Open)   Отвергнут   (Will  not  fix)   Исправлен   (Fixed)   Принят   (Open)  
  • 37. Оценка тестирования 1. Покрытие требований (Requirements Coverage) Requirements Traceability Matrix FuncXonal  Requirements   Test  Cases   Приложение  должно  принимать  на  вход  3   целых  числа   OQ,  Test  Case  1:  На  вход    параметров  не   подаем   OQ,  Test  Case  2:  На  вход    2  параметра   …     Приложение  должно  уметь  определять,   является  ли  треугольник  равнобедренным   OQ,  Test  Case  5:  Проверка  треугольника  на   равнобедренность     Приложение  должно  уметь  определять,   является  ли  треугольник  равносторонним   OQ,  Test  Case  6:  Проверка  треугольника  на   равносторонность   Приложение  должно  выдавать  ошибку  в  ином   случае   OQ,  Test  Case  7:  Произвольный  треугольник   OQ,  Test  Case  8:  Входные  данные  –  не   треугольник   …    
  • 38. Оценка тестирования 2. Покрытие кода (Code Coverage) •  покрытие операторов ; •  покрытие условий ; •  покрытие путей ; •  покрытие функций ; •  покрытие вход/выход ; •  покрытие значений параметров .
  • 41. Бордонос Анастасия Инженер по контролю качества Спасибо за внимание!