Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называемой стратегией черного ящика, тестированием с управлением по данным, или тестированием с управлением по входу-выходу. При использовании этой стратегии программа рассматривается как черный ящик. Иными словами, такое тестирование имеет целью выяснение обстоятельств, в которых поведение программы не соответствует ее спецификации. Тестовые же данные используются только в соответствии со спецификацией программы (т. е. без учета знаний о ее внутренней структуре),
При таком подходе обнаружение всех ошибок в программе является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возможные наборы входных данных. Необходимость выбора именно этого критерия иллюстрируется следующим примером Если в той же задаче о треугольниках один треугольник корректно признан равносторонним, нет никакой гарантии того, что все остальные равносторонние треугольники так же будут корректно идентифицированы. Так, для треугольника со сторонами 3842, 3842, 3842 может быть предусмотрена специальная проверка и он считается неравносторонним. Поскольку программа представляет собой черный ящик, единственный способ удовлетворения приведенному выше критерию — перебор всех возможных входных значений.
Таким образом, исчерпывающий тест для задачи о треугольниках должен включать равносторонние треугольники с длинами сторон вплоть до максимального целого числа. Эго, безусловно, астрономическое число, но и оно не обеспечивает полноту проверки. Вполне вероятно, что останутся некоторые ошибки, например программа может представить треугольник со сторонами 3, 4, 5 неравносторонним, а со сторонами 2, А, 2— равносторонним. Для того, чтобы обнаружить подобные ошибки, нужно перебрать не только все разумные, но и все вообще возможные входные наборы. Следовательно, мы приходим к выводу, что для исчерпывающею тестирования задачи о треугольниках требуется бесконечное число тестов.
Если такое испытание представляется сложным, то еще сложнее создать исчерпывающий тест для большой программы Образно говоря, число тестов можно оценить «числом, большим, чем бесконечность». Допустим, что делается попытка тестирования методом черного ящика компилятора с Кобола. Для построения исчерпывающего теста нужно использовать все множество правильных программ на Коболе (фактически их число бесконечно) И все множество неправильных программ (т. е действительно бесконечное число), чтобы убедиться в том, что компилятор обнаруживает все ошибки. Только в этом случае синтаксически неверная программа не будет компилирована. Если же программа имеет собственную память (например, операционная система, база данных или система резервирования билетов), то дело обстоит еще хуже В таких программах исполнение команды (например, задания, запроса в базу данных, выполнение резервирования) зависит от того, какие события ей предшествовали, т. е от предыдущих команд. Здесь следует перебрать не только все возможные команды, но и все их возможные последовательности.
Из изложенного следует, что построение исчерпывающего входного теста невозможно. Это подтверждается двумя аргументами: во первых, нельзя создать тест, гарантирующий отсутствие ошибок; во вторых, разработка таких тестов противоречит экономическим требованиям. Поскольку исчерпывающее тестирование исключается, нашей целью должна стать максимизация результативности капиталовложений в тестирование (иными словами, максимизация числа ошибок, обнаруживаемых одним тестом). Для этого мы можем рассматривать внутреннюю структуру программы и делать некоторые разумные, но, конечно, не обладающие полной гарантией достоверности предположения (например, разумно предположить, что если программа сочла треугольник 2, 2, 2 равносторонним, то таким же окажется и треугольник со сторонами 3, 3, 3) Этот вопрос обсуждается в гл. 4 при изучении стратегии построения тестов
Дата публикования: 2015-01-26; Прочитано: 489 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!