Тестирование черного ящика. Б. Бейзер (2004) (1186170), страница 36
Текст из файла (страница 36)
Тесты создаются путем выбора порожденных подграфов — движением от выходных узлов ко всем входным узлам порожденного подграфа. Мы определили несколько метрик покрытия, но метод всех использований, дополненный разверткой циклов (двукратной), рекомендован в качестве минимально приемлемой метрики. 5.7. Вопросы для самопроверки 1. Дайте определения следующих терминов: покрытие всех определений, покрытие всех путей определение — использование, покрытие всех узлов, покрытие всех предикатов, покрытие всех использований, логический оператор проверки условия, управляющая входящая связь, удобное упорядочение, использование в вычислениях, граф потоков данных, порожденный подграф, узел выбора данных, предикат выбора данных, определять, необходимый цикл, необходимое упорядочение, значение входящей связи, входной узел, покрытие ввода/вывода, значение связи, развертка цикла, необязательный цикл, значение исходящей связи, выходной узел, пусто, перегрузка.
узел с предикатом, использование в предикате, узел обработки, псевдопеременная, запоминающий узел, подграф, использование. 2. Покажите, что строка 6 в бланке ИПС никогда не может быть отрицательной как для работающего, так и неработающего супруга(н), так что в данном случае необязательно проводить сравнение с нулем. Подсказка: операция МИН вЂ” транзитивна. 3. Переделайте Бланк ИПС, включая логические потоки и потоки данных для случаев работаюгцего и не работающего супруга. Выберите порожденный подграф, активизируйте его и разработайте тестовые варианты.
4. Создайте модели потока данных для формы 1040. Трактуйте данные, взятые из других форм, как входные переменные, Для каждого случая спроектируйте модель, выберите порожденные подграфы и разработайте тестовые варианты, используя покрытие ввода/вывода, покрытие узлов и стратегию всех использований. Проверьте вашу работу, используя налоговый пакет или электронную таблицу в качестве оракула.
Вы можете переписать налоговый пакет и взять входные значения из других форм. (а) строки 1-6, (б) строки 7 — 22, (в) строки 32-40, (г) строки 41-46, (д) строки 47 — 53, (е) строки 54-60, (ж) строки 61-65. 5. То же, что и задание 4. Форма 1040, Бланк 5Е, краткая форма, строки 1 — 6, но задействуйте логику, чтобы определить, может ли быть использована краткая форма. Используйте граф только потоков данных, затем проделайте то же самое с использованием модели графа потоков управления и покрытием 5.7.
Вопросы для самопроверки 151 условий предикатов и переделайте задание, используя смесь модели пото- ков управления и модели потоков данных. Форма 1040, бланк на строке 10. Полная форма. Форма 1040, бланк на строке 22, вос~а1 веспйгу щсоще (выплаты по социаль- ному страхованию). Полная форма.
Форма 1040, бланк на строке 34, берепдепг дебисПопз (льготы иждивенца). Полная форма. Форма 2106, только транспортные расходы. Рассмотрите случай только од- ного транспортного средства. Включите разделы А, В и С, но не Р, и исклю- чите строки 1-10. 7. 8. 9. 10. Форма 2688, Аррйсаг(оп 1ог Ехсепейоп го Ие (Заявление о продлении сро ка). Форма целиком.
11. Форма 2210, Неполная оплата налогов. (а) только строка 1, (б) часть П (в) часть П1, (г) часть 1Ч, раздел А, (д) часть 1Ъ', раздел В. Предположите, что вы можете использовать краткий метод (Часть П1) в случае, если не сделали отметок в графах 1Ъ, 1с, или 1г1. Во всех случаях выводы (если таковые имеются) идут в соответствующую строку Формы 1040.
То есть не заботьтесь о Формах 1040А, 1040ХК, 1041 и так далее. 12. Смоделируйте часть 1Ъ' формы 2210 как граф потоков управления с детер- минированным циклом и протестируйте его соответствующим образом. лом для каждой из частей П, П1, 1ЧА и 1т'В. Моделируйте часть 1 по своему усмотрению, но следите за тем, чтобы высокоуровневая модель правильно определяла, когда надо использовать часть П1. 14.
Проделайте задание 4 для формы 3903 целиком, Ещр!оуее Мог)пя Ехрепзез (Расходы служащего на передвижение). 13. Представьте форму 2210 целиком в виде графа потока данных с одним уз- Тестирование ПОТОКОВ транзакций 6.1. Обзор Графы потока транзакций используют в системном тестировании приложений, работающих в режиме онлайн, и программного обеспечения для пакетной обработки. Этот граф обладает свойствами как потока управления, так и потока данных. 6.2.
Основные термины Внешние термины: поглощать, подтверждать прием, приложение, архивные данные, аудит, пакет, вызов, емкость, проверка, код, коммуникации, конкатенация (обьединение), параллельный, аварийный отказ, данные, база данных, блок данных, ошибка в данных, регистрация данных, отлаживать, проектировать, драйвер устройства, диагностика, дискретный, динамический, ошибка, глобальные данные, иерархия, входящий, инициализировать, ввод, ошибка ввода, целое число, установка, интерфейс, логика, модель, неединичпый вход, неединичный выход, многозадачность, сеть, операционная система, выходной, раздел, эффективность, приоритет, распределение вероятности, обработка, узел обработки, программа, программист, язьп программирования, протокол, запрос, очередь, случайный, прием, запись, восстановление, сброс, ресурс, маршрутизация, сценарий, обеспечение безопасности, последовательность, сервер, имитатор, синхронный, мгновенная запись, программное обеспечение, сортировка, ключ сортировки, стек, подпрограмма, система, задача, среда тестирования, временная отметка, след, значение.
Внутренние термины: ветвление, свободный от ошибок, компонент, тестирование компонентов, составной предикат, поток управления, поток данных, на- 6.2. Основные термины 153 чальный узел, конечный узел, модель конечного числа состояний, граф, входягцая связь, ввод, интеграция, промежуточный узел, связь, покрытие связей, вес связи, цикл, тестирование цикла, модельная программа, узел, покрытие узлов, итог, исходящая связь, путь, предикат, отношение, активизировать, порожденный подграф, спецификация, состояние, субмодель, системный тест, проект теста, путь теста, тестирование, критерий соответствия.
Транзакция — единичная операция по обработке данных. Маркер транзакции — метка (например, точка), которая отображает присутствие транзакции на модельной связи. Контрольная запись транзакции — гипотетическая или фактическая запись, которая содержит данные о транзакции. В фактической записи нет необходимости, однако во многих системах она присутствует. Там, где контекст позволяет, вместо термина «контрольная запись транзакции» будет использоваться термин «запись транзакции». Состояние транзакции — потенциально зто значения всех данных в контрольной записи транзакции или ее неявном зквиваленте.
Но, как правило, состояние выражают лишь частью данных записи, зачастую целым числом, Тип транзакции — некое обозначение, например, целое число, которое используется для идентификации транзакций различных типов. Стартовый узел — узел в модели графа потока транзакций, в котором транзакция начинает нас интересовать. Это входной узел графа потока транзакций.
Завершающий узел — узел в модели графа потока транзакций, в котором транзакция прекращает нас интересовать. Это выходной узел графа потока транзакций. Задана — каждая задача в графе потока транзакций представлена узлом. Узел ветвления — узел, в котором входящая транзакция выбирает одну из нескольких альтернативных исходящих связей. Так, на рисунке входящая транзакция вышла на самую верхнюю связь. Предикат ветвления — предикат, который управляет выбором одной из исходящих связей узла ветвления.
Он может быть основан на значениях данных транзакции (тоесть значениях в управляющей записи транзакции) нли жс на комбинации типа и состояния транзакции. Управляющая входящая связь — по возможности не зависящая от значений в записи входящая связь, которая определяет, какая из исходящих связей узла ветвления будет выбрана транзакцией. Узел ветвления с управляющей входящей связью подобен железнодорожной стрелке (то есть «направляет»). Для каждой управляющей входящей связи должен существовать ассоциированный с нею предпкат.
Управляющие входящие связи обозначены пунктирными линиями. 154 Глава б ° Тестирование потоков транзакций Узел соединения — транзакция, поступающая по любой из входящих связей узла пересечения, выйдет по единственной исходящей связи этого узла соединения. Это то же самое, что и соединительные узлы пересечения в графах потоков управления. Узел порождения — узел, в котором входящая транзакция генерирует более чем одну исходящую транзакцию.
На рисунке входящая транзакция (материнская) произвела дочернюю транзакцию. Дочерние транзакции имеют индивидуальные свойства, которые могут быть (частично) унаследованы от родительских транзакций. Дочь© Узел расщепления — узел, в котором входящая транзакция (материнская) генерирует дочерние транзакции, а сама прекращает свое существование. Дочерние транзакции не должны быть идентичными.