BDD / ATDD
Ну признайтесь честно – кто знает, что означают эти аббревиатуры? 🙂
. . .
Проникся идеями автоматического тестирования.
И в частности, BDD (behaviour driven development) и ATDD (acceptance testing driven development).
Ну да, я знаю, что это как бы не совсем automated testing, но тем не менее – для нас, неспециалистов, это всё на одно лицо.
Идея проста – перед началом программирования изучаются требования к задаче (business requirements), и на основе них пишутся ряд тестов, которым должна удовлетворять система.
Например: мы должны иметь возможность зарегистрироваться, ввести свою кредитную карточку, выбрать вот этот продукт, оплатить, с карточки должна списаться такая-то сумма, а мы должны после этого иметь возможность получить куда-то там доступ.
И таких тест-кейсов пишем кучу (ну реально много), включая ошибочные сценарии, с пониманием того, что мы должны получить в случае ошибки. Ну и конечно, с возможностью все тесты прогнать в автоматическом режиме, по нажатию одной кнопки (запуску одной команды в консоли).
Прогоняем все тесты – разумеется, всё сначала должно не работать, т.к. программы как таковой ещё нет.
И цель программирования – сделать так, чтоб все тесты завершились успешно.
Чуть-чуть другая парадигма программирования получается – не “программирование, потом тестирование”, а “тестирование, а потом программирование”.
Возможно, все так давно уже и делают, а это до меня только дошло, но правда – я так раньше никогда не делал, а здесь до того понравилась эта идея, что дальше буду именно так и делать.