Класифікація тестування на рівні, види і типи

Тема 12. Класифікація тестування на рівні, види і типи

  • по об'єктах (елементам) тестування, часто поділ на види тестів за даним критерієм називають поділом тестування на рівні;
  • по глибині тестування, тобто поділ тестових випробувань на типи проводиться в залежності від кількості часу і обсягу тестованих компонент програмного продукту.

Проте, основна класифікація тестів на види проводиться у відповідність з традиційними показниками якості, які перевіряються з їх допомогою.

12.1. рівні тестування

Модульне тестування (Автономне або Unit-тестування)

Вхідні вимоги - Архітектура компонентів або модель "нижнього рівня" системи (Component Design або Low Level Design)

Об'єкт тестування - Розроблені компоненти

Визначення: На даному рівні тестуються окремо невеликі елементи системи, максимально відокремлені від інших елементів і, в той же час, придатні для тестування. Таке тестування зазвичай проводиться відразу ж слідом за розробкою кожного з елементів і направлено на оцінку відповідності функціональності кожного з компонентів спроектованої "моделі компонентів".

Комплексне тестування (Сборочное тестування, integration testing або interface testing)

Вхідні вимоги - Архітектура системи або модель "верхнього рівня" системи (System Design або High Level Design)

Об'єкт тестування - Зібрана з компонентів система або підсистема

Визначення: На даному рівні тестуються об'єднані елементи (компоненти або підсистеми) загальної системи, найчастіше деяка взаємодіє між собою група елементів.

Комплексне тестування спрямоване не на перевірку функціонування кожного з компонентів, а на перевірку взаємодії компонентів відповідно до «Архітектурою системи».

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

Системне тестування (system testing)

Вхідні вимоги - Системні специфікації (System Specification)

Об'єкт тестування - Розроблена система

Визначення: Після того, як система зібрана зі складових компонентів, вона повинна бути протестована на відповідність "Системним специфікаціям" - реалізовані чи всі функціональні і нефункціональні вимоги до розроблюваної системі.

На даному рівні тестується додаток або система (одне або більше додатків) цілком.

Приймальне тестування (Приемо-передавальне тестування або acceptance testing)

Вхідні вимоги - Вимоги (Requirements)

Об'єкт тестування - Розроблена система

Визначення: На даному рівні завершене додаток (система) тестується Замовником, кінцевими користувачами або відповідними уповноваженими з метою визначення відповідності системи "Вимогам Замовника" і готовності системи до впровадження. Приймально-здавальні випробування оформлюють процес передачі товару від Розробника Замовнику. Залежно від особливостей продукту і від вимог Замовника вони можуть проводитися в різній формі. Наприклад, у вигляді альфа- або бета-тестування.

Приймальне тестування схоже з системним тестуванням, але з наступним розходженням:

  • Системне тестування перевіряє, що розроблена система відповідає специфікованою вимогам;
  • Приймальне тестування перевіряє, що розроблена система задовольняє запитаним Замовником вимогам з упором на потреби кінцевих користувачів в даній предметній області.

Операційне тестування (Release Testing)

Вхідні вимоги - Бізнес модель (Business Case або Business Model)

Об'єкт тестування - Розроблена система

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

Крім цього, тестування в середовищі експлуатації дозволяє виявити і нефункціональні проблеми, такі як: конфлікт з іншими системами, суміжними в області бізнесу або в програмних і електронних середовищах; недостатня продуктивність системи в середовищі експлуатації та ін.

Очевидно, що знаходження подібних речей на стадії впровадження - критична і дорога проблема. Тому так важливо проведення не тільки верифікації, а й валідації, з самих ранніх етапів розробки ПЗ.

Основне поділ тестів на види по об'єктах тестування, або, точніше, на рівні тестування, було вироблено нами при визначенні узагальненої моделі ЖЦ ТП. Рівні тестування наведені нижче. Для кожного рівня тестування можуть використовуватися різні види тестування, для кожного з яких, в свою чергу, можуть використовуватися різні типи тестових випробувань.

12.2. види тестування

Інсталяційне тестування (Installation testing)

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

Мета: Основна мета полягає в тому, щоб переконатися, що продукт може бути встановлений / деінсталювати при різних умовах - таких як: нова інсталяція, удосконалення системи (upgrade), установка за замовчуванням, повна установка, установка на вибір.

Димне тестування (перевірка на дим, Smoke testing)

Визначення: Перший прогін програми (після написання або після внесення суттєвих змін). Як правило, використовується для визначення, чи готова програма для проведення ширшого тестування.

Мета: Виявлення проблем «лежачих на поверхні» - тестується найчастіше основна бізнес логіка програми

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

Визначення: Перевірка відповідності продукту функціональним вимогам і специфікаціям

Мета: Перевірка відповідності продукту функціональним вимогам і специфікаціям

