Тестирование черного ящика. Б. Бейзер (2004) (1186170), страница 45
Текст из файла (страница 45)
Домен, у которого по крайней мере одно граничное неравенство не линейно. Линейно зависил|ый. Два неравенства называются линейно зависимыми, если одно из них можно превратить в другое путем отбрасывания константы к и умножения всех коэффициентов а, на соответствукн множитель. Например, х + 2у з= 7 и Зх + бу < 5 линейно зависимы, поскольку, отбрасывая постоянные слагаемые и умножая первое неравенство на 3, мы получаелх Зх+бу. Линейно зависимые гиперплоскости параллельны друг другу.
На предыдушем рисунке диагональные границы были линейно зависимы. Линейно независимый. Неравенства называются линейно независимыми, если они не являются зависимыми. Несколько неравенств линейно независимы, если ни одно из них не является линейно зависимым от любого другого. Границы, определяемые линейно независимыми неравенствами обязательно пересекаются. Линейно независимые точки. Наборы точек (тоесть входные векторы) хн ч„ хн ..., х, линейно независимы, если уравнение с,х,+ сзхз+ с,ч,+ ...
+ с,х;-0 имеет единственное решение с, = с, = с, = ... - с, = 0 для всех коэффициентов. Если точки не являются линейно независимыми, то они линейно зависимы, и некоторые из них можно выразить через другие. Законченная граница. Граница, простирающаяся на +- по всем своим переменным. Мы будем считать границы законченными, если не оговаривается обратное. Наклоненная вверх граница на рисунке является законченной, поскольку простирается на + — по всем своим переменным. ' Зто может быть необходимо из-за ограничений, накладываемых компьютерным методом представления чисел ОГАС 94).
К примеру, функция, онределенная для целых чисел, может нс иметь точных решений нз |ранице. | Нсолохо бы для начала запомнить акроиим. Причт» иерее. 184 Глава 7 ° Тестирование доменов Полная граница Незаконченная граница сегмент границы. Часть граничного неравенства между двумя или более доменами. Иначе говоря, один из краев домена. Как правило, граничное неравенство определяет сегменты границ для множества различных доменов.
Незаколчегпгая граница. Граница с одним или более разрывами. Наклоненная вниз граница на рисунке выше разорвана и, следовательно, незакончена. Разрывы, если они есть, лежат между узловыми точками; зто значит, что они состоят из сегментов границ. Последовательное закрытие. Граница, для которой направление, в котором она закрыта (или открыта), сохраняется на всем ее протяжении.
Мы будем в дальнейшем считать закрытие границ последовательным, если не оговаривается обратное. Граница, отмеченная как последовательная на рисунке, имеет одно и то же направление закрытия на всем своем протяжении. елооледоеательиое закрытие Непоследовательное закрытие. Граница, для которой направление закрытия меняется по меньшей мере один раз на ее протяжении.
Граница, отмеченная на рисунке как непоследовательная, закрыта. Изменения направления закрытия, если они есть, обычно происходят в узловых точках. Это означает, что в большинстве случаев направление закрытия меняется между сегментами границ. 7.3. Отношения и модель 7.3.1. Обоснование Я изменю обычный порядок изложения и начну с обоснования необходимости тестирования доменов и его семантики, поскольку предыдущие определения мо- 7.3. Отношения и модель ХЗБ гут показаться читателю чересчур абстрактными. Тем не менее, я рассчитываю, что вы разобрались в этих определениях.
Рис. 7.1. Модель обработки для тестирования доменов Тестирование домегюв основано на простой вычислительной модели, проиллюстрированной на рис. 7.1. Тестируемая система получает входной вектор, который затем проходит через процедуру сортировки. Все входные значения, лежащие за пределами заданных допустимых значений, отбрасываются или, если это возможно, корректируются.
После этого процедура сортировки (вне зависимости от того, как она реализована) определяет, какому из нескольких условий удовлетворяет входной вектор. После выбора соответствующего условия вектор поступает для обработки в соответствующий атому условию узел обработки (это осуществляется, например, при помощи гипотетического оператора СЯ5Е), где и происходит его обработка.
При тестировании доменов нас интересует корректность процедуры сортировки и корректность гипотетического или реального оператора ЕЯ5Е, использующегося для направления входного вектора в соответствующий узел обработки, а не корректность самой обработки для каждого случая. Это разграничение впервые введено Хоуденоаг 1НО'ттгЕ)76]. При тестировании доменов мы полагаем, что процедура сортировки осуществляется при помощи системы неравенств, содержащих входной вектор.
Это означает, что для каждого конкретного случая существует по крайней мере одна система неравенств, которая определяет удовлетворяющий этому условию домен. Таких систем неравенств может быть больше одной, если домены задаются в несвязанных областях. В качестве примера рассмотрим, как ВНС определил домены для подсчета ваших налогов, при условии, что вы холосты.
Донен Процедура 0 х над доход гк $22100 налог 0.15 х нал доход 186 Глава 7 ° Тестирование доменов $22100 < нал доход =< $53500 налог = $3315 + 0 28 * Снап доход - $22!001 $53500 < нап доход =< $115000 налог = $12107 + 0.31 * Снап поход - $535001 Ы 15000 < нал полол .< $250000 налог - $31172 + 0 36 * Снап поход - М 150001 $250000 < нал доход налог = $79722 0.396 * Снап доход - $2500001 В приведенном примере фигурирует только одна входная переменная — иап доход (налогооблагаемый доход). Легко заметить, что определены пятьг доменов.
Первые четыре состоят из двух неравенств каждый. Для них определены верхняя и нижняя границы. У последнего домена нет верхней границы'. В инструкциях по заполнению декларации говорится, что если ваш доход не превышает $100000, то вы не должны использовать эти неравенства. В этом случае ваьг надо пользоваться налоговыми таблицами. Исследуя налоговые таблицы, можно обнаружить расхождения между ними и уравнениями. Расхождение возникает из-за того, что в таблицах приводятся верхняя и нижняя границы для каждого входа и налог рассчитывается для величины верхней и нижней границы, округленной до ближайшего доллара.
Форьгулы же (используемые лишь для дохода, превышаюгцего $100000) точны, и налогоплательщик может сам решать, округлять ему налог или нет. Что же является в данном случае целью тестирования? Налоговые таблицы, так или иначе, должны применяться, и, следовательно, вам надо тестировать именно их. Если вы тестируете программу расчета налогов и используете домены, определенные прн помощи уравнений в вашей модели, для тестирования табличной реализации, то можете не заметить небольших ошибок в таблице — как правило, меньших $5. Если вы тестируете таблицу, а не уравнения, вы должны в соответствии с таблицей так построить уравнения, чтобы они корректно отображали домены, приведенные в таблице. 7.3.2. Основы Описание компонентов графа и связанных с ними отношений не столь продуктивно при тестировании доменов, как для большинства других методов; тем не менее, это позволяет понять суть метода, что необходимо при любой стратегии.
Обьекты (уздьг). Домены, определенные для входного вектора. Отношение (связи). Определено отношение «смежный с». Смежный — это значит имеющий общую границу. Условимся принимать за направление связи направление неравенства. Например, если А и  — смежные домены и А является закрытым доменом, стрелку надо рисовать от А к В. Вы ьюжете выбрать и другой способ определения направления, это не принципиально, главное, чтобы вы были последовательны в своих действиях.
Так же как для всех графических моделей, следует провести тесты, чтобы убедиться в правильности направления стрелок (вне зависимости от выбранного правила). Такая интерпретация принципа графового моделирования означает, что мы должны проверить закрытость границ всех смежных доменов (то есть ' Ца саьюм деле — шесть. Спеггификания годержгп ошибку н отлггчасч ся от трсбоааггигд Объясните, какая окгибка допущена? ' Поскольку максимальная сумма аанмаемого с кас налога нс ограничена. 7.3. Отношения и модель 187 покрытие связей). Например, каждая из констант в определениях приведенных выше доменов ($22100, $53500, $115000 и $250000) фигурирует в двух различных неравенствах и одном расчетном выражении.