[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Стабильная система?



On 2015-10-02, Artem Chuprina wrote:

>  >> Позже, уже в Транзасе, мне коллеги рассказывали, что они изначально тоже
>  >> писали тесты, и автоматически прогоняли их каждое утро, когда приходили
>  >> на работу и запускали smalltalk.  Профессиональных параноиков среди низ
>  >> не было, с количеством тестов они не перенапрягались, но все равно через
>  >> несколько месяцев прогон тестов стал занимать столько времени, что был
>  >> отключен.
>  АН> Может проблема в Smalltalk?
>  АН> Я представил себя на месте пилота (если это не тренажёр).
>  АН> Наверное, если бы летал я, для себя я бы не стал отключать тесты...
>
> У Лема, кажется, есть рассказ на эту тему.  Как искусственный интеллект
> космического корабля, обученный несколько параноидальным пилотом,
> настолько погряз в проверках, все ли хорошо, что разбил корабль при
> посадке.

https://en.wikipedia.org/wiki/Test_plan
https://en.wikipedia.org/wiki/Test_suite

Выбрать стратегию исходя из бюджета проекта.

В принципе индивидуальный программист сможет выбрать набор нужных тестов под
его задачи. А "кто там главный" может поручить запускать все перед релизом.

Разработка на Haskel bottom-up? В старых книжках по Форту хвастают что при
таком подходе ты выверяешь каждый кирпичик в момент его конструирования, а из
надежных кирпичей строишь надежное здание.

Всякие Java/.Net проекты подразумевают "бизнес" подходы, т.е. top-down модель.
Незавершенный продукт содержит костыли вместо твердых кирпичей, код полагается
на спецификацию, вместо отлаженой реализации. Тесты нужны.

Тесты помагают с регресиями, 10 мин. bisect может избавить от многодневной
отладки.

Помагают при реструктуризации кода, например изменил сигнатуру и идя по
ошибкам от компилятора правишь кусочки.

Если есть ошибка и сразу не ясно в чем проблема в 99% случаев мне помагает
printf, отладчики не умею готовить. Т.е. нужны какие-то кусочки, хоть как то
дергающие функционал.

В GCC каждый патч-фикс должден ити с выявляющем его тестом:
https://gcc.gnu.org/contribute.html

Колега добавил нативную поддержку широкого целочисленного умножения для
zSeries, вместо intrinsic функции (мы делали статическую библиотеку, были
требования переносимости между компиляторами на платформе). Патч не включили
т.к. не захотел несколько дней ждать выполнения теста. Проблемные кусочки
выполнили на ассемблере.

-- 
Best regards!


Reply to: