Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /home/qalight/qalight.com.ua/lviv/wp-includes/plugin.php on line 601

Warning: Parameter 1 to wp_default_styles() expected to be a reference, value given in /home/qalight/qalight.com.ua/lviv/wp-includes/plugin.php on line 601
Модульне тестування (Unit testing) - QALight

База знань

Модульне тестування (Unit testing)

Модульне (компонентне) тестування (Unit testing) – ізольоване тестування кожного окремого елемента програмного забезпечення (це можуть бути модулі, класи, об’єкти, функції), в штучно створеному середовищі. Саме потреба в створенні штучного робочого середовища для певного модуля, вимагає від тестувальника знань в автоматизації тестування програмного забезпечення. Перевірка окремих елементів (unitів) виконується з використанням драйверів і заглушок, і зазвичай виконується програмістами. 
mod_test

Unit (Елемент) – найменший компонент програмного забезпечення, який можна протестувати. 

Драйвер – певний модуль тесту, який виконує тестований нами елемент. 

Заглушка – частина програми, яка симулює обмін даними з тестованим компонентом, виконує імітацію робочої системи.

Заглушки потрібні для:

– імітації відсутніх компонентів для роботи даного елемента.

– подачі або повернення модулю певного значення.

– надання можливості тестувальнику самому ввести потрібне значення.

– відтворення певних ситуацій (виключення або інші нестандартні умови роботи елемента).

Завдання модульного тестування –  це довести, що в окремо кожен модуль працюючий.

Один з найбільш ефективних підходів до компонентного (модульного) тестування – це підготовка автоматизованих тестів до початку основного кодування (розробки) програмного забезпечення. Це називається розробка через тестування (test-driven development) або підхід тестування спочатку (test first approach). При цьому підході створюються і інтегруються невеликі шматки коду, паралельно запускаються тести, написані до початку кодування. Розробка ведеться до тих пір, поки всі тести не будуть успішно пройдені.

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

Переваги модульного тестування:

  • Модульне тестування мотивує програмістів писати код максимально оптимізованим, проводити рефакторинг (спрощення коду програми, не зачіпаючи її функціональність), так як за допомогою Unit–тестування можна легко перевірити працездатність даного компонента. 
  • Необхідність розмежування реалізації від інтерфейсу (зважаючи на особливості модульного тестування), що дозволяє мінімізувати залежності в системі.
  • Документація Unit–тестів може служити прикладом «живого документа» для кожного класу, що тестується даними способом.
  • Оцінюючи кожен елемент ізольовано і підтверджуючи коректність його роботи, простіше точно встановити проблему ніж, якби елемент був частиною системи.
  • Модульне тестування допомагає краще зрозуміти роль кожного класу на тлі всієї програмної системи. 

Також, при розробці через тестування (TDD), яке активно використовується в екстремальному програмуванні, модульне тестування є одним з основних інструментів, що дозволяють розробляти модулі відповідно до вимог до даного модуля. Звичайно ж, отримавши реальний досвід роботи QA інженером, Ви зможете зовсім по-іншому охарактеризувати даний вид тестування. А поки, сподіваюся, ця стаття допоможе Вам підійти на крок ближче до можливості отримання реального досвіду.

 

Набагато більше інформації на курсі базовий модуль тестування