Тестовий оракул (Test oracle)
Тестовий провісник (test oracle): Джерело, за допомогою якого можна визначити очікувані результати для порівняння з реальними результатами, що видаються системою, що тестується. У ролі тестового провісника можуть виступати вже існуюча система (для еталонного тестування), керівництво користувача, професійні знання фахівця, однак їм не може бути програмний код. (ISTQB)
Тестовий оракул - це механізм визначення того, пройшов тест чи ні. Використання оракулів включає порівняння (для заданих вхідних даних тестового прикладу) вихідних даних тестованої системи з вихідними даними, які, за визначенням оракула, повинен мати продукт. Термін "тестовий оракул" вперше було введено у статті Вільяма Е. Хаудена. Додаткову роботу над різними видами оракулів було досліджено Елейн Вейкер.
Категорії тестових оракулів :
Визначені ( Specified ): Ці оракули зазвичай пов'язані з формалізованими підходами до моделювання програмного забезпечення та побудови програмного коду. Вони пов'язані з formal specification, model-based design, який може використовуватися для створення тестових оракулів, state transition specification, для якої можуть бути отримані оракули, щоб допомогти model-based testing and protocol conformance testing, and design by contract, для якого еквівалентний тестовий оракул є твердженням (assertion). Зазначені тестові оракули мають низку проблем. Формальна специфікація ґрунтується на абстракції, яка, у свою чергу, може мати елемент неточності, оскільки всі моделі не можуть зафіксувати всю поведінку;
Отримані ( Derived): отриманий тестовий оракул розрізняє правильну та неправильну поведінку, використовуючи інформацію, отриману з артефактів системи. Вони можуть включати документацію, результати виконання системи та характеристики версій тестованої системи. Regression test suites (or reports) є прикладом похідного тестового оракула - вони побудовані на припущенні, що результат попередньої версії системи може бути використаний як помічник (оракула) для майбутньої версії системи. Раніше виміряні характеристики продуктивності можуть бути використані як оракул для майбутніх версій системи, наприклад, щоб поставити питання про потенційне погіршення продуктивності, що спостерігається. Текстова документація з попередніх версій системи може використовуватися як основа визначення очікувань у майбутніх версіях системи. Псевдо-оракул потрапляє до категорії отриманих тестових оракулів. Псевдо-оракул, за визначенням Вейукера, являє собою окремо написану програму, яка може приймати ті ж вхідні дані, що і програма або система, що тестується, так що їх вихідні дані можуть бути зіставлені, щоб зрозуміти, чи може бути проблема для дослідження. Частковий оракул - це гібрид зазначеного тестового оракула та похідного тестового оракула. Він визначає важливі (але не повні) властивості системи, що тестується. Наприклад, при метаморфічному тестуванні (Metamorphic testing) такі властивості, які називаються метаморфічними відносинами, використовуються при кількох запусках системи. яка може приймати ті ж вхідні дані, що і програма або система, що тестується, так що їх вихідні дані можуть бути зіставлені, щоб зрозуміти, чи може бути проблема для дослідження. Частковий оракул - це гібрид зазначеного тестового оракула та похідного тестового оракула. Він визначає важливі (але не повні) властивості системи, що тестується. Наприклад, при метаморфічному тестуванні (Metamorphic testing) такі властивості, які називаються метаморфічними відносинами, використовуються при кількох запусках системи. яка може приймати ті ж вхідні дані, що і програма або система, що тестується, так що їх вихідні дані можуть бути зіставлені, щоб зрозуміти, чи може бути проблема для дослідження. Частковий оракул - це гібрид зазначеного тестового оракула та похідного тестового оракула. Він визначає важливі (але не повні) властивості системи, що тестується. Наприклад, при метаморфічному тестуванні (Metamorphic testing) такі властивості, які називаються метаморфічними відносинами, використовуються при кількох запусках системи.
Приклади:
формальна специфікація, яка використовується як вхідні дані для model-based design and model-based testing;
документація, яка не є повною специфікацією продукту, така як посібник із використання або встановлення, або запис характеристик продуктивності або мінімальних вимог;
оракул узгодженості, який порівнює результати виконання одного тесту з іншим щодо подібності;
псевдо-оракул: друга програма, яка використовує інший алгоритм для обчислення того ж математичного виразу, що і продукт, що тестується;
Specified+derived: під час пошуку Google ми не маємо повного оракула, щоб перевірити правильність кількості повернутих результатів. Ми можемо визначити метаморфічне ставлення так, що подальший звужений пошук даватиме менше результатів.
Неявні ( Implicit): Неявний тестовий оракул покладається на інформацію і припущення. Наприклад, може бути якийсь висновок з збою програми, тобто небажана поведінка - оракул, щоб визначити, що може бути проблема. Існує кілька способів пошуку та тестування небажаної поведінки, незалежно від того, чи називають це негативним тестуванням, де є спеціалізовані підмножини, такі як фазинг. У неявних тестових оракулів є обмеження, оскільки вони покладаються на висновки та припущення. Наприклад, збій програми чи процесу може бути пріоритетною проблемою, якщо система є отказоустойчивой і тому працює у формі самовідновлення / самоврядування. Неявні тестові оракули можуть бути схильні до помилкових спрацьовувань через залежність від середовища;
Людина ( Human): Якщо попередні категорії оракулів не можуть бути використані, то буде потрібна участь людини. Це можна як кількісний і якісний підходи. Кількісний підхід спрямований на пошук потрібної кількості інформації, яку потрібно зібрати про систему, що тестується (наприклад, результатів тестування), щоб заінтересована сторона могла зробити рішення про відповідність або випуск програмного забезпечення. Якісний підхід спрямований на визначення репрезентативності та придатності вхідних даних тестування та контексту вихідних даних тестованої системи. Прикладом може бути використання реалістичних та репрезентативних даних випробувань та розуміння результатів (якщо вони реалістичні). При цьому можна керуватися евристичними підходами, такими як інтуїція, емпіричні правила, допоміжні контрольні списки та досвід.
Приклади:
Якісний: евристичний оракул надає репрезентативні або приблизні результати класу тестових вхідних даних;
Кількісний: статистичний оракул використовує ймовірнісні характеристики, наприклад, з аналізом зображень, де визначено діапазон достовірності та невизначеності для того, щоб тестовий оракул вирішив збіг.
Джерела:
Дод. матеріал:
Last updated