Перейти к содержанию

Воспроизведение проблемы

Невозможно исправить проблему, если она изначально не существует. Поэтому воспроизведение проблемы является необходимым условием для ее устранения. В программном обеспечении проблемы обычно называют «ошибками» (https://en.wikipedia.org/wiki/Software_bug), а сообщения о них — «сообщениями об ошибках».

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

Чтобы начать воспроизведение проблемы, вам понадобится настроенная среда разработки.

Ошибки в коде

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

Лучший способ воспроизвести ошибку — это использовать минимально возможный пример, в котором все еще проявляется проблема. В большинстве случаев репортеры не предоставляют минимально возможный пример; если они предоставляют любой пример, то он будет скопирован непосредственно из их «реального» приложения. Ваша цель будет заключаться в том, чтобы свести отчет к максимально простой форме, в которой проявляется проблема. Лучший случай воспроизведения — это минимально возможная программа. Само по себе такое сокращение полезно, поскольку позволяет определить, в чем заключается фактическая проблема. Любой может взять минимальный пример, запустить его и увидеть описанную ошибку.

Ошибки в документации

Ошибки в документации могут проявляться по-разному. Существуют проблемы с форматированием, которые приводят к проблемам с отображением. Иногда это даже не ошибка; человек мог неправильно прочитать документацию или допустить настоящую ошибку. Это не обязательно означает, что в документации нет проблем. Содержание может быть неясным или неточным, что оставляет место для путаницы или неправильного толкования. Возможно, что концепция, которая должна быть обсуждена, не обсуждается, потому что она полностью недокументирована.

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

Обновите проблему

Последним шагом в процессе сортировки является документирование ваших выводов путем оставления комментария к проблеме.

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

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

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

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

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

На этом этапе вы можете попробовать исправить проблему, которую только что воспроизвели; либо же вы можете записать свои выводы и попробовать воспроизвести другую проблему.