Здравствуйте, landerhigh, Вы писали:
T>>Если алгоритм достаточно сложен, и мы знаем, что он неисправен, далеко не всегда тесты помогут выявить ошибку.
L>Если вы подозреваете, что в алгоритме есть баг, просто пишете тест, воспроизводящий условия, при котором, как вы подозреваете, алгоритм ломается. Это просто и быстро. Проверяете свои подозрения. В отладчике в общем случае это сделать уже невозможно.
Дьявол кроется в деталях выделенном.
Не всегда просто и нифига не быстро.
В моей практике это сложно и геморройно. И еще объемно.
Как правило это добрая сотня строк, чтобы сварганить минимально-необходимый набор данных. И еще сотня — чтобы проверить результат. Написание одного теста занимало по полдня без перекуров. Работа алгоритма же не сводится к булевскому значению. Из полученных данных еще надо выудить нечто, что можно проверить. И в каждом тесте это "нечто" будет разным.
Из-за этого у нас прижились рантайм проверки (ассерты) всего и вся и отладчик.
_____________________
С уважением,
Stanislav V. Zudin