ИМХО, тестирование хотя и полезная вещь, но для более успешного создания безбаговой программы важнее использовать хорошую архитектуру. Хорошая архитектура, в моем понимании, подразумевает высокую степень инкапсуляции и низкую степень сцепления между компонентами. Тогда, как правило, отладив один компонент, можно про него «забыть» до лучших времен, и вероятность того, что он «сломается», практически нулевая.
Кроме того, есть еще два возражения, благодаря которому у меня тестирование не прижилось.
1) Практическая невозможность тестировать пользовательские интерфейсы.
2) Сильное понижение скорости разработки за счет написания тестов для нетривиальных компонент — которые работают с выводом, только в контексте системы, используют ввод пользователя и переменные сервера… В результате, у меня есть только 2 или 3 компонента, которые могут быть эффективно оттестированны — один из них — это «слой» между программой и БД.
Ну, и еще о философском значении тестирования. Нас учили, что существуют несколько подходов к программированию — один из них — программирование как программная инженерия. Программная инженерия подразумевает, что есть архитектор и много-много кодеров, почти как при создании реального здания. Практика тестирования, хочу заметить, развивалось именно в рамках этого подхода. Она там практически необходима для того, чтобы контролировать «кодеров». Это не значит, что она не полезна в рамках других подходов. Но это значит, что существуют и другие подходы, например, программирование, как искусство создания кода. Понятного кода, который практически не нуждается в тестировании, и понятной архитектуры.
К сожалению научиться хорошо программировать намного легче чем научиться программировать без ошибок или использовать автоматизированые тесты.
Говорю на своем опыте.
Да и тесты — они частно нафиг не нужны. Думаю отладить маленькие функции — проблемы нет.
Года три назад к нам в офис приезжали tauSDL Model Driven Development of Complex Systems and Services
Суть проста — собираете каркас програмы на SDL диаграме, разбавляете Скодом
И получаете механизм на конечных автоматах…
IDE строит дерево возможных использованией, а потом полурандомно начинает туда сигналы и пакеты кидать.
Все ждет свихнется программа или нет.
В общем на этом тау летают боинги и лифты ходят :)
И мы тоже. За два года ниодного бага, ниодной проблемы.
Все были ВЫРВАНЫ из кода роботом во время симуляции
Кроме того, есть еще два возражения, благодаря которому у меня тестирование не прижилось.
1) Практическая невозможность тестировать пользовательские интерфейсы.
2) Сильное понижение скорости разработки за счет написания тестов для нетривиальных компонент — которые работают с выводом, только в контексте системы, используют ввод пользователя и переменные сервера… В результате, у меня есть только 2 или 3 компонента, которые могут быть эффективно оттестированны — один из них — это «слой» между программой и БД.
Ну, и еще о философском значении тестирования. Нас учили, что существуют несколько подходов к программированию — один из них — программирование как программная инженерия. Программная инженерия подразумевает, что есть архитектор и много-много кодеров, почти как при создании реального здания. Практика тестирования, хочу заметить, развивалось именно в рамках этого подхода. Она там практически необходима для того, чтобы контролировать «кодеров». Это не значит, что она не полезна в рамках других подходов. Но это значит, что существуют и другие подходы, например, программирование, как искусство создания кода. Понятного кода, который практически не нуждается в тестировании, и понятной архитектуры.
Говорю на своем опыте.
Да и тесты — они частно нафиг не нужны. Думаю отладить маленькие функции — проблемы нет.
Года три назад к нам в офис приезжали tauSDL
Model Driven Development of Complex Systems and Services
Суть проста — собираете каркас програмы на SDL диаграме, разбавляете Скодом
И получаете механизм на конечных автоматах…
IDE строит дерево возможных использованией, а потом полурандомно начинает туда сигналы и пакеты кидать.
Все ждет свихнется программа или нет.
В общем на этом тау летают боинги и лифты ходят :)
И мы тоже. За два года ниодного бага, ниодной проблемы.
Все были ВЫРВАНЫ из кода роботом во время симуляции