Уточним терминологию: инцидентом считается любое сообщение об ошибке, присланное пользователем через Bug Reporter. Инцидент считается ошибкой после того, как тестерам удалось его воспроизвести. В ходе разбора мы исследуем случайную выборку инцидентов, полученных в течение определенного промежутка времени.
В данном случае рассматривались инциденты, полученные в течение 28 дней после выхода Unity 5.0.1f1. Целью работы было найти ошибки, связанные с выходом этого обновления. Из 2058 инцидентов были отобраны случайным образом 25%.
«Полное расследование» предполагает попытку воспроизведения каждого инцидента, запрос дополнительных данных у приславшего информацию пользователя в случае неудачи, дальнейшие попытки воспроизведения сбойной ситуации с учетом полученной информации. Это требует значительных временных затрат, но в результате мы получаем очень важные данные.
Мы расследовали 491 инцидент и подтвердили 73 ошибки:
Удалось подтвердить только 14,86% инцидента из выборки. Хотя эта цифра значительно превосходит результат предыдущего разбора — 6,83% — этого все же недостаточно для эффективного решения задачи. Так как 85% инцидентов не являются ошибками или дублируют уже известные случаи, мы не расследуем все инциденты подряд вне разборов.
Мы выстроили систему рейтингов для сортировки инцидентов. Рейтинг присваивается с учетом того, насколько подробно предоставленное описание, присоединены ли проекты, скриншоты и другие файлы. Низший рейтинг — 0 (сообщение об аварийном завершении работы с бессодержательным описанием или без него), высший — 5 (подробное описание, проект присоединен). Кроме того, инциденты, переданные корпоративными клиентами, заключившими с нами отдельный договор о технической поддержке, подлежат рассмотрению вне очереди.
Результаты разбора-2015 подтверждают правильность данного подхода.
Как видно из диаграммы, инцидентов с рейтингами 4 и 5 в выборке меньше всего.
Выборка содержит 55 инцидентов с рейтингом 5 и 35 с рейтингом 4. Единственный инцидент без рейтинга попал в выборку по ошибке.
Теперь посмотрим на распределение 73 подтвержденных ошибок по рейтингу инцидентов:
Как видно, большинство подтвержденных ошибок были инцидентами с рейтингом 5. При этом воспроизведенные рейтинги 0 — скорее всего, результат деятельности автоматического анализатора аварийных завершений работы, о котором мы напишем позднее.
Рейтинг | Шанс подтверждения |
0 | 1% |
1 | 0% |
2 | 16% |
3 | 14% |
4 | 20% |
5 | 62% |
Рейтинг 4 отличается от рейтинга 5 тем, что инцидент, несмотря на подробное описание, не имеет присоединенного проекта для воспроизведения ошибки. Как видно из таблицы, наличие присоединенного проекта увеличивает вероятность подтверждения ошибки в три раза. Именно поэтому мы присваиваем таким инцидентам высший приоритет. Время на проведение исследований ограничено, и нам необходимо сконцентрировать внимание на тех инцидентах, вероятность успешного расследования которых наиболее велика. На сегодняшний день поступило уже 4510 инцидентов для Unity 5.0.1f1, из которых лишь 10,7% имели рейтинг 5.
Мы продолжаем работать над улучшением процесса обработки инцидентов. Обновление Unity 5.3 будет включать в себя функцию автоматического поиска в Bug Reporter, которая будет предлагать пользователю возможные пути решения проблемы во время заполнения отчетной формы. Мы надеемся, что это нововведение значительно ускорит решение проблем пользователей и снизит нагрузку на нашу команду.
Кроме того, мы собираемся улучшить связь между компонентом Crash Reporter и нашим инструментарием анализа аварийных завершений. В случае аварийного завершения работы пользователь будет автоматически уведомлен о том, известна ли уже возникшая у него проблема и доступен ли исправляющий ее патч, либо о том, что проблема ранее не встречалась и разработчику требуется дополнительная информация о ней.
Мы продолжаем работу над системой обработки ошибок, ждите новостей!
Is this article helpful for you?
Thank you for your feedback!