Ответ
Попарное тестирование используют для эффективного сокращения количества тестовых комбинаций при проверке взаимодействия параметров.
Когда это нужно:
- Система имеет много входных параметров с различными значениями.
- Полный перебор всех комбинаций невозможен или нецелесообразен из-за ограничений по времени или ресурсам.
- Требуется обнаружить дефекты, вызванные взаимодействием двух параметров (большинство ошибок возникает именно так).
Как это работает: Алгоритм генерирует набор тестов, в котором каждая возможная пара значений любых двух параметров встречается хотя бы один раз.
| Пример: Конфигурация приложения. | Параметр | Значение 1 | Значение 2 |
|---|---|---|---|
| Браузер | Chrome | Firefox | |
| ОС | Windows | macOS | |
| Язык | EN | RU |
- Полный перебор: 2 × 2 × 2 = 8 комбинаций.
- Попарный набор (сгенерированный): Достаточно 4 тестов.
- Chrome, Windows, EN
- Chrome, macOS, RU
- Firefox, Windows, RU
- Firefox, macOS, EN
Каждая пара (Браузер-ОС, Браузер-Язык, ОС-Язык) покрыта. Это дает высокий процент выявления дефектов при малом числе тестов.
Ответ 18+ 🔞
Да ты посмотри, какая хуйня придумана, чтобы не ебать мозг! Вот сидишь ты, тестировщик, а у тебя система — как швейцарские часы, только вместо шестерёнок там параметры, и у каждого по три-пять значений. И ты такой: «Ну щас я все комбинации проверю, блядь!». А нихуя! Их овердохуища! Умрёшь, пока всё переберёшь, в рот меня чих-пых!
Так вот, умные дядьки подумали: «А нахуя нам проверять, как Chrome на Windows с русским языком дружит, потом Chrome на Windows с английским, потом Chrome на маке с русским...». Дефекты-то, ёпта, в основном вылазят не от того, что все три параметра разом ебнулись, а когда два соседних параметра не поделили что-то. Один на другого посмотрел косо — и всё, пиздец, система легла.
Поэтому придумали попарное тестирование. Суть проще пареной репы: нужно сгенерировать такой минимальный набор тестов, чтобы каждая возможная парочка значений любых двух параметров встретилась хотя бы раз. Как на танцах в деревенском клубе — чтобы каждая девка с каждым пацаном хотя бы раз прошлась.
Смотри, вот тебе пример, чтобы не быть мудаком, который нихуя не понял:
Допустим, тестируем хрень какую-то. У неё три параметра:
- Браузер: Хром или Фаерфокс.
- ОС: Винда или мак.
- Язык: Английский или русский.
Если тупо перемножить, получается 2 2 2 = 8 комбинаций. Не айс, но терпимо. А если параметров 10, и у каждого по 5 значений? Ну, ёбаный насос, это ж пиздец просто, всех оленей распишешь.
А попарный подход говорит: «Расслабься, мудила!». Он сгенерирует тебе всего 4 теста:
| Тест | Браузер | ОС | Язык |
|---|---|---|---|
| 1 | Chrome | Windows | EN |
| 2 | Chrome | macOS | RU |
| 3 | Firefox | Windows | RU |
| 4 | Firefox | macOS | EN |
И теперь смотри, блядь, какая магия! Возьмём пару Браузер-ОС:
- Хром + Винда? Есть! (тест 1)
- Хром + мак? Есть! (тест 2)
- Фаерфокс + Винда? Есть! (тест 3)
- Фаерфокс + мак? Есть! (тест 4)
Пару Браузер-Язык:
- Хром + EN? Есть! (1)
- Хром + RU? Есть! (2)
- Фаерфокс + RU? Есть! (3)
- Фаерфокс + EN? Есть! (4)
Пару ОС-Язык:
- Винда + EN? Есть! (1)
- мак + RU? Есть! (2)
- Винда + RU? Есть! (3)
- мак + EN? Есть! (4)
Всё, ёпта! Каждая парочка нашла свою пару для танца. И таких тестов не 8, а всего 4. Экономия — пиздец! А покрытие дефектов — как будто ты 80% работы сделал, затратив 20% усилий. Красота, блядь, а не метод! Главное — не пытайся им ловить дефекты, которые всплывают только при взаимодействии трёх и более параметров. Но таких, если честно, — один хер мало.