Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тестирование программы как черного ящика



Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называ­емой стратегией черного ящика, тестированием с управ­лением по данным, или тестированием с управлением по входу-выходу. При использовании этой стратегии программа рассматривается как черный ящик. Ины­ми словами, такое тестирование имеет целью выяс­нение обстоятельств, в которых поведение программы не соответствует ее спецификации. Тестовые же данные используются только в соответствии со спецификацией программы (т. е. без учета знаний о ее внутренней струк­туре),

При таком подходе обнаружение всех ошибок в про­грамме является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возмож­ные наборы входных данных. Необходимость выбора именно этого критерия иллюстрируется следующим при­мером Если в той же задаче о треугольниках один тре­угольник корректно признан равносторонним, нет ника­кой гарантии того, что все остальные равносторонние треугольники так же будут корректно идентифицирова­ны. Так, для треугольника со сторонами 3842, 3842, 3842 может быть предусмотрена специальная проверка и он считается неравносторонним. Поскольку программа представляет собой черный ящик, единственный способ удовлетворения приведенному выше критерию — пере­бор всех возможных входных значений.

Таким образом, исчерпывающий тест для задачи о треугольниках должен включать равносторонние тре­угольники с длинами сторон вплоть до максимального целого числа. Эго, безусловно, астрономическое число, но и оно не обеспечивает полноту проверки. Вполне веро­ятно, что останутся некоторые ошибки, например про­грамма может представить треугольник со сторонами 3, 4, 5 неравносторонним, а со сторонами 2, А, 2— равно­сторонним. Для того, чтобы обнаружить подобные ошиб­ки, нужно перебрать не только все разумные, но и все вообще возможные входные наборы. Следовательно, мы приходим к выводу, что для исчерпывающею тестиро­вания задачи о треугольниках требуется бесконечное чис­ло тестов.

Если такое испытание представляется сложным, то еще сложнее создать исчерпывающий тест для большой программы Образно говоря, число тестов можно оценить «числом, большим, чем бесконечность». Допустим, что делается попытка тестирования методом черного ящика компилятора с Кобола. Для построения исчерпывающе­го теста нужно использовать все множество правильных программ на Коболе (фактически их число бесконечно) И все множество неправильных программ (т. е действи­тельно бесконечное число), чтобы убедиться в том, что компилятор обнаруживает все ошибки. Только в этом случае синтаксически неверная программа не будет ком­пилирована. Если же программа имеет собственную па­мять (например, операционная система, база данных или система резервирования билетов), то дело обстоит еще хуже В таких программах исполнение команды (напри­мер, задания, запроса в базу данных, выполнение резер­вирования) зависит от того, какие события ей предшест­вовали, т. е от предыдущих команд. Здесь следует пере­брать не только все возможные команды, но и все их возможные последовательности.

Из изложенного следует, что построение исчерпыва­ющего входного теста невозможно. Это подтверждается двумя аргументами: во первых, нельзя создать тест, га­рантирующий отсутствие ошибок; во вторых, разработ­ка таких тестов противоречит экономическим требовани­ям. Поскольку исчерпывающее тестирование исключает­ся, нашей целью должна стать максимизация результа­тивности капиталовложений в тестирование (иными сло­вами, максимизация числа ошибок, обнаруживаемых одним тестом). Для этого мы можем рассматривать внутреннюю структуру программы и делать некоторые разумные, но, конечно, не обладающие полной гарантией достоверности предположения (например, разумно пред­положить, что если программа сочла треугольник 2, 2, 2 равносторонним, то таким же окажется и треугольник со сторонами 3, 3, 3) Этот вопрос обсуждается в гл. 4 при изучении стратегии построения тестов





Дата публикования: 2015-01-26; Прочитано: 489 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...