Re[8]: Зачем нужен cppunit?
От: Глеб Алексеев  
Дата: 21.09.05 12:40
Оценка: +5
Здравствуйте, eao197, Вы писали:

E>Все вышесказанное, естественно, ИМХО. Но интересно, что об этом другие участники форума думают.

Сразу оговорюсь, что масштабы проектов, над которыми я работал, не позволяют мне авторитетно, тэкскть, высказаться.
Unit-test'ы — это самый нижний уровень. Есть еще functional, performance и прочие тесты. Например, в этом году пришлось писать XMLDA-сервис, и наличие готового test-suite — это была просто манна небесная.

Но даже сами по себе юнит-тесты — это гигантский прорыв. Почему? Из-за элементарной комбинаторики. Если в компоненте A 4 метода, нужно, грубо говоря, по одному тесту на каждый из них (в каждом тесте проверяются граничные и нормальный случаи). А вот если для этого компонента юнит-теста нет, то нужно тестировать все функции, в которых этот компонент используется, и ошибка в одном из граничных случаев одного из методов A будет в клиенте вылезать только в 1% случаев.

Прочувствовал это на последнем проекте, у нас, к сожалению, юнит-тесты не приняты, а также полно велосипедов (своя строка, свой вектор, свой ХМЛ-парсер , свои обертки над потоками/мутексами, своя реализация паттерна Обсервер, и т.д.). И сколько раз приходилось убивать часы в отладчике (расставлять трассировку по всему проекту), чтобы найти очередной глюк в строке . Мораль — если базовая библиотека хорошо покрыта элементарными юнит-тестами, остальную логику, в том числе ГУИ, можно с высокой степенью уверенности тестировать ручками и спать спокойно по ночам.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.