SlideShare a Scribd company logo
Let’s assume
we had to pay for testing
Kim Herzig (Software engineer & Researcher)
kimh@microsoft.com
www.research.microsoft.com/people/kimh
www.kim-herzig.de
Visual Studio
Team Services
Tools for
Software Engineers
1
Visual Studio
Team Services
Tools for
Software Engineers
3
When I joined Microsoft
4
Let’s assume
we had to pay for testing
Kim Herzig (Software engineer & Researcher)
kimh@microsoft.com
www.research.microsoft.com/people/kimh
www.kim-herzig.de
Visual Studio
Team Services
Tools for
Software Engineers
5
Money (machine)
Effort (human)
Let’s assume
we had to pay for testing
6
How much quality assurance (testing) did you do for
your latest (research) project?
Could be more?
Because you had to ship your paper on a firm deadline.
But you could have automated it, right?
7
AST WORKSHOP WEBSITE
“In software development practice, testing accounts
for as much as 50% of the total development effort.
It is therefore imperative to reduce the cost and
improve the effectiveness of software testing
by automating the testing process.”
8
INNER & OUTER DEVELOPMENT LOOP
Pre-check-in Integration process
Fully automated, including test selection & code coverage
10
Check-in
What is the goal of your automation?
And how do you know when you reached it?
11
RETURN OF INVESTMENT
When do product teams buy our tools?
Your tool
X Y
<
12
Example
Let’s make an
14
EXAMPLE
Test selection based on code coverage
Your tool
CODE
COVERAGE
RUNTIME
REDUCTION
15
Slows down test
execution by 30%
Saving 50% of tests!
?
Product X:
 10,000 unit test cases
 0.12 sec per test case
LET’S DO SOME BASIC MATH
𝐶𝑜𝑠𝑡 𝑇𝑒𝑠𝑡 = 𝑇𝑒𝑠𝑡𝐶𝑎𝑠𝑒𝑠 ∗ 𝑅𝑢𝑛𝑡𝑖𝑚𝑒 𝑇𝑒𝑠𝑡𝑐𝑎𝑠𝑒 ∗ 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒
= 10,000 ∗ 0.12 sec ∗ 5.14𝑒−4 ൗ$
𝑠𝑒𝑐 = $𝟎. 𝟔𝟐
This excludes human effort!
 ~2500 builds per day
 Azure machine: $1.85/hr
Assumption: you achieve 50% test reduction
per dayYou saved: $0.62 ∗ 2500 ∗ 0.5 = $722
per build
16
per build
𝐶𝑜𝑠𝑡 𝐶𝑜𝑑𝑒𝐶𝑜𝑣𝑒𝑟𝑎𝑔𝑒 = 𝐶𝑜𝑠𝑡 𝑇𝑒𝑠𝑡𝑖𝑛𝑔 ∗ 𝑅𝑢𝑛𝑡𝑖𝑚𝑒 𝑂𝑣𝑒𝑟ℎ𝑒𝑎𝑑 + 𝐶𝐶𝑆𝑖𝑧𝑒 ∗ 𝐶𝑜𝑠𝑡 𝐷𝑖𝑠𝑘
+ 𝐶𝐶𝑆𝑖𝑧𝑒 ∗ 𝑆𝑝𝑒𝑒𝑑𝐼/𝑂 ∗ 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒
BUT HANG-ON …
You used code coverage, right?
= $0.62 ∗ 0.3 + 3.3𝐺𝐵 ∗ 0.35 ൗ$
𝐺𝐵
+ 2 Τ𝑠𝑒𝑐
𝐺𝐵 ∗ 3.3𝐺𝐵 ∗ 5.14𝑒−4 Τ$
𝑠𝑒𝑐= $1.34
Facts:
 Block coverage: 3.3 GB per build
 0.35 $/GB SDD cost
 SSD speed 500MB/sec
 Azure machine: $1.853/hr
