Стр: 206/301
Указание в шагах воспроизведения информации, неважной для воспро- изведения ошибки. Стремление прописать всё максимально подробно иногда
принимает нездоровую форму, когда в отчёт о дефекте начинает попадать чуть ли
не информация о погоде за окном и курс национальной валюты. Сравните:
Плохо Хорошо 1.
Создать на диске «J:» каталог «Data».
2.
Разместить в созданном каталоге «Data»
прилагаемые файлы «song1.mp3» разме-
ром 999.99 Kb и «song2.mp3» размером
888.88 Kb.
3.
В поле «Где искать» указать «J:\Data».
4.
В выпадающем списке «Что искать» вы-
брать «Аудиофайлы».
5.
Нажать кнопку «Искать».
Дефект: указанные в пункте 2 файлы не
найдены.
1.
В произвольном месте на локальном диске
разместить один (или более) файл с рас-
ширением «.mp3».
2.
Установить параметры поиска («Что ис-
кать» -> «Аудиофайлы», «Где искать» ->
место расположения файла(ов) из пункта
1).
3.
Произвести поиск.
Дефект: приложение не обнаруживает
файлы с расширением «.mp3».
Действительно ли для воспроизведения дефекта важно, чтобы поиск произ-
водился на диске «J:»? Действительно ли важно производить поиск именно файлов
с такими именами и размерами в таком каталоге? Возможно, в некоем бесконечно
маловероятном случае и да, тогда вопрос снимается. Но, скорее всего, это совер-
шенно не важно, и нет никакой необходимости записывать эту информацию. Для
большей уверенности можно провести дополнительное исследование.
Отсутствие в шагах воспроизведения информации, важной для воспро- изведения дефекта. Нет, мы не издеваемся, этот пункт действительно строго про-
тивоположен предыдущему. Дефекты бывают разными. Очень разными. Иногда ка-
кой-то ключевой «мелочи» не хватит, чтобы разработчику удалось воспроизвести
дефект или даже просто понять его суть. Несколько реальных примеров (подчёрк-
нуты те детали, отсутствие которых долго не позволяло воспроизвести дефект):
•
Приложение не сохраняло пользовательские настройки в случае, если в пути
к каталогу для их сохранения были пробелы (два и более подряд пробела).
•
Приложение некорректно завершало работу при открытии файлов, размер
которых не позволял прочитать их целиком в оперативную память, доступ-
ный объём которой, в свою очередь, определяется значением параметра
memory_limit в настройках среды исполнения.
•
Приложение отображало неверную статистику работы пользователей, если
в системе был хотя бы один пользователь, роль которого не была явно ука-
зана (NULL-значение в таблице БД, неверная работа подзапроса).
Как понять, насколько подробно надо описывать такие детали? Исследова-
нием. Мало просто обнаружить некий единичный случай неверного поведения при-
ложения, нужно понять закономерность такого поведения и его источник. Тогда не-
обходимая степень детализации становится очевидной.
Сюда же можно отнести пресловутую воспроизводимость «иногда». Нужно
продолжать искать причины, смотреть код, консультироваться с коллегами, прово-
дить дополнительные тесты, исследовать похожую функциональность в других ча-
стях приложения, исследовать аналогичные приложения, «гуглить» и т.д. и т.п. Да,