coe klaus enzenhofer - dynatracer... · 1 #kenzenhofer klaus enzenhofer...
TRANSCRIPT
Rapidly Changing
Requirements &
User Expectations
Our Goal?
7 #kenzenhofer
Utmost Goal: Minimize Cycle Time
feature cycle time time
Customer / Market Users
8 #kenzenhofer
Utmost Goal: Minimize Cycle Time
feature cycle time time
minimize Users
9 #kenzenhofer
Utmost Goal: Minimize Cycle Time
feature cycle time time
This is when youcreate value!
minimize
You
10 #kenzenhofer
ReleaseAcceptance
TestingUnit Testing
PerformanceTesting
Coding
Reduce Lead Time
Automate & Improve Process
11 #kenzenhofer
700 Deployments / Year
50-60 Deployments / Day
10+ Deployments / Day
Every 11.6 seconds
Challenges?
13 #kenzenhofer
Deploy Faster!!
14 #kenzenhofer
Fail Faster!!?
15 #kenzenhofer
Right Focus?!
16 #kenzenhofer
DevOps Team
Developer Tester Operations
17 #kenzenhofer
The Problem
in the World
today is
COMMUNICATION
Metricsbased
Decisions!
? ? ?
Unit/Integration
Tests
Acceptance
Tests
Capacity
Tests
ReleaseDevelopers
20 #kenzenhofer
Performance Issues
Unit Tests Integration Tests
Acceptance Tests
Load Tests
Meets requirements
Responds correctly to input
Performs in acceptable time
Usability
Deployment
Achieves Correct Result
What you DO measure
What you DO measure
Performance Metrics
in your CI # Test Failures
Overall Duration
# calls to API
# executed SQL statements
# Web Service Calls
# JMS Messages
# Objects Allocated
# Exceptions
# Log Messages
Execution Time of Tests
…
Basics
Metric: Test duration
I don’t like endsWith…… I like regex!
N+1 Queries
Metrics: # SQL Executions / Request# of “same” SQL Executions
24 #kenzenhofer
Ignoring Architectural Rules
Metric: # SQL Executions / Request
25 #kenzenhofer
•# Images
•# Redirects
•Size of Resources
•# SQL Executions
•# of SAME SQLs
•# Items per Page
•# AJAX per Page
Metrics-based decisions
•Time Spent in API
•# Calls into API
•# Functional Errors
•3rd Party calls
•# of Domains
•Total Size
•…
26 #kenzenhofer
ReleaseAcceptance
TestingUnit Testing
PerformanceTesting
Coding
Reduce Lead Time
Automate & Improve Process
27 #kenzenhofer
28 #kenzenhofer
Putting it into Continuous Deployment
12 0 120ms
3 1 68ms
Build 20 testPurchase OK
testSearch OK
Build 17 testPurchase OK
testSearch OK
Build 18 testPurchase FAILED
testSearch OK
Build 19 testPurchase OK
testSearch OK
Build # Test Case Status # SQL # Excep CPU
12 0 120ms
3 1 68ms
12 5 60ms
3 1 68ms
75 0 230ms
3 1 68ms
Test & Monitoring Framework Results Architectural Data
We identified a regresesion
Problem solved
Exceptions probably reason for
failed testsProblem fixed but now we have an
architectural regression
Problem fixed but now we have an
architectural regressionNow we have the functional and
architectural confidence
Let’s look behind the
scenes
ReleaseAcceptance
TestingUnit Testing
PerformanceTesting
Monitor Tests
Analyze Results
Quality Gate in your Build Tool
Every 11.6 seconds
30 #kenzenhofer
Deploy Faster!!
Without Failing!
32 #kenzenhofer
Klaus EnzenhoferSenior Technology Strategist
#kenzenhofer
http://blog.dyntrace.com
Thank You!