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

UptoLike

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

15
ляется как сумма 5
20
+ 5
19
+ ... + 5
1
= 10
14
, или 100 триллионам, где 5 –
число путей внутри цикла. Поскольку большинству людей трудно оце-
нить это число, приведем такой пример: если допустить, что на составле-
ние каждого теста мы тратим пять минут, то для построения набора тес-
тов нам потребуется примерно один миллиард лет.
20 раз
А
В
// i = 1; while (i<=20) {
// i ++; }
Рис. 1. Граф передач управления небольшой программы
Конечно, в реальных программах условные переходы не могут быть
взаимно независимы, т. е. число маршрутов исполнения будет несколько
меньше. С другой стороны, реальные программы значительно больше,
чем простая программа, представленная на рис. 1. Следовательно, исчер-
пывающее тестирование маршрутов, как и исчерпывающее входное тес-
тирование, не только невыполнимо, но и невозможно.
Второй слабый
пункт утверждения заключается в том, что, хотя ис-
черпывающее тестирование маршрутов является полным тестом и хотя
каждый маршрут программы может быть проверен, сама программа бу-
дет содержать ошибки. Это объясняется следующим образом. Во-первых,
исчерпывающее тестирование маршрутов не может дать гарантии того,
что программа соответствует описанию. Например, вместо требуемой
программы
сортировки по возрастанию случайно была написана про-
грамма сортировки по убыванию. В этом случае ценность тестирования
ляется как сумма 520 + 519 + ... + 51 = 1014, или 100 триллионам, где 5 –
число путей внутри цикла. Поскольку большинству людей трудно оце-
нить это число, приведем такой пример: если допустить, что на составле-
ние каждого теста мы тратим пять минут, то для построения набора тес-
тов нам потребуется примерно один миллиард лет.
                                          А
                                          // i = 1; while (i<=20) {




                  ≤20 раз




                                              // i ++; }

                                          В
                Рис. 1. Граф передач управления небольшой программы

     Конечно, в реальных программах условные переходы не могут быть
взаимно независимы, т. е. число маршрутов исполнения будет несколько
меньше. С другой стороны, реальные программы значительно больше,
чем простая программа, представленная на рис. 1. Следовательно, исчер-
пывающее тестирование маршрутов, как и исчерпывающее входное тес-
тирование, не только невыполнимо, но и невозможно.
     Второй слабый пункт утверждения заключается в том, что, хотя ис-
черпывающее тестирование маршрутов является полным тестом и хотя
каждый маршрут программы может быть проверен, сама программа бу-
дет содержать ошибки. Это объясняется следующим образом. Во-первых,
исчерпывающее тестирование маршрутов не может дать гарантии того,
что программа соответствует описанию. Например, вместо требуемой
программы сортировки по возрастанию случайно была написана про-
грамма сортировки по убыванию. В этом случае ценность тестирования
                                     15