Составители:
Рубрика:
14
нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых,
разработка таких тестов противоречит экономическим требованиям. По-
скольку исчерпывающее тестирование исключается, нашей целью долж-
на стать максимизация результативности капиталовложений в тестирова-
ние (иными словами, максимизация числа ошибок, обнаруживаемых од-
ним тестом). Для этого мы можем рассматривать внутреннюю структуру
программы и делать некоторые
разумные, но, конечно, не обладающие
полной гарантией достоверности предположения (например, разумно
предположить, что если программа сочла треугольник 2, 2, 2 равносто-
ронним, то таким же окажется и треугольник со сторонами 3, 3, 3).
1.3.2. Тестирование программы как белого ящика
Стратегия белого ящика, или стратегия тестирования, управляемого
логикой программы, позволяет исследовать внутреннюю структуру про-
граммы. В этом случае
тестирующий получает тестовые данные путем
анализа логики программы (к сожалению, здесь часто не используется
спецификация программы).
Сравним способ построения тестов при данной стратегии с исчерпы-
вающим входным тестированием стратегии черного ящика. Непосвящен-
ному может показаться, что достаточно построить такой набор тестов, в
котором каждый оператор исполняется хотя бы один раз;
нетрудно пока-
зать, что это неверно. Не вдаваясь в детали, укажем лишь, что исчерпы-
вающему входному тестированию может быть поставлено в соответствие
исчерпывающее тестирование маршрутов. Подразумевается, что про-
грамма проверена полностью, если с помощью тестов удается осущест-
вить выполнение этой программы по всем возможным маршрутам ее по-
тока (графа) передач управления
.
Последнее утверждение имеет два слабых пункта. Один из них со-
стоит в том, что число не повторяющих друг друга маршрутов в про-
грамме – астрономическое. Чтобы убедиться в этом, рассмотрим пред-
ставленный на рис. 1 граф передач управления в простейшей программе.
Каждая вершина, или кружок, обозначают участок программы, содержа-
щий последовательность линейных
операторов, которая может заканчи-
ваться оператором ветвления. Дуги, оканчивающиеся стрелками, соот-
ветствуют передачам управления. По-видимому, граф описывает програм-
му из 10–20 операторов, включая цикл WHILE (или DO WHILE), кото-
рый исполняется не менее 20 раз (на рисунке показан темным цветом).
Внутри цикла имеется несколько операторов IF (на рисунке соответст-
вующие узлы графа изображены пустыми
кружками). Для того чтобы оп-
ределить число неповторяющихся маршрутов при исполнении програм-
мы, подсчитаем число неповторяющихся маршрутов из точки A в B в
предположении, что все приказы взаимно независимы. Это число вычис-
нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых, разработка таких тестов противоречит экономическим требованиям. По- скольку исчерпывающее тестирование исключается, нашей целью долж- на стать максимизация результативности капиталовложений в тестирова- ние (иными словами, максимизация числа ошибок, обнаруживаемых од- ним тестом). Для этого мы можем рассматривать внутреннюю структуру программы и делать некоторые разумные, но, конечно, не обладающие полной гарантией достоверности предположения (например, разумно предположить, что если программа сочла треугольник 2, 2, 2 равносто- ронним, то таким же окажется и треугольник со сторонами 3, 3, 3). 1.3.2. Тестирование программы как белого ящика Стратегия белого ящика, или стратегия тестирования, управляемого логикой программы, позволяет исследовать внутреннюю структуру про- граммы. В этом случае тестирующий получает тестовые данные путем анализа логики программы (к сожалению, здесь часто не используется спецификация программы). Сравним способ построения тестов при данной стратегии с исчерпы- вающим входным тестированием стратегии черного ящика. Непосвящен- ному может показаться, что достаточно построить такой набор тестов, в котором каждый оператор исполняется хотя бы один раз; нетрудно пока- зать, что это неверно. Не вдаваясь в детали, укажем лишь, что исчерпы- вающему входному тестированию может быть поставлено в соответствие исчерпывающее тестирование маршрутов. Подразумевается, что про- грамма проверена полностью, если с помощью тестов удается осущест- вить выполнение этой программы по всем возможным маршрутам ее по- тока (графа) передач управления. Последнее утверждение имеет два слабых пункта. Один из них со- стоит в том, что число не повторяющих друг друга маршрутов в про- грамме – астрономическое. Чтобы убедиться в этом, рассмотрим пред- ставленный на рис. 1 граф передач управления в простейшей программе. Каждая вершина, или кружок, обозначают участок программы, содержа- щий последовательность линейных операторов, которая может заканчи- ваться оператором ветвления. Дуги, оканчивающиеся стрелками, соот- ветствуют передачам управления. По-видимому, граф описывает програм- му из 10–20 операторов, включая цикл WHILE (или DO WHILE), кото- рый исполняется не менее 20 раз (на рисунке показан темным цветом). Внутри цикла имеется несколько операторов IF (на рисунке соответст- вующие узлы графа изображены пустыми кружками). Для того чтобы оп- ределить число неповторяющихся маршрутов при исполнении програм- мы, подсчитаем число неповторяющихся маршрутов из точки A в B в предположении, что все приказы взаимно независимы. Это число вычис- 14
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »