Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

819 vues

Publié le

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

Publié dans : Formation
  • Soyez le premier à commenter

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

  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 ☺ Спасибо! Вопросы?

×