Функціональне тестування (Functional/Behavioral testing)
Функціональне тестування: Тестування, засноване на аналізі специфікації функціональності компонента або системи. також тестування методом чорної скриньки. (ISTQB)
Функціональне тестування виконується, щоб переконатися, що кожна функція програмної програми поводиться так, як зазначено в документі з вимогами. Найчастіше це виконується шляхом black box testing.
Для функціонального тестування прийнято використовувати дві техніки :
Тестування на основі вимог: містить усі функціональні специфікації, які становлять основу для всіх тестів, що будуть проводитись;
Тестування на основі бізнес-сценаріїв: містить інформацію про те, як система сприйматиметься з погляду бізнес-процесу;
Основні види функціонального тестування :
Unit Testing: модульне тестування зазвичай виконується розробником і тягне за собою написання тестів, які викликатимуть методи в кожному модулі та перевірятимуть їх, передаючи необхідні параметри та перевіряючи відповідність значення, що повертається очікуваному. Покриття коду – важлива частина модульного тестування, де мають існувати test cases, що охоплюють:
Line coverage;
Code path coverage;
Method coverage;
Smoke Testing: тестування, яке проводиться після випуску кожного збирання. Це також називається build verification testing;
Sanity Testing: тестування, яке проводиться для того, щоб переконатися, що всі основні та життєво важливі функції програми/системи працюють правильно. Зазвичай це робиться після Smoke Testing;
Regression Tests: тестування проводиться для того, щоб переконатися, що додавання нового коду, покращень, виправлення помилок не порушує існуючу функціональність або не викликає нестабільності та ПЗ все ще працює відповідно до специфікацій. Регресійні випробування не повинні бути такими широкими, як фактичні функціональні випробування, але повинні гарантувати обсяг покриття, що підтверджує стабільність функціональності;
Integration Tests: коли система покладається на кілька функціональних модулів, які працюють окремо, але повинні працювати злагоджено коли об'єднані разом, щоб досягти наскрізного сценарію, перевірка таких сценаріїв називається інтеграційним тестуванням;
Beta/Usability Testing: продукт демонструється реальному користувачеві в середовищі, наближеному до продукту, і вони тестують продукт. Це схоже на User Acceptance testing;
System testing: тестування, яке виконується для всієї системи, щоб перевірити, чи вона працює належним чином після інтеграції всіх модулів або компонентів;
End to end testing: для перевірки функціональності продукту. Це тестування виконується лише після завершення тестування системної інтеграції, включаючи функціональні та нефункціональні вимоги;
Критерії початку функціонального тестування :
Requirement Specification document визначено та затверджено;
Підготовлено тест-кейси;
Створено тестові дані;
Середовище для тестування готове, всі необхідні інструменти доступні та готові;
Все або частина програми розроблена, модульно протестована і готова до тестування;
Критерії закінчення функціонального тестування :
Виконання всіх функціональних тестів завершено;
Немає критичних чи відкритих помилок P1, P2;
Повідомлені помилки було підтверджено;
Етапи функціонального тестування :
Найперший крок полягає у визначенні функціональності продукту, який необхідно протестувати, і він включає тестування основних функцій, умов помилок і повідомлень, тестування зручності використання, тобто, чи є продукт зручним для користувача чи ні, і т. д.
Наступним кроком є створення вхідних даних для функціональності, що перевіряється відповідно до специфікації вимог.
Пізніше, зі специфікації вимог визначається результат для тестованої функціональності.
Підготовлені тест-кейси виконуються.
Фактичний результат, тобто результат після виконання тест-кейсу, і очікуваний результат (визначений зі специфікації вимог) порівнюються, щоб визначити, чи функціональність працює належним чином чи ні.
Last updated