You spend: $1.34 ∗ 2500 = $3,350 per day
17
$3,350 $722
Slows down test
execution by 30%
Saving 50% of tests!
And this excludes many aspects: e.g. your analysis time!
It might still be worth the effort
But it’s as good as you might think, and we have more pressing issues.
18
Time is money
19
If we are talking about testing as part of build,
we can measure cost in terms of time. It’s all about speed.
IT’S EVEN MORE COMPLICATED
Nobody runs tests after build (anymore) in the inner loop
Legend:
Source module
Test module
Build
Test execution
buddy
build
Rolling
build
CloudBuild
A
1. Build Graph Analysis
X C
B
D
E Z
A
X C
B
D
E ZY Y
2. Build/Test Execution
B1
B2
B3
B C
D
Y
Z Z
E
3. Results
Success or
Failure (log files)
Y
CloudBuild uses module-level test selection
when any dependencies of a module change, all tests inside that module are executed.
Thus, you can only reduce / re-order tests within the same target!
Max possible saving of ~8% of build time.
20
21
System
performing test
selection based
on code
coverage
Mergingcoverage
files…
Version
control
HIGH EFFORT/COST
MOST RESEARCH 22
Check-in
Solve Problems Collaboratively
23
HIGH EFFORT/COST
MOST RESEARCH 25
Check-in
How do we system & integration
test a system like Windows?
Where
When
Who
How frequent
26
SYSTEM AND INTEGRATION TESTING
Software testing is expensive
• 10k+ gates executed, 1M+ test cases
• Different branches, architectures, languages, devices, platforms, …
• Aims to find code issues as early as possible
• Slows down product development 27
IT DOES NOT NEED ROCKET-SCIENCE
Cost function decides when to skip tests.
𝐶𝑜𝑠𝑡 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 > 𝐶𝑜𝑠𝑡 𝑆𝑘𝑖𝑝 ? suspend ∶ execute test
𝐶𝑜𝑠𝑡 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 = 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒/𝑇𝑖𝑚𝑒 ∗ 𝑇𝑖𝑚𝑒 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 + "Cost of potential false alarm"
= 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒/𝑇𝑖𝑚𝑒 ∗ 𝑇𝑖𝑚𝑒 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 + (𝑃𝑟𝑜𝑏 𝐹𝑃 ∗ 𝐶𝑜𝑠𝑡 𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟/𝑇𝑖𝑚𝑒 ∗𝑇𝑖𝑚𝑒 𝑇𝑟𝑖𝑎𝑔𝑒 )
𝐶𝑜𝑠𝑡 𝑆𝑘𝑖𝑝 = "Potential cost of elapsing a bug to next higher branch level"
= 𝑃𝑟𝑜𝑏 𝑇𝑃 ∗ 𝐶𝑜𝑠𝑡 𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟/𝑇𝑖𝑚𝑒 ∗ 𝑇𝑖𝑚𝑒 𝐹𝑟𝑒𝑒𝑧𝑒 𝑏𝑟𝑎𝑛𝑐ℎ ∗ #𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟𝑠 𝐵𝑟𝑎𝑛𝑐ℎ
time
Quality
Gate
Build Build
?
Build
28
Simulated on
Windows 8.1
development
period
(BVT only)
29
THINGS THAT DO NEED AUTOMATION (@ INDUSTRY)
Short story: everything that improves code velocity (integrate faster)
30
AUTOMATION GOAL
EffectivenessReliability
Cannot trust
result
Why are we
running this
test?
Ok
Rarely finds a
defect
high
lowhigh
low
Cannot trust
result
Rarely finds a
defect
high
lowhigh
low
31
AUTOMATION CONSTRAINTS
Do not sacrifice code quality
Avoid any runtime overhead
Present results to engineers (they need to understand)
32
1 Flaky tests
Automated detection of
33
FLAKY TESTS ARE EXPENSIVE!
Every test failure breaks the build
• We need to re-run the builds.
• Slows down code velocity.
Fixing a flaky test is not for free either
• How do you make yourself independent from network?
• Pure unit tests are rare.
• Mocking is one thing, maintaining the mock another.
• Maybe it’s not even worth to fix the test.
Wasting human effort / time
• In many cases failure triage requires human supervision
34
WHAT TO AUTOMATE?
Identify flaky tests
• We use heisenbug queues to run ~1000 executions on a fixed code-base.
Is it a flaky passing or a flaky failing test?
• Maybe the test should never have passed.
How many (re-)tries do we need to make a definite call?
• Is this feasible to keep the test for a while or drop it completely?
Why is it flaky? / How to fix?
• I’m NOT talking about auto-fix
• Hints and strategies on making the test better.
35
2 Test failure severity
Automated detection of
36
TEST FAILURE SEVERITY
DON’T CARE CAN WAIT BLOCKER
• Test issue
• Not my code
• Will not fix
• Low priority bug
• Before release
• Refactoring
• Fix it now
• I need to know this
37
3 Convert tests to unit(ish) tests
Automatically
38
Unit testing
Build
Verification
Code ReviewStatic Analysis System testing
Runtime / cost
Fast but
limited scope
Essential but no
quality
indication
Way too many
false positives
Good for
maintainability
but / finds few
code defects
Full scope but
slow and flaky
Relations are not accurate but only to illustrate the problem.
39
4 What to test next
Automated suggestions of
40
CATEGORIZATION OF LIVE SITE INCIDENTS FOR 17
DIERENT COMPANY PRODUCTS.
DATA FROM : MARIA CHRISTAKIS, CHRISTIAN BIRD
41
DIFFS ON (USAGE) SCENARIOS!
Engineer
Test
42
In collaboration with
Christopher Theisen, Dr. Laurie Williams
& Brendan Murphy (Microsoft Research)
Legend
Verification
Customer
Overlap
Legacy code
43
• No test failures on new code (unlikely)
• Is our test code base growing relatively to the code base?
• What’s the average age of tests?
Are we testing new code?
• No: we need to change tests or prevent misuse.
• Why are people using the feature differently?
Are features used as intended/tested?
• Tests need to adapt to current usage scenarios.
• What is the intended life-time of a test case?
How does usage change over time?
TESTING AS REALITY CHECK
44
5 Code Reviews as the Glue
Every automation requires human supervision
45
47

