Що таке TDD - все про test driven development

Розробка сучасного програмного забезпечення, що задовольняє всім вимогам до функціональності та повноти програмного коду, є складним і нетривіальним завданням. Для її вирішення використовується безліч підходів до написання та налагодження програм, одним із яких є метод TDD. Розглянемо особливості даної технології та покажемо переваги та недоліки її використання перед традиційними методами розробки програм.

Розробка програм за допомогою TDD підходу

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

На зображенні знизу представлений процес розробки програм методом TDD як блок-схеми.

Розглянемо призначення кожного із блоків схеми.

Написання тестів

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

Перевірка виконання тесту

Коли тест готовий, одразу ж виконується його перевірка на здійсненність. Очевидно, що без готового блоку програми тест ніяк не зможе пройти перевірку. Це означає, що тест попередньо написаний правильно. Якщо ж тест перевірку все-таки проходить, це може означати таке: або він невірний, або дана функціональність вже реалізована в програмі, і тоді він не має сенсу. У такому разі тест відправляється на доопрацювання, тобто цикл замикається.

Написання коду програми

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

Комплексна перевірка

Комплексна перевірка готового коду на відповідність до вимог тестів. На цьому етапі здійснюється запуск тестів для готової ділянки коду програми та виявлення «нестиковки» при їх виконанні. Якщо тести успішно виконуються, код передається на наступний етап обробки – рефакторинг. Якщо ні, код повертається на доопрацювання.

Оптимізація коду програми

Ціль цього етапу – оптимізувати код зсередини, залишивши його «зовнішню» функціональність. Сюди відноситься, зокрема, зменшення надмірності коду до допустимого рівня та інші операції, пов'язані з його оптимізацією. Цей процес прийнято називати рефакторинг коду програми, без якого програма не буде оптимальною. Після виконання оптимізації, процес повторюється знову, тобто, кількість ітерацій буде такою, щоб, зрештою, забезпечити вихід оптимізованого програмного модуля з потрібною функціональністю.

Переваги використання TDD

Серед переваг використання методу TDD для створення програмного забезпечення можна виділити такі:

 

Недоліки використання методу TDD

Як і будь-які методи або підходи до програмування, метод, що розглядається, також має недоліки. Виділимо деякі з них: