Методические указания по выполнению практических по мдк 02. 02



Pdf көрінісі
бет10/25
Дата11.09.2023
өлшемі1.26 Mb.
#477208
түріМетодические указания
1   ...   6   7   8   9   10   11   12   13   ...   25
42. MU PZ PM.02 MDK 02.02 Instrumentalynye sredstva razrabotki programmnogo obespecheniya

Задание
1. Разработать модули программы, спроектированные во время практического занятия
2. Отладить программу с использованием тестов, составленных во время практического 
занятия 
3. Составить отчет по практической работе. 
 


17
Лабораторная работа №16 «Отладка отдельных модулей программного проекта» 
Цель работы. Изучить основные подходы к проектированию тестов. 
Теоретическая часть. 
Рассмотрим два основных подхода к проектированию тестов. 
Первый подход ориентируется только на стратегию тестирования, называемую стратегией 
"черного ящика", тестированием с управлением по данным или тестированием с управлением по 
входу-выходу. При использовании этой стратегии программа рассматривается как черный ящик. 
Тестовые данные используются только в соответствии со спецификацией программы (т. е. без учета 
знаний о ее внутренней структуре). Недостижимый идеал сторонника первого подхода — проверить 
все возможные комбинации и значения на входе. Обычно их слишком много даже для простейших 
алгоритмов. Так, для программы расчета среднего арифметического четырех чисел надо готовить 
10
7
тестовых данных. 
При первом подходе обнаружение всех ошибок в программе является критерием 
исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве 
тестовых наборов использовать все возможные наборы входных данных. Следовательно, приходим 
к выводу, что для исчерпывающего тестирования программы требуется бесконечное число тестов, 
а значит, построение исчерпывающего входного теста невозможно. Это подтверждается двумя 
аргументами: во-первых, нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых, 
разработка таких тестов противоречит экономическим требованиям. Поскольку исчерпывающее 
тестирование исключается, нашей целью должна стать максимизация результативности 
капиталовложений в тестирование (максимизация числа ошибок, обнаруживаемых одним тестом). 
Для этого необходимо рассматривать внутреннюю структуру программы и делать некоторые 
разумные, но, конечно, не обладающие полной гарантией достоверности предположения. 
Второй подход использует стратегию "белого ящика", или стратегию тестирования
управляемую логикой программы, которая позволяет исследовать внутреннюю структуру 
программы. В этом случае тестировщик получает тестовые данные путем анализа только логики 
программы; стремится, чтобы каждая команда была выполнена хотя бы один раз. При достаточной 
квалификации добивается, чтобы каждая команда условного перехода выполнялась бы в каждом 
направлении хотя бы один раз. Цикл должен выполняться один раз, ни разу, максимальное число 
раз. Цель тестирования всех путей извне также недостижима. В программе из двух 
последовательных циклов внутри каждого из них включено ветвление на десять путей, имеется 10
18
путей расчета. Причем выполнение всех путей расчета не гарантирует выполнения всех 
спецификаций. 
Сравним способ построения тестов при данной стратегии с исчерпывающим входным 
тестированием стратегии "черного ящика". Неверно предположение, что достаточно построить 
такой набор тестов, в котором каждый оператор исполняется хотя бы один раз. Исчерпывающему 
входному тестированию может быть поставлено в соответствие исчерпывающее тестирование 
маршрутов. Подразумевается, что программа проверена полностью, если с помощью тестов удается 
осуществить выполнение этой программы по всем возможным маршрутам ее потока (графа) 
передач управления. 
Последнее утверждение имеет два слабых пункта: во-первых, число не повторяющих друг 
друга маршрутов — астрономическое; во-вторых, даже если каждый маршрут может быть 
проверен, сама программа может содержать ошибки (например, некоторые маршруты пропущены). 
Свойство пути выполняться правильно для одних данных и неправильно для других — 
называемое чувствительностью к данным, наиболее часто проявляется за счет численных 
погрешностей и погрешностей усечения методов. Тестирование каждого из всех маршрутов одним 
тестом не гарантирует выявление чувствительности к данным. 
В результате всех изложенных выше замечаний отметим, что ни исчерпывающее входное 
тестирование, ни исчерпывающее тестирование маршрутов не могут стать полезными стратегиями, 
потому что оба они нереализуемы. Поэтому реальным путем, который позволит создать хорошую, 
но, конечно, не абсолютную стратегию, является сочетание тестирования программы несколькими 
методами. 
Рассмотрим пример тестирования оператора: 


Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   25




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет