Forráskód Böngészése

Загрузить файлы 'Лекции/Отладка'

u21levinsas 1 éve
szülő
commit
95deee3754
1 módosított fájl, 111 hozzáadás és 0 törlés
  1. 111 0
      Лекции/Отладка/Debugging_LVS.md

+ 111 - 0
Лекции/Отладка/Debugging_LVS.md

@@ -0,0 +1,111 @@
+**Отладка**
+
+Отладка, или debugging, - это поиск (локализация), анализ и устранение
+ошибок в программном обеспечении, которые были обнаружены в ходе
+тестирования.
+
+**Типы ошибок**
+
+**Ошибки компиляции**
+
+Это простые ошибки, которые обнаруживаются в скомпилированных языках
+программирования компилятором (программой, преобразующей текст на языке
+программирования в набор машинных кодов). Если компилятор показывает
+несколько ошибок, отладка кода начинается с исправления самой первой,
+поскольку она может быть причиной других.
+
+**Ошибки компоновки**
+
+Ошибки связаны с разрешением внешних ссылок. Определяет компоновщик
+(редактор ссылок) при объединении программных модулей. Простым примером
+является ситуация, когда необходимо получить доступ к подпрограмме
+другого модуля, но она не найдена во время компоновки. Ошибки также
+легко найти и исправить.
+
+**Ошибки выполнения (RUNTIME Error)**
+
+Ошибки, обнаруживаемые операционной системой, оборудованием или
+пользователями при выполнении программы. Они считаются непредсказуемыми
+и проявляются после успешной компиляции и компоновки.
+
+**Ошибки определения данных или неправильное определение исходных
+данных.**
+
+**К ним относятся:**
+
+**- Ошибки преобразования;**
+
+**- Ошибки данных;**
+
+**- Ошибки перезаписи.**
+
+**Логические ошибки**. Они могут возникать из-за ошибок, которые были
+допущены при выборе методов, разработке алгоритмов, определении
+структуры данных и кодировании модуля.
+
+В эту группу входят:
+
+**Ошибки неправильного использования переменных.** К ним относятся
+неправильный выбор типов данных, использование индексов, выходящих за
+рамки определения массивов, использование переменных перед присвоением
+переменной начального значения, нарушения соответствия типов данных;
+
+**Ошибки вычислений.** Это некорректная работа с переменными,
+некорректное преобразование типов данных в процессе расчета;
+
+**Некорректная реализация логики в программировании.**
+
+**Ошибки накопления погрешностей.** Они могут возникать при неправильном
+округлении, игнорировании ограничений битовой сетки, использовании
+приближенных методов расчета и т.д.
+
+**Методы отладки ПО**
+
+**Метод ручного тестирования**
+
+Отладка программы заключается в тестировании вручную с использованием
+набора тестов, при работе с которым была допущена ошибка. Несмотря на
+свою эффективность, метод нельзя использовать для больших программ или
+программ со сложными вычислениями. Ручное тестирование используется как
+неотъемлемая часть других методов отладки.
+
+**Метод индукции**
+
+Основой отладки системы является тщательный анализ проявлений ошибки.
+Это могут быть сообщения об ошибках или неверные результаты вычислений.
+Например, если компьютер зависает во время выполнения программы, то для
+того, чтобы найти фрагмент проявления ошибки, нужно проанализировать
+недавние действия пользователя. На этапе отладки программы строятся
+гипотезы, каждая из них проверяется. Если гипотеза подтверждается,
+информация об ошибке детализируется, если нет, выдвигаются новые.
+
+Вот как выглядит процесс:
+
+![Процесс отладки кода](./image1.png){width="2.4298611111111112in"
+height="4.250659448818897in"}
+
+Важно, чтобы выдвинутая гипотеза объясняла все проявления ошибки. Если
+объясняется только часть из них, то либо гипотеза неверна, либо ошибок
+несколько.
+
+**Метод дедукции**
+
+Сначала эксперты предполагают множество причин, по которым могла
+возникнуть ошибка. Затем они анализируют их, исключают те, которые
+противоречат имеющимся данным. Если все причины были исключены,
+проводится дополнительное тестирование. В обратном случае пытаются
+доказать наиболее вероятную причину.
+
+![отладка дедукцией](./image2.png){width="3.5347222222222223in"
+height="3.429180883639545in"}
+
+**Метод обратного отслеживания**
+
+Это эффективно для небольших программ. Все начинается с точки, где
+выводится неверный результат. Для точки выдвигается гипотеза о значениях
+основных переменных, которые могли бы привести к ошибке. Далее,
+основываясь на этой гипотезе, делаются предположения о значениях
+переменных в предыдущей точке. Процесс продолжается до тех пор, пока не
+будет обнаружена ошибка.
+
+Литература: https://blog.skillfactory.ru/glossary/otladka-debugging/