More Related Content

What's hot

Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
JAXLondon2014
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)
Danny Preussler
 
Using Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development TeamUsing Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development Team
Rainforest QA
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web Apps
Rainforest QA
 
End-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at RedisEnd-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at Redis
Filipe Oliveira
 
I Don't Test Often ...
I Don't Test Often ...I Don't Test Often ...
I Don't Test Often ...
Gareth Bowles
 
Feedback Loops in Agile Development
Feedback Loops in Agile DevelopmentFeedback Loops in Agile Development
Feedback Loops in Agile Development
Behrouz Bakhtiari
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
Pablo Villar
 
VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)
Rob Hale
 
Integrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With ScrumIntegrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With Scrum
Ethan Huang
 
From Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanFrom Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey Shannahan
QA or the Highway
 
Agile principles and practices
Agile principles and practicesAgile principles and practices
Agile principles and practices
Vipin Jose
 
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
Steve Lange
 
[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops
[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops
[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops
Future Processing
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Mike McGarr
 
Test driven development
Test driven developmentTest driven development
Test driven development
Sunil Prasad
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
drluckyspin
 
Continous testing for grails
Continous testing for grailsContinous testing for grails
Continous testing for grails
winkler1
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
Luis Sánchez Castellanos
 

What's hot (20)

Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)
 
Using Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development TeamUsing Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development Team
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web Apps
 
End-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at RedisEnd-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at Redis
 
I Don't Test Often ...
I Don't Test Often ...I Don't Test Often ...
I Don't Test Often ...
 
Feedback Loops in Agile Development
Feedback Loops in Agile DevelopmentFeedback Loops in Agile Development
Feedback Loops in Agile Development
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)
 
Integrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With ScrumIntegrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With Scrum
 
From Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanFrom Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey Shannahan
 
Agile principles and practices
Agile principles and practicesAgile principles and practices
Agile principles and practices
 
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
 
[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops
[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops
[QE 2015] Michał Kordas - Agile testing: Optimizing the feedback loops
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continous testing for grails
Continous testing for grailsContinous testing for grails
Continous testing for grails
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
 

Viewers also liked

Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015
Kim Herzig
 
Cuentos de las regiones
Cuentos de las regionesCuentos de las regiones
Cuentos de las regiones
Doris Giovanna Morales Ramos
 
Culture schock
Culture schockCulture schock
Comm 104 powerpoint
Comm 104 powerpointComm 104 powerpoint
Comm 104 powerpoint
annaii6y4u
 
Células
CélulasCélulas
Células
N C
 
Memorable events & neither - either - so - question tag
Memorable events & neither - either - so  - question tagMemorable events & neither - either - so  - question tag
Memorable events & neither - either - so - question tag
Siorella Gonzales Sánchez
 
Repair Kopitiam Electrical Training
Repair Kopitiam Electrical TrainingRepair Kopitiam Electrical Training
Repair Kopitiam Electrical Training
yeokm1
 
iOS UI Testing in Xcode
iOS UI Testing in XcodeiOS UI Testing in Xcode
iOS UI Testing in Xcode
Jz Chang
 
On to code review lessons learned at microsoft
On to code review lessons learned at microsoftOn to code review lessons learned at microsoft
On to code review lessons learned at microsoft
Michaela Greiler
 
tipos de tasas en venezuela
tipos de tasas en venezuela tipos de tasas en venezuela
tipos de tasas en venezuela
Jean Carlos Perez Teran
 
Transradial access and challenges edited 10 5-15
Transradial access and challenges edited 10 5-15Transradial access and challenges edited 10 5-15
Transradial access and challenges edited 10 5-15
Jordan Safirstein
 
Raspberry Pi 3 Latest PPT - Robomart
Raspberry Pi 3 Latest PPT - RobomartRaspberry Pi 3 Latest PPT - Robomart
Raspberry Pi 3 Latest PPT - Robomart
Robomart
 
ASC 606 - IFRS 15 and SAP RAR
ASC 606 - IFRS 15 and SAP RARASC 606 - IFRS 15 and SAP RAR
ASC 606 - IFRS 15 and SAP RAR
Zak Syed
 
Resume hosei new
Resume hosei newResume hosei new
Resume hosei new
Hamada, japanese Natsuko
 
Chinese Comprehension 37
Chinese Comprehension 37Chinese Comprehension 37
Chinese Comprehension 37
Kathleen Ong
 

Viewers also liked (15)

Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015
 
Cuentos de las regiones
Cuentos de las regionesCuentos de las regiones
Cuentos de las regiones
 
Culture schock
Culture schockCulture schock
Culture schock
 
Comm 104 powerpoint
Comm 104 powerpointComm 104 powerpoint
Comm 104 powerpoint
 
Células
CélulasCélulas
Células
 
Memorable events & neither - either - so - question tag
Memorable events & neither - either - so  - question tagMemorable events & neither - either - so  - question tag
Memorable events & neither - either - so - question tag
 
Repair Kopitiam Electrical Training
Repair Kopitiam Electrical TrainingRepair Kopitiam Electrical Training
Repair Kopitiam Electrical Training
 
iOS UI Testing in Xcode
iOS UI Testing in XcodeiOS UI Testing in Xcode
iOS UI Testing in Xcode
 
On to code review lessons learned at microsoft
On to code review lessons learned at microsoftOn to code review lessons learned at microsoft
On to code review lessons learned at microsoft
 
tipos de tasas en venezuela
tipos de tasas en venezuela tipos de tasas en venezuela
tipos de tasas en venezuela
 
Transradial access and challenges edited 10 5-15
Transradial access and challenges edited 10 5-15Transradial access and challenges edited 10 5-15
Transradial access and challenges edited 10 5-15
 
Raspberry Pi 3 Latest PPT - Robomart
Raspberry Pi 3 Latest PPT - RobomartRaspberry Pi 3 Latest PPT - Robomart
Raspberry Pi 3 Latest PPT - Robomart
 
ASC 606 - IFRS 15 and SAP RAR
ASC 606 - IFRS 15 and SAP RARASC 606 - IFRS 15 and SAP RAR
ASC 606 - IFRS 15 and SAP RAR
 
Resume hosei new
Resume hosei newResume hosei new
Resume hosei new
 
Chinese Comprehension 37
Chinese Comprehension 37Chinese Comprehension 37
Chinese Comprehension 37
 

Similar to Keynote AST 2016

Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
TEST Huddle
 
ES3-2020-05 Testing
ES3-2020-05 TestingES3-2020-05 Testing
ES3-2020-05 Testing
David Rodenas
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
Andreas Grabner
 
AAA Automated Testing
AAA Automated TestingAAA Automated Testing
AAA Automated Testing
Francesco Carucci
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
Kim Herzig
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
Xavi Hidalgo
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
TDD Best Practices
TDD Best PracticesTDD Best Practices
TDD Best Practices
Attila Bertók
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)
Thierry Gayet
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
Peter Kofler
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous delivery
Sauce Labs
 
Google test training
Google test trainingGoogle test training
Google test training
Thierry Gayet
 
TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012
Pietro Di Bello
 
The Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineThe Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the Pipeline
DevOps.com
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
Peter Kofler
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
Rakuten Group, Inc.
 
QA and scrum
QA and scrumQA and scrum
QA and scrum
clintonbosch
 
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comAdvanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
DevOpsDays Tel Aviv
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
Solano Labs
 
Test Driven
Test DrivenTest Driven
Test Driven
Alex Chaffee
 

Similar to Keynote AST 2016 (20)

Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
 
ES3-2020-05 Testing
ES3-2020-05 TestingES3-2020-05 Testing
ES3-2020-05 Testing
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 
AAA Automated Testing
AAA Automated TestingAAA Automated Testing
AAA Automated Testing
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
TDD Best Practices
TDD Best PracticesTDD Best Practices
TDD Best Practices
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous delivery
 
Google test training
Google test trainingGoogle test training
Google test training
 
TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012
 
The Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineThe Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the Pipeline
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
QA and scrum
QA and scrumQA and scrum
QA and scrum
 
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comAdvanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Test Driven
Test DrivenTest Driven
Test Driven
 

More from Kim Herzig

Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Kim Herzig
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
Kim Herzig
 
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
Kim Herzig
 
Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)
Kim Herzig
 
Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)
Kim Herzig
 
