гляді окремої фази тестування (у загальному циклі розробки ПЗ), яка часто використовується для компенсування затримок, що виникають на попередніх стадіях розробки. Інша практика полягає в тому, що тестування починається разом з початком проекту і триває паралельно створенню продукту до завершення проекту. Другий шлях зазвичай вимагає великих трудовитрат, але якість тестування при цьому буде вище.
Рівні тестування:
· модульне тестування. Тестується мінімально можливий для тестування компонент, наприклад окремий клас або функція;
· інтеграційне тестування. Перевіряється, чи є які-небудь проблеми в інтерфейсах і взаємодію між інтегрованими компонентами, наприклад, не передається інформація, передається некоректна інформація;
· системне тестування.
Тестується інтегрована система на її відповідність вихідним вимогам:
· альфа-тестування - імітація реальної роботи з системою штатними розробниками або реальна робота з системою потенційними користувачами / замовником на стороні розробника. Часто альфа-тестування застосовується для закінченого продукту в якості внутрішнього приймального тестування.
Іноді альфа тестування виконується під отладчиком або з використанням оточення, яке допомагає швидко виявляти знайдені помилки. Виявлені помилки можуть бути передані тестувальникам для додаткового дослідження в оточенні, подібному тому, в якому буде використовуватися ПЗ;
· бета-тестування - у деяких випадках виконується поширення версії з обмеженнями (по функціональності або часу роботи) для деякої групи осіб з тим, щоб переконатися, що продукт містить достатньо мало помилок. Іноді бета-тестування виконується для того, щоб отримати зворотній зв'язок про продукт від його майбутніх користувачів. [2]
Виконання програми з метою виявлення помилок називається тестуванням. Види помилок і способи їх виявлення наведені в табл. 1.
Види програмних помилок і способи їх виявлення
Ефективність контролю 1-го виду залежить і від мови, і від компілятора. Контроль 2-го виду здійснюється за допомогою винятків - Exceptions і вельми корисний для перевірки правдоподібності проміжних результатів. Тест - це набір контрольних вхідних даних спільно з очікуваними результатами. У число вхідних даних час залежних програм входять події та часові параметри. Ключове питання - повнота тестування: скільки яких тестів гарантує, можливо, більш повну перевірку програми? Вичерпна перевірка на всій безлічі вхідних даних недосяжна. Приклад: програма, що обчислює функцію двох змінних: Y=f (X, Z). Якщо X, Y, Z - real, то повне число тестів (232) 2=264? 31 жовтня Якщо на кожен тест витрачати 1 мс, то 264 мс=800 млн. років. Отже:
· в будь нетривіальною програмі на будь-якій стадії її готовності містяться невиявлені помилки;
· тестування - техніко-економічна проблема, заснована на компромісі час - повнота. Тому потрібно прагнути до можливо меншій кількості хороших тестів з бажаними властивостями.
Детектівност': тест повинен з великою ймовірністю виявляти можливі помилки
Покриваюча здатність: один тест повинен виявляти якомога більше помилок.
Відтворюваність: помилка м...