Техники тест дизайна для черноящичного тестированияDmytro Protsenko
Разобрано на пальцах несколько техник из книги Lee Copeland "A Practitioner's Guide to Software Test Design". Все что касается BlackBox Testing - cгруппированo в три раздела. Oбъяснены секреты магии Pairwise, почему тестирование областей определения переворачивает самолеты и дана краткая инструкция, как вернуть деньги за билет, если в связи с предыдущим пунктом, вы передумали лететь.
Domain-тестирование – формальное название методики тестирования, за которым скрывается банальная работа с классами эквивалентности. Впрочем, не такая уж и банальная. Даже в популярной литературе по тестированию часто упоминают только о существовании классов эквивалентности и о том, что с их граничными значениями работать очень полезно.
Мы знакомимся с основами этой методики, когда делаем первые шаги в тестировании, и больше никогда о ней не задумываемся, наивно считая, что она попала в нашу зону неосознанной компетентности и мы всегда используем ее правильно. А так ли это?
Техники тест дизайна для черноящичного тестированияDmytro Protsenko
Разобрано на пальцах несколько техник из книги Lee Copeland "A Practitioner's Guide to Software Test Design". Все что касается BlackBox Testing - cгруппированo в три раздела. Oбъяснены секреты магии Pairwise, почему тестирование областей определения переворачивает самолеты и дана краткая инструкция, как вернуть деньги за билет, если в связи с предыдущим пунктом, вы передумали лететь.
Domain-тестирование – формальное название методики тестирования, за которым скрывается банальная работа с классами эквивалентности. Впрочем, не такая уж и банальная. Даже в популярной литературе по тестированию часто упоминают только о существовании классов эквивалентности и о том, что с их граничными значениями работать очень полезно.
Мы знакомимся с основами этой методики, когда делаем первые шаги в тестировании, и больше никогда о ней не задумываемся, наивно считая, что она попала в нашу зону неосознанной компетентности и мы всегда используем ее правильно. А так ли это?
Международная научно-практическая конференция International Conference on Big Data and its Applications (ICBDA) выросла из мероприятия Big Data Russia и проводится один раз в год, объединяя на одной площадке создателей новых технологий в области больших данных, представителей бизнеса, а также научных сотрудников и молодых ученых.
Организаторы: Rusbase и Global Innovation Labs.
Организаторы ICBDA благодарят Data-Centric Alliance (DCA) за поддержку мероприятия, а также отдельное спасибо Artox Media и NVIDIA.
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
В своём докладе я расскажу вам о том, кто такие тест-аналитики, тест-дизайнеры и должны ли их роль выполнять обычные тестировщики. Также сделаю обзор основных и проверенных методик тест-дизайна. Расскажу про их плюсы и минусы.
Будем учиться тестировать не 12 часов, а головой!
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Ontico
В докладе я расскажу о следующем:
+ почему тема доклада не оговорка, а абсолютно реальная вещь;
+ что можно извлечь из результатов теста помимо «да/нет»;
+ в каких случаях «количество» = «качество»;
+ когда «один в поле не воин»;
+ немного о том, зачем тестировщику нужна матстатистика;
+ как избежать случайностей в результатах;
+ «буря в стакане» или масштабируем highload в docker/openvz;
+ почему фиксация запросов в тестах приводит к фиксации сервиса на продакшене;
+ а также всё вышеперечисленное на примерах наших проектов.
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
Международная научно-практическая конференция International Conference on Big Data and its Applications (ICBDA) выросла из мероприятия Big Data Russia и проводится один раз в год, объединяя на одной площадке создателей новых технологий в области больших данных, представителей бизнеса, а также научных сотрудников и молодых ученых.
Организаторы: Rusbase и Global Innovation Labs.
Организаторы ICBDA благодарят Data-Centric Alliance (DCA) за поддержку мероприятия, а также отдельное спасибо Artox Media и NVIDIA.
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
В своём докладе я расскажу вам о том, кто такие тест-аналитики, тест-дизайнеры и должны ли их роль выполнять обычные тестировщики. Также сделаю обзор основных и проверенных методик тест-дизайна. Расскажу про их плюсы и минусы.
Будем учиться тестировать не 12 часов, а головой!
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Ontico
В докладе я расскажу о следующем:
+ почему тема доклада не оговорка, а абсолютно реальная вещь;
+ что можно извлечь из результатов теста помимо «да/нет»;
+ в каких случаях «количество» = «качество»;
+ когда «один в поле не воин»;
+ немного о том, зачем тестировщику нужна матстатистика;
+ как избежать случайностей в результатах;
+ «буря в стакане» или масштабируем highload в docker/openvz;
+ почему фиксация запросов в тестах приводит к фиксации сервиса на продакшене;
+ а также всё вышеперечисленное на примерах наших проектов.
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
This document discusses continuous performance testing (CPT) and introduces the Jagger CPT solution. It provides an overview of why performance testing is important, outlines the principles and goals of CPT, and describes the key parts of the Jagger CPT platform including load generation, metrics collection, test data management, and environment management. It also provides an example customer success story where Jagger was used for continuous performance testing of a large ecommerce site.
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
This document provides an overview of the JDI (Java UI test automation framework). It discusses features of JDI including being UI element oriented, providing common UI elements and solutions to common problems. It provides examples of how to write tests using JDI annotations and page object pattern. The document also summarizes benefits of JDI such as reducing test code, improving test clarity, reuse across projects. Finally it outlines new features planned for JDI 2.0 including layout verification, page object generator, integration with Selenium and expanding JDI to other languages like Python.
The document discusses testing of geolocation systems. It provides an overview of geolocation, including definitions and importance. It then outlines the speaker's experience and work testing GIS systems. The rest of the document details approaches to testing geolocation, including simulating calls, checking responses and databases, and verifying accuracy. It also discusses common data formats, projections, tools like PostGIS and QGIS, and potential bugs to watch for like coordinate jumbling. The conclusion emphasizes starting simple, practicing to improve, and for tests to grow with knowledge as geolocation is important for future IT.
2. • 1996-2002: разработчик
• 1999: получил Excellence in
Computer Science Award
• 2002: пришел в тестирование
• 2002-2013: самолеты-трейдинг-
видео-банки…
• 2007: книга по тестированию,
издана при поддержке
• 2008: Кандидат технических наук
• с 2012: Тест-менеджер
Кто я такой?
3. Про что будем говорить
• Зачем нужна математика в тестировании
• Как ее применять на практике
– очевидные вещи
– не очень очевидные вещи
• Чему и где учиться
• Как уйти в науку
(и надо ли это делать)
5. Пишем тесты:
зачем нам математика?
«Математику уже затем учить
следует, что она ум в порядок
приводит» (с) Ломоносов
При помощи математики и
доброго слова можно писать тесты
значительно лучше, чем только
при помощи одного доброго слова
8. Математика в тестировании:
блокеры в нашем мозгу
• Это методы, которые доказывают
правильность, и они не работают на практике
Нет, это не только формальная верификация
9. Математика в тестировании:
блокеры в нашем мозгу
• Это методы, которые доказывают
правильность, и они не работают на практике
Нет, это не только формальная верификация
• Для того, чтобы математика работала, нужны
подробнейшие спецификации
10. Математика в тестировании:
блокеры в нашем мозгу
• Это методы, которые доказывают
правильность, и они не работают на практике
Нет, это не только формальная верификация
• Для того, чтобы математика работала, нужны
подробнейшие спецификации
Нет, достаточно идей у вас в голове
11. Математика в тестировании:
блокеры в нашем мозгу
• Это методы, которые доказывают
правильность, и они не работают на практике
Нет, это не только формальная верификация
• Для того, чтобы математика работала, нужны
подробнейшие спецификации
Нет, достаточно идей у вас в голове
• Это слишком сложно для понимания
12. Математика в тестировании:
блокеры в нашем мозгу
• Это методы, которые доказывают
правильность, и они не работают на практике
Нет, это не только формальная верификация
• Для того, чтобы математика работала, нужны
подробнейшие спецификации
Нет, достаточно идей у вас в голове
• Это слишком сложно для понимания
факультатив по матлогике для 5 класса –
реальность. Чем вы-то хуже?
13. Тестировщики думают как
математики, даже не зная об этом
Операции с формулами Алгоритмы
Отражение действительности Сложность вычислений
Поведение функций
Изменяющиеся
состояния системы
Сведение к простому случаю
Операции с бесконечностью
Обобщение
Абстрактные рассуждения
Использование структур данных
Д.Э. Кнут
Математическое
мышление
Алгоритмическое
мышление
14. Все еще не убеждены?
Топологическое
мышление
целостность и связанность логических
операций
Порядковое
мышление
точное следование логической
цепочке
Алгебраическое
мышление
структурное восприятие объекта
Метрическое
мышление
точное математическое значение
Проективное
мышление
важны не характеристики, а степень
оптимальности и полезности
И.Я. Каплунович
21. Графы и конечные автоматы:
системы с внутренним состоянием
Filled
Sending
Rejected Acked
Filling
Replaced
Replacing
New Execute 1
MKTack
Modified
Классическое покрытие: проверяем все
состояния системы, все переходы и все пути.
Это очень долго, сложно и дорого
22. Графы и конечные автоматы:
системы с внутренним состоянием
Execute 1
Execute 2Amend 1 Amend 2
Amend 3
Fills
Last Fill
Modified
MKT
reject
MKT ack
Смотрим на задачу коммивояжера и видим
фигу
23. Графы и конечные автоматы:
системы с внутренним состоянием
Execute 1
Execute 2Amend 1 Amend 2
Amend 3
Fills
Last Fill
Modified
MKT
reject
MKT ack
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Строим граф,
вершины
которого –
дуги
исходного
графа
24. Графы и конечные автоматы:
системы с внутренним состоянием
E1
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
MrE1
Покрываем
граф….
25. Графы и конечные автоматы:
системы с внутренним состоянием
E1
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
E1
Все еще
покрываем граф…
26. Графы и конечные автоматы:
системы с внутренним состоянием
E1
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
LF
E1 A1 M E2 Ma F A3
E2
MaA2ME2MaF
E1
Покрыли!!!
27. Графы и конечные автоматы:
системы с внутренним состоянием
E1
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
LF
E1 A1 M E2 Ma F A3
E2
MaA2ME2MaF
E1
Получилось как-то
не очень….
28. Графы и конечные автоматы:
системы с внутренним состоянием
E
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
E1 A1 M E2 Ma F LF
E1
Отрезали кусочек
последовательности
де Бройна
29. Графы и конечные автоматы:
системы с внутренним состоянием
E1
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
E1 A1 M E2 Ma F LF
E1
E1 Ma A2 M E2 Ma F LF
И еще кусочек…
30. Графы и конечные автоматы:
системы с внутренним состоянием
E1
E2
A1 A2
A3
F
LF
M
Mr
Ma
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
E1 A1 M E2 Ma F LF
E1
E1 Ma A2 M E2 Ma F LF
E1 Ma F A3 E2 Ma F LF
И еще кусочек…
31. Графы и конечные автоматы:
системы с внутренним состоянием
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Mr
E1 Ma F LF
E1 A1 M E2 Ma F LF
E1
E1 Ma A2 M E2 Ma F LF
E1 Ma F A3 E2 Ma F LF
Что в результате?
- Короткие тесты, которые
можно параллелить
- Можно выкидывать
малоприоритетные тесты
- Метод работает, даже
если неизвестна
специфика предметной
области
32. Графы и конечные автоматы:
системы с внутренним состоянием
Смотрим на задачу коммивояжера и видим
алгоритм де Бройна.
Что в результате?
- Короткие тесты, которые
можно параллелить
- Можно выкидывать
малоприоритетные тесты
- Метод работает, даже
если неизвестна
специфика предметной
области
Ни одного
трейдера не
пострадало
34. Статистика: сколько тестов
в каждом классе эквивалентности?
• Достаточно одного теста в одном классе
эквивалентности – верно, если мы правильно
выделили классы
• Кроме явных классов
есть еще и неявные,
которые могут быть не
очевидны из требований
Полный перебор?
А может не надо?
35. • Пример. Сохраняем в БД длинные строки (размер
от 0 до 5 Mб). Время сохранения должно быть
одинаковым для непустых строк
• Граничные условия для длины строки: 0, 2.5 Мб, 5 Mб
Статистика: сколько тестов
в каждом классе эквивалентности?
36. • Пример. Сохраняем в БД длинные строки (размер
от 0 до 5 Мб). Время сохранения должно быть
одинаковым для непустых строк
• Граничные условия для длины строки: 0, 2.5 Мб, 5 Мб
• Началась эксплуатация. WTF? Короткие строки
сохраняются гораздо быстрее
Статистика: сколько тестов
в каждом классе эквивалентности?
37. • Пример. Сохраняем в БД длинные строки (размер
от 0 до 5 Мб). Время сохранения должно быть
одинаковым для непустых строк
• Граничные условия для длины строки: 0, 2.5 Мб, 5 Мб
• Началась эксплуатация. WTF? Короткие строки
сохраняются гораздо быстрее
Статистика: сколько тестов
в каждом классе эквивалентности?
38. Статистика: сколько тестов
в каждом классе эквивалентности?
• Тестов явно нужно больше, но пока не знаем сколько.
• Инструмент – статистический сэмплинг и метод
последовательных приближений (можно посмотреть в
ГОСТ Р 50779.11)
1. Предположение о
распределении
проблемных мест
2. Прогон тестов и
регистрация
аномалий
3. Модификация
распределения
4. Фиксация новых
классов
эквивалентности 5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185 195
Высокая степень уверенности
в том, что здесь разные классы
Низкая степень уверенности
в том, что здесь разные классы
39. Статистика: сколько тестов
в каждом классе эквивалентности?
• Тестов явно нужно больше, но пока не знаем сколько.
• Инструмент – статистический сэмплинг и метод
последовательных приближений (можно посмотреть в
ГОСТ Р 50779.11)
1. Предположение о
распределении
проблемных мест
2. Прогон тестов и
регистрация
аномалий
3. Модификация
распределения
4. Фиксация новых
классов
эквивалентности 5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185 195
Аномальная зона (почти угадали)
Аномальная зона (не угадали)
40. 5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185 195
Статистика: сколько тестов
в каждом классе эквивалентности?
• Тестов явно нужно больше, но пока не знаем сколько.
• Инструмент – статистический сэмплинг и метод
последовательных приближений (можно посмотреть в
ГОСТ Р 50779.11)
1. Предположение о
распределении
проблемных мест
2. Прогон тестов и
регистрация
аномалий
3. Модификация
распределения
4. Фиксация новых
классов
эквивалентности
Модифицировали
распределение
41. 5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185 195
Статистика: сколько тестов
в каждом классе эквивалентности?
• Тестов явно нужно больше, но пока не знаем сколько.
• Инструмент – статистический сэмплинг и метод
последовательных приближений (можно посмотреть в
ГОСТ Р 50779.11)
1. Предположение о
распределении
проблемных мест
2. Прогон тестов и
регистрация
аномалий
3. Модификация
распределения
4. Фиксация новых
классов
эквивалентности
Получили новые
границы и классы
эквивалентности
43. Опять статистика: а всегда ли
достаточно pair-wise тестирования
Основная идея pair-wise – вместо того, чтобы
тестировать все возможные комбинации
входных значений, берем пары значений и
проверяем все сочетания пар.
Работает? Да!
44. Опять статистика: а всегда ли
достаточно pair-wise тестирования
На простых системах?
Работает!
ROCK-PAPER-SCISSORS
45. Опять статистика: а всегда ли
достаточно pair-wise тестирования
А если посложнее?
Работает?
ROCK-PAPER-SCISSORS
LIZARD-SPOCK
46. Опять статистика: а всегда ли
достаточно pair-wise тестирования
А если еще сложнее?
ROCK-PAPER-SCISSORS
LIZARD-SPOCK
SPIDERMAN-BATMAN
WIZARD-GLOCK
47. Опять статистика: а всегда ли
достаточно pair-wise тестирования
Исследования, проведенные NIST в проекте
ACTS:
Pairwise находит 65-97% ошибок
3-way находит 89-99% ошибок
4-way находит 96-100% ошибок
5-way находит 96-100% ошибок
6-way находит 100% ошибок
(во всех исследованных случаях)
48. Опять статистика: а всегда ли
достаточно pair-wise тестирования
Сколько дополнительной работы делать?
Например. Пусть
2 параметра с 3 значениями
3 параметра с 2 значениями
Pairwise 10 тестов с 14% покрытием
3-way 18 тестов с 25% покрытием
4-way 36 тестов с 50% покрытием
5-way 72 теста с 100% покрытием
49. Опять статистика: а всегда ли
достаточно pair-wise тестирования
Обычная основа для pair-wise и k-way
Обычно используем ортогональные матрицы:
OA(N,vk,t), где
N – количество рядов
k – количество колонок
v – количество различных значений в колонке
t – мощность (t=2 – pairwise)
В OA каждый набор из t колонок включает все t-
кортежи одинаковое количество раз
50. Опять статистика: а всегда ли
достаточно pair-wise тестирования
Халява, приди!
NIST предлагает использовать покрывающие
матрицы: CA(N,vk,t), где
N – количество рядов
k – количество колонок
v – количество различных значений в колонке
t – мощность (t=2 – pairwise)
В CA каждый набор из t колонок включает все t-
кортежи хотя бы один раз
51. Опять статистика: а всегда ли
достаточно pair-wise тестирования
Что в результате?
Меньше комбинаций, а значит можно
увеличить размерность
кортежей, и, например, делать 3-way вместо
pairwise меньшими усилиями
Куда посмотреть: NIST ACTS
57. Чему и как учиться: ACM
• Graduate Software Engineering 2009
(GSwE2009):
Выпускник должен иметь базовые математические
навыки для того и уметь мыслить аналитически:
– Статистика
– Логика
– Исчисления
– Дискретная математика
– Формальные языки
– Математическая экономика
58. Чему и как учиться: IEEE
• IEEE Software Engineering Body of Knowledge v3
(SWEBOKv3):
– Множества, отношения, функции
– Логика: пропозициональная логика, логика
предикатов
– Теория доказательств
– Счетность
– Графы и деревья
– Дискретная вероятность
– Конечные автоматы, грамматики
– Погрешности
– Теория чисел
– Алгебраические структуры
59. Чему и как учиться: сами
• Сертификация
– Quality Assurance Institute (CAST, CSTE, CSTM)
• Конференции
– IEEE International Conference on Software
Testing, Verification, and Validation (ICST)
– International Symposium in Software Testing and
Analysis (ISSTA)
• Читать-читать-читать-читать
– http://www.arxiv.org
– http://scholar.google.com
61. • Фан и лулзы
• Прокачка мозгов
• Кругозор
• Последователи
• Уважение
• Собственная секретная
лаборатория
Путь в науку:
а зачем?
62. • Генерация тестовых данных
• Тестирование безопасности
• Комбинаторные методы тестирования
• Преобразование моделей тестирования
• Поисковые методы тестирования
• Модели предсказания поведения систем
Путь в науку:
направления исследований
63. • Высшее образование
• Второе высшее образование
• Кандидатская диссертация
• Пост-док за рубежом
• Докторская
• Независимые исследования
Путь в науку:
разные пути
64. • ГУ-ВШЭ – Авдошин С.М.
• СПбГУ – Терехов А.Н.
• МАИ – Синицын С.В.
• МГУ – Кулямин В.В.
… и многие-многие другие
Путь в науку:
кто этим занимается?
65. • ГУ-ВШЭ – Авдошин С.М.
• СПбГУ – Терехов А.Н.
• МАИ – Синицын С.В.
• МГУ – Кулямин В.В.
… и многие-многие другие
Ну и ко мне приходите…
( к.т.н., доцент, аспиранты есть,
учу в МИФИ и ВШЭ, иногда на Физтехе,
из науки пока не ухожу – не дождетесь )
Путь в науку:
кто этим занимается?
66. Ссылки
• GSwE2009: http://www.gswe2009.org
• SWEBOKv3: http://www.computer.org/portal/web/swebok/home
• Quality Assurance Institute: http://www.qaiusa.com
• ACTS: http://csrc.nist.gov/acts
• List of conferences: http://www.cs.ru.nl/~tretmans/TestConferences.html
• http://www.sciencedirect.com
• http://www.arxiv.org
• http://scholar.google.com
• Отдельное спасибо:
Big Bang Theory, Futurama, XKCD