The Impact of Tangled Code Changes
The Impact of Tangled Code ChangesThe Impact of Tangled Code Changes
The Impact of Tangled Code Changes
Kim Herzig
 
Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011
Kim Herzig
 
Network vs. Code Metrics to Predict Defects: A Replication Study
Network vs. Code Metrics  to Predict Defects: A Replication StudyNetwork vs. Code Metrics  to Predict Defects: A Replication Study
Network vs. Code Metrics to Predict Defects: A Replication Study
Kim Herzig
 
Capturing the Long Term Impact of Changes
Capturing the Long Term Impact of ChangesCapturing the Long Term Impact of Changes
Capturing the Long Term Impact of Changes
Kim Herzig
 
Software Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software ArchivesSoftware Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software Archives
Kim Herzig
 

More from Kim Herzig (10)

Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
 
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
 
Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)
 
Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)
 
The Impact of Tangled Code Changes
The Impact of Tangled Code ChangesThe Impact of Tangled Code Changes
The Impact of Tangled Code Changes
 
Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011
 
Network vs. Code Metrics to Predict Defects: A Replication Study
Network vs. Code Metrics  to Predict Defects: A Replication StudyNetwork vs. Code Metrics  to Predict Defects: A Replication Study
Network vs. Code Metrics to Predict Defects: A Replication Study
 
