Метод всех пар, или как не убиться тестируя комбинации
DESCRIPTION
Доклад Барановского Александра на SQA Days 7TRANSCRIPT
![Page 1: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/1.jpg)
![Page 2: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/2.jpg)
![Page 3: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/3.jpg)
Личное дело
Работает в компании EPAM Systems
В тестировании более пяти лет
Занимается проведением тренингов
![Page 4: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/4.jpg)
Я говорю на Пиджик
![Page 5: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/5.jpg)
Суть проблемы
Возможные решения
Идея всех пар
Реализация Примеры
Содержание
![Page 6: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/6.jpg)
Суть проблемы
![Page 7: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/7.jpg)
Давайте договоримся
Переменные: Параметры:
![Page 8: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/8.jpg)
Возможны баги из-за комбинаций параметров
Необходимо тестировать комбинации
Как много?
Суть проблемыПараметры
![Page 9: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/9.jpg)
Шрифты: 2 (Times, Arial)
Стили: 4
Размеры: 3
2*4*3*3*211= 147 456 тестов
Цвета: 3 (черный, белый, цветной)
Эффекты: 11 переменных по 2 параметра
Суть проблемы
![Page 10: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/10.jpg)
![Page 11: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/11.jpg)
Итого
Баги из-за «взаимодействия параметров» встречаются достаточно часто
Тестеры это взаимодействие игнорируют из-за большого количества тестов
![Page 12: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/12.jpg)
Возможные решения
![Page 13: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/13.jpg)
Факторы успеха
Количество тестов
Трудоемкость создания
Способность ловить баги
![Page 14: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/14.jpg)
Количество тестов: минимально
Трудоемкость создания: легко
Способность ловить баги: нулевая
Каждую переменную отдельно
![Page 15: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/15.jpg)
Способность ловить баги: все возможные
Трудоемкость создания: легко
Количество тестов: нереальное
Полный перебор
![Page 16: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/16.jpg)
He’s tested all Parameters
![Page 17: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/17.jpg)
Манкей Тестинг
Количество тестов: неизвестно
Трудоемкость создания: неизвестно
Способность ловить баги: неизвестно
![Page 18: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/18.jpg)
Метод «Всех пар»
Количество тестов: минимальное
Трудоемкость создания: относительно легко
Способность ловить баги: высокая
![Page 19: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/19.jpg)
Идея метода «Всех пар»
![Page 20: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/20.jpg)
Arial -> Обычный
Arial -> Курсив
Arial -> Жирный
Arial -> Размер 4
Arial -> Черный
Arial -> Белый
…
Идея метода «Всех пар»
Метод гарантирует, что комбинации из пар параметров любых переменных будут протестированы
![Page 21: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/21.jpg)
Реализация
![Page 22: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/22.jpg)
Реализация
![Page 23: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/23.jpg)
Итак, определяем переменные:
Find what: text string
Match case: checkbox
Direction: radio button
Реализация, пример
![Page 24: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/24.jpg)
Каждая переменная имеет ряд параметров:
Find what: “CAPITALS”, “Mixed Case”, “lowercase” (3 – C, M, L)
Match case: yes or no (2 – Y, N)
Direction: up or down (2 – U, D)
Реализация, пример
Обратите внимание на сокращения
![Page 25: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/25.jpg)
Реализация, построение таблицы
Латинские квадраты
Ортогональные массивы
IPO метод
![Page 26: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/26.jpg)
C Y
C N
M Y
M N
L Y
L N
Используя шесть колонок мы сократили количество тестов с 96 до 8
C Y U
C N D
M Y D
M N U
L Y
L N
C Y U E G
C N D F H
M Y D F H
M N U E G
L Y U F H
L N D E G
C Y U E G I
C N D F H J
G J
M Y D F G I
M N U E H J
H I
L Y U F H J
L N D E G I
IPO подход, примерПеременные
Параметры
![Page 27: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/27.jpg)
Строить таблицы вручную???
![Page 28: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/28.jpg)
Инструментарий!!!
PICT – Это наш выбор!
![Page 29: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/29.jpg)
Примеры
![Page 30: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/30.jpg)
pict “D:\All Pairs\sample.txt”
PICT, Пример
![Page 31: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/31.jpg)
Пример Строка -> Excel
![Page 32: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/32.jpg)
Заказчик счастлив
![Page 33: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/33.jpg)
Более того!
Переменные:
OSes
Browsers
Hardware
![Page 34: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/34.jpg)
16 тестов вместо 147456
Задачка из начала
![Page 35: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/35.jpg)
Font Style Size ColorUnderline style
Strikethrough
Double Str
Superscript
Subscript
Shadow Outline Emboss Engrave
Small caps All caps Hidden
TT Italic max black none on on on off off off off on off on on
Arial Bold normal blackwords only off off off on on on on off on off off
TT Bold min white other off on off off off on on on off off on
Arial Bold min red none on off on on on off off off on on off
Arial Regular max white other off off on on off on off off off off off
TTBold Italic max red
words only on off off off on off on on on on on
Arial Bold max red none off on off on off off off on on off off
TT Italic normal white other on on on on on on on off off on on
Arial Regular normal black other off on off off on off on on on on on
TT Italic normal redwords only on on on off off on off off on off off
TT Regular min white none on on on off on on on on on off off
ArialBold Italic normal red other off on on on off on off off off off off
TT Regular min redwords only on on on off on on off off off on off
Arial Italic min whitewords only off off off on on off on off on off on
ArialBold Italic min black none off on off off on off on on off on on
TTBold Italic normal white none on on off on on off off on off off on
Не верится?
![Page 36: Метод всех пар, или как не убиться тестируя комбинации](https://reader031.vdocuments.net/reader031/viewer/2022012403/5468c173af7959317f8b5c77/html5/thumbnails/36.jpg)
Вместо заключения