Существует несколько методологий разработки, в том числе разработка через тестирование. Мы перевели заметку известнейшего программиста и автора этой концепции Кента Бека — о философии и стратегиях тестирования, стандартах разработки и количестве необходимых для работы вашего кода тестов.
«Мне платят за работающий код, а не за тесты. Поэтому моя философия разработки заключается в том, что тестировать нужно как можно меньше — чтобы достичь определенного уровня достоверности кода. Я думаю, что мой показатель уверенности в работоспособности кода намного выше, чем в среднем по отрасли — хотя я могу ошибаться, или это может быть просто проявлением высокомерия.
Если обычно я не ошибаюсь в каких-то вещах — например, не устанавливаю неправильные переменные в конструкторе, то я и не проверяю эту часть кода. Я склонен разбираться в тех ошибках, которые выводят мои тесты, поэтому всегда очень осторожен в тестировании логики со сложными условиями.
Когда я работаю не один, а вместе с командой, я меняю стратегию тестирования — и начинаю внимательнее относиться к частям кода, где программисты ошибаются чаще всего.
У разных людей будут различные стратегии тестирования, которые могут базироваться на таких подходах. Но мне кажется, что это нормально — учитывая, что тестирование пока находится в начальной стадии развития и многие не понимают, как вписать его во внутренний цикл разработки. Через десять или двадцать лет у нас, вероятно, уже появится более универсальная теория о том, какие тесты стоит писать, какие не стоит — и как быстро понимать необходимость написания тестов в каких-то местах. Но пока — давайте просто будем экспериментировать».
Кент Бек — культовый разработчик, создатель таких методологий разработки ПО как экстремальное программирование и разработка через тестирование. Бек был одним из 17 специалистов, подписавших Agile Manifesto в 2001 году.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях