20
Контроль качества и сопровождение в реальном времени Антон Наумович DPI Solutions / IASO Backup

Антон Наумович - Контроль качества и сопровождение в реальном времени

Embed Size (px)

Citation preview

Page 1: Антон Наумович - Контроль качества и сопровождение в реальном времени

Контроль качества и сопровождение в

реальном времениАнтон Наумович

DPI Solutions / IASO Backup

Page 2: Антон Наумович - Контроль качества и сопровождение в реальном времени

Немного о себе

Антон НаумовичБолее 10 лет опыта в разработке

● C++ тимлид и архитектор в IASO Backup ● Консультант в DPI Solutions● В прошлом – разработчик в Microsoft, команда

Hyper-V (Windows Server 2008 R2/2012)

Специализируюсь в архитектуре, производительности, отладке, техническом troubleshooting-е

Page 3: Антон Наумович - Контроль качества и сопровождение в реальном времени

О чем поговорим?

1. О качестве приложений с технической, а не функциональной точки зрения

2. О построении автоматической системы отслеживания “технического” качества

3. О максимально возможном дистанцировании человека от построенной системы

В контексте нативных и .Net приложений под Windows

Page 4: Антон Наумович - Контроль качества и сопровождение в реальном времени

Что будем отслеживать?

Отклонения● падения● подвисания● потребление памяти● потребление процессора● и прочее

Page 5: Антон Наумович - Контроль качества и сопровождение в реальном времени

Отчего возникают отклонения?

1. Ошибки разработчиков (чаще всего!)2. Нюансы сторонних библиотек3. Разнообразие окружения (и софта, и

железа)

Page 6: Антон Наумович - Контроль качества и сопровождение в реальном времени

Как разобраться в причине?

Page 7: Антон Наумович - Контроль качества и сопровождение в реальном времени

Дампы памяти!

1. Дамп – файл-слепок памяти процесса, который можно снять в любой момент:● при падении процесса● с зависшего процесса● с работающего процесса

2. Беглого анализа обычно достаточно чтобы понять причину проблемы

3. Сам факт наличия дампа – уже сигнал “внимание, что-то произошло”

Page 8: Антон Наумович - Контроль качества и сопровождение в реальном времени

Сбор дампов

Нужен сторонний процесс-контроллер для независимости наблюдений

Также умеют снимать:- Task Manager- Process Explorer иprocdump (Sysinternals)

Page 9: Антон Наумович - Контроль качества и сопровождение в реальном времени

Что умеет отслеживать procdump?

Много чего:● Падения (-t -e)● Потребление процессора (-c)● Потребление памяти (-m)● Зависшие окна (-h)● Выход за пределы любых performance counters –

очень мощная вещь (-p)

Page 10: Антон Наумович - Контроль качества и сопровождение в реальном времени

Что еще умеет procdump?

● Ожидать старта процесса (-w)● Писать дампы сериями (-n)● Работать с таймаутами (-s)● Делать полные дампы с минимальным

вмешательством в процесс (-r)● Конфигурировать имена и расположение дампов

Page 11: Антон Наумович - Контроль качества и сопровождение в реальном времени

procdump: пример

Page 12: Антон Наумович - Контроль качества и сопровождение в реальном времени

Как извлечь информацию?

Анализ дампа – то же самое, что и отладка,только в статике

Можно и автоматически:

cdb.exe -y C:\lab -i C:\lab -z C:\lab\SuperApp.dmp -c "~*k;q" > C:\analysis.txt

Page 13: Антон Наумович - Контроль качества и сопровождение в реальном времени

Что в результате анализа?

Обычно достаточно стеков потоков чтобы найти причину проблемы

008afcf0 MSVCP120!std::_Xout_of_range+0x36008fc86b SuperApp!WorkerProcessor::GetNextChunk+0x1e10061d914 SuperApp!WorkerProcessor::CalculateAverage+0x2020062875c SuperApp!WorkerModule::ProcessQueueEvent+0xdf0012877a SuperApp!WorkerModule::TakeSingleItem+0x373004dc89a SuperApp!WorkerModule::Run+0x6700bdc100 SuperApp!main+0x1955

Page 14: Антон Наумович - Контроль качества и сопровождение в реальном времени

Теперь свяжем все вместе

Page 15: Антон Наумович - Контроль качества и сопровождение в реальном времени

Существующие похожие решения

Windows Error Reportinghttp://msdn.microsoft.com/en-us/library/windows/desktop/bb513641(v=vs.85).aspx

Mozilla Crash Reporterhttps://support.mozilla.org/en-US/kb/mozillacrashreporter

Page 16: Антон Наумович - Контроль качества и сопровождение в реальном времени

Символ-сервер

- Используется для хранения и быстрого доступа к отладочной информации

- На символ-сервер выкладываются все отладочные файлы предназначенные для анализа

- Значительно ускоряет отладку – не нужно искать файлы вручную

Page 17: Антон Наумович - Контроль качества и сопровождение в реальном времени

Синие экраны смерти

При “падении” Windows пишется дамп системы в файл C:\Windows\Memory.dmp

Анализ тривиален:1. Открываем дамп-файл в отладчике WinDbg или cdb2. Указываем адрес Microsoft символ-сервера -

http://msdl.microsoft.com/download/symbols3. Выполняем одну команду “analyze -v”

Page 18: Антон Наумович - Контроль качества и сопровождение в реальном времени

Инструментарий

• Набор отладчиков Debugging Tools for Windowshttp://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx• Семейство утилит Sysinternalshttp://technet.microsoft.com/en-us/sysinternals/bb545021.aspx• Библиотека Google Breakpadhttps://code.google.com/p/google-breakpad/• Windows API: семейство Debug Help http://msdn.microsoft.com/en-us/library/windows/desktop/ms679309(v=vs.85).aspx• Microsoft Symbols Serverhttp://en.wikipedia.org/wiki/Microsoft_Symbol_Server

Page 19: Антон Наумович - Контроль качества и сопровождение в реальном времени

1. Ускоряем нахождение и устранение дефектов2. Максимально автоматизируем и исключаем

человека из цепочки3. Даем возможность мгновенно среагировать

на критическую проблему4. Отслеживаем показатели качества от версии

к версии5. Повышаем надежность программы

Какая выгода?

Page 20: Антон Наумович - Контроль качества и сопровождение в реальном времени

Антон Наумович[email protected]

DPI Solutionswww.dpi.solutions

Belarus QA Automation Communitywww.comaqa.by

Спасибо! Вопросы?