Визначення: Повторне тестування після внесення змін до програмного забезпечення або в його оточення (в новій версії програми), щоб переконатися в тому, що функції, які працювали в попередній версії системи, як і раніше працюють так, як очікувалося, а знайдені дефекти успішно виправлені (все протестоване раніше тестується повторно)

Мета: Виявлення потенційних проблем, які могли виникнути в результаті змін. Перевірка виправлення знайдених раніше дефектів.

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

Визначення: Перевірка скомбіновані компонентів прикладної програми з метою визначення правильності їх спільного функціонування

Мета: Виявлення потенційних проблем в спільному функціонуванні компонент

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

Визначення: Тестування інтерфейсу - екранів, кнопок і т.д. Велика частина функціональності ПО реалізується, як правило, через призначений для користувача інтерфейс.

Мета: Виявлення помилок в інтерфейсі і пошук помилок в функціональності за допомогою інтерфейсу

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

Визначення: Перевірка швидкості роботи системи (час відгуку, частота транзакцій і інші залежні від часу) в імітаційної і реальної середовищах

Мета: Встановити реальну продуктивність програмного продукту

Тестування навантаження (Load testing)

Визначення: Це ті ж тести продуктивності, при яких система піддається різним навантаженням; при цьому мета цього тестування - оцінити здатність системи правильно функціонувати при деякому перевищенні запланованих навантажень при реальній експлуатації (система має певний «запас міцності»)

Мета: Переконатися в тому, що система працює відповідно очікуваним робочим навантажувальні параметрам (яку межу працездатності)

Стрес тестування (Stress testing)

Визначення: Є одним з різновидів тестування на продуктивність. Перевіряється поведінку системи при нестачі ресурсів (дискового простору, обривів мережі і т.д.).

Мета: Перевірка того, що система адекватно реагує на ті чи інші стресові ситуації

Конфігураційне тестування (Configuration testing)

Визначення: Конфігураційне тестування - тестування роботи на різних платформах. Різні варіанти апаратної конфігурації, версії операційної системи і оточення.

Мета: Перевірити працездатність системи при різних конфігураціях

Тестування інтернаціоналізації (Internationalization testing)

Визначення: Цей вид тестує наскільки продукт готовий до того, щоб бути адаптованому для роботи в інших локалях з іншою мовою призначеного для користувача інтерфейсу, ніж мова за замовчуванням (як правило, це англійська)

Мета: Перевірити здатність продукту бути швидко локалізованим під необхідну локаль потенційних користувачів системи

Локалізаційного тестування (Localization testing)

Визначення: локалізаційного тестування, в свою чергу, перевіряє, чи правильно локалізована продукт. Тобто, переведений на іншу мову і коректно працює з урахуванням національних особливостей країни або регіону, в якому буде продаватися і використовуватися продукт.

Мета: Перевірити, чи правильно локалізована продукт

Класифікація тестів на види проводиться у відповідність з традиційними показниками якості, які перевіряються з їх допомогою. Іншими словами, поділ тестування на види відбувається в залежності від типу вимог (функціональні, не функціональні), що перевіряються за допомогою тестів.

Для перевірки функціональності (functionality) ПО необхідно випробувати додаток на виконання функціональних вимог до нього (сценаріїв використання та ін.). Для цього використовуються власне функціональні тести, а також тести безпеки, обсягу і інші.

Тестування надійності (reliability) ПО проводиться з метою перевірки не функціональних вимог, що додаток працює, як і очікувалося, стійко до падінь і т.п. Тут застосовуються інтеграційні тести, тести структури, стресові тести та інші.

Тестування зручності використання (usability) ПО (нефункціональні вимоги) проводиться з метою упевнитися в тому, що додаток зручно для використання його кінцевим користувачам. Включає в себе тести на людський фактор, естетику інтерфейсу і його несуперечливість, наявність і якість оперативної і контекстної допомоги, посібників і навчальних матеріалів.

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

12.3. Типи тестових випробувань по глибині тестування.

Приймальний тест (Smoke test) - перший і самий короткий тест, покликаний проводити перевірку основних елементів програмного продукту і його працездатності в цілому. У разі функціонального тестування - перевіряється основний функціонал програми. Тест займає 1-4 години в залежності від складності тестованого продукту. На основі результатів даного тесту приймається рішення про приймання версії програмного продукту і продовження тестування поточної версії продукту більш серйозними тестовими випробуваннями.

Критичний тест (Critical path test) - основний тип тестових випробувань, під час якого значущі елементи і функції програми перевіряються на предмет правильності роботи при стандартному їх використанні. Як правило, на даному рівні тестування перевіряється основна маса вимог до продукту.

Розширений тест (Extended test) - вид поглибленого тестування, при якому перевіряється нестандартне використання програмного продукту, кордони переповнення масивів даних, введення спеціальних символів і т.п.