Pairwise testing

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Попарне тестування або попарний аналіз (англ. pairwise testing) — це методика систематичної комбінаторики тестів, котра забезпечує ефективне зниження кількості тестів для перевірки реакції системи на можливі комбінації значень її вхідних параметрів. Методика заснована на статистичному припущенні, що достатньо перевірити усі можливі значення пар вхідних параметрів для того щоб виявити більшість дефектів системи залежних від вхідних параметрів. Для попарного тестування використовуються алгоритми засновані на побудові ортогональних масивів або на алгоритмі усіх пар (англ. All-Pairs). Вони ґрунтуються на теоретичних дослідженнях в області комбінаторних алгоритмів, алгоритмів дискретної математики зокрема, латинських квадратів.

Ортогональні масиви

[ред. | ред. код]

Ортогональний масив (ортогональна таблиця) — це таблиця з такими властивостями:

  • кожному вхідному параметру системи відповідає стовпець таблиці,
  • будь-які два стовпці містять усі можливі комбінації значень цих параметрів лише один раз

У змішаних ортогональних масивах параметри можуть мати різну кількість значень.

Ортогональні масиви є основою статистичного планування тестів методом Таґучі (англ.: Taguchi methods, япон.: タグチメソッド)

Тестування з використанням ортогональних масивів

[ред. | ред. код]

Для тестування з використанням ортогональних масивів виконують наступні кроки:

·        Визначають змінні для вхідних даних в комбінаціях. Наприклад, це можуть бути назви опцій, параметрів налаштувань, допустимих конфігурацій устаткування і т. П.

·        Визначають значення, які можуть приймати змінні. Наприклад, конкретні назви пунктів меню, числові значення, назви операційних систем або баз даних і т. П.

·        Будують ортогональний масив, який має стовпець для кожної змінної. Зазвичай для цього використовується будь-яка програма, наприклад, STATISTICA.

·        Кожен рядок побудованого масиву інтерпретується як одна комбінація значень змінних для одного тестового випадку.


All-Pairs алгоритм

[ред. | ред. код]

All-Pairs Algorithm (алгоритм всіх пар) — це комбінаторна методика, яка була спеціально створена для попарного тестування. В її основі лежить вибір комбінацій значень всіх параметрів, в яких містяться всі можливі значення для кожної пари параметрів. Виходячи з визначення при цьому буде отримано менше число комбінацій, ніж при використанні ортогональних масивів.

Тестування з використанням All-Pairs

[ред. | ред. код]

Для тестування з використанням All-Pairs алгоритму виконують наступні кроки:

  • аналогічно, як для ортогональних масивів, визначають таблицю всіх змінних і їх значень
  • залишають в таблиці тільки всі можливі унікальні комбінації пар значень змінних[1]

Опис методу

[ред. | ред. код]

Припустимо, що потрібно протестувати систему з великим числом параметрів, які впливають на її роботу. Прикладом такого завдання може бути перевірка роботи програмного забезпечення на комп'ютерах різних конфігурацій, наприклад з різними операційними системами, або робота вебсторінок у різних переглядачах. Щоб перевірити усі можливі комбінації 10 вхідних параметрів, кожен з 10 значеннями потрібно виконати тестів, що вимагатиме значні затрати часу і інших ресурсів. Враховуючи кількість і критичність знайдених дефектів можна використовуючи метод парного тестування реалізувати перевірку достатньої якості використовуючи всього 177 тестів.

Метод парного тестування заснований на простій ідеї, що переважна більшість дефектів виявляється перевіркою одного або поєднанням двох параметрів. Дефекти виявлені комбінацією трьох і більше параметрів як правило менш критичні, ніж дефекти виявлені парою або одним параметром.

Якщо немає потреби перевіряти усі пари то можливо оптимізувати ортогональні масиви і комбінуючи перевірки декількох пар в одному тесті визначити мінімум тестів.

При оптимізації складність завдання зростає залежно від числа параметрів оскільки потрібно враховувати їх можливі взаємодії. 

Застосування

[ред. | ред. код]

Як показує досвід, метод ефективний лише на пізніх етапах розробки, або доповнений основними функціональними тестами. Наприклад, якщо ви проводите конфігураційне тестування, то перш ніж використовувати парне тестування слід переконатися, що основний сценарій функціонує на всіх операційних системах з параметрами за умовчанням. Це значно полегшить локалізацію майбутніх багів, адже при парному тестуванні в одному тесті фігурує безліч параметрів зі значеннями не за умовчанням, кожен з яких може стати причиною збою і його локалізація в цьому випадку досить скрутна.

Тому метод слід використовувати лише на стабільному функціоналі, коли поточні тести вже втрачають свою ефективність.

Для того щоб скористатися методом необхідно виконати кілька простих кроків:

1.     Визначитися з функціональністю для перевірки ;

Насамперед необхідно розділити функціональність на частини: компоненти, функції, сценарії. Функціональність невеликої програми, наприклад по запису дисків, спрощено можна представити у вигляді всього двох сценаріїв: запис диска, стирання диска. Вибираємо запис диска і переходимо до наступного кроку.

2. Дослідити обраний сценарій і виявити його параметри і їх значення

Визначити, які параметри сценарію можуть вплинути на його виконання.

3. Застосувати алгоритм, що становить оптимальне число тестів з повним перебором пар.

У результаті ми маємо досить специфічну методику з чітко вираженою областю застосування. Не надто гнучку і слабо застосовну при великій кількості залежностей між параметрами, але в умілих руках вельми ефективну.

Приклад використання All-pairs

[ред. | ред. код]

Як вхідні дані для програми використовується .txt файл з таблицею параметрів, стовпці якої розділені табуляцією. Для створення такого файлу найзручніше використовувати MS Excel — там є можливість зберігати «текстові файли з роздільниками табуляції (* .txt)».

TEST CASES

case

OS

SQL version

Use of Java

pairings

1

Win XP

SQL 2003

w Java

3

2

Win XP

SQL 2005

w/o Java

3

3

Win Vista

SQL 2003

w/o Java

3

4

Win Vista

SQL 2005

w Java

3

PAIRING DETAILS

var1

var2

value1

value2

appearances

cases

OS

SQL version

Win XP

SQL 2003

1

1

OS

SQL version

Win XP

SQL 2005

1

2

OS

SQL version

Win Vista

SQL 2003

1

3

OS

SQL version

Win Vista

SQL 2005

1

4

OS

Use of Java

Win XP

w Java

1

1

OS

Use of Java

Win XP

w/o Java

1

2

OS

Use of Java

Win Vista

w Java

1

4

OS

Use of Java

Win Vista

w/o Java

1

3

SQL version

Use of Java

SQL 2003

w Java

1

1

SQL version

Use of Java

SQL 2003

w/o Java

1

3

SQL version

Use of Java

SQL 2005

w Java

1

4

SQL version

Use of Java

SQL 2005

w/o Java

1

2

Пари — кількість унікальних пар в тест-кейсі

Парні деталі — перелік усіх пар всіх параметрів

Появи — кількість разів, скільки та чи інша пара фігурує в Кейс

Випадки — номери Кейс, де фігурує дана пара [2]

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. "Teaching Domain Testing: A Status Report," presented at Conference on Software Engineering Education & Training". Norfolk, Virginia: C. Kaner. 2004. с. 240. ISBN 978-0-470-12790-2.
  2. Black, Rex (2007). Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional. New York: Wiley. с. 240. ISBN 978-0-470-12790-2.