Реклама:

.■ Повышение затрат на разработку Вариантов программ компенсируется снижением затрат на тестирование каждой из них, а главное, повышением достигаемой корректности. Наличие вариантов программы облегчает получение результатов тестирования, которые можно рассматривать как эталонные, тем более, что программирование на языках высокого уровня исключает некоторые типы ошибок. На практике применяется, программирование с ЛГ < 2. Практически неизвестны случаи, когда реальная программа создавалась в трех и более ваг~ риантах Имеются примеры 1751 успешного применения Двойного программирования на алгоритмическом языке АПЛ при подготовке тестов, для программ на Фортране. Исследованы преимущества моделирования алгоритмов на АПЛ по сравнению с языками ПЛ/1 и Паскаль. Однако пока отсутствуют оценки эффективности этого метода. '

• Перечисленные методы^ систематического тестирования направлены иа обеспечение выполнения программами основных функций, определенных техническим заданием. Каждый из методов позволяет обнаруживать ошибки определенных классов и наиболее полезен при некоторых условиях/Ни один иа методов не может обеспечить эффективное тестирование всех, классов программ в любой области их применения* Для оценки эффективности методов и рационального их применения целесообразно изучать характеристики ошибок, выявляемых каждым из них. Базируясь на статистике обнаружения ошибок' в. некоторых КП, можно создать методики упорядоченного тестирования для выявления такого же числа ошибок каждого типа во вновь создаваемых программах при минимальных суммарных затратах. При этом усилия на тестирование для ■ обнаружения ошибок должны распределяться в соответствии с частостью типов ошибок в ранее созданных КП. Для этого необходимо знать детальные характеристики ошибок в про* граммах, часть из которых {рассмотрена ниже.

Основные характеристики ошибок в программах. Неоднократно экспериментально установлено, что в любом сложном1 КП в процессе эксплуатации обнаруживаются ошибки, даже> если .проведено самое тщательное тестирование. Тем самым утверждается объективная реальность, заключающаяся в невозможности формализовать и обеспечить абсолютную полноту всех эталонных значений, а также провести всеобъемлющее исчерпывающее тестирование и гарантировано устранить' все ошибки в сложных КП- Важной особенностью тестирования программ является невозможность получения полностью определенной абсолютной корректной программы,. которую можно было бы использовать в качестве эталона без ошибок для сравнения с ней создаваемой программы. Поэтому при тестировании первоначально обнаруживаются вторичные ошибки, которые являются отклонениями некоторых результатов функционирования Программ от предполагаемых эталонных значений. Тестирование для локализации ошибки позволяет, установить причину вторичной ошибки и выявить л е р-в и ч и у ю ошибку, подлежащую исправлению. .

Анализ многих проектов показывает 111, 50, 561, что до начала тестирования число/ошибок в сложных программах составляет порядка 1—2 % от общего числа объектных команд в программе, т. е. в КП объемом 100 тыс. команд в процессе тес^-тирования обычно выявляется 1—2 тыс. ошибок. При тщатель* ■ ном системном проектировании н программировании на язычках высокого уровня начальное число ошибок в несколько раз меньше. Самое тщательное тестирование сложных программ позволяет подучить программы с Вероятностью ошибки в каждой команде порядка. 1(И—10-в, т. е, несколько ошибок ■


⇐ Предыдущая страница| |Следующая страница ⇒