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

534 Часть III: Управление проектами и группами

ния или чтения файла, размер которого кратен размеру сектора. Например, если размер сектора равен 1 Кб, программе не удается правильно сохранить файлы размером в !, 2, 3 Кб и т.д.

Последний символ каждого сектора или последний символ файла может быть скопирован неправильно, скопирован дважды или потерян. Иногда программа даже портит весь записываемый файл и файл, следующий за ним на диске.

Неверный код операции или команды

Программа посылает терминалу команду сдвинуть курсор на экране, а он вместо этого меняет видеорежим. Программа посылает принтеру коман­ду прогона страницы, а он выполняет перевод строки.

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

Неверно интерпретирован код состояния или возврата

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

Ошибка протокола обмена с устройством

Коммуникационный протокол, используемый для взаимодействия ком­пьютера и внешнего устройства или пары компьютеров определяет, когда компьютер отправляет данные, с какой скоростью и каковы их характери­стики (четность, стоповые биты и т.п.). Кроме того, протокол определяет, как устройство сообщает о получении данных и готовности принимать следующие или о необходимости приостановки передачи.

Устройства могут отправлять данные и отвечать невпопад, или же фор­мат данных может быть неверным.

Неполное использование возможностей устройства

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

Приложение: Распространенные программные ошибки 535

Устройство может иметь собственные встроенные шрифты, набор кодов ошибок и т.д., но программа не распознает его сообщений и не использу­ет расширенных возможностей.

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

Игнорируется или неправильно используется механизм страничного управления памятью

Память компьютера может быть логически разделена на участки, назы­ваемые страницами. Однако программа может неверно переключаться между страницами или неправильно с ними обращаться.

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

Игнорирование ограничений канала

Примеры:

• Программа пытается пересылать данные со скоростью 100 символов в секунду, в то время как через соединение может передаваться только 10 символов в секунду.

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

Предположения о наличии или отсутствии устройства или его инициализации

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