![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Функциональное тестирование и анализ
Функции, на которые иногда ссылаются как на функциональные возможности, — это именно то, разработку чего оплачивают пользователи. Часто в литературе, посвя щенной торговле и маркетингу, эти функции представляют в виде маркированных перечней, которые сравниваются с аналогичными перечнями конкурирующих про дуктов. Эти перечни функций продукта определяются на этапе разработки требова ний и тщательно отслеживаются в ходе выполнения этапов проектирования и коди рования, например, в матрице прослеживаемости требований (Requirements Trace-ability Matrix, RTM). Эти функции являются побочным результатом так называемого пошагового уточнения, и они представляют собой фрагменты исходного кода, обра зующие модули или объекты.
Функциональный анализ представляет собой действия по описанию характери стик функции, влияющих на процесс ее проектирования и тестирования. Предполо жим, что имеется разложение в ряд Тейлора для функции y(x;)=sin(x) (см. раздел " Символьное выполнение" в главе 9). На этапах проектирования следовало бы вы полнить функциональный анализ для определения точности вычисления разложения как в плане указания размера слова, требуемого для хранения используемых пере менных с плавающей точкой, так и в плане любых промежуточных результатов. На пример, для некоторых функций можно показать, что точность частичного разложе ния для переменной у(х) будет повышаться с увеличением количества членов ряда Тейлора. Важно отметить, что если на этапах проектирования функциональный ана лиз не выполнялся, его придется выполнить во время подготовки к динамическому тестированию. Организации, откладывающие оценку точности алгоритма до момен та начала динамического тестирования, не могут быть отнесены к тем, которые ис поведуют стратегию быстрого тестирования. В организациях, взявших на вооруже ние методику быстрого тестирования, во время разработки тестовых случаев, подго товки тестовых данных, сценариев тестирования и технологий обработки результа тов тестов специалисты, ответственные за подготовку к динамическому тестирова нию, просто ссылаются на документацию по функциональному анализу. 214 Часть П. Технологии быстрого тестирования и советы
ПРИМЕР: НЕОБНАРУЖЕННОЕ ПЕРЕПОЛНЕНИЕ ПРИ ВЫПОЛНЕНИИ ОПЕРАЦИЙ С ПЛАВАЮЩЕЙ ТОЧКОЙ (ГЭРИ КОББ)
Автор вспоминает ситуацию, когда ему довелось столкнуться с реализацией метода ко-нечных разностей для решения системы дифференциальных уравнений в частных произj водных, причем пришлось вплотную заняться функциональным анализом влияния округ-ления и усечения на промежуточные результаты. В ходе этого исследования выяснилось
что исходный код вычисляет интеграл по сетке значений переменной с именем mass (масса). По мере добавления отдельных масс, промежуточный результат становился на столько большим, что при достижении приблизительно середины сетки добавление, ос-тальных масс переставало влиять на значение суммы, которое.представлялось значени ем с плавающей точкой. Это было связано с быстрым увеличением показателя степени промежуточной суммы, что приводило к тому, что инструкция выравнивания |показателя степени (используемая при работе со значениями с плавающей точкой) компьютера пренебрегала массами, показатели степени которых были малы по сравнению с показа-телем степени промежуточной суммы. К упомянутому функциональному анализупри ШЛось прибегнуть, когда тестирование позволило сделать вывод что программа будет| выдавать различные результаты при вылолнении ее с использованием инструкции работы со значениями с плавающей точкой одинарной и двойной точности либо при Запуске на компьютерах, в среде которых длины слов отличаются.
|