Я перечитываю Рефакторинг Мартина Фаулера. В главе 4 «Строительные тесты» я натолкнулся на следующий отрывок.
На самом деле, один из самых полезных моментов для написания тестов - это прежде, чем вы начнете программировать. Когда вам нужно добавить функцию, начните с написания теста. Это не так отстает, как кажется. При написании теста вы спрашиваете себя, что нужно сделать, чтобы добавить функцию. Написание теста также концентрируется на интерфейсе, а не на реализации (всегда хорошо). Это также означает, что у вас есть четкая точка, в которой вы закончили кодирование - когда тест работает.
Хотя сейчас я сторонник разработки, основанной на тестировании, я не помню, чтобы меня познакомили с этой концепцией, когда я впервые прочитал эту книгу почти 5 лет назад.
Согласно Amazon.com, эта книга была впервые опубликована 8 июля 1999 года. Это первая опубликованная ссылка на программирование в тестовом режиме или есть что-то еще раньше?
Ответы:
Разработка через тестирование аналогична разработке по контракту, в которой есть предварительные условия, инварианты и постусловия.
Официальные методы датируются как минимум 1983 годом и используются для критически важных систем безопасности, таких как парижское метро без водителя, с использованием B-метода:
Это могло быть некоторыми из вещей, из которых Кент Бек "помог пионеру ... повторному открытию программирования для тестирования".
Более конкретно: очевидно, что проект Mercury, созданный Nasa в начале 1960-х годов, был первым программным проектом, использующим разработку через тестирование и другие гибкие методы. Я не смог найти какую-либо раннюю документацию, но вот отчет 2003 года, в котором цитируются сообщения участников проекта:
Остальная часть отчета тоже интересна, далее говорится:
В дополнение к автоматизированному тестированию, отчет 1968 года рекомендует параллельное кодирование и тестирование, если не тестирование в первую очередь:
источник
Джон Бентли в « Программирование жемчужин» (первоначально опубликовано в 1986 году) специально не упоминает программирование «Сначала тест». Но в главе «Написание правильных программ» он описывает написание алгоритма, сначала определяя предусловия, инварианты и постусловия, а в следующей главе описывает среду автоматизированного тестирования.
Это не совсем первый тест, но он определенно закладывал некоторые основы.
Также,
CIO Magazine, март 1993, Bug Busters , автор Люси Джуно, стр. 84 :
источник
Это был Кент Бек в своей книге « Экстремальное программирование» , также опубликованной в 1999 году .
источник