SlideShare a Scribd company logo
1 of 27
Automatic
Crash Analysis System
Anton Naumovich
About me
Anton Naumovich
Development Manager at LogicNow
Developer at Microsoft (Hyper-V) in the past
Specializing in performance, debugging,
troubleshooting
Bad things happen
Divergence
Crashes Hangs
Overusage of processor and RAM
And more...
Large numbers
Sources of divergence
Developers’ mistakes
Thirdparty libraries issues
Environment diversity (software, hardware)
How to find the root cause?
Take a memory dump!
Dump is a snapshot of process memory
Problem root cause can be located from the dump
The fact that dump is taken is an “attention!” signal
Dump kinds
Minidump
threads and handles
Full dump
+virtual memory
Kernel dump
Full OS
KeBugCheckEx
Taking a process dump
We need a “non-involved” controller process
SuperController.exe
Controller app
SuperApp.exe
Worker app
Dump
file
Monitoring
Taking dumps
Apps capable of taking dumps
Process Explorer (full, mini)
Task Manager (full)
ProcDump (full, mini, and much more)
ProcDump: basics
-c CPU threshold above which to create a dump of the process
-e Write a dump when the process encounters an unhandled exception
-m Memory commit threshold in MB at which to create a dump
-t Write a dump when the process terminates
-h Write dump if process has a hung window
-p Trigger on the performance counter when the threshold exceeded
ProcDump: advanced
-w Wait for the specified process to launch if it's not running
-s Consecutive seconds before dump is written (default is 10)
-n Number of dumps to write before exiting
-r Dump using a clone
-i Install ProcDump as the AeDebug postmortem debugger
-ma Write a dump file with all process memory
procdump: controlling apps
SuperApp.exe
Worker app
procdump -c 30 SuperApp.exe procdump -h SuperApp.exe
procdump -m 300 SuperApp.exe
procdump -t SuperApp.exe
procdump -p "Process(SuperApp)Handle Count" 1000 SuperApp.exe
Fetching info from the dump
Dump analysis is
just static debugging
cdb.exe -y C:lab -i C:lab -z C:labSuperApp.dmp -c "~*k;q" > C:analysis.txt
Easily automatable:
Debugger
SuperApp.pdb
Debugging
symbols
SuperApp.dmp
Memory dump
SuperApp.exe
App executable
Analysis results
It’s all about thread stacks
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+0x54
004dc89a SuperApp!WorkerModule::Run+0x67
00bdc100 SuperApp!main+0x1955
Mission Control
Connecting it all together
Key analysis features
Dump fuzzy matching and grouping by stack
Integration with issue tracking (Jira)
Analyze dump by user request
Notifications about new/critical problems
Symbol Server
- Storage and access to app debugging symbols
- Dramatically speeds up debugging
Analogues
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
Dr. Dump
https://drdump.com/crash-reporting-system
Example: Dr. Dump
https://drdump.com/AppVersion.aspx
What can you do tomorrow?
Setup symbol server (simply a shared folder)
Use a script to monitor problems and capture dumps
Use a script to analyze dumps
Toolset
Debugging Tools for Windows (cdb, windbg)
http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx
Sysinternals tool suite (procdump, procexp)
http://technet.microsoft.com/en-us/sysinternals/bb545021.aspx
Google Breakpad library
https://code.google.com/p/google-breakpad/
Windows API: Debug Help family
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
1. Speed up defect location
2. Immediate reaction to critical problems
3. Version quality indicators
4. Improve stability
Profit
Thanks! Questions?
Anton.Naumovich@LogicNow.com

More Related Content

Viewers also liked

c++ boost and STL
c++  boost and STLc++  boost and STL
c++ boost and STLCOMAQA.BY
 
Allure framework. Пример настройки исчерпывающего репорта на реальном проекте
Allure framework. Пример настройки исчерпывающего репорта на реальном проектеAllure framework. Пример настройки исчерпывающего репорта на реальном проекте
Allure framework. Пример настройки исчерпывающего репорта на реальном проектеCOMAQA.BY
 
Hpx runtime system
Hpx runtime systemHpx runtime system
Hpx runtime systemCOMAQA.BY
 
закон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesзакон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesCOMAQA.BY
 
обзор средств разработки для вычислений Gpgpu
обзор средств разработки для вычислений Gpgpuобзор средств разработки для вычислений Gpgpu
обзор средств разработки для вычислений GpgpuCOMAQA.BY
 
