правило, опираются на аксиоматический подход к формализации семантики языков программирования. Аксиоматическая семантика языка программирования представляет собой совокупность аксиом и правил вывода. С помощью аксиом задается семантика простых операторов языка (присваивания, ввода-вывода, вызова процедур). С помощью правил вывода описывается семантика составных операторов или управляющих структур (последовательности, условного выбора, циклов). Среди этих правил вывода надо отметить правило вывода для операторов цикла, так как оно требует знания инварианта цикла (формулы, истинность которой не изменяется при любом прохождении цикла).
Наиболее известным из методов доказательства частичной корректности программ является метод индуктивных утверждений, предложенный Флойдом и усовершенствованный Хоаром. Один из важных этапов этого метода — получение аннотированной программы. На этом этапе для синтаксически правильной программы должны быть заданы утверждения на языке логики предикатов первого порядка: входной предикат; выходной предикат.
Эти утверждения задаются для входной точки цикла и должны характеризовать семантику вычислений в цикле.
Доказательство неистинности условий корректности свидетельствует о неправильности программы или ее спецификации, или программы и спецификации.
По влиянию на результаты обработки информации к надежности и устойчивости программного обеспечения близка и
Наиболее простыми методами оценки надежности программного обеспечения являются эмпирические модели, основанные на опыте разработки программ: если до начала тестирования на 1000 операторов приходится 10 ошибок, а приемлемым качеством является 1 ошибка, то в ходе тестирования надо найти:
Более точна модель Холстеда: N ошибок = N операторов * log2(N операторов — N операндов),
где N операторов — число операторов в программе; N операндов — число операндов в программе.
Эмпирическая модель фирмы IBM:
N ошибок = 23 M(10) + 2 M(1),
где M(10) — число модулей с 10 и более исправлениями; M(1) — число модулей с менее 10 исправлениями.
Если в модуле обнаружено более 10 ошибок, то его программируют заново.
По методу Милса в разрабатываемую программу вносят заранее известное число ошибок. Далее считают, что темпы выявления ошибок (известных и неизвестных) одинаковы.
11.3. СВЯЗЬ ПРОЦЕССОВ ТЕСТИРОВАНИЯ С ПРОЦЕССОМ ПРОЕКТИРОВАНИЯ
Из рис. 11.2 видно, что ошибки на ранних этапах проекта исчерпывающе могут быть выявлены в самом конце работы.
Тестирование программ охватывает ряд видов деятельности:
• постановку задачи;
• проектирование тестов;
• написание тестов;
• тестирование тестов;
• выполнение тестов;
• изучение результатов тестирования.
Здесь наиболее важным является проектирование тестов.
Итак, тестирование — это процесс выполнения программы с целью обнаружения ошибок.
11.4. ПОДХОДЫ К ПРОЕКТИРОВАНИЮ ТЕСТОВ
Рассмотрим два самых противоположных подхода к проектированию тестов.
Сторонник первого подхода ориентируется только на
При первом подходе обнаружение всех ошибок в программе является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возможные наборы входных данных. Следовательно, приходим к выводу, что для исчерпывающего тестирования программы требуется бесконечное число тестов, а значит, построение исчерпывающего входного теста невозможно. Это подтверждается двумя аргументами: во-первых, нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых, разработка таких тестов противоречит экономическим требованиям. Поскольку исчерпывающее тестирование исключается, нашей целью должна стать максимизация результативности капиталовложений в тестирование (максимизация числа ошибок, обнаруживаемых одним тестом). Для этого необходимо рассматривать внутреннюю структуру программы и делать некоторые разумные, но, конечно, не обладающие полной гарантией достоверности предположения.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии