Недавно в разговоре с одним знакомым я сказала, что не люблю TDD (test-driven development, разработка через тестирование). Наверное, первая мысль, которая возникает после такого заявления - это как тестер в здравом уме может вообще говорить подобные вещи?
Я примерно представляю, в чём смысл TDD, я слышала про него от разработчиков, я почитала немного о нём в Интернете. И насколько я понимаю, TDD - это в принципе отличная штука! Мало того, что это как минимум реализация модульного тестирования, которое не так часто в реальной жизни и встретишь, так TDD ещё и позволяет сделать код более качественным, легче переносящим изменения, рефакторинги и т.п. В результате получается гораздо меньше потенциальных проблем. Ну и какому тестеру это может не понравиться?
Всё бы хорошо, да вот загвоздка в том, что почему-то некоторые начинают считать, что если на проекте используется TDD, то тестеры на таком проекте уже и не нужны. Замечательно, не правда ли? Да в любой книге всегда было прописано, что тестирование на стороне программистов необходимо как один из первых этапов тестирования. Просто чаще всего этот этап успешно пропускался. И если с появлением TDD этому этапу наконец стало уделяться должное внимание, то почему это должно означать, что отпадает необходимость во всех последующих этапах тестирования? Как будто до изобретения TDD написание хорошего кода не было задачей программистов.
С таким подходом мало того, что можно и не получить возможность когда-либо поработать на проекте, где используется TDD, так можно ещё и без работы остаться. Как будто TDD - это панацея какая-то. Ну и как при этом можно TDD любить?..
Конечно, моя нелюбовь вовсе не связана с самим TDD, а относится к тем, кто так чудесно TDD трактует и воспринимает. Но всё-таки просто поразительно, как часто и с какой изобретательностью могут извращаться хорошие идеи...
Комментариев нет:
Отправить комментарий