Тестирование черного ящика. Б. Бейзер (2004) (1186170), страница 59
Текст из файла (страница 59)
После задания БНФ непосредственной задачей тестировшпка является генерация набора тестов, полностью покрывающих синтаксический граф. Стандартное покрытие связей мы обычно дополняем чистыми и грязными тестами для проверки показателей, особенно операторов + и ". 8.7. Вопросы для самопроверки 1. Дайте определение следующих терминов: алфавит, ассоциативный, обезглавливание,пустойсимвол, БНФ,команда, командно-управляемоепрограммное обеспечение, командный язык, коммутативный, конкатенация, синтаксис, зависящий от контекста, укорачивание, тире, разделитель, дизъюнкция, потеря ошибок, показатель (метасимвол), генерируемый синтаксический анализатор, ключевое слово, ЕЕХ, лексический анализатор, лексическая эквивалентность, связи (в синтаксических графах), макроязык, программное обеспечение, управляемое через меню, метаязык, метасимвол, узел (в синтаксических графах), нулевой символ, нулевой набор, операнд, необязательное поле (обозначение в БНФ), парные разделители, параллельное преобразование, синтаксический анализатор, грамматический разбор, плюс (показатель) оператор, семантический анализ, серия преобразований, язык сценариев, символ пробела, оператор «звезда» (метасимвол), строка, поле строки, голова строки, имя строки, набор строк, хвост строки, подстрока, синтаксический анализ, синтаксис, маркер, маркировка, оператор объединения, произвольная последовательность символов, произвольный символ (одиночный), УАСС.
2. Поэкспериментируйте с вашим налоговым пакетом и определите опытным путем БНФ спецификацию для следующих полей в форме 1040. После того как вы это сделаете, разработайте набор чистых и грязных тестов, обеспечивающихих следуюпгее покрытие. Окончание налогового года, имя, отчество и фамилия, полный адрес, за исключением почтового индекса, почтовый ин- 8.7. Вопросы для самопроверки 235 декс плюс маршрут доставки, поле бс, число месяцев, которое иждивенец жил дома, поле даты в области для подписи.
3. Поэкспериментируйте с вашим налоговым пакетом и определите опытным путем БНФ спецификацию для поля социального обеспечения. Мой налоговый пакет очень нестрогий и позволяет широко варьировать синтаксис. Однако что впоследствии интерпретируется как входные данные — это отдельный вопрос. Определите синтаксис для приемлемых вводов и спроектируйте для них тесты. Затем определите полную БНФ-спецификацию, которая в том числе включает информацию о том, как должны преобразовываться различные строки для того, чтобы извлечь из них нужные числа, если это возможно. Спроектируйте чистые и грязные тесты.
стоя1цих из одной или двух цифр. Используйте только положительные числа. Включите сюда различные символы, которыми люди могут естественно заменять ноль или отсутствие вводов, например, пустой, нулевой символы, О, о, —, -О- и т. д. Затем спроектируйте набор покрывающих чистых тестов и хорошие грязные тесты для единичной ошибки.
5. Определите БНФ-спецификацию для суммы в долларах, включающую по- ложительные и отрицательные вводы, пустые, нулевые вводы, с центами и без, с запятыми и без, и так далее, для всех способов, которыми люди могут ввести подобные данные в налоговую декларацию. Затем спроектируйте чистые тесты, обеспечивающие покрытие, и грязные тесты для единичной ошибки. Определите части команд <устройство>, <путь>, <икя файла> в МБ-Р03, или эквивалентные им в вашей операционной системе. Затем спроектируйте полный набор чистых и грязных синтаксических тестов.
Исследуйтеследуюшиекоманды М3-РО3(или аналогичныекоманды ввашей операционной системе) и задайте для каждой полную БНФ-спецификацию, включающую поля <устройство, <путь> и <икя файла>, которые вы можете считать ранее протестированными. Затем спроектируйте покрывающий набор чистых и грязных синтаксических тестов. Предусмотрите возможность использования аббревиатур, псевдонимов и различных алфавитов.
Проверьте только ваши грязные тесты, испытав их. (Замечание: если вы случайно разработали чистый тест, то с последствиями его выполнения для вашей системы вы будете разбираться сами.) Команды: АРРЕМО, АТТВ!В, ВОГГЕК5, СНО1й, СОММАМО, СОРУ, СООМТЙУ, ВАТЕ, О1й, ЕХРАМО, ГС, ГОВМАТ, КЕУВ, РВ1ЙТ, 5НАВЕ, 50ЙТ, Т1МЕ, ХСОРУ. 6. 7. 8. Спроектируйте тесты синтаксического анализатора для старой английской валюты.
Вам дается произвольное число денежных единиц, каждая из которых состоит из числа и следующего за ним символа этой единицы, например: «ЗЕ, 17з, 8р, 73, 411с». Синтаксический анализатор нужен для автоматического размена монет. Программа должна конвертировать входные значения и выражать сумму в терминах ( Ь, г1, э и Е. Монетная система: 2 фартинга (1) = полпенса (Ц, 2 полпенса = 1 пенс (с1), 12 с1 = 1 шиллинг (э), 1 флорин (Г)- 4. Определите БНФ-спецификацию для целочисленных входных данных, со- 236 Глава 8 ° Синтаксическое тестирование 2з, полкроны (Ьс) = 2збг1, крона (с) = 5з, 20з = 1 фунт стерлингов (б), 2!з- 1 гинея (С), 1 соверен (5) - 2618з.
Нет ничего удивительного в том, что они представляются в десятичном виде. 9. Благородному Публию Юлию Лентулу, Трибуну, всаднику, командиру ХХП1 легиона Привет вам, Публий: Возникли вопросы для обсуждения вашей налоговой декларации за прошлгяй год; 1) Вы не включили Х11Н талантов серебра, которые вы получили, казнив Рубидия в прошлом году. 2) Вам позволено объявлять иждивенцами всех воинов ХХП1 легиона, но вы не можете поступать так ни с ММССС1Х рабами ваших воинов, ни с МММХ1.1Н маркитантами, так как они уже фигурируют в налоговых декларациях ваших воинов...
Бедный Публий. Проблемы с налогами, возможно, возникали уже в те времена. Определите БНФ-спецификацию для положительных целых чисел в римской системе счисления. Обратите внимание: Подчеркивание' буквы — Х, ~, х:., 1) и К вЂ” означает умножение их на 1000: например, К = 10000, ь = 50 000, и так далее. Предусмотрите возможность использования букв верхнего и нижнего регистров.
Включите все целые числа от 0 до 5 000 000. Затем проведите ряд тестов, обеспечивающих покрытие, а также грязные тесты. И помните, что главное — полнота, а не компактность. ' На самон деле в римской системе счисления использовалось перечеркивание, но, откровенно говоря, это очень неудобно делать в текстовом редакторе. Я надеюсь, что приверженньг классической истории на меня не обидятся. Тестирование систем с конечным числом состоянии 9.1.
Обзор Изначально предназначенная для тестирования аппаратной логики, модель автомата с конечным числом состояний (конечного автомата) является превосходной моделью для проверки приложений, управляемых через меню. Она важна еше и потому, что получила широкое распространение для разработки объектно-ориентированных продуктов. 9.2. Основные термины Внешние термины: приложение, поведение, начальная загрузка, ошибка, символ, закрыть файл, управление, данные, проектирование, аппаратное обеспечение, файл, функциональная клавиша, целочисленный, загрузка, логика, интеграция высокого уровня (ИВУ), меню, строка меню, отображение, память, сообшение, метод, мышь, шелчок мыши, МЯ-ООЯ, объектно-ориентированное программное обеспечение, открыть файл, операционная система, последовательный порт, программное обеспечение, подпрограмма, символьный отладчик, Ю1пдоа з.
Внутренние термины: поведенческое тестирование, случайная корректность, домен, тестирование домена, граф, ввод, связь, покрытие связей, список связей, вес связи, модель, узел, покрытие узлов, вес узла, пустой, вывод, путь, состояние, сильно связанные. синтаксическое тестирование, система, значение. Состояние. Состояния изображаются узлами. 238 Глава 9 ° Тестирование систем с конечным числом состояний о п! Имя состояния Входное событие. Отдельное воспроизводимое событие или фиксированная последовательность определенных событий, характеризуемых вводами (или последовательностью вводов) в систему. Что конкретно означает данное событие, зависит от приложения.
При рассмотрении модели с конечным числом состояний я буду использовать термин «вход» для обозначения «входного события», если при этом не будет возникать двусмысленности. В качестве примеров подобных входов можно упомянуть внешний входной сигнал, входное сообщение, символ, выбор меню, определенная последовательность команд пользователя. Входы в моделях с конечным числом состояний используются скорее для управления, чем для ввода данных, то есть входы скорее вносят изменения в поведение системы, чем являются исходными данными для различных выводов.
Это положение иллюстрируют значение целочисленного управляющего параметра, входные данные, значения которых определяют путь обработки в программе, репрезентативный ввод для каждого входного домена. Все приведенные примеры являются отдельными входными событиями. Входное кодирование. Каждому событию может быть присвоено определенное имя или число.
Это означает, что входные события могут отображаться, например, на множество целых чисел или на множество символов. Поведение системы с конечным числом состояний не меняется при изменении входного кодирования. Входные символы. Набор отдельных имен или значений для входного кодирования. Число входных символов. Входное кодирование задается целыми числами от 1 до, скажем, и для каждого отдельного входного события. Мы полагаем, что эти числа идут подряд, без пропусков.