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

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

• Тайм-аут. Диск (скорее всего, сетевой) слишком долго не отвечает.

• Сбой или отключение питания.

• Клавиатурный ввод. Нажатие клавиш во время чтения или записи данных.

• Активность мыши. Перемещение или щелчки кнопок мыши во время чтения или записи данных.

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

• Файловые операции (такие, как открытие и сохранение).

• Характеристики файлов, такие как тип, формат и размер.

• Аппаратура, как, например, типы жестких дисков. Сюда может входить и список совместимого оборудования.

• Условия сбоев, как, например, заполнение диска или аппаратный сбой.

Организовать эти категории информации в матрицы ввода/вывода мож­но многими способами. Один из них показан на рис. 12.21.

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

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

Другие матрицы, связанные с аппаратным обеспечением

На рис. 8.4 приводилась тестовая матрица для сравнения различных типов принтеров. Заголовками ее столбцов служили названия принтеров, а заголовками строк — их сравниваемые функции.

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

Дискета низкой емкости

Операция

Диск

полон

Диск почти полон

Диск защищен от записи

Тайм­

аут

\

Питание | Клс

Сохранить

Сохранить как

\

* * *

Печать в файл

і

РИСУНОК 12.21. Матрица дискового ввода/вывода

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

Матрица операционного окружения

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

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

Матрица комбинаций входных данных

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

Майерсом (Myers, 1979) описан сложный, но комплексный подход к этой задаче, называемый причинно-следственными диаграммами (Cause-effect Graphing). Мы не будем описывать его в данной книге, однако тем, кому предстоит серьезно заниматься тестированием, рекомендуется его изучить.

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

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

Матрицы сообщений об ошибках и клавиатурных комбинаций

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