Одна из стандартных проблем на любой платформе — воспроизведение сбоя. что сообщил пользователь. Проблема в том, что вы не собираете данные до сбоя, которые помогли бы их воспроизвести. Теперь есть программа, которая предоставит вам нужную информацию.
Команда исследователей, Кевин Моран, Марио Линарес-Васкес, Карлос Бернал-Карденас, Кристофер Вендом под руководством доктора Дениса Пошиваника из Колледжа Уильяма и Марии в Вирджинии, взялась за очень практическую задачу. Как вы можете автоматически собрать данные, необходимые для воспроизведения аварии?
Структура CrashScope
CrashScope — это инструмент автоматического тестирования, который не только проверяет ваше приложение, но и записывает данные, необходимые для его воспроизведения:
Этот инструмент исследует конкретное приложение Android с использованием систематической генерации входных данных в соответствии с несколькими стратегиями, основанными на статическом и динамическом анализе, с внутренней целью запуска сбоев. При обнаружении сбоя CRASHSCOPE генерирует расширенный отчет о сбое, содержащий снимки экрана, подробные шаги воспроизведения сбоя, записанную трассировку стека исключений и полностью воспроизводимый сценарий, который автоматически воспроизводит сбой на целевых устройствах.
При тестировании было обнаружено, что CrashScope так же хорош, как и существующие инструменты автоматического тестирования в провоцировании сбоя, но он лучше сообщал и воспроизводил сбой. Весь процесс полностью автоматизирован. Вы отправляете свой apk в CrashScope, и он генерирует подходящие входные данные, которые записываются. Когда происходит сбой, человекочитаемый отчет сообщает программисту, что произошло. Вероятно, более важным является создание сценария, который автоматически выполняет шаги, ведущие к сбою. В принципе, все, что вам нужно сделать, это запустить этот сценарий еще раз, и вы сможете подробно изучить сбой.
Вы можете увидеть это в действии на следующем видео:
Вы можете попробовать CrashScope через онлайн-сервис. Вы должны подписаться на него в данный момент, но в ближайшем будущем планируется выпуск версии с открытым исходным кодом.