SlideShare a Scribd company logo
June 24, 2015
“Make Testing a First Class Citizen in your Development Process”
Dan Boutin – Senior Product Evangelist
dboutin@soasta.com
Mobile (404) 304-9529
@DanBoutinSOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 2
Agenda - Overview
o First, why is that important? What’s Missing?
o So, when did testing become second class?
o How do we find it?
o How do we keep it?
o Action Plan
3
Revenue
Brand
Competitive advantage
© 2014 SOASTA. All rights reserved. March 3, 2015 4
So Where did the “e” go, anyway?
o It was first reported missing in 1995
o Actually dates back to 1989
o Testing has been more about:
• Coding
• Infrastructure & harness set-up
• Logs & spreadsheets
o What is the “E”? Engineering!!
© 2014 SOASTA. All rights reserved. March 3, 2015 5
Performance In General – Where we lost the “e”
Linear approaches include delays between testing
Ut
Unit Testing
Ft
Functional
Testing
Development Testing Operations
Pt
Performance
Testing
Mo
Monitoring
Legacy Approach: Silos and waiting
TIME
o Who’s the voice of the NFR’s? And, where?
o Let’s look within the testing window to see what is really going on
© 2014 SOASTA. All rights reserved. March 3, 2015 6
Retest
Process changes = new opportunities
Test Development Infra setup
Repeat
?
Fix
Tes
t
Analyze
The Legacy Approach
TIME
Where we lost the “e” And why!
• Test “development” became its own SDLC
• Complete with coding, peer reviews, etc.
• Why? Script coding!
• Infrastructure “set-up” became expensive
• …and did not scale to production
• Why? Costs.
• Analysis was manual
• Actual “testing” window was small
• Still no NFR flow & traceability
© 2014 SOASTA. All rights reserved. March 3, 2015 7
So, how do we find the “e”?
o Performance Testing is NOT Performance Engineering
o Performance Engineering consists of many key processes
Modeling
Testin
g
Application
Developmen
t Life Cycle
IT
Operation
s
Capacit
yManagement
Performance
Management
Performance
Engineering
© 2014 SOASTA. All rights reserved. March 3, 2015 8
So, how do we find the “e”?
o Performance Engineering is all about the Analysis
o It is not about “scripting” or “coding”
o It should not be about infrastructure set-up
© 2014 SOASTA. All rights reserved. March 3, 2015 9
What has made the “e” so important again?
© 2014 SOASTA. All rights reserved. March 3, 2015 10
So, how do we get back the “e”?
o Tear down the silos
• Take the discussion out of “testing” & put the focus in ENGINEERING.
• Embed performance engineering in each silo
• It starts in the Dev silo => Performance IS a design requirement
• In an Agile world, the UX IS all about performance
© 2014 SOASTA. All rights reserved. March 3, 2015 11
Testing in Production – Why Not?
o “We don’t test in production.”
o This is a direct result of lack of visibility into actual test execution
o So what should the process look like?
© 2014 SOASTA. All rights reserved. March 3, 2015 12
Eliminating Delays Compresses Time
Enabling more testing to be done earlier and more often
Ut
Unit Testing
Ft
Functional
Testing
Testing
Pt
Performance
Testing
Mo
Monitoring
Legacy Approach: Silos and waiting
Agile Approach: Automation and Continuous Testing
NFR’s built into the entire lifecycle
OperationsDevelopment
Dev Ops
Testing
TIME
© 2014 SOASTA. All rights reserved. March 3, 2015 13
Continuous Delivery presents new opportunities
The ENGINEERING Approach
TIME
The Legacy Approach
Run more tests in less time.
Start earlier.
Cover more ground.xn
/ Test
Analyz
e
Fix
Test Dev
Performance Engineering is Not a Singular
Event
Test Development Infra setup
Tes
t
Analyze Retest
Repeat
?
Fix
© 2014 SOASTA. All rights reserved. March 3, 2015 14
Testing with Specific Objectives
Tests at different stages deliver higher coverage
Component
scalability
Performance
baseline
Integration testing
End to End
w/ Service
Virtualization
Unit scalability
Database testing
3rd party
services
Live E2E
tests
Stress
testing Soak test
(reliability)
Failover
Capacity
Latency
Performance
Regression
(smoke tests)
Network
Testing (staging) Operations (prod)Development (sandbox)
© 2014 SOASTA. All rights reserved. March 3, 2015 15
Full Lifecycle Testing - Lab to Production
Tests at different stages delivers higher coverage
API Testing
(REST/SOAP
& now
WebSockets)
Testing (staging) Operations (prod)Development (sandbox)
Run smoke
tests with
Continuous
Integration
frameworks
Run larger tests
sooner with
Virtual Private
Clouds
Introduce
external load
sources with
the cloud
Test to
beyond peak
expectations
Establish true
user SLA’s (and
monitor them)
Directly test
your
databases
to scale
Test the “hard
to test”
(Java custom
modules)
Let’s put it all together!
© 2014 SOASTA. All rights reserved. March 3, 2015 17
1. Build performance tests which will
model real user behavior on your site
2. Tie business metrics (ROI) to website
performance metrics and real user data
3. Correlate data analytics so you can
troubleshoot bottlenecks and improve
performance.
Now we tie it all together:
Performance
Analytics
Optimize performance across your online business
Requires a Continuous Approach
© 2014 SOASTA. All rights reserved. 19
Does it work as
designed?
Does it perform
under extreme
circumstances?
Approve materials Real Drivers
What happens
in actual
conditions?
Assembly Line
© 2014 SOASTA. All rights reserved. 20
Functional validation
Performance,
reliability,
scalability tests
Real Users
Build
What happens
in actual
conditions?
Unit-tested code
© 2014 SOASTA. All rights reserved. March 3, 2015 21
Continuous Quality
SOASTA’s Lifecycle
How we do it at SOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 22
Continuous Quality
Jenkins runs any
unit tests as usual
How we do it at SOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 23
Continuous Quality
SOASTA’s Lifecycle
Run iterative load
tests via Jenkins
Spin up suitable, consistent
test environments in the
cloud or the lab
Jenkins runs any
unit tests as usual
How we do it at SOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 24
Continuous Quality
SOASTA’s Lifecycle
Run iterative load
tests via Jenkins
Mobile? Run functional
automation on real devices
for functional & performance
validation
Spin up suitable, consistent
test environments in the
cloud or the lab
Jenkins runs any
unit tests as usual
How we do it at SOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 25
Continuous Quality
SOASTA’s Lifecycle
Run iterative load
tests via Jenkins
Daily (or more frequent) updates
keep teams quality focused
Embedded failure
details & bottleneck
data isolate issues
Mobile? Run functional
automation on real devices
for functional & performance
validation
Spin up suitable, consistent
test environments in the
cloud or the lab
Jenkins runs any
unit tests as usual
How we do it at SOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 26
Continuous Quality
SOASTA’s Lifecycle
Run iterative load
tests via Jenkins
Daily (or more frequent) updates
keep teams quality focused
Embedded failure
details & bottleneck
data isolate issues
Manage to a
performance
baseline
Mobile? Run functional
automation on real devices
for functional & performance
validation
Spin up suitable, consistent
test environments in the
cloud or the lab
Jenkins runs any
unit tests as usual
How we do it at SOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 27
Continuous Quality
SOASTA’s Lifecycle
Use real user data to
iterate dev & test plans
Run iterative load
tests via Jenkins
Daily (or more frequent) updates
keep teams quality focused
Embedded failure
details & bottleneck
data isolate issues
Manage to a
performance
baseline
Mobile? Run functional
automation on real devices
for functional & performance
validation
Spin up suitable, consistent
test environments in the
cloud or the lab
Jenkins runs any
unit tests as usual
How we do it at SOASTA
CONFIDENTIAL – Not for Distribution © 2015 SOASTA. All rights reserved. January 13, 2015
Build performance tests that model user behavior
on your site
First you need to determine the workload for the test.
CONFIDENTIAL – Not for Distribution © 2015 SOASTA. All rights reserved. January 13, 2015
How are companies without the “e” faring today?
What if I have a new process?
© 2014 SOASTA. All rights reserved. March 3, 2015 30
o What information I need?
● When is your peak second/minute/hour/day?
● What is your peak volume? (active sessions, unique users, page visits, orders, ...)
● What is the median session length?
● What is the distribution of user paths?
● What is the distribution of devices?
● What is the distribution of locations?
o Good Test Data
● Search Terms
● Product Distribution
● Browse Distribution
● Cart Size
● Order Size
How to get a realistic load test
Factors to consider – Now that we have the “e” back!
© 2014 SOASTA. All rights reserved. March 3, 2015 31
Let your customers be your guide…
CONFIDENTIAL – Not for Distribution © 2015 SOASTA. All rights reserved. January 13, 2015
Analyze the most common session paths of real
users
© 2014 SOASTA. All rights reserved. March 3, 2015 33
Test how you want, when you want, where you want
© 2014 SOASTA. All rights reserved. March 3, 2015 34
1. Let your users help you determine your
performance goals
2. Tie business metrics, (conversion rates, length of
engagement, etc) to calculate costs of
performance vs revenue gain
3. Use data analytics to review site performance
data to isolate bottlenecks, which can guide your
performance investments
Summary & Takeaways
© 2014 SOASTA. All rights reserved. March 3, 2015 35
We will close with some Trivia
@DanBoutinSOASTA
© 2014 SOASTA. All rights reserved. March 3, 2015 36
Dan Boutin – Senior Product Evangelist
dboutin@soasta.com
Mobile (404) 304-9529
@DanBoutinSOASTA
oSOASTA Products
•FREE DownLoad:
http://goo.gl/6CErMN
oVisit our Blog: http://goo.gl/TA2HKP
oQuestions? @DanBoutinSOASTA
June 24, 2015
“Make Testing a First Class Citizen in your Development Process”
Dan Boutin – Senior Product Evangelist
dboutin@soasta.com
Mobile (404) 304-9529
@DanBoutinSOASTA

