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

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

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

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

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

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

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

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