Capturing the Long Term Impact of Changes
Capturing the Long Term Impact of ChangesCapturing the Long Term Impact of Changes
Capturing the Long Term Impact of Changes
 
Software Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software ArchivesSoftware Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software Archives
 

Recently uploaded

Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
anfaltahir1010
 

Recently uploaded (20)

Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
 

Keynote AST 2016

  • 1. Let’s assume we had to pay for testing Kim Herzig (Software engineer & Researcher) kimh@microsoft.com www.research.microsoft.com/people/kimh www.kim-herzig.de Visual Studio Team Services Tools for Software Engineers 1
  • 2. Visual Studio Team Services Tools for Software Engineers 3
  • 3. When I joined Microsoft 4
  • 4. Let’s assume we had to pay for testing Kim Herzig (Software engineer & Researcher) kimh@microsoft.com www.research.microsoft.com/people/kimh www.kim-herzig.de Visual Studio Team Services Tools for Software Engineers 5
  • 5. Money (machine) Effort (human) Let’s assume we had to pay for testing 6
  • 6. How much quality assurance (testing) did you do for your latest (research) project? Could be more? Because you had to ship your paper on a firm deadline. But you could have automated it, right? 7
  • 7. AST WORKSHOP WEBSITE “In software development practice, testing accounts for as much as 50% of the total development effort. It is therefore imperative to reduce the cost and improve the effectiveness of software testing by automating the testing process.” 8
  • 8. INNER & OUTER DEVELOPMENT LOOP Pre-check-in Integration process Fully automated, including test selection & code coverage 10 Check-in
  • 9. What is the goal of your automation? And how do you know when you reached it? 11
  • 10. RETURN OF INVESTMENT When do product teams buy our tools? Your tool X Y < 12
  • 12. EXAMPLE Test selection based on code coverage Your tool CODE COVERAGE RUNTIME REDUCTION 15 Slows down test execution by 30% Saving 50% of tests! ?
  • 13. Product X:  10,000 unit test cases  0.12 sec per test case LET’S DO SOME BASIC MATH 𝐶𝑜𝑠𝑡 𝑇𝑒𝑠𝑡 = 𝑇𝑒𝑠𝑡𝐶𝑎𝑠𝑒𝑠 ∗ 𝑅𝑢𝑛𝑡𝑖𝑚𝑒 𝑇𝑒𝑠𝑡𝑐𝑎𝑠𝑒 ∗ 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒 = 10,000 ∗ 0.12 sec ∗ 5.14𝑒−4 ൗ$ 𝑠𝑒𝑐 = $𝟎. 𝟔𝟐 This excludes human effort!  ~2500 builds per day  Azure machine: $1.85/hr Assumption: you achieve 50% test reduction per dayYou saved: $0.62 ∗ 2500 ∗ 0.5 = $722 per build 16
  • 14. per build 𝐶𝑜𝑠𝑡 𝐶𝑜𝑑𝑒𝐶𝑜𝑣𝑒𝑟𝑎𝑔𝑒 = 𝐶𝑜𝑠𝑡 𝑇𝑒𝑠𝑡𝑖𝑛𝑔 ∗ 𝑅𝑢𝑛𝑡𝑖𝑚𝑒 𝑂𝑣𝑒𝑟ℎ𝑒𝑎𝑑 + 𝐶𝐶𝑆𝑖𝑧𝑒 ∗ 𝐶𝑜𝑠𝑡 𝐷𝑖𝑠𝑘 + 𝐶𝐶𝑆𝑖𝑧𝑒 ∗ 𝑆𝑝𝑒𝑒𝑑𝐼/𝑂 ∗ 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒 BUT HANG-ON … You used code coverage, right? = $0.62 ∗ 0.3 + 3.3𝐺𝐵 ∗ 0.35 ൗ$ 𝐺𝐵 + 2 Τ𝑠𝑒𝑐 𝐺𝐵 ∗ 3.3𝐺𝐵 ∗ 5.14𝑒−4 Τ$ 𝑠𝑒𝑐= $1.34 Facts:  Block coverage: 3.3 GB per build  0.35 $/GB SDD cost  SSD speed 500MB/sec  Azure machine: $1.853/hr You spend: $1.34 ∗ 2500 = $3,350 per day 17
  • 15. $3,350 $722 Slows down test execution by 30% Saving 50% of tests! And this excludes many aspects: e.g. your analysis time! It might still be worth the effort But it’s as good as you might think, and we have more pressing issues. 18
  • 16. Time is money 19 If we are talking about testing as part of build, we can measure cost in terms of time. It’s all about speed.
  • 17. IT’S EVEN MORE COMPLICATED Nobody runs tests after build (anymore) in the inner loop Legend: Source module Test module Build Test execution buddy build Rolling build CloudBuild A 1. Build Graph Analysis X C B D E Z A X C B D E ZY Y 2. Build/Test Execution B1 B2 B3 B C D Y Z Z E 3. Results Success or Failure (log files) Y CloudBuild uses module-level test selection when any dependencies of a module change, all tests inside that module are executed. Thus, you can only reduce / re-order tests within the same target! Max possible saving of ~8% of build time. 20
  • 18. 21 System performing test selection based on code coverage Mergingcoverage files… Version control
  • 22. How do we system & integration test a system like Windows? Where When Who How frequent 26
  • 23. SYSTEM AND INTEGRATION TESTING Software testing is expensive • 10k+ gates executed, 1M+ test cases • Different branches, architectures, languages, devices, platforms, … • Aims to find code issues as early as possible • Slows down product development 27
  • 24. IT DOES NOT NEED ROCKET-SCIENCE Cost function decides when to skip tests. 𝐶𝑜𝑠𝑡 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 > 𝐶𝑜𝑠𝑡 𝑆𝑘𝑖𝑝 ? suspend ∶ execute test 𝐶𝑜𝑠𝑡 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 = 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒/𝑇𝑖𝑚𝑒 ∗ 𝑇𝑖𝑚𝑒 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 + "Cost of potential false alarm" = 𝐶𝑜𝑠𝑡 𝑀𝑎𝑐ℎ𝑖𝑛𝑒/𝑇𝑖𝑚𝑒 ∗ 𝑇𝑖𝑚𝑒 𝐸𝑥𝑒𝑐𝑢𝑡𝑖𝑜𝑛 + (𝑃𝑟𝑜𝑏 𝐹𝑃 ∗ 𝐶𝑜𝑠𝑡 𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟/𝑇𝑖𝑚𝑒 ∗𝑇𝑖𝑚𝑒 𝑇𝑟𝑖𝑎𝑔𝑒 ) 𝐶𝑜𝑠𝑡 𝑆𝑘𝑖𝑝 = "Potential cost of elapsing a bug to next higher branch level" = 𝑃𝑟𝑜𝑏 𝑇𝑃 ∗ 𝐶𝑜𝑠𝑡 𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟/𝑇𝑖𝑚𝑒 ∗ 𝑇𝑖𝑚𝑒 𝐹𝑟𝑒𝑒𝑧𝑒 𝑏𝑟𝑎𝑛𝑐ℎ ∗ #𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟𝑠 𝐵𝑟𝑎𝑛𝑐ℎ time Quality Gate Build Build ? Build 28
  • 26. THINGS THAT DO NEED AUTOMATION (@ INDUSTRY) Short story: everything that improves code velocity (integrate faster) 30
  • 27. AUTOMATION GOAL EffectivenessReliability Cannot trust result Why are we running this test? Ok Rarely finds a defect high lowhigh low Cannot trust result Rarely finds a defect high lowhigh low 31
  • 28. AUTOMATION CONSTRAINTS Do not sacrifice code quality Avoid any runtime overhead Present results to engineers (they need to understand) 32
  • 29. 1 Flaky tests Automated detection of 33
  • 30. FLAKY TESTS ARE EXPENSIVE! Every test failure breaks the build • We need to re-run the builds. • Slows down code velocity. Fixing a flaky test is not for free either • How do you make yourself independent from network? • Pure unit tests are rare. • Mocking is one thing, maintaining the mock another. • Maybe it’s not even worth to fix the test. Wasting human effort / time • In many cases failure triage requires human supervision 34
  • 31. WHAT TO AUTOMATE? Identify flaky tests • We use heisenbug queues to run ~1000 executions on a fixed code-base. Is it a flaky passing or a flaky failing test? • Maybe the test should never have passed. How many (re-)tries do we need to make a definite call? • Is this feasible to keep the test for a while or drop it completely? Why is it flaky? / How to fix? • I’m NOT talking about auto-fix • Hints and strategies on making the test better. 35
  • 32. 2 Test failure severity Automated detection of 36
  • 33. TEST FAILURE SEVERITY DON’T CARE CAN WAIT BLOCKER • Test issue • Not my code • Will not fix • Low priority bug • Before release • Refactoring • Fix it now • I need to know this 37
  • 34. 3 Convert tests to unit(ish) tests Automatically 38
  • 35. Unit testing Build Verification Code ReviewStatic Analysis System testing Runtime / cost Fast but limited scope Essential but no quality indication Way too many false positives Good for maintainability but / finds few code defects Full scope but slow and flaky Relations are not accurate but only to illustrate the problem. 39
  • 36. 4 What to test next Automated suggestions of 40
  • 37. CATEGORIZATION OF LIVE SITE INCIDENTS FOR 17 DIERENT COMPANY PRODUCTS. DATA FROM : MARIA CHRISTAKIS, CHRISTIAN BIRD 41
  • 38. DIFFS ON (USAGE) SCENARIOS! Engineer Test 42
  • 39. In collaboration with Christopher Theisen, Dr. Laurie Williams & Brendan Murphy (Microsoft Research) Legend Verification Customer Overlap Legacy code 43
  • 40. • No test failures on new code (unlikely) • Is our test code base growing relatively to the code base? • What’s the average age of tests? Are we testing new code? • No: we need to change tests or prevent misuse. • Why are people using the feature differently? Are features used as intended/tested? • Tests need to adapt to current usage scenarios. • What is the intended life-time of a test case? How does usage change over time? TESTING AS REALITY CHECK 44
  • 41. 5 Code Reviews as the Glue Every automation requires human supervision 45
  • 42. 47