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

Глава 1: Разработка тестов 193

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

Многие тестировщики включают в наборы тестовых данных и средние .печения диапазонов. Это хорошая практика, особенно когда достаточно нремени.

Тестирование переходов между состояниями

В каждой интерактивной программе осуществляются переходы из одно- к) очевидного состояния в другое. Если изменяется набор предлагаемых пользователю вариантов или меняется изображение на экране, это означает и шенение состояния программы. (Более подробно о переходах между со­стояниями программ можно прочитать у Бейзера (Beizer, 1983).)

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

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

• Протестируйте все наиболее вероятные последовательности действий пользователей.

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

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

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

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

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

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

Условия гонок и другие временные зависимости

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

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

Если в программе определены ситуации тайм-аута, когда она ждет определенного события в течение заданного времени, а затем переходит в