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

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

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

Анализ воспроизводимой ошибки

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

Если проблему можно воспроизвести, это означает следующее.

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

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

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

• Выявить все наиболее серьезные последствия проблемы.

• Найти простейший и кратчайший путь ее воспроизведения.

• Найти альтернативные действия, приводящие к такому же результату.

• Выявить связанные проблемы.

Наиболее серьезные последствия проблемы

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

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

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

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

Сбой программы — это:

• ее переход в непредусмотренное программистом состояние или

• передача управления блоку обработки ошибки.

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

Итак, если программа сообщает об ошибке, искажает информацию на экране или делает что-либо, чего программист не предполагал, следует ждать дальнейших ошибок.

Простейший и кратчайший путь воспроизведения ситуации

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

• Если ошибка понятна и ее легко исправить, это будет сделано.

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

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

• Если кажется, что недостатка практически никто не заметит, в оче­реди на исправление он будет последним.