Допустим, у вас есть ошибка, обнаруженная при функциональном тестировании довольно сложной части программного обеспечения.
Это может произойти из-за плохих / неожиданных данных в базе данных, кода среднего уровня или чего-то во внешнем интерфейсе.
Fine. Мы все были там.
У вас есть модульные тесты для записи и запуска, отладочные / логирующие операторы для вставки, SQL-операторы для записи и запуска, вещи, которые вы хотите проверить с помощью FireBug и т. Д.
Скажем, первым шагом является список потенциальных причин, которые вы хотите расследовать.
Теперь вы должны решить, в каком порядке делать вещи.
Вы:
- Исследовать причины в порядке, основанном на чувстве кишки?
- Расследовать причины, от самой быстрой проверки до самой медленной проверки?
- Предполагаете, что ошибка связана с этой функцией, и исследуете от наиболее специфичного для кода кода до наименее специфичного для кода кода?
- Предположим, что это чужая ошибка, и исследовать от самого общего кода до вашего конкретного кода?
- Что-то еще я не упомянул?
У меня такое ощущение, что первая стратегия наиболее часто используется. Возможно, только потому, что я не работаю со многими начинающими разработчиками, а более старшие разработчики, как правило, имеют приличную интуицию. Или, может быть, мы просто думаем, что у нас приличная интуиция, но на самом деле следует использовать более систематический подход.
Есть мысли?