Пример проекта

База тестов ошибочных сценариев с Application Verifier

Пример создания с помощью Application Verifier базы тестов ошибочных сценариев для предотвращения повторных дефектов и упрощения будущего анализа.

Обзор проекта

Мы не ограничились исправлением одного дефекта, а использовали Application Verifier, чтобы создать саму основу для тестирования ошибочных сценариев. Цель состояла не только в поиске текущей неисправности, но и в подготовке системы, в которой следующий дефект будет проще обнаружить и проследить.

Симптомы

  • Тесты нормального режима плохо выявляли дефекты в путях обработки ошибок
  • Нехватка ресурсов и ошибки дескрипторов проявлялись главным образом в условиях, близких к рабочим
  • Процедуры анализа могли зависеть от конкретного специалиста

Ограничения

  • Реальное исчерпание ресурсов машины дорого и рискованно
  • Ошибки на границах нативного кода и Win32 требовалось выявлять до появления в эксплуатации
  • Результат должен был пригодиться и для последующих расследований

Что мы наблюдали

  • Настройки Application Verifier, включая Handles, Heaps и Low Resource Simulation
  • Следы ошибочных путей, в том числе !htrace и page heap
  • Соответствие собственных журналов жизненного цикла информации об остановках Verifier

Как мы сузили область поиска

Сначала мы разделили то, что можно проследить обычными журналами, и то, что становится видно только с Application Verifier. Затем применили Verifier к управляемому пути выполнения в тестовом стенде, чтобы раньше проявлять трудно воспроизводимые ошибки.

Что мы улучшили

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

Связанные услуги

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

Свяжитесь с нами

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

Вернуться на главную