При застосуванні методів тестування, заснованих на досвіді, тестові кейси створюються на основі навичок та інтуїції тестувальника, а також його досвіду роботи з подібними програмами та технологіями. Ці методи можуть бути корисними для виявлення тестів, які нелегко ідентифікувати за допомогою інших більш систематичних методів. Залежно від підходу та досвіду тестувальника, ці методи можуть досягти різного ступеня покриття та ефективності. При цьому покриття може бути важко оцінити.
Вгадування помилок (Error guessing)
Вгадування помилок — це техніка, яка використовується для передбачення появи помилок, дефектів і збоїв на основі знань тестувальника, зокрема:
- Як програма працювала в минулому
- Якого типу помилки, як правило, допускаються
- Збої, які виникли в інших програмах
Методичний підхід до техніки вгадування помилок полягає у створенні списку можливих помилок, дефектів і збоїв, а також проєктних тестів, які виявлятимуть ці збої та дефекти, які їх спричинили. Ці списки помилок, дефектів і несправностей можна створити на основі досвіду, даних про дефекти та збої або загальновідомих причин збою програмного забезпечення.
Як додаток працював у минулому?
Для техніки вгадування помилок найкраще підходить тестувальник, який працював з аналогічними додатками. В такого тестувальника є розуміння, як додаток працює. Наприклад, ймовірно, що певна область додатку завжди мала помилки, а отже, потрібне додаткове тестування. Тестувальник може застосувати припущення помилок тут, тоді як стабільні області вимагають лише формальних методів.
Які помилки зазвичай виявляють?
Кожна програма має історію, яка базується на людях, які над нею працюють, а також на функціональних можливостях або точках інтеграції, які має програма. Досвідчений тестувальник знав би типи помилок, які мали місце в минулому. Наприклад, існує програма для електронної комерції, де логіка застосування знижок часто функціонувала некоректно при застосуванні випадкового коду знижки. У таких випадках тестувальник спробує різні комбінації дійсних і недійсних знижок і переконається, що логіка працює нормально. Це розуміння приходить лише тоді, коли тестувальник має достатній досвід роботи з додатком.
Які збої виникли в інших програмах?
Досвідчений тестувальник не лише покладатиметься на поточну програму, але й використовуватиме свій досвід у тестуванні подібних програм. У деяких випадках самих вимог може бути недостатньо або програма є новою, тому немає доступних історичних даних. У таких випадках тестувальнику доведеться покладатися на досвід домену.
Підводні камені
Подібно до будь-якого неструктурованого підходу, техніка вгадування помилок залежить від інтуїції та досвіду тестувальників. Відсутність досвіду може призвести до невдачі цієї техніки. Це особливо ризиковано у випадках, коли вимоги не дуже чіткі або недостатньо знань про продукт. Також важливо переконатися, що тестувальники мають достатньо знань і досвіду роботи з подібними програмами. Якщо тестувальники не мають досвіду, вони створять сценарії помилок, які можуть бути нерелевантними, і це призведе до низької якості тестування.
Ми завжди повинні пам’ятати, що вгадування помилок не є заміною для формальних методів. Усюди, де це можливо, ми повинні використовувати його додатково до формальних методів і лише тоді, коли тестувальник має попередній досвід роботи з подібними програмами.
Вгадування помилок буде ефективним, якщо:
- Тестувальник має досвід роботи зі схожими програмами.
- Існує достатньо даних про поведінку та помилки програми
- Ускладнено застосування формальних методів через, наприклад, неповноту чи неточності у вимогах
Дослідницьке тестування (Exploratory testing)
У дослідницькому тестуванні тести одночасно розробляються, виконуються та оцінюються під час виконання тесту. Тестування використовується, щоб дізнатися більше про тестовий об’єкт, глибше вивчити його і створити тести для неперевірених областей.
Дослідницьке тестування іноді проводиться за допомогою сеансового тестування. У підході, заснованому на сеансах, дослідницьке тестування проводиться в межах визначеного періоду часу. Тестувальник використовує тестовий чартер, що містить цілі тесту, щоб керувати процесом тестування.
Після тестової сесії зазвичай слідує брифінг, який передбачає обговорення між тестувальником та зацікавленими сторонами тестової сесії. У цьому підході цілі тестування можна розглядати як умови тестування високого рівня. Елементи покриття визначаються та відпрацьовуються під час тестової сесії. Тестувальник також може задокументувати виконані кроки та зроблені відкриття.
Дослідницьке тестування є корисним, коли специфікацій мало або вони неадекватні, або коли тестування потребує значного часу. Дослідницьке тестування також корисно як доповнення до інших більш формальних методів тестування.
Дослідницьке тестування буде більш ефективним, якщо тестувальник має досвід, володіє предметними знаннями та високим ступенем основних навичок, таких як аналітичні здібності, допитливість і креативність.
Дослідницьке тестування може включати використання інших методів тестування в тому числі і технік тестування чорної скриньки, білої скриньки тощо.
Під час тестування за сценарієм ви спочатку розробляєте тестові кейси, а потім переходите до виконання тесту. Навпаки, дослідницьке тестування — це одночасний процес проєктування та виконання тесту, що виконується одночасно. Виконання тесту за сценарієм зазвичай є механічною діяльністю, під час якої тестувальники виконують кроки тесту та порівнюють фактичні результати з очікуваними.
1. Створіть таксономію помилок (класифікацію) | • Класифікуйте загальні типи несправностей, виявлених у минулих проєктах • Проаналізуйте першопричину проблем або несправностей • Знайдіть ризики та розробіть ідеї для тестування програми. |
2. Тестовий чартер | • Що і як тестувати • Тестові ідеї є відправною точкою дослідницького тестування • Тестовий чартер допомагає визначити, як кінцевий користувач може використовувати систему |
3. Інтервали часу | • Цей метод передбачає спільну роботу пари тестувальників не менше 90 хвилин • У цьому 90-хвилинному сеансі не повинно бути перерв • Таймбокс можна продовжити або скоротити на 45 хвилин • Цей сеанс заохочує тестувальників реагувати на відповідь системи |
4. Перегляд та аналіз результатів | • Оцінка дефектів • Навчання з тестування • Аналіз зон покриття • Зведення вихідних результатів • Порівняйте результати з чартером |
Тестування засноване на контрольних списках (Check-list based teting)
У тестуванні на основі контрольного списку тестувальник розробляє, реалізує та виконує тести, щоб охопити умови тестування з контрольного списку.
Контрольні списки можна створювати на основі досвіду, знань про те, що важливо для користувача, або розуміння того, чому та як програмне забезпечення дає збій. Контрольні списки не повинні містити пунктів, які можна перевірити автоматично, пунктів, які краще підходять як критерії входу/виходу, або пунктів, які є надто загальними.
Пункти контрольного списку часто формулюють у формі запитання. Повинна бути можливість перевірити кожен елемент окремо та безпосередньо. Ці елементи можуть стосуватися вимог, властивостей графічного інтерфейсу, характеристик якості або інших форм умов тестування.
Контрольні списки можуть бути створені для підтримки різних типів тестів, включаючи функціональне та нефункціональне тестування.
Деякі записи контрольного списку з часом можуть поступово ставати менш ефективними, оскільки розробники навчаться уникати тих самих помилок. Також може знадобитися додати нові записи, щоб відобразити нещодавно виявлені дефекти високої серйозності. Тому контрольні списки слід регулярно оновлювати на основі аналізу дефектів. Однак слід бути обережним, щоб контрольний список не став занадто довгим.
За відсутності детальних тестових кейсів тестування на основі контрольного списку може надати вказівки та певний ступінь узгодженості для тестування.
В цьому відео поговоримо про:
00:15 Техніки засновані на досвіді
02:28 Вгадування помилок
07:49 Дослідницьке тестування
13:57 Тестування на основі контрольного списку