Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »