
Вопрос 25
Отладка – это локализация и устранение ошибок. Она следует за успешным тестированием программного обеспечения.
Ниже приводятся рекомендации по организации отладки в форме заповедей
Заповедь 1. Считайте тестирование ключевой задачей разработки ПС, поручайте его самым квалифицированным и одаренным программистам; нежелательно тестировать свою собственную программу.
Заповедь 2. Хорош тот тест, для которого высока вероятность обнаружить ошибку, а не тот, который демонстрирует правильную работу программы.
Заповедь 3. Готовьте тесты как для правильных, так и для неправильных данных.
Заповедь 4. Избегайте невоспроизводимых тестов, документируйте их пропуск через компьютер; детально изучайте результаты каждого теста.
Заповедь 5. Каждый модуль подключайте к программе только один раз; никогда не изменяйте программу, чтобы облегчить ее тестирование.
Заповедь 6. Пропускайте заново все тесты, связанные с проверкой работы какой-либо программы ПС или ее взаимодействия с другими программами, если в нее были внесены изменения (например, в результате устранения ошибки).
Вопрос 26
Отладка – это локализация и устранение ошибок. Она следует за успешным тестированием программного обеспечения.
Наиболее распространенными и наименее эффективными для отладки являются так называемые методы ‘грубой силы’. К ним относят:
n отладку с использованием дампа памяти;
n отладку с использованием операторов печати по всей программе;
n отладку с использованием автоматических средств.
Дампы памяти практически невозможно использовать при программировании на языке высокого уровня, поэтому на этом способе отладки останавливаться не будем
Расстановка печатей в программе бессистемно вряд ли может ускорить отладку. Для системной расстановки нужны четкие представления о структуре алгоритма (схема работы программы или блок-схема).Серьезным недостатком этого метода отладки является тот факт, что печати, вставляемые в программу, изменяют ее, вследствие чего могут послужить дополнительным источником ошибок.
Использование автоматических средств отладки из этой группы методов наиболее предпочтительно.
Общей характеристикой методов ‘грубой силы’ является то, что они не требуют значительных умственных затрат и могут продолжаться бесконечно долго, если наряду с ними не применять более гибкие методы, к которым относятся:
n метод индукции;
n метод дедукции.
Название методов напоминают о криминалистике и не напрасно, ибо есть аналогия между этими методами и расследованием преступления.
Метод индукции включает:
1) определение данных тестирования, имеющих отношение к ошибке;
2) анализ от частного к общему позволит выявить закономерности в данных пункта 1);
3) в результате анализа (п.2) выдвигается гипотеза о причине ошибки;
4) для подтверждения гипотезы 3 разрабатывается один или больше тестов, которые должны либо подтвердить, либо опровергнуть гипотезу;
5) если дополнительные тесты подтверждают гипотезу, можно приступать к исправлению ошибки, а вот если не подтверждают, то требуется в лучшем случае возврат к п.3, а в худшем - к п.2.
Альтернативный метод дедукции заключается в:
1) перечисление возможных причин или гипотез:
2) использование данных тестирования для исключения некоторых возможных причин;
3) уточнение выбранной наиболее вероятной гипотезы, возможно с использованием дополнительных тестов:
4) доказательство выбранной гипотезы совпадает с п.4 и п.5 метода индукции.
Обратная трассировка- выполнение программы поэтапно задом на перед.