SlideShare a Scribd company logo
Marcus Ciolkowski (QAware), Liliana Guzmán, AdamTrendowicz, Anna Maria Vollmer
marcus.ciolkowski@qaware.de
Challenges in Assessing
Technical Debt based on
Dynamic Runtime Data
Prague, August 31 2018
SEAA 2018
Software Engineering and Technical Debt
Key Take-Aways
QAware 2
Research should focus more on dynamic indicators of technical debt
(instead of mining for static aspects)
There are many opportunities for measurement
Highly relevant to industry
QAware 3
QAware: We specialize in quality projects.
solve
problems
shape
the future
Consulting
Analysis & Diagnosis
Implementation
Renovate & Migrate
Consulting
Invent & Explore
Implementation
Development & Integration
Focus:
IT-Troubleshooting
Focus:
Cloud Native Computing
Big Data / Machine Learning
IoT
Software Engineering
Background 2: Research Project ProDebt
Proactive Management of Technical Debt
QAware 4
Context: ProDebt (management of technical debt)
assessing and managing technical debt
in the context of ASD
Structured interviews in two companies
10 developers/architects (including 2 CTOs and 3 chief architects)
In this presentation: Focus on dynamic aspects of technical debt
challenges
opportunities and examples for dynamic aspects
Measuring Quality Debt is not novel.
But: Existing Approaches ignore dynamic behavior.
5
Current software (quality) measurement is based on static metrics
plenty of tools exist (e.g. SonarQube)
rather simple to measure
much experience in measurement and presentation
Dynamic aspects / KPIs are underrepresented
test coverage is most common exception
dynamic indicators influence, e.g.
customer satisfaction
infrastructure and operation costs
tricky cases in maintenance hide often here (e.g., leaks and locks)
Gap: Measure and evaluate dynamic aspects
QAware 6
One example of dynamic aspects: Runtime structure
runtime structure: actual call relationships at runtime
runtime structure is important
to gain understanding of system at runtime
to identify performance problems
Challenge: often difficult to detect statically
abstraction and inheritance (many false positives)
code injection
reflection
soft links
EventMgr
Queue
add remove
Object event = queue.remove();
Method act = event.getMethod("act");
act.invoke(event);
Which class is called?
EventMgr
Queue
Challenges: Definition
QAware 7
Defining and interpreting appropriate metrics
relevant (dynamic) software aspects highly context-dependent
metrics (measurement opportunities) highly dependent on context
needed: support in defining metrics
High requirement on measurement:
production-ready tools needed
low runtime impact / non-invasive measurement
high degree of automation
long-term storage of metrics
integration of metrics from different sources
Challenges: Tools
QAware 8
Measurement implementation / instrumentation
lack of tools for automatic measurement of software behavior at runtime
Highly invasive measurement approaches, such as using profiling tools or measurement through bytecode
injection are typically not feasible for production systems but may be applicable in testing scenarios
lack of simple, integrated access to data
Challenges: Interpretation
Identifying underlying fault is more challenging:
still, important to identify problems early
Interpretation also means deciding when to react. Three basic approaches:
Thresholds: An issue is raised when values of interest approach, reach, exceed or fall below a defined limit.
In such cases, not only an instant value but also the frequency or duration with which a certain limit is reached
should raise an issue.
Trends/patterns: indicator (e.g., consumption of resources) shows a continuous trend /tendency or pattern
Correlations: An issue is raised when the values correlate with values of an already known anomaly or other
metric, that related to TD in the past. A typical example of such a pattern is CPU workload vs. garbage
collection activity.
We expect trends/patterns to have a high potential: Many hard-to-detect runtime problems follow similar patterns
Opportunities for Measuring Dynamic Indicators
Build (>1 daily) Unit-Tests
Commit metrics
Nightly
Build
daily Integration/performance
automated UI tests
Statistics weekly usage statistics
Performance test Sprint
Release
Performance-Tests
Production data
frequent
Rare/
irregular
Source Frequency Data
System in use
Procotols, logs
continuous runtime
examples!
Opportunities for Dynamic Indicators
QAware 11
Many opportunities exist (testing, software in operation)
Many (isolated) tools exist
tools that come with the operational system (e.g., Unix and Windows);
external monitoring tools (e.g., Nagios)
embedding measurement mechanisms (e.g., writing custom code that uses JMX/Jolokia) a
analyzing log files produced during runtime (e.g., using the ELK/Elastic stack).
cloud-native infrastructure (e.g., Zipkin for distributed tracing; Prometheus for metrics; Fluentd for logs)
Challenges:
Support defining relevant metrics
Improve automation
Integrate (collect/combine) data
Test Execution Time: Growing Trend
12
2 of 3 longest running test methods showed a
growing trend over months.
Cause: Unknown
A similar behavior in runtime/memory
consumption went undetected and caused a
runtime incident when existing memory was
exceeded.
Test Execution Time: Leap
13
Cause: Refactoring of test case.
Service Cascades
QAware 14
Service Cascades:
one incoming connection causes many outgoing connections
for example, one incoming web request call resulting in many database calls
Example: Java Server where incoming web request caused up to
2400 JavaScript calls,
30 service requests and
1600 database calls
Connections
QAware 15
Runtime input/output operations
Database calls
Connections
File handles
Typical patterns: Rising trend over
Runtime
Versions
Example: Windows system (48 h)
Cause: Missing call of Release()
for Mutex objects (here: file handles)
Parallelism
QAware 16
Metric: number of threads
E.g., via JMX/Jolokia
Pattern: rising number of threads over
Runtime
Versions/releases
Example: Java Server (8 days)
Two restarts during observation
Cause: 25 threads added every 5 hours
This works until maximum is reached (400)
Summary
QAware 17
Existing approaches for measuring TD
focus mainly on static aspects of code or near-code artifacts,
measured at development or build time
Gap: address dynamic indicators
properties emerging at system runtime
often an important cause of software bankruptcy or cost-intensive failure search
Presented examples of dynamic indicators of TD
frequently occur in practice
were difficult, or even impossible, to detect with static analysis techniques
were observable at system runtime with simple patterns
Challenges and Opportunities
QAware 18
Main challenges:
define: support in identifying relevant characteristics & metrics (highly context-specific; risk-based selection?)
measure meaningful things
measure: ready-to use tools for measuring, integrating and storing runtime data (production-ready)
integrate different tools
interpret: rule-based warnings, support follow-up (identifying relevant code vs. false positives; SonarQube-like)
make data accessible for analysis and interpretation
provide unified (simple) access
Future (today?): DevOps and Cloud-native applications create even more opportunities
plenty of measurement opportunities in such environments
every build or nightly build can include, for example, automated load tests;
plenty of measurement tool support (Prometheus, Fluentd, Zipkin,
Marcus Ciolkowski
marcus.ciolkowski@qaware.de
@M_Ciolkowski
github.com/qaware
linkedin.com/qaware slideshare.net/qaware
twitter.com/qaware xing.com/qaware
youtube.com/QAwareGmbH
Liliana Guzmán Anna Maria VollmerMarcus Ciolkowski AdamTrendowicz

More Related Content

What's hot

naveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agilenaveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agileNaveed Kamran
 
Tools support for testing
Tools support for testingTools support for testing
Tools support for testing
Nathandisya
 
Software audiit information management
Software audiit   information managementSoftware audiit   information management
Software audiit information management
Hallmark B-school
 
Testing Throughout the Software Life Cycle (2013)
Testing Throughout the Software Life Cycle (2013)Testing Throughout the Software Life Cycle (2013)
Testing Throughout the Software Life Cycle (2013)
Jana Gierloff
 
Software metrics
Software metricsSoftware metrics
1.tool support for testing
1.tool support for testing1.tool support for testing
1.tool support for testing
Bobi Henfajri Setiawan
 
Ladc presentation
Ladc presentationLadc presentation
Ladc presentation
erikamicrosoft
 
Automated Discovery of Performance Regressions in Enterprise Applications
Automated Discovery of Performance Regressions in Enterprise ApplicationsAutomated Discovery of Performance Regressions in Enterprise Applications
Automated Discovery of Performance Regressions in Enterprise Applications
SAIL_QU
 
Software metrics
Software metricsSoftware metrics
Software metrics
Matthias Mullie
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
Indu Sharma Bhardwaj
 
Managing IT Projects
Managing IT ProjectsManaging IT Projects
Managing IT Projects
Rhys Leong
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
SAIL_QU
 
Unit 1 sepm cleanroom engineering
Unit 1 sepm cleanroom engineeringUnit 1 sepm cleanroom engineering
Unit 1 sepm cleanroom engineering
KanchanPatil34
 
Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2
International Personal Finance Plc
 
Modeling the Performance of Ultra-Large-Scale Systems Using Layered Simulations
Modeling the Performance of Ultra-Large-Scale Systems Using Layered SimulationsModeling the Performance of Ultra-Large-Scale Systems Using Layered Simulations
Modeling the Performance of Ultra-Large-Scale Systems Using Layered Simulations
SAIL_QU
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
International Personal Finance Plc
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
University of Computer Science and Technology
 

What's hot (19)

naveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agilenaveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agile
 
Tools support for testing
Tools support for testingTools support for testing
Tools support for testing
 
Software audiit information management
Software audiit   information managementSoftware audiit   information management
Software audiit information management
 
Sop test planning
Sop test planningSop test planning
Sop test planning
 
Testing Throughout the Software Life Cycle (2013)
Testing Throughout the Software Life Cycle (2013)Testing Throughout the Software Life Cycle (2013)
Testing Throughout the Software Life Cycle (2013)
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
1.tool support for testing
1.tool support for testing1.tool support for testing
1.tool support for testing
 
Ladc presentation
Ladc presentationLadc presentation
Ladc presentation
 
Automated Discovery of Performance Regressions in Enterprise Applications
Automated Discovery of Performance Regressions in Enterprise ApplicationsAutomated Discovery of Performance Regressions in Enterprise Applications
Automated Discovery of Performance Regressions in Enterprise Applications
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
Managing IT Projects
Managing IT ProjectsManaging IT Projects
Managing IT Projects
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
 
Unit 1 sepm cleanroom engineering
Unit 1 sepm cleanroom engineeringUnit 1 sepm cleanroom engineering
Unit 1 sepm cleanroom engineering
 
Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2
 
Modeling the Performance of Ultra-Large-Scale Systems Using Layered Simulations
Modeling the Performance of Ultra-Large-Scale Systems Using Layered SimulationsModeling the Performance of Ultra-Large-Scale Systems Using Layered Simulations
Modeling the Performance of Ultra-Large-Scale Systems Using Layered Simulations
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
 
STLC
STLCSTLC
STLC
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
 

Similar to Challenges in Assessing Technical Debt based on Dynamic Runtime Data

Making Runtime Data Useful for Incident Diagnosis: An Experience Report
Making Runtime Data Useful for Incident Diagnosis: An Experience ReportMaking Runtime Data Useful for Incident Diagnosis: An Experience Report
Making Runtime Data Useful for Incident Diagnosis: An Experience Report
QAware GmbH
 
Testify smart testoptimization-ecfeed
Testify smart testoptimization-ecfeedTestify smart testoptimization-ecfeed
Testify smart testoptimization-ecfeed
Minh Nguyen
 
Gcs day1
Gcs day1Gcs day1
Gcs day1
Sriram Angajala
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
David Solivan
 
Orcanos medical-common-validation-errors
Orcanos medical-common-validation-errorsOrcanos medical-common-validation-errors
Orcanos medical-common-validation-errorsEcommmax
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
vibrantuser
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysislienhard
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Engineering Software Lab
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
LPK Any Komputer
 
BIS09 Application Development - III
BIS09 Application Development - IIIBIS09 Application Development - III
BIS09 Application Development - III
Prithwis Mukerjee
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
USeP
 
SourceWarp AST 2023.pdf
SourceWarp AST 2023.pdfSourceWarp AST 2023.pdf
SourceWarp AST 2023.pdf
Julian Thome
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
Rahul Sudame
 
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdfUNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
RamosIvan2
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlc
mahendra singh
 
Icse 2011 ds_1
Icse 2011 ds_1Icse 2011 ds_1
Icse 2011 ds_1SAIL_QU
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics
 
Workshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank EnglishWorkshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank English
Marcus Drost
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
MikhailVladimirov
 
Demantra Case Study Doug
Demantra Case Study DougDemantra Case Study Doug
Demantra Case Study Doug
sichie
 

Similar to Challenges in Assessing Technical Debt based on Dynamic Runtime Data (20)

Making Runtime Data Useful for Incident Diagnosis: An Experience Report
Making Runtime Data Useful for Incident Diagnosis: An Experience ReportMaking Runtime Data Useful for Incident Diagnosis: An Experience Report
Making Runtime Data Useful for Incident Diagnosis: An Experience Report
 
Testify smart testoptimization-ecfeed
Testify smart testoptimization-ecfeedTestify smart testoptimization-ecfeed
Testify smart testoptimization-ecfeed
 
Gcs day1
Gcs day1Gcs day1
Gcs day1
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Orcanos medical-common-validation-errors
Orcanos medical-common-validation-errorsOrcanos medical-common-validation-errors
Orcanos medical-common-validation-errors
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
BIS09 Application Development - III
BIS09 Application Development - IIIBIS09 Application Development - III
BIS09 Application Development - III
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
 
SourceWarp AST 2023.pdf
SourceWarp AST 2023.pdfSourceWarp AST 2023.pdf
SourceWarp AST 2023.pdf
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdfUNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlc
 
Icse 2011 ds_1
Icse 2011 ds_1Icse 2011 ds_1
Icse 2011 ds_1
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Workshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank EnglishWorkshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank English
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
Demantra Case Study Doug
Demantra Case Study DougDemantra Case Study Doug
Demantra Case Study Doug
 

More from QAware GmbH

Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
QAware GmbH
 
50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
QAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
QAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
QAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
QAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
QAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
QAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
QAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
QAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
QAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
QAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
QAware GmbH
 

More from QAware GmbH (20)

Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
 
50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 

Recently uploaded

Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Challenges in Assessing Technical Debt based on Dynamic Runtime Data

  • 1. Marcus Ciolkowski (QAware), Liliana Guzmán, AdamTrendowicz, Anna Maria Vollmer marcus.ciolkowski@qaware.de Challenges in Assessing Technical Debt based on Dynamic Runtime Data Prague, August 31 2018 SEAA 2018 Software Engineering and Technical Debt
  • 2. Key Take-Aways QAware 2 Research should focus more on dynamic indicators of technical debt (instead of mining for static aspects) There are many opportunities for measurement Highly relevant to industry
  • 3. QAware 3 QAware: We specialize in quality projects. solve problems shape the future Consulting Analysis & Diagnosis Implementation Renovate & Migrate Consulting Invent & Explore Implementation Development & Integration Focus: IT-Troubleshooting Focus: Cloud Native Computing Big Data / Machine Learning IoT Software Engineering
  • 4. Background 2: Research Project ProDebt Proactive Management of Technical Debt QAware 4 Context: ProDebt (management of technical debt) assessing and managing technical debt in the context of ASD Structured interviews in two companies 10 developers/architects (including 2 CTOs and 3 chief architects) In this presentation: Focus on dynamic aspects of technical debt challenges opportunities and examples for dynamic aspects
  • 5. Measuring Quality Debt is not novel. But: Existing Approaches ignore dynamic behavior. 5 Current software (quality) measurement is based on static metrics plenty of tools exist (e.g. SonarQube) rather simple to measure much experience in measurement and presentation Dynamic aspects / KPIs are underrepresented test coverage is most common exception dynamic indicators influence, e.g. customer satisfaction infrastructure and operation costs tricky cases in maintenance hide often here (e.g., leaks and locks)
  • 6. Gap: Measure and evaluate dynamic aspects QAware 6 One example of dynamic aspects: Runtime structure runtime structure: actual call relationships at runtime runtime structure is important to gain understanding of system at runtime to identify performance problems Challenge: often difficult to detect statically abstraction and inheritance (many false positives) code injection reflection soft links EventMgr Queue add remove Object event = queue.remove(); Method act = event.getMethod("act"); act.invoke(event); Which class is called? EventMgr Queue
  • 7. Challenges: Definition QAware 7 Defining and interpreting appropriate metrics relevant (dynamic) software aspects highly context-dependent metrics (measurement opportunities) highly dependent on context needed: support in defining metrics High requirement on measurement: production-ready tools needed low runtime impact / non-invasive measurement high degree of automation long-term storage of metrics integration of metrics from different sources
  • 8. Challenges: Tools QAware 8 Measurement implementation / instrumentation lack of tools for automatic measurement of software behavior at runtime Highly invasive measurement approaches, such as using profiling tools or measurement through bytecode injection are typically not feasible for production systems but may be applicable in testing scenarios lack of simple, integrated access to data
  • 9. Challenges: Interpretation Identifying underlying fault is more challenging: still, important to identify problems early Interpretation also means deciding when to react. Three basic approaches: Thresholds: An issue is raised when values of interest approach, reach, exceed or fall below a defined limit. In such cases, not only an instant value but also the frequency or duration with which a certain limit is reached should raise an issue. Trends/patterns: indicator (e.g., consumption of resources) shows a continuous trend /tendency or pattern Correlations: An issue is raised when the values correlate with values of an already known anomaly or other metric, that related to TD in the past. A typical example of such a pattern is CPU workload vs. garbage collection activity. We expect trends/patterns to have a high potential: Many hard-to-detect runtime problems follow similar patterns
  • 10. Opportunities for Measuring Dynamic Indicators Build (>1 daily) Unit-Tests Commit metrics Nightly Build daily Integration/performance automated UI tests Statistics weekly usage statistics Performance test Sprint Release Performance-Tests Production data frequent Rare/ irregular Source Frequency Data System in use Procotols, logs continuous runtime examples!
  • 11. Opportunities for Dynamic Indicators QAware 11 Many opportunities exist (testing, software in operation) Many (isolated) tools exist tools that come with the operational system (e.g., Unix and Windows); external monitoring tools (e.g., Nagios) embedding measurement mechanisms (e.g., writing custom code that uses JMX/Jolokia) a analyzing log files produced during runtime (e.g., using the ELK/Elastic stack). cloud-native infrastructure (e.g., Zipkin for distributed tracing; Prometheus for metrics; Fluentd for logs) Challenges: Support defining relevant metrics Improve automation Integrate (collect/combine) data
  • 12. Test Execution Time: Growing Trend 12 2 of 3 longest running test methods showed a growing trend over months. Cause: Unknown A similar behavior in runtime/memory consumption went undetected and caused a runtime incident when existing memory was exceeded.
  • 13. Test Execution Time: Leap 13 Cause: Refactoring of test case.
  • 14. Service Cascades QAware 14 Service Cascades: one incoming connection causes many outgoing connections for example, one incoming web request call resulting in many database calls Example: Java Server where incoming web request caused up to 2400 JavaScript calls, 30 service requests and 1600 database calls
  • 15. Connections QAware 15 Runtime input/output operations Database calls Connections File handles Typical patterns: Rising trend over Runtime Versions Example: Windows system (48 h) Cause: Missing call of Release() for Mutex objects (here: file handles)
  • 16. Parallelism QAware 16 Metric: number of threads E.g., via JMX/Jolokia Pattern: rising number of threads over Runtime Versions/releases Example: Java Server (8 days) Two restarts during observation Cause: 25 threads added every 5 hours This works until maximum is reached (400)
  • 17. Summary QAware 17 Existing approaches for measuring TD focus mainly on static aspects of code or near-code artifacts, measured at development or build time Gap: address dynamic indicators properties emerging at system runtime often an important cause of software bankruptcy or cost-intensive failure search Presented examples of dynamic indicators of TD frequently occur in practice were difficult, or even impossible, to detect with static analysis techniques were observable at system runtime with simple patterns
  • 18. Challenges and Opportunities QAware 18 Main challenges: define: support in identifying relevant characteristics & metrics (highly context-specific; risk-based selection?) measure meaningful things measure: ready-to use tools for measuring, integrating and storing runtime data (production-ready) integrate different tools interpret: rule-based warnings, support follow-up (identifying relevant code vs. false positives; SonarQube-like) make data accessible for analysis and interpretation provide unified (simple) access Future (today?): DevOps and Cloud-native applications create even more opportunities plenty of measurement opportunities in such environments every build or nightly build can include, for example, automated load tests; plenty of measurement tool support (Prometheus, Fluentd, Zipkin,
  • 19. Marcus Ciolkowski marcus.ciolkowski@qaware.de @M_Ciolkowski github.com/qaware linkedin.com/qaware slideshare.net/qaware twitter.com/qaware xing.com/qaware youtube.com/QAwareGmbH Liliana Guzmán Anna Maria VollmerMarcus Ciolkowski AdamTrendowicz