вторник, 28 февраля 2012 г.

Lesson 77

Рекламы предыдущего поста пост: http://w-bf.livejournal.com/237635.html

Слово Канеру:

Невоспроизводимые ошибки воспроизводятся.

Сбои происходят в специфических условиях. Если они вам известны, вы воспроизведете ошибку. Если вы не знаете критических условий, то вам, вероятно, это не удастся.

Когда вы сталкиваетесь с багом, который вы не в силах воспроизвести, это значит, что вы упустили что-то важное. Если вы сможете найти то условие — вы сможете воспроизвести баг. Вот несколько примеров таких условий, которые мы обнаружили, и о которых полезно подумать(часто люди не уделяют этому достаточно внимания, кроме как на ретроспективах):

- Ошибка может быть инерционной, такой как утечка памяти, дикий указатель или повреждение стека. Если вы подозреваете проблемы, связанные со временем, рассмотрите вопрос о сотрудничестве с программистами, используя Bounds Checker (http://www.numega.com), Purify (http://www.rational.com/products/purify_unix/index.jsp) или другие подобные утилиты, либо используйте методы мониторинга ПО во времени (видеозапись вывода, мониторинг использования памяти и т. п.).
- Ошибка может появляться только первый раз после установки ПО или использовать только определенную часть продукта. Используйте Drive Image (http://www.powerquest.com/driveimage/), Ghost (http://www.symantec.com/sabu/ghost) или другие подобные утилиты, чтоб создать точную копию чистой системы(на которую никогда не устанавливалось ваше приложение). Восстановите систему, установите приложение и попытайтесь снова воспроизвести ошибку.
- Ошибка может зависеть от специфических значений переменных или от повреждений БД
- Ошибка может воспроизводиться в определенную дату или время. Конец дня, недели, квартала или года.
- Ошибка может зависеть от серии задач в определенном порядке. Что вы делали перед тем как появилась бага?
- Ошибка может быть остаточной после предыдущего сбоя. К примеру, вы перезапускали машину после последнего GPF?
- Ошибка может быть вызвана взаимодействием тестируемого приложения с другим ПО, работающим в фоне или ПО, конкурирующем в доступе к устройству. Возможно, сбой отражает проблемы во взаимодействии с устройствами.

Есть и другие идеи, их слишком много, чтобы останавливаться на них в этой книге. Мы рассматриваем эту область подробней в части первой новой редакции Testing Computer Software (Kaner и соавторы), но в то же время вы могли бы найти полезные идеи у Nguyen (2000), Kaner (1993), and Telles и Hsieh (2001).

Комментариев нет:

Отправить комментарий