База знань

Модульне тестування

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

mod_test

Об’єкт тестування виділений червоним кольором.

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

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

Заглушки необхідні для:

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

– подачі або повернення модулю певного значення, можливості надати тестеру самому ввести потрібне значення;

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

Розглянемо переваги модульного тестування.

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

Що ж стосується безпосередньо переваг:

– модульне тестування мотивує програмістів писати код максимально оптимізованим, проводити рефакторинг (спрощення коду програми, не зачіпаючи її функціональність), так як за допомогою Юніт-тестування можна легко перевірити працездатність розглянутого компонента.

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

– документація Юніт-тестів може служити прикладом «живого документа» для кожного класу, що тестується даним способом. Модульне тестування допомагає краще зрозуміти роль кожного класу на тлі всієї програмної системи.

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

Зрозуміло, що отримавши досвід роботи інженером якості, Ви зможете зовсім по-іншому охарактеризувати даний вид тестування. А поки, сподіваємось, дана стаття допоможе Вам підійти на крок ближче до можливості отримання реальної практики.