Тестування зі стратегії чорної скриньки
Матеріал з Seo Wiki - Пошукова Оптимізація та Програмування
Зміст
Поняття «чорної» скриньки
Під «чорним ящиком» розуміється об'єкт дослідження, внутрішній устрій якого невідомий. Поняття «чорна скринька» запропоновано У. Р. Ешбі. У кібернетиці воно дозволяє вивчати поведінку систем, тобто їх реакцій на різноманітні зовнішні впливи і в той же час абстрагуватися від внутрішнього пристрою.На рис. 1наведено схемну побудову входів X(x_1, x_2, . x_n) , виходів Y(y_1, y_2, . y_m) , що характеризуються функцією переходу (δ) і функцією виходу (λ) «чорного» ящика.
Маніпулюючи лише з входами і виходами, можна проводити певні дослідження. Насправді завжди виникає питання, наскільки гомоморфізм «чорного» ящика відбиває адекватність його моделі, що вивчається, тобто як повно в моделі відображаються основні властивості оригіналу.
Опис будь-якої системи управління у часі характеризується картиною послідовності її станів у процесі руху до мети, що стоїть перед нею. Перетворення в системі управління може бути або однозначним і тоді воно називається ізоморфним, або тільки однозначним, в один бік. У разі перетворення називають гомоморфним.
«Чорний» ящик є складною гомоморфною моделлю кібернетичної системи, в якій дотримується різноманітність. Він лише тоді є задовільною моделлю системи, коли містить таку кількість інформації, що відбиває різноманітність системи. Можна припустити, що чим більше обурень діє на входи моделі системи, тим більша різноманітність повинен мати регулятор.
В даний час відомі два види "чорних" ящиків. До першого виду відносять будь-яку «чорну» скриньку, яка можерозглядатися як автомат, званий кінцевим чи нескінченним. Поведінка таких «чорних» ящиків відома. До другого виду належать такі «чорні» ящики, поведінка яких може бути спостерігається лише в експерименті. У такому разі у явній чи неявній формі висловлюється гіпотеза про передбачуваність поведінки «чорної» скриньки у ймовірнісному сенсі. Без попередньої гіпотези неможливе будь-яке узагальнення, або, як то кажуть, неможливо зробити індуктивний висновок на основі експериментів із «чорною» скринькою. Для позначення моделі "чорного" ящика М. Вінером [2] запропоновано поняття "білого" ящика. "Білий" ящик складається з відомих компонентів, тобто відомих X, Y, δ, λ. Його вміст спеціально підбирається для реалізації тієї ж залежності виходу від входу, що й у відповідної чорної скриньки. У процесі проведених досліджень та при узагальненнях, висуванні гіпотез та встановлення закономірностей виникає необхідність коригування організації «білої» скриньки та зміни моделей. У зв'язку з цим, при моделюванні дослідник повинен обов'язково багаторазово звертатися до схеми відносин "чорний" - "білий" ящик.
Дослідження поведінки «чорної» скриньки
Розглянемо, як вивчається та досліджується поведінка «чорного» ящика другого виду. Припустимо, що дана деяка система управління, внутрішня будова якої невідома. Система управління має входи X(x_1, x_2, x_3, .x_n) і виходи Y(y_1, y_2, y_3, .y_m).
Спосіб дослідження поведінки даного «чорного» ящика полягає у проведенні експерименту, результати якого можна подати у вигляді табл. 1.
Такий спосіб дослідження «чорної» скриньки називається протокольним. Значення вхідних величин моменти часу t_1, t_2, . t_k) можуть вибиратися довільно.
| x_1(t_1), x_2(t_1), . x_n(t_1) | y_1(t_1), y_2(t_1), . x_n(t_1) | t_1 |
| y_1(t_2), y_2(t_2), . x_n(t_2) | y_1(t_2), y_2(t_2), . y_n(t_2) | t_2 |
| . | . | . |
| . | . | . |
| y_1(t_k), y_2(t_k), . x_n(t_k) | y_1(t_k), y_2(t_k), . y_n(t_k) | t_k |
Інший спосіб дослідження полягає у подачі на входи деяких стандартних послідовностей. Цей спосіб особливо привабливий, тому що дозволяє порівнювати поведінку кількох «чорних» ящиків з умовою вибору таких, які відповідатимуть вимогам.
Дослідження систем управління пов'язані з поняттями «імовірнісний автомат», «імовірнісна система», що потребує вивчення їх імовірнісних властивостей. Для цих цілей можна побудувати матрицю ймовірностей (табл. 2), в якій для кожного входу x_i і кожного виходу y_i вказується умовна ймовірність p_i що y_i виникає у відповідь на x_i [7], наведеної в табл. 2.
Розробка методів побудови математичних моделей «чорної» скриньки є однією з важливих кібернетичних проблем. За умови наявності математичної моделі «чорного» ящика з'являється можливість віднести його до одного класу, всі системи якого ізоморфні за поведінкою.
Створення математичного опису «чорної» скриньки є свого роду мистецтвом. У деяких випадках вдається сформувати алгоритм, відповідно до якого "чорний" ящик реагує на довільний вхідний сигнал. Для більшості випадків робляться спроби встановити диференціальні рівняння, які пов'язують реакцію «чорної» скриньки з їївходами або, як то кажуть, з його вхідними стимулами.
Для науки метод «чорний» ящик має дуже велике значення. З його допомогою в науці було зроблено дуже багато видатні відкриття. Наприклад, вчений Гарвей ще XVII столітті передбачав будову серця. Він моделював роботу серця насосом, запозичивши ідеї з зовсім іншої галузі сучасних знань — гідравліки. Практична цінність методу «чорний» ящик полягає по-перше, у можливості дослідження дуже складних динамічних систем, і, по-друге, у можливості заміни одного «скриньки» іншим. Навколишня реальність і біологія дають безліч прикладів виявлення будови систем шляхом «чорного» ящика.
Тестування зі стратегії чорної скриньки
У цій стратегії програма розглядається як чорна скринька. Метою тестування ставиться з'ясування обставин, у яких поведінка програми відповідає специфікації. Для виявлення всіх помилок у програмі необхідно виконативичерпне тестування, тобто тестування на різних наборах даних. Більшість програм таке неможливо, тому застосовуютьрозумне тестування, у якому тестування програми обмежується невеликим підмножиною різноманітних наборів даних. При цьому необхідно вибирати найбільш підходящі підмножини, підмножини з найвищою ймовірністю виявлення помилок.
Властивості правильно обраного тесту
- Зменшує більш ніж на одне число інших тестів, які мають бути розроблені для розумного тестування.
- Покриває значну частину інших можливих тестів, що певною мірою свідчить про наявність чи відсутність помилки до та після обмеженої множини тестів.
Методи стратегії чорної скриньки
- Еквівалентнерозбиття.
- Аналіз граничних значень.
- Аналіз причинно-наслідкових зв'язків.
- Припущення помилки.
Розглянемо докладніше кожен із цих методів:
Еквівалентне розбиття
Основу методу становлять два положення:
- Вихідні дані необхідно розбити на кінцеве число класів еквівалентності. В одному класі еквівалентності містяться такі тести, що якщо один тест з класу еквівалентності виявляє деяку помилку, то і будь-який інший тест з цього класу еквівалентності повинен виявляти цю ж помилку.
- Кожен тест повинен включати, наскільки можна, максимальну кількість класів еквівалентності, щоб мінімізувати загальну кількість тестів.
Розробка тестів цим методом здійснюється у два етапи: виділення класів еквівалентності та побудова тесту.
Класи еквівалентності виділяються шляхом вибору кожної вхідної умови, які беруться за допомогою технічного завдання чи специфікації та розбиваються на дві та більше групи. Для цього використовується така таблиця:
| Вхідна умова | Правильні класи еквівалентності | Неправильні класи еквівалентності |
| ' | ' | ' |
Виділення класів еквівалентності є евристичним способом, проте існує низка правил:
- Якщо вхідна умова описує область значень, наприклад «Ціле число набуває значення від 0 до 999», існує один правильний клас еквівалентності і два неправильних.
- Якщо вхідна умова описує кількість значень, наприклад «Кількість рядків у вхідному файлі лежить в інтервалі (1..6)», то також існує один правильний клас і два неправильні.
- Якщовхідна умова описує безліч вхідних значень, визначається кількість правильних класів, рівну кількості елементів у безлічі вхідних значень. Якщо вхідна умова описує ситуацію «має бути», наприклад «Перший символ має бути великим», тоді один клас правильний і один неправильний.
- Якщо є підстави вважати, що елементи всередині одного класу еквівалентності можуть програмою трактуватись по-різному, необхідно розбити цей клас на підкласи. На цьому кроці тестуючий на основі таблиці повинен скласти тести, що покривають усі правильні та неправильні класи еквівалентності. При цьому укладач має мінімізувати загальну кількість тестів.
- Кожному класу еквівалентності надається унікальний номер.
- Якщо ще залишилися не включені до тестів правильні класи, пишуться тести, які покривають максимально можливу кількість класів.
- Якщо залишилися не включені до тестів неправильні класи, то пишуть тести, які покривають лише один клас.
Аналіз граничних значень
Кордонні умови- це ситуації, що виникають на вищих і нижніх межах вхідних класів еквівалентності.
Аналіз граничних значень відрізняється від еквівалентного розбиття наступним:
- Вибір будь-якого елемента в класі еквівалентності як представницького здійснюється таким чином, щоб перевірити кожну межу цього класу тестом.
- Під час розробки тестів розглядаються як вхідні значення (простір входів), а й вихідні (простір виходів).
Метод вимагає певного ступеня творчості та спеціалізації у розглянутій задачі.
Існує кілька правил:
- Збудувати тестиз неправильними вхідними даними для ситуації незначного виходу за межі області значень. Якщо вхідні значення мають бути в інтервалі [-1.0..+1.0], перевіряємо −1.0, 1.0, −1.000001, 1.000001.
- Обов'язково писати тести для мінімальної та максимальної межі діапазону.
- Використовувати перші два правила для кожного із вхідних значень (використовувати пункт 2 для всіх вихідних значень).
- Якщо вхід і вихід програми представляє впорядковану множину, зосередити увагу на першому та останньому елементах списку.
Аналіз граничних значень, якщо він застосований правильно, дозволяє виявити велику кількість помилок. Однак визначення цих меж для кожного завдання може бути окремим складним завданням. Також цей метод не перевіряє комбінації вхідних значень.
Аналіз причинно-наслідкових зв'язків
Етапи побудови тесту:
- Специфікація розбивається робочі ділянки.
- У специфікації визначаються безліч причин та наслідків. Під причиною розуміється окрема вхідна умова чи клас еквівалентності. Наслідок є вихідною умовою або перетворенням системи. Тут кожній причині та слідству надається номер.
- На основі аналізу семантичного (змістового) змісту специфікації будується таблиця істинності, в якій послідовно перебираються всілякі комбінації причин та визначаються наслідки для кожної комбінації причин.
Таблиця забезпечується примітками, що задають обмеження та описують комбінації, які неможливі. Недоліком цього є погане дослідження граничних умов.
Припущення про помилку
Програміст з великим досвідом шукає помилки без будь-яких методів, але при цьому вінпідсвідомо використовує метод припущення про помилку. Цей метод значною мірою ґрунтується на інтуїції. Основна ідея методу полягає в тому, щоб скласти список, який перераховує можливі помилки та ситуації, в яких ці помилки могли виявитися. Потім на основі списку складаються тести. -preta ta:கறுப்புப் பெக்கிக் கெத்் ணரു