tricks of Stl containers
tricks of Stl containerstricks of Stl containers
tricks of Stl containersCOMAQA.BY
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
 
MobileAPI + CRM – using application related .xml files to build automation f...
 MobileAPI + CRM – using application related .xml files to build automation f... MobileAPI + CRM – using application related .xml files to build automation f...
MobileAPI + CRM – using application related .xml files to build automation f...COMAQA.BY
 
Многогранная профессия тестировщика глазами с++ разработчика в примерах
Многогранная профессия тестировщика глазами с++ разработчика в примерахМногогранная профессия тестировщика глазами с++ разработчика в примерах
Многогранная профессия тестировщика глазами с++ разработчика в примерахCOMAQA.BY
 
Автоматизация визуального тестирования
Автоматизация визуального тестированияАвтоматизация визуального тестирования
Автоматизация визуального тестированияCOMAQA.BY
 
Example of TAF with batch execution of test cases
 Example of TAF with batch execution of test cases  Example of TAF with batch execution of test cases
Example of TAF with batch execution of test cases COMAQA.BY
 
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) COMAQA.BY
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci COMAQA.BY
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
 
Автоматизация для не-автоматизаторов: хотелки и реальность
Автоматизация для не-автоматизаторов: хотелки и реальность Автоматизация для не-автоматизаторов: хотелки и реальность
Автоматизация для не-автоматизаторов: хотелки и реальность COMAQA.BY
 
Docker в автоматизации тестирования
Docker в автоматизации тестированияDocker в автоматизации тестирования
Docker в автоматизации тестированияCOMAQA.BY
 
От хаоса к автоматизации тестирования на примере Backend
От хаоса к автоматизации тестирования на примере BackendОт хаоса к автоматизации тестирования на примере Backend
От хаоса к автоматизации тестирования на примере BackendCOMAQA.BY
 
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScriptОбзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScriptCOMAQA.BY
 

Viewers also liked (20)

c++ boost and STL
c++  boost and STLc++  boost and STL
c++ boost and STL
 
Allure framework. Пример настройки исчерпывающего репорта на реальном проекте
Allure framework. Пример настройки исчерпывающего репорта на реальном проектеAllure framework. Пример настройки исчерпывающего репорта на реальном проекте
Allure framework. Пример настройки исчерпывающего репорта на реальном проекте
 
Hpx runtime system
Hpx runtime systemHpx runtime system
Hpx runtime system
 
закон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesзакон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelines
 
C++ idioms
C++ idiomsC++ idioms
C++ idioms
 
обзор средств разработки для вычислений Gpgpu
обзор средств разработки для вычислений Gpgpuобзор средств разработки для вычислений Gpgpu
обзор средств разработки для вычислений Gpgpu
 
tricks of Stl containers
tricks of Stl containerstricks of Stl containers
tricks of Stl containers
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
MobileAPI + CRM – using application related .xml files to build automation f...
 MobileAPI + CRM – using application related .xml files to build automation f... MobileAPI + CRM – using application related .xml files to build automation f...
MobileAPI + CRM – using application related .xml files to build automation f...
 
Многогранная профессия тестировщика глазами с++ разработчика в примерах
Многогранная профессия тестировщика глазами с++ разработчика в примерахМногогранная профессия тестировщика глазами с++ разработчика в примерах
Многогранная профессия тестировщика глазами с++ разработчика в примерах
 
Автоматизация визуального тестирования
Автоматизация визуального тестированияАвтоматизация визуального тестирования
Автоматизация визуального тестирования
 
CodeFest
CodeFest CodeFest
CodeFest
 
Example of TAF with batch execution of test cases
 Example of TAF with batch execution of test cases  Example of TAF with batch execution of test cases
Example of TAF with batch execution of test cases
 
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
 
Автоматизация для не-автоматизаторов: хотелки и реальность
Автоматизация для не-автоматизаторов: хотелки и реальность Автоматизация для не-автоматизаторов: хотелки и реальность
Автоматизация для не-автоматизаторов: хотелки и реальность
 
Docker в автоматизации тестирования
Docker в автоматизации тестированияDocker в автоматизации тестирования
Docker в автоматизации тестирования
 
От хаоса к автоматизации тестирования на примере Backend
От хаоса к автоматизации тестирования на примере BackendОт хаоса к автоматизации тестирования на примере Backend
От хаоса к автоматизации тестирования на примере Backend
 
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScriptОбзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScript
 

Similar to Automatic crash analysis system

Антон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствамиАнтон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствамиSergey Platonov
 
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Camilo Alvarez Rivera
 
php & performance
 php & performance php & performance
php & performancesimon8410
 
Large Scale Crash Dump Analysis with SuperDump
Large Scale Crash Dump Analysis with SuperDumpLarge Scale Crash Dump Analysis with SuperDump
Large Scale Crash Dump Analysis with SuperDumpChristoph Neumüller
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance毅 吕
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERNeotys
 
Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharingJames Hsieh
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Amin Astaneh
 
Scaling python webapps from 0 to 50 million users - A top-down approach
Scaling python webapps from 0 to 50 million users - A top-down approachScaling python webapps from 0 to 50 million users - A top-down approach
Scaling python webapps from 0 to 50 million users - A top-down approachJinal Jhaveri
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from DumpsChris Bailey
 
PyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsGraham Dumpleton
 
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)Elvin Gentiles
 
Operating system concepts
Operating system conceptsOperating system concepts
Operating system conceptsGreen Ecosystem
 
Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"
Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"
Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"LogeekNightUkraine
 
Virtual platform
Virtual platformVirtual platform
Virtual platformsean chen
 
Batch programming and Viruses
Batch programming and VirusesBatch programming and Viruses
Batch programming and VirusesAkshay Saini
 
OSTEP Chapter2 Introduction
OSTEP Chapter2 IntroductionOSTEP Chapter2 Introduction
OSTEP Chapter2 IntroductionShuya Osaki
 
Kernel Recipes 2017 - Using Linux perf at Netflix - Brendan Gregg
Kernel Recipes 2017 - Using Linux perf at Netflix - Brendan GreggKernel Recipes 2017 - Using Linux perf at Netflix - Brendan Gregg
Kernel Recipes 2017 - Using Linux perf at Netflix - Brendan GreggAnne Nicolas
 

Similar to Automatic crash analysis system (20)

Антон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствамиАнтон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствами
 
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
 
php & performance
 php & performance php & performance
php & performance
 
Large Scale Crash Dump Analysis with SuperDump
Large Scale Crash Dump Analysis with SuperDumpLarge Scale Crash Dump Analysis with SuperDump
Large Scale Crash Dump Analysis with SuperDump
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLER
 
.NET Debugging Workshop
.NET Debugging Workshop.NET Debugging Workshop
.NET Debugging Workshop
 
Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharing
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)
 
Scaling python webapps from 0 to 50 million users - A top-down approach
Scaling python webapps from 0 to 50 million users - A top-down approachScaling python webapps from 0 to 50 million users - A top-down approach
Scaling python webapps from 0 to 50 million users - A top-down approach
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from Dumps
 
PyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web Applications
 
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
 
Operating system concepts
Operating system conceptsOperating system concepts
Operating system concepts
 
Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"
Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"
Oleksandr Smoktal "Parallel Seismic Data Processing Using OpenMP"
 
Virtual platform
Virtual platformVirtual platform
Virtual platform
 
Batch programming and Viruses
Batch programming and VirusesBatch programming and Viruses
Batch programming and Viruses
 
OSTEP Chapter2 Introduction
OSTEP Chapter2 IntroductionOSTEP Chapter2 Introduction
OSTEP Chapter2 Introduction
 
Kernel Recipes 2017 - Using Linux perf at Netflix - Brendan Gregg
Kernel Recipes 2017 - Using Linux perf at Netflix - Brendan GreggKernel Recipes 2017 - Using Linux perf at Netflix - Brendan Gregg
Kernel Recipes 2017 - Using Linux perf at Netflix - Brendan Gregg
 

More from COMAQA.BY

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...COMAQA.BY
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...COMAQA.BY
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...COMAQA.BY
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьRoman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьCOMAQA.BY
 
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...COMAQA.BY
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...COMAQA.BY
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...COMAQA.BY
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...COMAQA.BY
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.COMAQA.BY
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.COMAQA.BY
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...COMAQA.BY
 
Моя роль в конфликте
Моя роль в конфликтеМоя роль в конфликте
Моя роль в конфликтеCOMAQA.BY
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковОрганизация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковCOMAQA.BY
 
