Pull to refresh
2
0
Максим @maxz

User

Send message
ИМХО, тестирование хотя и полезная вещь, но для более успешного создания безбаговой программы важнее использовать хорошую архитектуру. Хорошая архитектура, в моем понимании, подразумевает высокую степень инкапсуляции и низкую степень сцепления между компонентами. Тогда, как правило, отладив один компонент, можно про него «забыть» до лучших времен, и вероятность того, что он «сломается», практически нулевая.

Кроме того, есть еще два возражения, благодаря которому у меня тестирование не прижилось.
1) Практическая невозможность тестировать пользовательские интерфейсы.
2) Сильное понижение скорости разработки за счет написания тестов для нетривиальных компонент — которые работают с выводом, только в контексте системы, используют ввод пользователя и переменные сервера… В результате, у меня есть только 2 или 3 компонента, которые могут быть эффективно оттестированны — один из них — это «слой» между программой и БД.

Ну, и еще о философском значении тестирования. Нас учили, что существуют несколько подходов к программированию — один из них — программирование как программная инженерия. Программная инженерия подразумевает, что есть архитектор и много-много кодеров, почти как при создании реального здания. Практика тестирования, хочу заметить, развивалось именно в рамках этого подхода. Она там практически необходима для того, чтобы контролировать «кодеров». Это не значит, что она не полезна в рамках других подходов. Но это значит, что существуют и другие подходы, например, программирование, как искусство создания кода. Понятного кода, который практически не нуждается в тестировании, и понятной архитектуры.
К сожалению научиться хорошо программировать намного легче чем научиться программировать без ошибок или использовать автоматизированые тесты.

Говорю на своем опыте.
Да и тесты — они частно нафиг не нужны. Думаю отладить маленькие функции — проблемы нет.
Года три назад к нам в офис приезжали tauSDL
Model Driven Development of Complex Systems and Services
Суть проста — собираете каркас програмы на SDL диаграме, разбавляете Скодом
И получаете механизм на конечных автоматах…
IDE строит дерево возможных использованией, а потом полурандомно начинает туда сигналы и пакеты кидать.
Все ждет свихнется программа или нет.

В общем на этом тау летают боинги и лифты ходят :)
И мы тоже. За два года ниодного бага, ниодной проблемы.
Все были ВЫРВАНЫ из кода роботом во время симуляции
UFO landed and left these words here

Information

Rating
Does not participate
Location
Краснодарский край, Россия
Registered
Activity