В каких случаях применяют попарное тестирование (Pairwise)?

Ответ

Попарное тестирование используют для эффективного сокращения количества тестовых комбинаций при проверке взаимодействия параметров.

Когда это нужно:

  • Система имеет много входных параметров с различными значениями.
  • Полный перебор всех комбинаций невозможен или нецелесообразен из-за ограничений по времени или ресурсам.
  • Требуется обнаружить дефекты, вызванные взаимодействием двух параметров (большинство ошибок возникает именно так).

Как это работает: Алгоритм генерирует набор тестов, в котором каждая возможная пара значений любых двух параметров встречается хотя бы один раз.

Пример: Конфигурация приложения. Параметр Значение 1 Значение 2
Браузер Chrome Firefox
ОС Windows macOS
Язык EN RU
  • Полный перебор: 2 × 2 × 2 = 8 комбинаций.
  • Попарный набор (сгенерированный): Достаточно 4 тестов.
    1. Chrome, Windows, EN
    2. Chrome, macOS, RU
    3. Firefox, Windows, RU
    4. Firefox, macOS, EN

Каждая пара (Браузер-ОС, Браузер-Язык, ОС-Язык) покрыта. Это дает высокий процент выявления дефектов при малом числе тестов.

Ответ 18+ 🔞

Да ты посмотри, какая хуйня придумана, чтобы не ебать мозг! Вот сидишь ты, тестировщик, а у тебя система — как швейцарские часы, только вместо шестерёнок там параметры, и у каждого по три-пять значений. И ты такой: «Ну щас я все комбинации проверю, блядь!». А нихуя! Их овердохуища! Умрёшь, пока всё переберёшь, в рот меня чих-пых!

Так вот, умные дядьки подумали: «А нахуя нам проверять, как Chrome на Windows с русским языком дружит, потом Chrome на Windows с английским, потом Chrome на маке с русским...». Дефекты-то, ёпта, в основном вылазят не от того, что все три параметра разом ебнулись, а когда два соседних параметра не поделили что-то. Один на другого посмотрел косо — и всё, пиздец, система легла.

Поэтому придумали попарное тестирование. Суть проще пареной репы: нужно сгенерировать такой минимальный набор тестов, чтобы каждая возможная парочка значений любых двух параметров встретилась хотя бы раз. Как на танцах в деревенском клубе — чтобы каждая девка с каждым пацаном хотя бы раз прошлась.

Смотри, вот тебе пример, чтобы не быть мудаком, который нихуя не понял:

Допустим, тестируем хрень какую-то. У неё три параметра:

  1. Браузер: Хром или Фаерфокс.
  2. ОС: Винда или мак.
  3. Язык: Английский или русский.

Если тупо перемножить, получается 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% усилий. Красота, блядь, а не метод! Главное — не пытайся им ловить дефекты, которые всплывают только при взаимодействии трёх и более параметров. Но таких, если честно, — один хер мало.