Реклама:

Некоторые последовательности операции определение —использование над переменными являются аномальными. Так, например, последовательное изменение переменной без промежуточного использования на некотором маршруте скорее всего содержит ошибку в программе. Для выявления подобных аномалий необходимо упорядочить вершины графа программы так, чтобы операция в вершине не выполнялась до тех пор, пока не выполнятся все предшествующие ей вершины. При наличии циклов пока нет способов для предсказания информации, достигающей вершии, при однократном прохождении через граф. Значительные трудности для выявления аномалий представляют вызываемые процедуры. В этом случае необходимо раскрывать процесс использования данных процедурами.

Тестирование корректности обработки каждой переменной и точности результатов вычислений. Когда показано, что сочетания данных и их области определения соответствуют корректному формированию маршрутов в программе, а также нет явных ошибок в последовательностях определения и использования каждой переменной, целесообразно провести тестирование корректности обработки каждой переменной и точности вычислительной части программы. Этот вид тестирования производится преимущественно с вещественными и целыми величинами во внутренней части их областей определения. Кроме того, может выполняться дополнительный контроль точности вычислений при граничных значениях, ранее использовавшихся для тестирования маршрутов по областям определения.

Множество тестовых значений для проверки вычислений при простых числовых переменных целесообразно строить упорядочение с учетом следующих правил:

входные тестовые данные в области гладкого изменения зависящих от них результатов должны принимать, по крайней мере, значения, близкие к наибольшим и наименьшим, а также одно-два промежуточных значения;

тестирование должно проводиться при всех особых значениях входных переменны х— в точках резкого возрастания или разрыва производных, при нулевом, единичном и предельно малых численных значениях;

входные тестовые значения должны обеспечивать проверку программы при выходных результатах, имеющих особые точки резкого изменения или разрыва производных;

если значения некоторой переменной зависят от значений другой перемеииой, то необходимо тестировать при особых значениях сочетаний переменных (равенство обеих переменных, малое и предельно большое их различие, нулевое и единичные значения).

Таким образом, для каждой простой числовой переменной, кроме трех точек вблизи и на границе области определения, обычно необходимо тестирование программы в 3—4 промежуточных и в 2—5 особых точках значений входных данных. При 10 входных переменных й сложных вычислениях в программном модуле для тестирования вычислений может потребоваться до 50 тестовых значений. Группируя и упорядочивая тестовые значения разных переменных, их общее количество можно сократить до 5—10 тестовых наборов.

Если каждая числовая переменная кодируется 2 байтами (2+1в значений), то полная совокупность значений 10 входных переменных составляет около 2,5 млн. В десяти тестовых наборах для 10 переменных охватывается только 100 значений. Следовательно, из всех значений переменных в их области определения при таком тестировании проверяется около 0,04% значений. Однако благодаря гладкости изменения переменных между особыми и граничными точками указанного количес-ства тестов может быть вполне достаточно. Исчерпывающее тестирование в таких случаях практически не достижимо и не це-цесообразно.


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