«Повторите» шаги, необходимые для воссоздания ошибки - PullRequest
0 голосов
/ 24 марта 2010

Я собираюсь создать типичное бизнес-приложение, которое будет использоваться несколькими сотнями консультантов. Обычно консультанты получают сообщение об ошибке со стандартным текстом. Поскольку приложение будет сложным, с постоянно вносимыми в него изменениями, мне бы хотелось следующее:

Когда появляется сообщение об ошибке, пользователь имеет возможность «отправить» сообщение об ошибке разработчикам. Разработчики должны иметь возможность открывать входящий файл в Eclipse и отлаживать пошаговые шаги последних 10 минут работы (по одной строке за раз, если они этого хотят). Все должно быть прозрачным, что означает, что они, например, должны видеть возвращаемые значения вызовов в базу данных.

Существуют ли какие-либо решения, которые предлагают такую ​​функциональность сегодня, я предпочитаю язык Python или также Java. Я знаю, что из-за такой функциональности будет огромный удар по производительности, но это приемлемо, так как этот тип программного обеспечения не чувствителен к производительности.

Было бы ОЧЕНЬ хорошо, если бы у базы данных также была хронология, чтобы можно было запрашивать в базе данных значения, которые существовали в то время, когда в приложении была запущена определенная строка кода, что привело к ошибке. *

1 Ответ

1 голос
/ 24 марта 2010

Вы должны попытаться использовать ведение журнала, например, фиксировать журналы из БД и регистрировать взаимодействия пользователя с приложением, если это веб-приложение, вы можете запустить файлы журналов с веб-сервера. Убедитесь, что в лог-файлы включены все отправленные данные, такие как полный URL-адрес GET с параметрами и POST с телом объекта. Вы можете настроить веб-сервер для создания таких журналов при необходимости.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...