Найти тему

Разработка, основанная на тестировании. Разве может быть тестирование важнее программирования

Разработка, основанная на тестировании, известна также под аббревиатурой TDD, что означает Test Drive Developement. Тестировщикам предлагается начинать тестировать программу до ее написания.

Какой результат мы в итоге хотим получить, работая по этому методу? Мы хотим получить "чистый код, который работает", т.е. программный код без дефектов, дублирования функций, без не покрытого тестами программного кода. Для этого нужно выполнить 3 действия:

Изображение создано нейросетью PlaygroundAI
Изображение создано нейросетью PlaygroundAI
  1. Написать неработающий автоматизированный тест по техническому заданию. Тест является неработающим, потому что его пока не на чем запустить, еще не написан программный код.
  2. Написать столько программного кода, сколько необходимо для корректного выполнения теста.
  3. Исключить дублирование функций, оптимизировать и упростить программный код, т.е. провести рефакторинг программного кода.

Какие преимущества смогла бы получить команда проекта при внедрении этого метода разработки?

Инженеры по качеству перешли бы на новый уровень работы, занимались бы предупреждением дефектов, а не их устранением, т.к. все автотесты были бы работающими.

Работа менеджмента была бы более прогнозируемой, ведь при внедрении каждой новой функциональности, программный продукт всегда был бы в рабочем состоянии и его можно было бы представить заказчику.

У этого метода есть и негативная сторона: программисту пришлось бы больше работать, разрабатывая вначале автотесты и медленно разрабатывать программный код, не выстраивая целиком его архитектуру, а достраивая постепенно, модуль за модулем.

Единственное, что упрощает жизнь программисту, при использовании метода разработки через тестирование, так это возможность браться за безнадежные, слишком сложные задачи, которые можно решить только пошагово, при выполнении следующих условий:

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

Автор книги о разработке через тестирование, Кент Бек считает, что это экстремальный метод разработки. А Вы как думаете?

Если хотите узнать больше об этом методе, о прикладных задачах применения метода разработки через тестирование, можете приобрести книгу со скидкой по ссылке:

Экстремальное программирование. Разработка через тестирование TDD