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

122 Часть I: Основы

Варьируйте последовательность действий

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

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

Проверьте, имелась ли такая же ошибка в предыдущих версиях программы

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

Проверьте, не зависит ли поведение программы от конфигурации системы

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

Поиск способа воспроизведения ошибки

Как мы уже говорили, ошибка воспроизводима, если се можно увидеть, выполнив описанные в отчете действия. Задача сю составителя — объяс­нить, как достичь определенного состояния программы и какие действия выполнить в нем доя воспроизведения ошибки, а также рассказать, в чем она состоит. Чтобы точно знать, что проблема не вызвана последствиями какой-нибудь другой ошибки, найденной перед этим, лучше всего перезаг­

Глава 5: Документирование и анализ ошибок 123

рузить компьютер, повторно запустить программу и воспроизвести пробле­му “с чистого листа”.

Но бывает, что воспроизвести ошибку повторно не удается. Более того, иногда тестировщик вообще не знает, как именно он ее получил. Что де­лать в этом случае?

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

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

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

Повышенная нагрузка

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

Пропущенные детали

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