теми;
· по знанню системи;
· за ступенем автоматизированности;
· за ступенем ізольованості компонентів;
· за часом проведення тестування;
· за ознакою позитивності сценаріїв;
· за ступенем підготовленості до тестування.
Рівні тестування.
Модульне тестування (юніт-тестування) - тестується мінімально можливий для тестування компонент, наприклад, окремий клас або функція. Часто модульне тестування здійснюється розробниками ПЗ.
Інтеграційне тестування - тестуються інтерфейси між компонентами, підсистемами. При наявності резерву часу на даній стадії тестування ведеться ітераційно, з поступовим підключенням подальших підсистем.
Системне тестування - тестується інтегрована система на її відповідність вимогам.
Бета-тестування - інтенсивне використання майже готової версії продукту (як правило, програмного або апаратного забезпечення) з метою виявлення максимального числа помилок в його роботі для їх подальшого усунення перед остаточним виходом (Релізом) продукту на ринок, до масового споживача.
На відміну від альфа-тестування, проведеного силами штатних розробників або тестувальників, бета-тестування припускає залучення добровольців з числа звичайних майбутніх користувачів продукту, яким доступна згадана попередня версія продукту (так звана бета-версія).
Альфа-тестування - імітація реальної роботи з системою штатними розробниками, або реальна робота з системою потенційними користувачами/замовником. Найчастіше альфа-тестування проводиться на ранній стадії розробки продукту, але в деяких випадках може застосовуватися для закінченого продукту в якості внутрішнього приймального тестування. Іноді альфа-тестування виконується під відладчиком або з використанням оточення, яке допомагає швидко виявляти знайдені помилки.
Виявлені помилки можуть бути передані тестувальникам для додаткового дослідження в оточенні, подібному тому, в якому буде використовуватися ПЗ.
Тестування білого ящика і чорного ящика .
У термінології професіоналів тестування (програмного і деякого апаратного забезпечення), фрази тестування білого ящика і тестування чорного ящика ставляться до того, чи має розробник тестів доступ до вихідного коду тестованого ПЗ, або ж тестування виконується через інтерфейс користувача або прикладний програмний інтерфейс, наданий тестованим модулем.
При тестуванні білого ящика (англ. white-box testing, також говорять - прозорого ящика), розробник тесту має доступ до вихідного коду програм і може писати код, який пов'язаний з бібліотеками тестованого ПЗ. Це типово для юніт-тестування (англ. Unit testing), при якому тестуються тільки окремі частини системи. Воно забезпечує те, що компоненти конструкції - працездатні і стійкі, до певного ступеня. При тестуванні білого ящика використовуються метрики покриття коду.
При тестуванні чорного ящика, тестувальник має доступ до ПЗ тільки через ті ж інтерфейси, що і замовник або користувач, або через зовнішні інтерфейси, що дозволяють іншого комп'ютера або іншому процесу підключитися до системи для тестування. Наприклад, тестирующий модуль може віртуально натискати клавіші або кнопки миші в тестованої програмі за допомогою механізму взаємодії процесів, з упевненістю в тому, чи всі йде правильно, що ці події викликають той же відгук, що й реальні натиснення клавіш і кнопок миші. Як правило, тестування чорного ящика ведеться з використанням специфікацій чи інших документів, що описують вимоги до системи. Як правило, в даному вигляді тестування критерій покриття складається з покриття структури вхідних даних, покриття вимог і покриття моделі (у тестуванні на основі моделей).
Тестування програмного забезпечення.
Існує кілька ознак, за якими прийнято виробляти класифікацію видів тестування. Зазвичай виділяють наступні:
По об'єкту тестування:
1. Функціональне тестування (functional testing) - це тестування ПЗ в цілях перевірки реалізованості функціональних вимог, тобто здатності ПЗ в певних умовах вирішувати завдання, потрібні користувачам. Функціональні вимоги визначають, що саме робить ПО, які завдання воно вирішує.
функціональні вимоги включають в себе:
· функціональна придатність (англ. suitability );
· точність (англ. accuracy );
· здатність до взаємодії (англ. interoperability );
· відповідніс...