
5.6. Решение традиционных проблем теории тестирования 89
S и L обращается к интерпретаторам IntS и IntL. По эт ому окрестностный критерий
(для завершения тестирования потребуется использование в сово купности в процессах
вычислений c(ϕ,p, ψ) на тестах d
i
всей информации о тексте программы c(ϕ,p,ψ)) в
данном случае равносилен следующему:
Набор тестов T
n
=[d
1
,...,d
n
] будет считаться достаточным для тести-
рования p с заданной спецификацией ps=(ϕ,ψ), если на данных тестах в
совокупности в процес сах:
—проверок предусловий ϕ d
i
;
—вычисления программы p d
i
;
—проверок постусловий ψ d
i
res
i
;
была использована вся доступная информация о тексте программы и о тек-
сте спецификации.
Окрестностное тестирование программы c (ϕ,p,ψ) является естественным спосо-
бом использования при тестировании программы p информации и о самой программе
и о формально з аданно й спецификации ps=(ϕ,ψ). Таким образом, в рамках окрест-
ностного тестирования естественно решается данная тра диционная проблема теории
тестирования (см. раздел 5.6). Это обеспечено тем, что в окрестносностном тестиро-
вании не предполагается никаких свойств о языке, на котором написана тестируемая
программа (в да нном случае—программа c(ϕ,p,ψ) на “составном” языке JobSL), кро-
ме следующих: тестируемая программа является текстом (кототорый в свою очередь
представлен данными языка R), а семантика языка описана интерпретатором, реализо-
ванным на языке R.
Теорема 45
Окрестностный критерий тестирования программы p с заданной спецификаци-
ей ps=( ϕ,ψ)является надежным. Пусть выполнено окрестностное тестирование про-
граммы c(ϕ,p,ψ)на конечном наборе тестов T
n
, результаты всех тестовых прогонов
res
i
="True", i = 1, . . . , n и выполнен критерий окрестностного тестирования для наб о-
ра тестов T
n
. Тогда, программа p частично корректна по отношению к предусловию ϕ
и постусловию ψ.
Доказательство
Необходимо доказать, что ни для каких данных d не может быть выполне-
но c(ϕ,p,ψ) d = "False". По условиям теоремы результаты всех тестовых про-
гонов res
i
="True", то есть фрагмент текста c( ϕ,p ,ψ), соответствующий j-терму
(EXIT (Const "False")) не использовался в вычислениях c(ϕ,p,ψ) на d
1
,. . . ,d
n
. В
силу определения IntJobSL следует, что в неподвижной окрестности O
c(ϕ,p,ψ)
n
указан-
ный фрагмент текста целиком покрыт c-переменной.
По определению 37, не зависимо от выбора теста d
n+1
выполнено
O
c(ϕ,p,ψ)
n+1
=O
c(ϕ,p,ψ)
n
.
То есть, независимо от выбора данных d
n+1
в вычислении c(ϕ,p,ψ) d
n+1
∗
⇒ res
n+1
никогда не потребуется вычислять значение j-терма (EXIT (Const "False")).
Итак, окрестностный критерий тестирования программы p при заданной специфи-
кации ps=(ϕ,ψ) не только полный (теорема 4 3), но и надежный. В силу того, что не
существует вычислимого полного непротиворечивого критерия, зависящего от набора
тестов, программы и спецификаций [28 ], выполнено следующее: