Access 2002

Функция runtests


Выполнив тесты, функция RunTests выводит в окне отладки общее время выполнения каждого теста в миллисекундах и процентное отношение времени выполнения более быстрой функции ко времени выполнения более медленной. Например, результат работы функции RunTests может быть таким:

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

Функция должна быть методом (общедоступной функцией) класса, включающего все ваши тесты. (В приведенном примере класс называется Optirm- zingTests.)

Для каждого теста вы должны предоставить две функции с одинаковыми именами. К имени предположительно более медленной из них должна быть добавлена буква «а», а к имени более быстрой — буква «Ь». Например, в тесте Testl сравниваются функции Testla и Testlb.

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

Если вы внимательно ознакомились с нашей методикой тестирования, то должны были заметить один ее недостаток: на выполнение самого цикла For.Next уходит какое-то время, увеличивающее результат выполнения каждой из тестовых функций. Это дополнительное время несколько искажает результат сравнения тестов. Предположим, более медленная функция тестировалась 1000 миллисекунд, а более быстрая — 500. Функция RunTests покажет, что вторая функция работает на 50% быстрее первой. На самом же деле, если сам цикл занял, к примеру, 50 миллисекунд, результатами тестов являются 450 и 950 миллисекунд, а их отношение составляет 47%. Поскольку это значение всегда меньие возвращаемого функцией RunTests, то есть наша оценка несколько пессимистическая, мы считаем, что эта маленькая погрешность не влияет на результат тестирования.

Комментарии закрыты