Развитие или смерть
Развитие или смертьРазвитие или смерть
Развитие или смертьCOMAQA.BY
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовСистемный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовCOMAQA.BY
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиЭффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиCOMAQA.BY
 
Как стать синьором
Как стать синьоромКак стать синьором
Как стать синьоромCOMAQA.BY
 
Open your mind for OpenSource
Open your mind for OpenSourceOpen your mind for OpenSource
Open your mind for OpenSourceCOMAQA.BY
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingCOMAQA.BY
 
Out of box page object design pattern, java
Out of box page object design pattern, javaOut of box page object design pattern, java
Out of box page object design pattern, javaCOMAQA.BY
 

More from COMAQA.BY (20)

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьRoman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
 
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
 
Моя роль в конфликте
Моя роль в конфликтеМоя роль в конфликте
Моя роль в конфликте
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковОрганизация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиков
 
Развитие или смерть
Развитие или смертьРазвитие или смерть
Развитие или смерть
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовСистемный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестов
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиЭффективная работа с рутинными задачами
Эффективная работа с рутинными задачами
 
Как стать синьором
Как стать синьоромКак стать синьором
Как стать синьором
 
Open your mind for OpenSource
Open your mind for OpenSourceOpen your mind for OpenSource
Open your mind for OpenSource
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testing
 
Out of box page object design pattern, java
Out of box page object design pattern, javaOut of box page object design pattern, java
Out of box page object design pattern, java
 

Recently uploaded

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Automatic crash analysis system

  • 2. About me Anton Naumovich Development Manager at LogicNow Developer at Microsoft (Hyper-V) in the past Specializing in performance, debugging, troubleshooting
  • 4. Divergence Crashes Hangs Overusage of processor and RAM And more...
  • 6. Sources of divergence Developers’ mistakes Thirdparty libraries issues Environment diversity (software, hardware)
  • 7. How to find the root cause?
  • 8. Take a memory dump! Dump is a snapshot of process memory Problem root cause can be located from the dump The fact that dump is taken is an “attention!” signal
  • 9. Dump kinds Minidump threads and handles Full dump +virtual memory Kernel dump Full OS
  • 11. Taking a process dump We need a “non-involved” controller process SuperController.exe Controller app SuperApp.exe Worker app Dump file Monitoring Taking dumps
  • 12. Apps capable of taking dumps Process Explorer (full, mini) Task Manager (full) ProcDump (full, mini, and much more)
  • 13. ProcDump: basics -c CPU threshold above which to create a dump of the process -e Write a dump when the process encounters an unhandled exception -m Memory commit threshold in MB at which to create a dump -t Write a dump when the process terminates -h Write dump if process has a hung window -p Trigger on the performance counter when the threshold exceeded
  • 14. ProcDump: advanced -w Wait for the specified process to launch if it's not running -s Consecutive seconds before dump is written (default is 10) -n Number of dumps to write before exiting -r Dump using a clone -i Install ProcDump as the AeDebug postmortem debugger -ma Write a dump file with all process memory
  • 15. procdump: controlling apps SuperApp.exe Worker app procdump -c 30 SuperApp.exe procdump -h SuperApp.exe procdump -m 300 SuperApp.exe procdump -t SuperApp.exe procdump -p "Process(SuperApp)Handle Count" 1000 SuperApp.exe
  • 16. Fetching info from the dump Dump analysis is just static debugging cdb.exe -y C:lab -i C:lab -z C:labSuperApp.dmp -c "~*k;q" > C:analysis.txt Easily automatable: Debugger SuperApp.pdb Debugging symbols SuperApp.dmp Memory dump SuperApp.exe App executable
  • 17. Analysis results It’s all about thread stacks 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+0x54 004dc89a SuperApp!WorkerModule::Run+0x67 00bdc100 SuperApp!main+0x1955
  • 19. Connecting it all together
  • 20. Key analysis features Dump fuzzy matching and grouping by stack Integration with issue tracking (Jira) Analyze dump by user request Notifications about new/critical problems
  • 21. Symbol Server - Storage and access to app debugging symbols - Dramatically speeds up debugging
  • 22. Analogues 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 Dr. Dump https://drdump.com/crash-reporting-system
  • 24. What can you do tomorrow? Setup symbol server (simply a shared folder) Use a script to monitor problems and capture dumps Use a script to analyze dumps
  • 25. Toolset Debugging Tools for Windows (cdb, windbg) http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx Sysinternals tool suite (procdump, procexp) http://technet.microsoft.com/en-us/sysinternals/bb545021.aspx Google Breakpad library https://code.google.com/p/google-breakpad/ Windows API: Debug Help family 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
  • 26. 1. Speed up defect location 2. Immediate reaction to critical problems 3. Version quality indicators 4. Improve stability Profit

