Методы тестирования программного обеспечения. Степанченко И.В. - 43 стр.

UptoLike

Составители: 

45
покрывают результаты всех условий, но только два из четырех результатов
решений (они оба покрывают путь аbе и, следовательно, не выполняют ре-
зультат истина первого решения и результат ложь второго решения).
3.1.4. Покрытие решений/условий
Очевидным следствием из этой дилеммы является критерий, на-
званный покрытием решений/условий. Он требует такого
достаточного
набора тестов, чтобы все возможные результаты каждого условия в
решении, все результаты каждого решения выполнялись, по край-
ней мере, один раз и каждой точке входа передавалось управление,
по крайней мере, один раз.
Недостатком критерия покрытия решений/условий является невоз-
можность его применения для выполнения всех результатов всех усло-
вий;
часто подобное выполнение имеет место вследствие того, что опре-
деленные условия скрыты другими условиями. В качестве примера рас-
смотрим приведенную на рис. 4 схему передач управления в коде, гене-
рируемым компилятором языка, программы рис. 3.
A>1 B=0
A=2
X>1
X=X/A
X=X+1
H
J
K
True
False
False
I
True
True
True
False
False
Рис. 4. Блок-схема машинного кода программы, изображенной на рис. 3
Многоусловные решения исходной программы здесь разбиты на от-
дельные решения и переходы, поскольку большинство компьютеров не
покрывают результаты всех условий, но только два из четырех результатов
решений (они оба покрывают путь аbе и, следовательно, не выполняют ре-
зультат истина первого решения и результат ложь второго решения).
                   3.1.4. Покрытие решений/условий
        Очевидным следствием из этой дилеммы является критерий, на-
званный покрытием решений/условий. Он требует такого достаточного
набора тестов, чтобы все возможные результаты каждого условия в
решении, все результаты каждого решения выполнялись, по край-
ней мере, один раз и каждой точке входа передавалось управление,
по крайней мере, один раз.
     Недостатком критерия покрытия решений/условий является невоз-
можность его применения для выполнения всех результатов всех усло-
вий; часто подобное выполнение имеет место вследствие того, что опре-
деленные условия скрыты другими условиями. В качестве примера рас-
смотрим приведенную на рис. 4 схему передач управления в коде, гене-
рируемым компилятором языка, программы рис. 3.

                   H
                             True                   True       I
                    A>1                     B=0

                        False                 False      X=X/A
                    J
                              True
                    A=2

                        False
                  K
                                True
                    X>1

                        False                            X=X+1



       Рис. 4. Блок-схема машинного кода программы, изображенной на рис. 3

    Многоусловные решения исходной программы здесь разбиты на от-
дельные решения и переходы, поскольку большинство компьютеров не
                                       45