Test-driven development
Матеріал з Вікі ЦДУ
Test-driven development
Test-driven development (TDD) - техніка розробки програмного забезпечення, основана на повторення коротких циклів розробки: спочатку пишеться тест, який покриває бажану зміну, після цього пишеться код, який дозволяє пройти тест, наприкінці відбувається рефакторинг коду відповідно до стандартів.
Цикл розробки через тестування
- Добавлення тесту: створення тесту, який обов'язково не буде проходити, оскільки код, який проходить тест, ще не написано. Якщо тест проходить без коду, то або бажана функціональність вже існує, або тест має недоліки.
- Запуск нових тестів: на даному етапі необхідно впевнитися в тому, шо тільки нові тести не проходять. Це дає впевненість в тому, шо не створено непотрібних тестів і (хоча це й не гарантовано) що тест дійсно тестує те, для чого його було створено.
- Написання коду: на цьому етапі пишеться код так, шоб тест пройшов. Тобто, задача на даному етапі- створити код, який проходить тест, а після цього вже проводити рефакторинг коду.
- Запуск всіх тестів: необхідно впевнитися в тому, що всі тести проходять, відповідно, код написаний правильно.
- Рефакторинг: коли бажана функціональність отримана, код можна "почистити", без внесенні змін у внутрішню структуру програми.
- Повторити цикл: описаний вище цикл повторюється, внаслідок чого відбувається реалізація нового функціоналу. Всі кроки необхідно робити малими, від 1 до 10 змін між запусками тестів.
Переваги
- Програмісти, які пишуть велику кількість тестів, в майбутньому працюють продуктивніше.
- Рідше виникає потреба використання відладника програмістами.
- Високий позитивний вплив на дизайн програми. Якщо програміст фокусується на тестах, йому легше уявити, який функціонал необхідний замовнику. Відповідн, розробник продумує деталі інтерфейсу до його розробки.
- Незважаєчи на те, що виникає потреба писати більше коду, загальний час розробки програмного продукту менший.