Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

783 views

Published on

Презентация Татьяны Зинченко на SQA Days-16
14-15 ноября 2014, Санкт-Петербург, Россия
www.sqadays.com

Published in: Education
  • Be the first to comment

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

  1. 1. Контроль качества и сопровождение в реальном времени Антон Наумович DPI Solutions / IASO Backup
  2. 2. Немного о себе Антон Наумович Более 10 лет опыта в разработке ● C++ тимлид и архитектор в IASO Backup ● Консультант в DPI Solutions ● В прошлом – разработчик в Microsoft, команда Hyper-V (Windows Server 2008 R2/2012) Специализируюсь в архитектуре, производительности, отладке, техническом troubleshooting-е
  3. 3. О чем поговорим? 1. О качестве приложений с технической, а не функциональной точки зрения 2. О построении автоматической системы отслеживания “технического” качества 3. О максимально возможном дистанцировании человека от построенной системы В контексте нативных и .Net приложений под Windows
  4. 4. Что будем отслеживать? Отклонения ● падения ● подвисания ● потребление памяти ● потребление процессора ● и прочее
  5. 5. Отчего возникают отклонения? 1. Ошибки разработчиков (чаще всего!) 2. Нюансы сторонних библиотек 3. Разнообразие окружения (и софта, и железа)
  6. 6. Как разобраться в причине?
  7. 7. Дампы памяти! 1. Дамп – файл-слепок памяти процесса, который можно снять в любой момент: ● при падении процесса ● с зависшего процесса ● с работающего процесса 2. Беглого анализа обычно достаточно чтобы понять причину проблемы 3. Сам факт наличия дампа – уже сигнал “внимание, что-то произошло”
  8. 8. Сбор дампов Нужен сторонний процесс-контроллер для независимости наблюдений Также умеют снимать: - Task Manager - Process Explorer и procdump (Sysinternals)
  9. 9. Что умеет отслеживать procdump? Много чего: ● Падения (-t -e) ● Потребление процессора (-c) ● Потребление памяти (-m) ● Зависшие окна (-h) ● Выход за пределы любых performance counters – очень мощная вещь (-p)
  10. 10. Что еще умеет procdump? ● Ожидать старта процесса (-w) ● Писать дампы сериями (-n) ● Работать с таймаутами (-s) ● Делать полные дампы с минимальным вмешательством в процесс (-r) ● Конфигурировать имена и расположение дампов
  11. 11. procdump: пример
  12. 12. Как извлечь информацию? Анализ дампа – то же самое, что и отладка, только в статике Можно и автоматически: cdb.exe -y C:lab -i C:lab -z C:labSuperApp.dmp -c "~*k;q" > C:analysis.txt
  13. 13. Что в результате анализа? Обычно достаточно стеков потоков чтобы найти причину проблемы 008afcf0 MSVCP120!std::_Xout_of_range+0x36 008fc86b SuperApp!WorkerProcessor::GetNextChunk+0x1e1 0061d914 SuperApp!WorkerProcessor::CalculateAverage+0x202 0062875c SuperApp!WorkerModule::ProcessQueueEvent+0xdf 0012877a SuperApp!WorkerModule::TakeSingleItem+0x373 004dc89a SuperApp!WorkerModule::Run+0x67 00bdc100 SuperApp!main+0x1955
  14. 14. Теперь свяжем все вместе
  15. 15. Существующие похожие решения Windows Error Reporting http://msdn.microsoft.com/en- us/library/windows/desktop/bb513641(v=vs.85).aspx Mozilla Crash Reporter https://support.mozilla.org/en-US/kb/mozillacrashreporter
  16. 16. Символ-сервер - Используется для хранения и быстрого доступа к отладочной информации - На символ-сервер выкладываются все отладочные файлы предназначенные для анализа - Значительно ускоряет отладку – не нужно искать файлы вручную
  17. 17. Синие экраны смерти При “падении” Windows пишется дамп системы в файл C:WindowsMemory.dmp Анализ тривиален: 1. Открываем дамп-файл в отладчике WinDbg или cdb 2. Указываем адрес Microsoft символ-сервера - http://msdl.microsoft.com/download/symbols 3. Выполняем одну команду “analyze -v”
  18. 18. Инструментарий • Набор отладчиков Debugging Tools for Windows http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx • Семейство утилит Sysinternals http://technet.microsoft.com/en-us/sysinternals/bb545021.aspx • Библиотека Google Breakpad https://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 Server http://en.wikipedia.org/wiki/Microsoft_Symbol_Server
  19. 19. 1. Ускоряем нахождение и устранение дефектов 2. Максимально автоматизируем и исключаем человека из цепочки 3. Даем возможность мгновенно среагировать на критическую проблему 4. Отслеживаем показатели качества от версии к версии 5. Повышаем надежность программы Какая выгода?
  20. 20. Антон Наумович naumovich@dpi.solutions DPI Solutions www.dpi.solutions Belarus QA Automation Community www.comaqa.by ☺ Спасибо! Вопросы?

×