logo
Інформатика відповіді

7.Тестування програм. Основні етапи тестування.

Тестування програмного забезпечення – техніка контролю якості, що перевіряє відповідність між реальною та очікуваною поведінкою програми завдяки кінцевому набору тестів, що обираються певним чином.

Тестування - це одна з технік контролю якості, що включає в себе

• Планування робіт (Test Management)

• Проектування тестів (Test Design)

• Виконання тестування (Test Execution)

• Аналіз отриманих результатів (Test Analysis).

Верифікація (Verification) - це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту, визначені на початку поточної фази.

Валідація (Validation) - це визначення відповідності розроблюваного програмного забезпечення між очікуваннями і потребами користувача, вимогам до системи.

План Тестування (Test Plan) - це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.

Тест дизайн (Test Design) - це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.

Тестовий випадок (Test Case) - це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тестованої функції або її частини.

Баг/Дефект Репорт (Bug Report) - це документ, що описує ситуацію або послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування (Misbehavior), із зазначенням причин та очікуваного результату (Expected Result).

Тестове Покриття (Test Coverage) - це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами вимог або коду, що виконується.

Деталізація Тест Кейсів (Test Case Specification) - це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття.

Час Проходження Тест Кейса (Test Case Pass Time) - це час від початку проходження кроків тест кейса до отримання результату тесту.

Види тестування програмного забезпечення

За ступенем автоматизації:

• Ручне тестування (manual testing)

• Автоматизоване тестування (automated testing)

• Напівавтоматизованих тестування (semiautomated testing)

За ступенем підготовленості до тестування:

• Тестування по документації (formal testing)

• Тестування ad hoc або інтуїтивне тестування (ad hoc testing) - тестування без тест плану та документації, що базується на методиці передбачення помилки та власному досвіді тестера.

За ступенем ізольованості компонентів:

• Компонентне (модульне) тестування (component/unit testing)

• Інтеграційне тестування (integration testing)

• Системне тестування (system/end-to-end testing)

За часом проведення тестування:

 Альфа-тестування (alpha testing)

• Тестування при прийманні або Димове тестування(smoke testing)

• Тестування нової функціональності (new feature testing)

• Регресивне тестування (regression testing)

• Тестування при здачі (acceptance testing)

 Бета-тестування(beta testing)

За об'єктом тестування:

 Функціональне тестування (functional testing)

 Тестування продуктивності (performance testing)

• Навантажувальне тестування (load testing)

• Стрес-тестування (stress testing)

• Тестування стабільності (stability/endurance/soak testing)

 Тестування зручності використання або Юзабіліті-тестування (usability testing)

 Тестування інтерфейсу користувача (UI testing)

 Тестування безпеки (security testing)

 Тестування локалізації (localization testing)

 Тестування сумісності (compatibility testing)

За ознакою позитивності сценаріїв:

• Позитивне тестування (positive testing)

• Негативне тестування (negative testing)

Рівні тестування

 Модульне тестування тестує мінімальний компонент програми, або модуля. Кожний модуль тестується для перевірки правильності його реалізації.

 Інтеграційне тестування виявляє дефекти в інтерфейсах та у взаємодії між компонентами (модулями).

 Системне тестування тестує інтегровану систему для перевірки відповідності всім вимогам.

 Системне інтеграційне тестування перевіряє, чи система інтегрується в будь-яку зовнішню систему (або системи) відповідно до системних вимог.

 Приймальне тестування може проводитись кінцевим користувачем, замовником, або клієнтом для перевірки, чи може продукт бути прийнятий до використання.

• альфа-тестування — це симульоване або реальне операційне тестування потенційними користувачами/замовником або командою тестувальників на боці розробника.

• бета-тестування йде після альфа-тестування. Версії програмного забезпечення, відомі як бета-версії, надаються у користування обмеженій кількості людей поза компанією для того, щоб упевнитись, що програма не містить великої кількості помилок.