Теория поиска ошибок :)

Создатель: Слава Кирлан

Преамбула Неточности имеется неизменно. В случае если неточностей нет — это значит, что их еще не нашли. В случае если в программе не отыскано ни одной неточности – значит эта программа никому не нужна, и никто ей не пользуется :).

Ошибаться не стыдно и хорошо (в случае если мы, само собой разумеется, не говорим о сознательном вредительстве :) ). Не хорошо не пробовать их исправить. Совсем безрадостно, в случае если исправить их запрещено.

Но тут уж остается лишь согласиться и «учесть-на-будушее», если оно (будущее) имеется.

Постараюсь изложить тут собственные мысли о том, как бороться с неточностями. Это всего лишь мои мысли, и не настаиваю что они совсем уж верные. Быть может, я где-то у кого-то что-то слямзил на данный счет, но, честное слово сделал, это подсознательно и не нужно меня обвинять в плагиате (по крайней мере, осознанном). Достаточно где, у кого и что (исправлюсь :) ).

Сходу хочется заявить, что имеется такие не хорошие «плавающие» неточности (они другими словами, то их нет, при видимых однообразных условиях). Безрадосно, в то время, когда на них нарываешься и бороться с ними весьма сложно – тут нужен имеющийся опыт, бубен и интуиция.

Но да и то, эта неточность не берется из ни откуда, и у нее имеется собственная обстоятельство, лишь до обстоятельства данной весьма сложно докопаться.

И еще, крайне важно: перед тем как что-то исправлять в базе (программе) постоянно делайте копию. Не имеет значения, в каком состоянии на данный момент база – копия должна быть неизменно перед любым трансформацией (Не поверите, но обстановку неизменно возможно ухудшить).

1. А был ли мальчик? Первое о чем необходимо поразмыслить, в случае если говорят что имеется неточность, а имеется ли она? Не требуется сходу открывать конфигуратор (исходный код программы) и разбирать запрос. Необходимо попросить пользователя продемонстрировать эту неточность.

В случае если, по некой причине, продемонстрировать он ее не имеет возможности – досконально опросить в какой момент появляется неточность, и постараться ее воспроизвести (предположим, на тестовой базе).

В общем, основное любым методом заметить эту неточность собственными глазами, либо свято поверить, что она имеется.

2. Разделяй и властвуй Неточность имеется (заметили, убедились, поверили). Она стабильная (повторяется из раза в раз). Сейчас мы пробуем ее «упростить».

В различных обстановках делаем по различному, но сущность одна – уменьшить пространство поиска.

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

В случае если нет, значит неточность во втором полугодии (лучше проверить это). Позже последнее полугодие делим на кварталы и т.д. и т.п. – ветхий проверенный метод.

2.2 Второй пример при обмене данными через WEB-сервер в конечную программу попадают неправильные эти. Тут режем по методу:

  1. Запрос формируется в исходной базе
  2. Эти перегоняются по сетке в базу приемник
  3. База приемник приобретает эти и записывает их

Думаем что любой этап «Тёмный ящик» со своим входом и выходом. Вот и контролируем выходы и эти входы (в последовательности кому как нравится).

  1. Наблюдаем в исходной базе, что выдает запрос. Для этого пользуемся отладчиком, консолью запросов, всем чем угодно, но как раз в данной базе (что бы отсечь все другие этапы)
  2. Наблюдаем, как трудится web-сервис (сопоставляем что ему отдает запрос, как он эти сведенья преобразовывает, и приобретаем ли мы на входе в базу приемник то самое что отправилось из базы источника)
  3. Наблюдаем, как база приемник разбирает полученные эти. Для этого возможно создать (сохранить) отдельный файл обмена, и подавать ее раз за разом в качестве данных (тем самым мы снова таки исключаем два вторых этапа)

2.3 В случае если у нас сложный многотабличный запрос – беспощадно его режем. Любой самый сложный запрос всегда складывается из конечного количества мелких и легких запросиков, каковые весьма легко разбирать. Убедившись, что отдельные запросики возвращают «верные» эти, начинаем потихонечку их склеивать в громадный и сложный (бережно, поочередно), и любой раз наблюдаем – верный ли итог мы приобретаем

64. Методы поиска 1 Wire устройств (Урок 55. Теория)


Похожие заметки:

Понравилась статья? Поделиться с друзьями: