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

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

Устройство недоступно

См. вышеприведенный раздел “Требуемый ресурс недоступен”.

Устройство возвращено не в тот пул

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

Данному пользователю или программе использование устройства запрещено

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

Данный уровень привилегий не позволяет получить доступ к устройству

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

Шумы

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

Прерывание связи

Один компьютер отправляет данные другому через телефонную линию (и модемы с двух сторон). На середине передачи один из модемов отклю­чается. Как каждый из компьютеров узнает, что связь прервана, сколько времени это занимает и что предпринимается далее? Аналогичным образом как компьютер узнает, что принтер, к которому он подключен, перестал печатать?

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

Проблемы тайм-аута

Программа посылает устройству сигнал и некоторое время ждет отве­та. Не получив его, она решает, что устройство сломано или отключено. Но что, если она просто ждала недостаточно долго?

Неверный накопитель

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

Не проверяется содержимое текущего диска

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

Не закрыт файл

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

Неожиданный конец файла

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

Ошибки, связанные с длиной файлов и дисковыми секторами

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