Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
935.81 Кб
Скачать

Глава 7: Разработка тестов 191

Посмотрите, на какие действия программа отвечает эквивалентными событиями

До сих пор рассматривались только входные события, поскольку это первое, что приходит в голову, да и анализировать их гораздо легче. Тре­тье событие на рисунках 7.1 и 7.2 является выходным. Программа чертит линию длиной до четырех сантиметров, причем линия предполагается прямой, но может оказаться и другой формы, например, окружностью.

Трудность состоит в том, чтобы определить, какие входные данные управляют длиной и формой линии. Иногда различные классы входных данных на выходе дают один и тот же эффект. Но если точный путь обра­ботки каждого класса входных данных вам неизвестен, лучше все равно интерпретировать их как разные классы и тестировать по отдельности. Особенно это важно в тех случаях, когда в ответ на определенные входные данные при формировании выходной информации генерируется ошибка и управление передается блоку ее обработки.

Еще одним примером может послужить программа, которая после се­рии вычислений должна печатать число между 1 и 45. В данном случае следует проанализировать, какие входные данные заставят ее напечатать число, которое больше 45 или меньше 1. Для проверки необходимо прове­сти ряд тестов.

Продумайте варианты операционного окружения

Предположим, что программа предназначена для работы на компьютере с объемом памяти от 64 до 256 Кб. Эти значения определяют один класс эквивалентности. К другому классу будут относиться объемы памяти, ко­торые меньше 64 Кб. Еще к одному — объемы памяти, превышающие 256 Кб. Некоторые известные программы отказывались работать на компьюте­рах, имеющих больше ожидаемого объема памяти.

Бывает, что программа хорошо работает только с определенными типа­ми мониторов, принтеров, модемов, дисковых устройств или любого дру­гого подключенного к системе оборудования. Работа программы может зависеть даже от тактовой частоты компьютера. Поэтому, анализируя про­грамму, особенно выполняющую низкоуровневые операции с оборудовани­ем или ориентирующуюся на его определенные возможности, очень важно определить классы эквивалентных конфигураций системы.

Границы классов эквивалентности

Для каждого класса эквивалентности достаточно провести один-два теста. И лучшими из них будут те, которые проверяют значения, лежащие на границах класса. Они могут быть наибольшими, наименьшими, быстрей­

192 Часть II: Приемы и технологии тестирования

шими, кратчайшими, самыми громкими, самыми красивыми — но в любом случае это должны быть предельные значения параметров класса. Непра­вильные операторы сравнения (например, > вместо >=) вызывают ошиб­ки только на граничных значениях аргументов. В то же время программа, которая сбоит на промежуточных значениях диапазона, почти наверняка будет сбоить и на граничных.

Необходимо протестировать каждую границу класса эквивалентности, причем с обеих сторон. Программа, которая пройдет эти тесты, скорее всего, пройдет и все остальные, относящиеся к данному классу. Вот ряд примеров.

• Если допустимы значения от 1 до 99, для тестирования допустимых данных можно выбрать 1 и 99, а для тестирования недопустимых — О и 100.

• Если программа выписывает чеки на суммы от $1 до $99, то стоит попробовать выписать чек на отрицательную сумму, на $0, на $100.

• Если программа ожидает заглавную английскую букву, введите А и Ъ. Проверьте также символ @, поскольку его код предшествует коду символа А, и символ ], код которого следует за кодом символа Ъ. Кроме того, проверьте символы а и г.

• Если программа рисует линии длиной от одной точки до 4 сантимет­ров, нарисуйте одну точку и линию длиной ровно 4 сантиметра. Пусть программа также попробует нарисовать линию нулевой длины.

• Если сумма входных значений должна равняться 180, попробуйте ввести значения, дающие в сумме 179, 180 и 181.

• Если программа получает определенное количество входных данных, попробуйте ввести в точности необходимое количество, на единицу меньшее и на единицу большее.

• Если программа принимает ответы В, С и О, попробуйте ввести А и Е.

• Попробуйте отправить на печать файл непосредственно перед и сразу после того, как принтер напечатает еще чье-либо задание.

• После чтения и записи файла на диск проверьте его первый и пос­ледний символы.

Анализируя границы диапазонов значений, очень важно учесть все возможные выходные данные. Проанализируйте каждый элемент распечат­ки или изображения на экране. Каковы допустимые перечни или макси­мальные и минимальные значения каждого печатаемого параметра? Можно ли заставить программу сформировать данные, выходящие за эти границы, и как это сделать?