Тестовий запуск, в результаті якого виявлено помилку, не можна назвати невдалим, хоча б тому, що він є доцільним вкладенням капіталу. Звідси випливає, що в прикметники “успішний” і “неуспішний” потрібно вкладати значення, протилежне загальноприйнятому їх визначенню. Тому надалі ми будемо називати тестовий прогін успішним, якщо під час його виконання виявлено помилку, і неуспішним, якщо отримано правильний результат.
Проведемо аналогію між кейсом і візитом пацієнта до лікаря. Якщо лабораторне дослідження, рекомендоване лікарем, не виявило причину захворювання, ми не назвемо таке дослідження успішним - без сумніву, воно невдале: рахунок пацієнта зменшився на 500 рублів, а він все ще хворий. Якщо ж дослідження показує, що у пацієнта виразка шлунка, то воно є успішним, оскільки лікар може призначити необхідний курс лікування. Отже, лікарі використовують ці терміни в правильному сенсі. (Аналогія тут, звичайно, полягає в тому, що програма, яка тестується, подібна до випадку з хворою людиною). Послуги незалежного тестування програмного забезпечення надаються з метою скорочення витрат на розробку та забезпечення вищої якості інформаційно-технологічних продуктів.
Визначення на кшталт “тестування - це процес демонстрації відсутності помилок” породжують іншу проблему: вони ставлять мету, якої не може досягти жодна програма, навіть досить тривіальна. Результати психологічних досліджень показують, що якщо перед людиною ставлять нездійсненне завдання, то вона менш продуктивна в роботі. Наприклад, якщо попросити когось розгадати кросворд у недільному випуску New York Times за 15 хвилин, то вже через 10 хвилин значного успіху не буде, бо зрозуміло, що це нездійсненне завдання. Якщо ж його треба виконати за чотири години, то за 10 хвилин результат буде кращим. Іншими словами, оскільки тестування визначається як процес виявлення помилок, воно потрапляє в категорію завдань, які можна вирішити, і таким чином психологічна складність долається.
Інша проблема виникає, коли використовується наступне визначення тестування: “Тестування - це процес, який гарантує, що програма виконує своє призначення”, оскільки програма, яка відповідає цьому визначенню, може містити помилки. Якщо програма не робить того, що повинна, то зрозуміло, що вона містить помилки. Однак помилки можуть виникати і тоді, коли вона робить те, що не повинна робити.










0 коментарів