More Related Content

Sd times-june-24-2015

  • 1. June 24, 2015 “Make Testing a First Class Citizen in your Development Process” Dan Boutin – Senior Product Evangelist dboutin@soasta.com Mobile (404) 304-9529 @DanBoutinSOASTA
  • 2. © 2014 SOASTA. All rights reserved. March 3, 2015 2 Agenda - Overview o First, why is that important? What’s Missing? o So, when did testing become second class? o How do we find it? o How do we keep it? o Action Plan
  • 4. © 2014 SOASTA. All rights reserved. March 3, 2015 4 So Where did the “e” go, anyway? o It was first reported missing in 1995 o Actually dates back to 1989 o Testing has been more about: • Coding • Infrastructure & harness set-up • Logs & spreadsheets o What is the “E”? Engineering!!
  • 5. © 2014 SOASTA. All rights reserved. March 3, 2015 5 Performance In General – Where we lost the “e” Linear approaches include delays between testing Ut Unit Testing Ft Functional Testing Development Testing Operations Pt Performance Testing Mo Monitoring Legacy Approach: Silos and waiting TIME o Who’s the voice of the NFR’s? And, where? o Let’s look within the testing window to see what is really going on
  • 6. © 2014 SOASTA. All rights reserved. March 3, 2015 6 Retest Process changes = new opportunities Test Development Infra setup Repeat ? Fix Tes t Analyze The Legacy Approach TIME Where we lost the “e” And why! • Test “development” became its own SDLC • Complete with coding, peer reviews, etc. • Why? Script coding! • Infrastructure “set-up” became expensive • …and did not scale to production • Why? Costs. • Analysis was manual • Actual “testing” window was small • Still no NFR flow & traceability
  • 7. © 2014 SOASTA. All rights reserved. March 3, 2015 7 So, how do we find the “e”? o Performance Testing is NOT Performance Engineering o Performance Engineering consists of many key processes Modeling Testin g Application Developmen t Life Cycle IT Operation s Capacit yManagement Performance Management Performance Engineering
  • 8. © 2014 SOASTA. All rights reserved. March 3, 2015 8 So, how do we find the “e”? o Performance Engineering is all about the Analysis o It is not about “scripting” or “coding” o It should not be about infrastructure set-up
  • 9. © 2014 SOASTA. All rights reserved. March 3, 2015 9 What has made the “e” so important again?
  • 10. © 2014 SOASTA. All rights reserved. March 3, 2015 10 So, how do we get back the “e”? o Tear down the silos • Take the discussion out of “testing” & put the focus in ENGINEERING. • Embed performance engineering in each silo • It starts in the Dev silo => Performance IS a design requirement • In an Agile world, the UX IS all about performance
  • 11. © 2014 SOASTA. All rights reserved. March 3, 2015 11 Testing in Production – Why Not? o “We don’t test in production.” o This is a direct result of lack of visibility into actual test execution o So what should the process look like?
  • 12. © 2014 SOASTA. All rights reserved. March 3, 2015 12 Eliminating Delays Compresses Time Enabling more testing to be done earlier and more often Ut Unit Testing Ft Functional Testing Testing Pt Performance Testing Mo Monitoring Legacy Approach: Silos and waiting Agile Approach: Automation and Continuous Testing NFR’s built into the entire lifecycle OperationsDevelopment Dev Ops Testing TIME
  • 13. © 2014 SOASTA. All rights reserved. March 3, 2015 13 Continuous Delivery presents new opportunities The ENGINEERING Approach TIME The Legacy Approach Run more tests in less time. Start earlier. Cover more ground.xn / Test Analyz e Fix Test Dev Performance Engineering is Not a Singular Event Test Development Infra setup Tes t Analyze Retest Repeat ? Fix
  • 14. © 2014 SOASTA. All rights reserved. March 3, 2015 14 Testing with Specific Objectives Tests at different stages deliver higher coverage Component scalability Performance baseline Integration testing End to End w/ Service Virtualization Unit scalability Database testing 3rd party services Live E2E tests Stress testing Soak test (reliability) Failover Capacity Latency Performance Regression (smoke tests) Network Testing (staging) Operations (prod)Development (sandbox)
  • 15. © 2014 SOASTA. All rights reserved. March 3, 2015 15 Full Lifecycle Testing - Lab to Production Tests at different stages delivers higher coverage API Testing (REST/SOAP & now WebSockets) Testing (staging) Operations (prod)Development (sandbox) Run smoke tests with Continuous Integration frameworks Run larger tests sooner with Virtual Private Clouds Introduce external load sources with the cloud Test to beyond peak expectations Establish true user SLA’s (and monitor them) Directly test your databases to scale Test the “hard to test” (Java custom modules)
  • 16. Let’s put it all together!
  • 17. © 2014 SOASTA. All rights reserved. March 3, 2015 17 1. Build performance tests which will model real user behavior on your site 2. Tie business metrics (ROI) to website performance metrics and real user data 3. Correlate data analytics so you can troubleshoot bottlenecks and improve performance. Now we tie it all together:
  • 18. Performance Analytics Optimize performance across your online business Requires a Continuous Approach
  • 19. © 2014 SOASTA. All rights reserved. 19 Does it work as designed? Does it perform under extreme circumstances? Approve materials Real Drivers What happens in actual conditions? Assembly Line
  • 20. © 2014 SOASTA. All rights reserved. 20 Functional validation Performance, reliability, scalability tests Real Users Build What happens in actual conditions? Unit-tested code
  • 21. © 2014 SOASTA. All rights reserved. March 3, 2015 21 Continuous Quality SOASTA’s Lifecycle How we do it at SOASTA
  • 22. © 2014 SOASTA. All rights reserved. March 3, 2015 22 Continuous Quality Jenkins runs any unit tests as usual How we do it at SOASTA
  • 23. © 2014 SOASTA. All rights reserved. March 3, 2015 23 Continuous Quality SOASTA’s Lifecycle Run iterative load tests via Jenkins Spin up suitable, consistent test environments in the cloud or the lab Jenkins runs any unit tests as usual How we do it at SOASTA
  • 24. © 2014 SOASTA. All rights reserved. March 3, 2015 24 Continuous Quality SOASTA’s Lifecycle Run iterative load tests via Jenkins Mobile? Run functional automation on real devices for functional & performance validation Spin up suitable, consistent test environments in the cloud or the lab Jenkins runs any unit tests as usual How we do it at SOASTA
  • 25. © 2014 SOASTA. All rights reserved. March 3, 2015 25 Continuous Quality SOASTA’s Lifecycle Run iterative load tests via Jenkins Daily (or more frequent) updates keep teams quality focused Embedded failure details & bottleneck data isolate issues Mobile? Run functional automation on real devices for functional & performance validation Spin up suitable, consistent test environments in the cloud or the lab Jenkins runs any unit tests as usual How we do it at SOASTA
  • 26. © 2014 SOASTA. All rights reserved. March 3, 2015 26 Continuous Quality SOASTA’s Lifecycle Run iterative load tests via Jenkins Daily (or more frequent) updates keep teams quality focused Embedded failure details & bottleneck data isolate issues Manage to a performance baseline Mobile? Run functional automation on real devices for functional & performance validation Spin up suitable, consistent test environments in the cloud or the lab Jenkins runs any unit tests as usual How we do it at SOASTA
  • 27. © 2014 SOASTA. All rights reserved. March 3, 2015 27 Continuous Quality SOASTA’s Lifecycle Use real user data to iterate dev & test plans Run iterative load tests via Jenkins Daily (or more frequent) updates keep teams quality focused Embedded failure details & bottleneck data isolate issues Manage to a performance baseline Mobile? Run functional automation on real devices for functional & performance validation Spin up suitable, consistent test environments in the cloud or the lab Jenkins runs any unit tests as usual How we do it at SOASTA
  • 28. CONFIDENTIAL – Not for Distribution © 2015 SOASTA. All rights reserved. January 13, 2015 Build performance tests that model user behavior on your site First you need to determine the workload for the test.
  • 29. CONFIDENTIAL – Not for Distribution © 2015 SOASTA. All rights reserved. January 13, 2015 How are companies without the “e” faring today? What if I have a new process?
  • 30. © 2014 SOASTA. All rights reserved. March 3, 2015 30 o What information I need? ● When is your peak second/minute/hour/day? ● What is your peak volume? (active sessions, unique users, page visits, orders, ...) ● What is the median session length? ● What is the distribution of user paths? ● What is the distribution of devices? ● What is the distribution of locations? o Good Test Data ● Search Terms ● Product Distribution ● Browse Distribution ● Cart Size ● Order Size How to get a realistic load test Factors to consider – Now that we have the “e” back!
  • 31. © 2014 SOASTA. All rights reserved. March 3, 2015 31 Let your customers be your guide…
  • 32. CONFIDENTIAL – Not for Distribution © 2015 SOASTA. All rights reserved. January 13, 2015 Analyze the most common session paths of real users
  • 33. © 2014 SOASTA. All rights reserved. March 3, 2015 33 Test how you want, when you want, where you want
  • 34. © 2014 SOASTA. All rights reserved. March 3, 2015 34 1. Let your users help you determine your performance goals 2. Tie business metrics, (conversion rates, length of engagement, etc) to calculate costs of performance vs revenue gain 3. Use data analytics to review site performance data to isolate bottlenecks, which can guide your performance investments Summary & Takeaways
  • 35. © 2014 SOASTA. All rights reserved. March 3, 2015 35 We will close with some Trivia @DanBoutinSOASTA
  • 36. © 2014 SOASTA. All rights reserved. March 3, 2015 36 Dan Boutin – Senior Product Evangelist dboutin@soasta.com Mobile (404) 304-9529 @DanBoutinSOASTA oSOASTA Products •FREE DownLoad: http://goo.gl/6CErMN oVisit our Blog: http://goo.gl/TA2HKP oQuestions? @DanBoutinSOASTA
  • 37. June 24, 2015 “Make Testing a First Class Citizen in your Development Process” Dan Boutin – Senior Product Evangelist dboutin@soasta.com Mobile (404) 304-9529 @DanBoutinSOASTA