Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, _hum_, Вы писали:
__>>>>это если есть зависание, а если внутри цикла стоит брейк, то будем долго и упорно ревьювить, где ж у нас что не так работает. L>>>При покрытии всех возможных сценариев наличие зависания вылезет при первом же прогоне тестов.
__>>вот-вот "всех возможных". а это возможно только для очень простых ситуаций.
L>А код и должен сводить эти ситуации к простым.
всегда ли это возможно... вот в чем вопрос
__>>к тому же вы не можете доказать, что покрыли все возможные сценарии, а значит, даже если тест пройден, не факт, что все равботает правильно.
L>Доказать? Гхм, я этот код написал, я знаю, какие сценарии мне нужно покрыть.
вы не поняли. я говорил о том, что вы используете методологию, когда если что-то работает не так, то смотрим, какой тест не пройден, и там ищем проблему.
но на деле может быть так, что ошибка появилась совсем в другом куске и проскользнула через другие тесты, так как вы не охватили все сценарии. а вы будете сидеть и чесать репу, что ж не так.
в этом случае спасет только пошаговое выполнение и сравнение на каждом шаге состояния — какое должно быть, и какое есть.
а вот если бы вы могли доказать, что все сценарии учли, то такая ситуация бы была невозможна.
__>>ну и сколько затрат времени и сил уходит на то, чтобы просчитать эти сценарии
L>Нисколько, это происходит автоматически.
это неправда. создание тестов — алгоритмически неразрешимая задача.