Editor's Notes

  1. Я расскажу о контроле качества в реальном времени - то есть не в “лабораторных” условиях, а во время того, как приложение выполняет свою реальную работу на машинах конечных пользователей. Фактически, речь пойдет о построении системы обратной связи из продакшена в “Центр Управления Полетами” :) Такая система находится в сфере интересов и на стыке компетенции многих отделов - Development, QA+Automation, Support
  2. Нас будут интересовать такие показатели качества как: падения (выполнение недопустимой операции) - все видели такое окошечко, скоро мы узнаем что происходит за кулисами когда мы соглашаемся отправить отчет подвисания - когда приложение перестает отвечать на внешние раздражители потребление памяти - либо утечки, либо просто нерациональное ее использование потребление процессора и дугие - специфические для предметной области, или комбинированные перечисленные выше.
  3. Причина как правило в 90% случаев - это человеческий фактор, т.е. ошибки разработчиков. Мы все люди, мы все делаем ошибки, и будем их делать. Нюансы сторонних библиотек и разнообразие окружения - это зачастую тоже человеческий ошибки, только других людей.
  4. В Windows, как и в других операционных системах, есть встроенная возможность снимать с процесса слепок памяти в любой момент времени Причем беглого анализа достаточно чтобы найти причину того или иного отклонения Более того, очень важно, параметры отклонений можно подобрать так, что сам факт наличия дампа - уже сигнал “Внимание”
  5. Поговорим о том, как же снимать дампы В докладе приводится сквозной пример - приложение SuperApp. Обычно если приложение должно работать в фоне, то в связке с ним идет и приложение-контроллер SuperController, который отвечает за то чтобы его подопечный жил и функционировал. Так вот, это приложение-контроллер можно нагрузить дополнительной работой и заставить мониторить важные показатели жизнедеятельности реального работника, и в случае отклонений этих показателей от нормы снимать дамп с наблюдаемого. Также, дампы умеют снимать Task Manager (встроенный в Windows) и очень мощная утилита procdump из sysinternals - на ней мы остановимся подробнее для демонстрации спектра возможностей.
  6. В качестве примеров Performance Counter - ов можно привести количество открытых файлов, количество прочитанных с диска или отосланных в сеть байт, и так далее.
  7. Немного технических деталей об анализе дампов. Для анализа нужны три компонента - отладочная информация, исполняемый файл и отладочные символы Анализ - это очень просто, то же самое что и отладка, то есть любой программист априори умеет это делать Это элементарно автоматизируемо, например с помощью отладчика cdb
  8. Пример - проблема обычно кроется в самых последних фреймах - вот выход за границы вектора
  9. Мы знаем как собирать и как анализировать дампы - если связать все вместе, получится такая картина. На клиенте На клиентской стороне SuperApp и SuperController работают в паре - SuperApp делает свою работу, SuperController следит за ним Как только происходит отклонение - SuperController снимает дамп и отсылает его на сервер (например, по протоколу FTP или HTTP) вместе со вспомогательной информацией. На сервере Присланный дамп попадает в хранилище, например на файловой системе или в базе данных В фоне процесс-аналитик SuperAnalyst запускает анализ дампов, извлекая нужную эксперту информацию О самых критичных проблемах процесс-аналитик сообщает эксперту например через почту или SMS. Иногда надо среагировать мгновенно.
  10. Технология для облегчения доступа к отладочной информации разных версий. Не нужно тратить время на поиск символов, достаточно просто указать один адрес, остальное сделает отладчик.
  11. Любое более-менее серьезное приложение имеет похожую систему обратной связи - например Windows, Mozilla и т.п.
  12. С помощью бесплатных Debugging Tools for Windows и SysInternals можно организовать подобную систему в тестовой лаборатории - причем за считанные дни, причем практически без дополнительных усилий со стороны программистов.