|
^ тестировании программных средств, работающих с цифровыми данными, необходимо принимать во внимание три главных источника ошибок в численных результатах. Во-первых, это ошибки, связанные с первоначальными данными (исходные ошибки), примерами которых являются ошибки ввода, а также ошибки, связанные с ограниченной точностью измерения значений переменных (унаследованные ошибки). Последний тип ошибок связан с неопределенностью значений входных переменных и не может быть устранен никакими ухищрениями в вычислительном процессе.
Вторым источником неверных результатов являются так называемые ошибки аналитического усечения, когда бесконечный процесс математических вычислений заменяется конечным алгоритмом. Примером может служить использование вместо некоторой бесконечной числовой последовательности только шести ее членов.
Третий источник ошибок в результатах — это ошибки округления, вызываемые ограниченной точностью выполнения арифметических операций в машине. На величину таких ошибок влияют разрядность машины и основание системы счисления, в которой представляются числа в машине. Ошибки округления называются также генерируемыми или порождаемыми ошибками в связи с тем, что они вносятся машинной программой при правильных входных данных. Проверка программ на отсутствие ошибок округления производится путем использования данных, для которых заранее известны результаты обработки, и сопоставления этих результатов с теми, которые выдаются машиной в ходе тестирования. Эталонные результаты определяются либо на основе некоторых теоретических соображений, либо путем выполнения вычислений на другой машине, обладающей большей точностью представления чисел. Вопросы точности арифметических операций особенно важно учитывать при построении тестов, поскольку почти правильные программы ведут себя особенно коварно.
Процесс сопоставления машинных результатов с заранее заданными (до начала тестирования) называется прямым анализом ошибок. Однако прямой анализ не всегда возможен или целесообразен. Иногда бывает удобнее показать, что полученное машиной решение задачи является точным решением исходной задачи. Такой способ действий называется обратным анализом ошибок. В этом случае измеряются не расхождения между решением математической задачи и заранее определенным результатом, а различия между поставленной и решенной задачами. В качестве примера можно привести процедуру нахождения обратных значений. Мерой близости решения к точному может в этом случае служить величина произведения исходного числа на обратное. Тем, кто интересуется проблемами программирования математических вычислений, можно рекомендовать книгу под редакцией Дж. Раиса1.
⇐5.11. Примеры тестов || Оглавление || 5.13. Модули⇒
|