— готовьте тесты как для правильных, так и для неправильных данных;
— не тестируйте "с лету";
— детально изучайте результаты каждого теста;
— по мере обнаружения все большего числа ошибок в некотором модуле или программе, растет вероятность обнаружения в ней еще большего числа ошибок;
— тестируют программы лучшие умы;
— считают тестируемость главной задачей разработчиков программы;
— не изменяй программу, чтобы облегчить тестирование;
— тестирование должно начинаться с постановки целей.
Если в программе ставят комментарии на месте вызова модуля вместо использования заглушки, то исключают возможность проверки типов данных, а также часто забывают снимать комментарии. Для поиска "забытых" комментариев необходима трудоемкая отладка.
Среди приемов тестирования стоит выделить также так называемую
{$IFDEF DEBUG THEN}
…
{$ELSE}
…
{$ENDIF}
Лучше опишите глобальную переменную DebugLevel и программируйте условные отладочные печати:
var
DebugLevel: word; {0-нет ни одной отладочной печати,
чем больше значение, тем подробнее отладочная печать}
DebugFile: text; {файл отладочной печати}
DebugLevel:= 4; {задание уровня отладки}
if DebugLevel >= 3 then
WriteLn(DebugFile, 'Модуль:', 'MyModule, 'результат:');
Следует выделить следующие свойства программного обеспечения.
Корректность программного обеспечения — свойство безошибочной реализации требуемого алгоритма при отсутствии таких мешающих факторов, как ошибки входных данных, ошибки операторов ЭВМ (людей), сбои и отказы ЭВМ.
В интуитивном смысле под корректностью понимают свойства программы, свидетельствующие об отсутствии в ней ошибок, допущенных разработчиком на различных этапах проектирования (спецификации, проектирования алгоритма и структур данных, кодировании). Корректность самой программы понимают по отношению к целям, поставленным перед ее разработкой (т. е. это относительное свойство).
Устойчивость — свойство осуществлять требуемое преобразование информации при сохранении выходных решений программы в пределах допусков, установленных спецификацией. Устойчивость характеризует поведение программы при воздействии на нее таких факторов неустойчивости, как ошибки операторов ЭВМ, а также не выявленные ошибки программы.
Восстанавливаемость — свойство программного обеспечения, характеризующее возможность приспосабливаться к обнаружению ошибок и их устранению.
Надежность можно представить совокупностью следующих характеристик:
— целостностью программного средства (способностью его к защите от отказов);
— живучестью (способностью к входному контролю данных и их проверки в ходе работы);
— завершенностью (бездефектностью готового программного средства, характеристикой качества его тестирования);
— работоспособностью (способностью программного средства к восстановлению своих возможностей после сбоев).
Отличие понятия корректности и надежности программ состоит в следующем:
— надежность характеризует как программу, так и ее "окружение" (качество аппаратуры, квалификацию пользователя и т. п.);
— говоря о надежности программы, обычно допускают определенную, хотя и малую долю ошибок в ней и оценивают вероятность их появления.
Вернемся к понятию корректности. Очевидно, что не всякая синтаксически правильная программа является корректной в указанном выше смысле, т. е. корректность характеризует семантические свойства программ.
С учетом специфики появления ошибок в программах можно выделить две стороны понятия корректности:
— корректность как точное соответствие целям разработки программы (которые отражены в спецификации) при условии ее завершения или частичная корректность;
— завершение программы, т. е. достижение программой в процессе ее выполнения своей конечной точки.
В зависимости от выполнения или невыполнения каждого из двух названных свойств программы различают шесть задач анализа корректности:
1) доказательство частичной корректности;
2) доказательство частичной некорректности;
3) доказательство завершения программы;
4) доказательство не завершения программы;
5) доказательство тотальной (полной) корректности (т. е. одновременное решение 1-й и 3-й задач);
6) доказательство некорректности (решение 2-й или 4-й задачи). Методы доказательства частичной корректности программ, как
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии