Пример проекта
База тестов ошибочных сценариев с Application Verifier
Пример создания с помощью Application Verifier базы тестов ошибочных сценариев для предотвращения повторных дефектов и упрощения будущего анализа.
Обзор проекта
Мы не ограничились исправлением одного дефекта, а использовали Application Verifier, чтобы создать саму основу для тестирования ошибочных сценариев. Цель состояла не только в поиске текущей неисправности, но и в подготовке системы, в которой следующий дефект будет проще обнаружить и проследить.
Симптомы
- Тесты нормального режима плохо выявляли дефекты в путях обработки ошибок
- Нехватка ресурсов и ошибки дескрипторов проявлялись главным образом в условиях, близких к рабочим
- Процедуры анализа могли зависеть от конкретного специалиста
Ограничения
- Реальное исчерпание ресурсов машины дорого и рискованно
- Ошибки на границах нативного кода и Win32 требовалось выявлять до появления в эксплуатации
- Результат должен был пригодиться и для последующих расследований
Что мы наблюдали
- Настройки Application Verifier, включая
Handles,HeapsиLow Resource Simulation - Следы ошибочных путей, в том числе
!htraceи page heap - Соответствие собственных журналов жизненного цикла информации об остановках Verifier
Как мы сузили область поиска
Сначала мы разделили то, что можно проследить обычными журналами, и то, что становится видно только с Application Verifier. Затем применили Verifier к управляемому пути выполнения в тестовом стенде, чтобы раньше проявлять трудно воспроизводимые ошибки.
Что мы улучшили
- Создали повторно используемую базу для намеренного прохождения ошибочных путей
- Сократили циклы, в которых можно наблюдать ошибки дескрипторов и кучи
- Организовали точки наблюдения так, чтобы использовать их в ревью проектирования и предотвращении регрессий
Связанные услуги
Этот проект напрямую относится к анализу неисправностей и поиску причины, когда требуется воспроизвести и объяснить трудноуловимые дефекты. Он также связан с техническими консультациями и ревью проектирования, где определяется, какие тесты ошибок и точки наблюдения следует заложить в архитектуру системы.
Свяжитесь с нами
Если содержание этой страницы соответствует вашей ситуации, опишите текущий контекст и необходимый вид поддержки.