Лекция: МЕТОД ТЕСТИРОВАНИЯ

Последний метод отладки, основанный на «обдумы­вании», заключается в использовании тестов. Этот метод может показаться несколько странным, так как в начале главы отмечались различия между отладкой и тестиро­ванием Однако существуют два типа тестов: тесты для тестирования, целью которых является обнаружение за­ранее не определенной ошибки, и тесты для отладки, цель которых — обеспечить программиста информацией, по­лезной для выявления местонахождения подозреваемой ошибки. Тесты для тестирования имеют тенденцию быть «обильными» (небольшим числом тестов пытаются по­крыть большое число условий), а тесты для отладки пы­таются покрыть только одно условие или небольшое чис­ло условий.

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


27. Проблема ограниченности вычислительных систем. Возможности преодоления некоторых типов ограничений.

 

Начнем с «размера» вычислений, т. е. с количества информации и числа выполняемых операций. Существенно, что этот размер велик, так как если бы он оказался малым, то легче было бы обойтись без машины и произвести вычисления вручную. Право вычислительной машины на существование, ее полезность именно в том и состоит, что она способна выполнять большие вычисления, которые непосильны нам, людям. Мы хотим, чтобы машина делала то, чего мы сами никогда не смогли бы сделать, и параметры современной вычислительной техники таковы, что самые заурядные машинные вычисления выходят далеко за пределы нашего «безоружного» воображения.

Тем не менее, мы должны организовать счет таким способом, чтобы, маневрируя нашими ограниченными возможностями, обеспечить нужные результаты вычислений. Организация счета включает в себя составление программы; здесь мы сталкиваемся с новой проблемой размера, а именно с проблемой длины текста программы, и с этим также следует полностью разобраться. Нам следует осознать тот факт, что наша способность читать или писать текст в очень большой степени зависит от размера этого текста. В телефонной книге моей страны информация об абонентах группируется по городам или деревням, а в пределах каждой такой группы список абонентов упорядочивается по фамилиям в алфавитном порядке. Сам я живу в маленьком селении, и если знаю телефонный номер, то мне достаточно просмотреть несколько колонок, чтобы выяснить, кому он принадлежит, но в большом городе то же самое оказалось бы сложной задачей обработки данных!

По аналогии мне хотелось бы привлечь внимание читателя к тому факту, что «ясность» можно определить количественными характеристиками; этот факт, как это ни странно, не учитывается многими математиками. Теорема, утверждающая некое следствие из заполняющего десять страниц набора условий, вряд ли окажется практически полезной, если при каждом применении теоремы требуется проверять все эти условия. В евклидовой геометрии теорема Пифагора справедлива для любых трех точек A, B и C, таких, что через A и С можно провести прямую, перпендикулярную прямой, соединяющей В и С. Многие ли математики отдают себе отчет в том, что эта теорема сохраняет силу в тех случаях, когда некоторые или все точки A, В, С совпадают. Тем не менее, этим в значительной мере объясняется удобство применения теоремы Пифагора.

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


 

28. Понятие правильности программ. Доказательство правильности программ.

еще рефераты
Еще работы по информатике