SlideShare a Scribd company logo
Beyond Agile 
Testing to Lean 
Development 
James O. Coplien 
Gertrud & Cope
Processes and 
Tools over 
Individuals and 
Interactions
Test 
Testing 
System 
Testing 
Exploratory 
Testing 
Usability Testing
Why doesn’t unit 
testing work? 
We can’t test things of business 
value 
Not knowing what to test, we test 
many things that don’t need testing 
Automated crap is still crap
Unit tests can’t test 
things of business value 
Can you demonstrate that Method X of 
Object Y will ever be invoked in practice? 
If a unit test fails, how does it affect ROI? 
What’s amazing is that we continue to test… 
Paths that will never be exercised 
Methods that are never used 
Naive method invocation sequences
Most unit tests are 
unnecessary 
We test scenarios that will never be 
exercised in the real world 
We test methods that will never be 
invoked 
We supply data that a real application 
would never have to process
Automated crap is 
still crap 
Design requires intelligence: 
intelligence cannot be automated 
Autonomation instead of automation 
Testing is about exploratory inference 
Get manual procedures working first 
and then automate the mundane parts
Automated testing is not 
testing
Nokia Test Score 2: 
Testing 
No dedicated QA - 0 
Unit tested - 1 
Feature tested - 5 
Feature tested as soon as completed - 7 
Software passes acceptance testing - 8 
Software is deployed - 10
Weinberg’s Law of 
Decomposition
Weinberg’s Law of 
Decomposition
Weinberg’s Law of 
Decomposition
Weinberg’s Law of 
Decomposition 
Used Interface 
Used Interface
Weinberg’s Law of 
Decomposition 
Used Interface 
Used Interface 
Mu s t unit-te s t! 
Must unit-test! 
Must unit-test!
Weinberg’s Law of 
Decomposition
Weinberg’s Law of 
Decomposition 
Wasted testing effort
Weinberg’s Law of 
Decomposition 
Wasted testing effort 
Test 
Size
Weinberg’s Law of 
Decomposition 
Wasted testing effort 
Use 
Size 
Test 
Size
Part III: You Will Have Bugs! 
Scenarios we 
test in the lab 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field
Testing waste 
Scenarios we 
test in the lab 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field
Testing waste 
Scenarios we 
test in the lab 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field 
Type 1 
Muda 
Type 1: Defects
Testing waste 
Scenarios we 
test in the lab 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field 
Type 2 
Muda 
Type 1 
Muda 
Type 1: Defects 
Type 2: Stuff 
customers 
don’t ask for
Testing waste 
Scenarios we 
test in the lab 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field 
Type 2 
Muda 
Type 1 
Muda 
Type 4 
Muda 
Type 1: Defects 
Type 2: Stuff 
customers 
don’t ask for 
Type 4: 
Overprocessing
Testing waste 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field 
Type 1 
Muda 
Type 4 
Muda 
Type 1: Defects 
Type 2: Stuff 
customers 
don’t ask for 
Type 4: 
Type Overprocessing 
1 Muda 
(field)
Testing waste 
Removing tests 
leaves field faults 
Scenarios 
exhibiting 
faults 
Scenarios 
invoked in 
the field 
undetected! 
Type 1 
Muda 
Type 4 
Muda 
Type 1: Defects 
Type 2: Stuff 
customers 
don’t ask for 
Type 4: 
Type Overprocessing 
1 Muda 
(field)
Why do we unit 
test? 
Because we can 
It doesn’t require teamwork 
We don’t have to talk with the business 
We get to interact with tools instead of 
people 
Our decisions are emotional, not rational
Reduction of Waste 
Type 1: Better testing (e.g., going beyond 
contextual testing to exploratory & experience-based 
testing) (and better yet, better analysis 
and design, where the real payoffs are) 
Type 2: Don’t test dead code 
Type 4: Remove redundant and tautalogical 
tests, and tests that give no information 
Type 1 in the field: Ship your tests!
Don’t take the tests 
out when you ship! 
Remember, you will have bugs in the 
field! 
Deployment is your largest test driver 
Ship your tests as part of the code 
IN case of a failure, it saves you 
from Type 9 muda (unsafe execution)
Be Customer- 
Focused 
Assertions and Design by Contract!
How Adding ASSERTS reduces work 
2500000 
2000000 
1500000 
1000000 
500000 
0 
15 bugs p=0.01 15 bugs p=0.02 
10 bugs p=0.01 10 bugs p=0.02 
5 bugs p=0.01 5 bugs p=0.02 
0 1 2 5 10 20 50 100 
number of ASSERTS 
Work, Tsinglechecks 
Overload 
Magazine, 
October 2014
Defensive 
Programming 
… is largely the incorporation of 
tests in the code 
Long known for high-reliability 
systems 
The value of asserting the obvious 
Design by Contract
Assertions make code 
readable! 
- (void) prepareForSegue: (UIStoryboardSegue*) segue 
sender: (id) sender 
{ 
assert(segue != nil); 
if ([[segue identifier] isEqualToString: 
@"SegueAvatarPickerToPickOneLoginPlayer"]) { 
assert((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)); 
// The field parentViewController_ (instance variable) is 
// maybe null if we are in iPhone mode and doing a real 
// segue, instead of a popover as we do on the iPad. So 
// get the right object from the segue record. 
KnowsyPlayerPickerCommonViewController *parentViewController = 
[segue destinationViewController]; 
[parentViewController setKnowsyData: knowsyData_]; 
} else { 
// iPad - no special processing - should be no popover 
assert(parentViewController_ == nil); 
} 
}
Part IV: Beyond agile 
testing, Lean testing 
When a test finds a bug, it’s about 
fixing the process — not the bug 
The long-term payoff is higher! 
No bug-tracking systems: we fix 
problems NOW. 
The tester should be the team’s 
conscience
Other Lean-isms 
Deming: Quality is inversely 
proportional to the number of 
testers 
GM kept around its cars for 1 - 6 
weeks for test and repair: Toyota 
drove them off the end of the 
assembly line onto the car carriers.
Conclusion 
Be humble about what tests can accomplish 
It’s not about testing, but value 
Design tests to assess properties of business value 
Go beyond unit testing to defensive 
programming and design-by-contract 
As agile testers, focus on process first and 
product second
Beyond Agile Testing to Lean Development — Rakuten Technology Conference

More Related Content

What's hot

Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Grig Gheorghiu
 
Dw testing
Dw testingDw testing
Dw testing
Gayatri P
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
priya_trivedi
 
Software Testing
Software TestingSoftware Testing
Software Testing
AdroitLogic
 
Quality Assurance Guidelines
Quality Assurance GuidelinesQuality Assurance Guidelines
Quality Assurance Guidelines
Tim Stribos
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assurance
Benjamin Baumann
 
How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)
Asier Barrenetxea
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
Brian Rasmussen
 
When will ai take my job as a tester
When will ai take my job as a testerWhen will ai take my job as a tester
When will ai take my job as a tester
SAP SE
 
Test driven development
Test driven developmentTest driven development
Test driven development
namkha87
 
Testing without assertions - #HUSTEF2019
Testing without assertions - #HUSTEF2019Testing without assertions - #HUSTEF2019
Testing without assertions - #HUSTEF2019
SAP SE
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testing
gojkoadzic
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
michael.labriola
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
Iosif Itkin
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile ProjectsEngaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile ProjectsRavi Kumar
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in seliniumTutorial of web application load testing in selinium
Tutorial of web application load testing in seliniumKevalkumar Shah
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Development
satya sudheer
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
Łukasz Morawski
 
Hitchhiker's guide to Functional Testing
Hitchhiker's guide to Functional TestingHitchhiker's guide to Functional Testing
Hitchhiker's guide to Functional Testing
Wiebe Elsinga
 

What's hot (19)

Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
 
Dw testing
Dw testingDw testing
Dw testing
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Quality Assurance Guidelines
Quality Assurance GuidelinesQuality Assurance Guidelines
Quality Assurance Guidelines
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assurance
 
How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
When will ai take my job as a tester
When will ai take my job as a testerWhen will ai take my job as a tester
When will ai take my job as a tester
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Testing without assertions - #HUSTEF2019
Testing without assertions - #HUSTEF2019Testing without assertions - #HUSTEF2019
Testing without assertions - #HUSTEF2019
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testing
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile ProjectsEngaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile Projects
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in seliniumTutorial of web application load testing in selinium
Tutorial of web application load testing in selinium
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Development
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
 
Hitchhiker's guide to Functional Testing
Hitchhiker's guide to Functional TestingHitchhiker's guide to Functional Testing
Hitchhiker's guide to Functional Testing
 

Viewers also liked

グリー アジャイル開発における品質保証と人材活用
グリー アジャイル開発における品質保証と人材活用グリー アジャイル開発における品質保証と人材活用
グリー アジャイル開発における品質保証と人材活用
Kaede Ichihara
 
アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!
hiroyuki Yamamoto
 
Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版
Hiroki Kondo
 
JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...
JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...
JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...
PROIDEA
 
ソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれから
Yasuharu Nishi
 
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
Yasuharu Nishi
 
あじゃいる時代の品質保証 ~DevSQAの提案~
あじゃいる時代の品質保証 ~DevSQAの提案~あじゃいる時代の品質保証 ~DevSQAの提案~
あじゃいる時代の品質保証 ~DevSQAの提案~
Hiroaki Matsunaga
 
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
Yoshitaka Kawashima
 

Viewers also liked (8)

グリー アジャイル開発における品質保証と人材活用
グリー アジャイル開発における品質保証と人材活用グリー アジャイル開発における品質保証と人材活用
グリー アジャイル開発における品質保証と人材活用
 
アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!
 
Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版
 
JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...
JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...
JDD2014: QA to AQ: shifting from quality assurance to agile quality - Joseph ...
 
ソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれから
 
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
 
あじゃいる時代の品質保証 ~DevSQAの提案~
あじゃいる時代の品質保証 ~DevSQAの提案~あじゃいる時代の品質保証 ~DevSQAの提案~
あじゃいる時代の品質保証 ~DevSQAの提案~
 
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
 

Similar to Beyond Agile Testing to Lean Development — Rakuten Technology Conference

Unit Testing in Android
Unit Testing in AndroidUnit Testing in Android
Unit Testing in Android
Md Shamsul Arafin Mahtab
 
Android testing part i
Android testing part iAndroid testing part i
Android testing part i
Kan-Han (John) Lu
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-TestingMary Clemons
 
Unit testing (workshop)
Unit testing (workshop)Unit testing (workshop)
Unit testing (workshop)Foyzul Karim
 
Case Studies in Terrible Testing
Case Studies in Terrible TestingCase Studies in Terrible Testing
Case Studies in Terrible Testing
Todd Gardner
 
Dev fest2015androidunittestingbyoyewaleademolasao
Dev fest2015androidunittestingbyoyewaleademolasaoDev fest2015androidunittestingbyoyewaleademolasao
Dev fest2015androidunittestingbyoyewaleademolasao
Oyewale Ademola
 
TDD Best Practices
TDD Best PracticesTDD Best Practices
TDD Best Practices
Attila Bertók
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
David Rogers
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
priya_trivedi
 
Why unit testingl
Why unit testinglWhy unit testingl
Why unit testingl
Priya Sharma
 
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
 
QA Best Practices
QA  Best PracticesQA  Best Practices
QA Best Practices
James York
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
Dror Helper
 
Anatomy of Test Driven Development
Anatomy of Test Driven DevelopmentAnatomy of Test Driven Development
Anatomy of Test Driven Development
Dhaval Shah
 
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Turkish Testing Board
 
Fantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignFantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test Design
Winston Laoh
 
Unit-testing and E2E testing in JS
Unit-testing and E2E testing in JSUnit-testing and E2E testing in JS
Unit-testing and E2E testing in JS
Michael Haberman
 
BLACK BOX & WHITE BOX TESTING.pptx
BLACK BOX & WHITE BOX TESTING.pptxBLACK BOX & WHITE BOX TESTING.pptx
BLACK BOX & WHITE BOX TESTING.pptx
MohammadShahjalalKha
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
Anuj Arora
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
Bitbar
 

Similar to Beyond Agile Testing to Lean Development — Rakuten Technology Conference (20)

Unit Testing in Android
Unit Testing in AndroidUnit Testing in Android
Unit Testing in Android
 
Android testing part i
Android testing part iAndroid testing part i
Android testing part i
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
Unit testing (workshop)
Unit testing (workshop)Unit testing (workshop)
Unit testing (workshop)
 
Case Studies in Terrible Testing
Case Studies in Terrible TestingCase Studies in Terrible Testing
Case Studies in Terrible Testing
 
Dev fest2015androidunittestingbyoyewaleademolasao
Dev fest2015androidunittestingbyoyewaleademolasaoDev fest2015androidunittestingbyoyewaleademolasao
Dev fest2015androidunittestingbyoyewaleademolasao
 
TDD Best Practices
TDD Best PracticesTDD Best Practices
TDD Best Practices
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
Why unit testingl
Why unit testinglWhy unit testingl
Why unit testingl
 
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...
 
QA Best Practices
QA  Best PracticesQA  Best Practices
QA Best Practices
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Anatomy of Test Driven Development
Anatomy of Test Driven DevelopmentAnatomy of Test Driven Development
Anatomy of Test Driven Development
 
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
 
Fantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignFantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test Design
 
Unit-testing and E2E testing in JS
Unit-testing and E2E testing in JSUnit-testing and E2E testing in JS
Unit-testing and E2E testing in JS
 
BLACK BOX & WHITE BOX TESTING.pptx
BLACK BOX & WHITE BOX TESTING.pptxBLACK BOX & WHITE BOX TESTING.pptx
BLACK BOX & WHITE BOX TESTING.pptx
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
 

More from James Coplien

Scrum Patterns
Scrum PatternsScrum Patterns
Scrum Patterns
James Coplien
 
Scale-Free Networks: How to Fix Problems in Hierarchical Scaled Organizations
Scale-Free Networks: How to Fix Problems in Hierarchical Scaled OrganizationsScale-Free Networks: How to Fix Problems in Hierarchical Scaled Organizations
Scale-Free Networks: How to Fix Problems in Hierarchical Scaled Organizations
James Coplien
 
Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...
Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...
Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...
James Coplien
 
Scale-Free Organizations: A Sober View, Some History, and How to Make One
Scale-Free Organizations: A Sober View, Some History, and How to Make OneScale-Free Organizations: A Sober View, Some History, and How to Make One
Scale-Free Organizations: A Sober View, Some History, and How to Make One
James Coplien
 
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
James Coplien
 
Scrum Patterns: The New Defacto Scrum Standard
Scrum Patterns: The New Defacto Scrum StandardScrum Patterns: The New Defacto Scrum Standard
Scrum Patterns: The New Defacto Scrum Standard
James Coplien
 
Secrets of Scrum
Secrets of ScrumSecrets of Scrum
Secrets of Scrum
James Coplien
 
Balancing the tension between Lean and Agile
Balancing the tension between Lean and AgileBalancing the tension between Lean and Agile
Balancing the tension between Lean and Agile
James Coplien
 

More from James Coplien (8)

Scrum Patterns
Scrum PatternsScrum Patterns
Scrum Patterns
 
Scale-Free Networks: How to Fix Problems in Hierarchical Scaled Organizations
Scale-Free Networks: How to Fix Problems in Hierarchical Scaled OrganizationsScale-Free Networks: How to Fix Problems in Hierarchical Scaled Organizations
Scale-Free Networks: How to Fix Problems in Hierarchical Scaled Organizations
 
Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...
Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...
Real Object-Oriented Programming: Empirically Validated Benefits of the DCI P...
 
Scale-Free Organizations: A Sober View, Some History, and How to Make One
Scale-Free Organizations: A Sober View, Some History, and How to Make OneScale-Free Organizations: A Sober View, Some History, and How to Make One
Scale-Free Organizations: A Sober View, Some History, and How to Make One
 
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
 
Scrum Patterns: The New Defacto Scrum Standard
Scrum Patterns: The New Defacto Scrum StandardScrum Patterns: The New Defacto Scrum Standard
Scrum Patterns: The New Defacto Scrum Standard
 
Secrets of Scrum
Secrets of ScrumSecrets of Scrum
Secrets of Scrum
 
Balancing the tension between Lean and Agile
Balancing the tension between Lean and AgileBalancing the tension between Lean and Agile
Balancing the tension between Lean and Agile
 

Recently uploaded

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
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
 
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
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
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
 
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
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
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
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 

Recently uploaded (20)

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
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
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
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
 
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
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
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
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 

Beyond Agile Testing to Lean Development — Rakuten Technology Conference

  • 1. Beyond Agile Testing to Lean Development James O. Coplien Gertrud & Cope
  • 2.
  • 3. Processes and Tools over Individuals and Interactions
  • 4. Test Testing System Testing Exploratory Testing Usability Testing
  • 5.
  • 6.
  • 7. Why doesn’t unit testing work? We can’t test things of business value Not knowing what to test, we test many things that don’t need testing Automated crap is still crap
  • 8. Unit tests can’t test things of business value Can you demonstrate that Method X of Object Y will ever be invoked in practice? If a unit test fails, how does it affect ROI? What’s amazing is that we continue to test… Paths that will never be exercised Methods that are never used Naive method invocation sequences
  • 9. Most unit tests are unnecessary We test scenarios that will never be exercised in the real world We test methods that will never be invoked We supply data that a real application would never have to process
  • 10. Automated crap is still crap Design requires intelligence: intelligence cannot be automated Autonomation instead of automation Testing is about exploratory inference Get manual procedures working first and then automate the mundane parts
  • 11. Automated testing is not testing
  • 12. Nokia Test Score 2: Testing No dedicated QA - 0 Unit tested - 1 Feature tested - 5 Feature tested as soon as completed - 7 Software passes acceptance testing - 8 Software is deployed - 10
  • 13. Weinberg’s Law of Decomposition
  • 14. Weinberg’s Law of Decomposition
  • 15. Weinberg’s Law of Decomposition
  • 16. Weinberg’s Law of Decomposition Used Interface Used Interface
  • 17. Weinberg’s Law of Decomposition Used Interface Used Interface Mu s t unit-te s t! Must unit-test! Must unit-test!
  • 18. Weinberg’s Law of Decomposition
  • 19. Weinberg’s Law of Decomposition Wasted testing effort
  • 20. Weinberg’s Law of Decomposition Wasted testing effort Test Size
  • 21. Weinberg’s Law of Decomposition Wasted testing effort Use Size Test Size
  • 22. Part III: You Will Have Bugs! Scenarios we test in the lab Scenarios exhibiting faults Scenarios invoked in the field
  • 23. Testing waste Scenarios we test in the lab Scenarios exhibiting faults Scenarios invoked in the field
  • 24. Testing waste Scenarios we test in the lab Scenarios exhibiting faults Scenarios invoked in the field Type 1 Muda Type 1: Defects
  • 25. Testing waste Scenarios we test in the lab Scenarios exhibiting faults Scenarios invoked in the field Type 2 Muda Type 1 Muda Type 1: Defects Type 2: Stuff customers don’t ask for
  • 26. Testing waste Scenarios we test in the lab Scenarios exhibiting faults Scenarios invoked in the field Type 2 Muda Type 1 Muda Type 4 Muda Type 1: Defects Type 2: Stuff customers don’t ask for Type 4: Overprocessing
  • 27. Testing waste Scenarios exhibiting faults Scenarios invoked in the field Type 1 Muda Type 4 Muda Type 1: Defects Type 2: Stuff customers don’t ask for Type 4: Type Overprocessing 1 Muda (field)
  • 28. Testing waste Removing tests leaves field faults Scenarios exhibiting faults Scenarios invoked in the field undetected! Type 1 Muda Type 4 Muda Type 1: Defects Type 2: Stuff customers don’t ask for Type 4: Type Overprocessing 1 Muda (field)
  • 29. Why do we unit test? Because we can It doesn’t require teamwork We don’t have to talk with the business We get to interact with tools instead of people Our decisions are emotional, not rational
  • 30. Reduction of Waste Type 1: Better testing (e.g., going beyond contextual testing to exploratory & experience-based testing) (and better yet, better analysis and design, where the real payoffs are) Type 2: Don’t test dead code Type 4: Remove redundant and tautalogical tests, and tests that give no information Type 1 in the field: Ship your tests!
  • 31. Don’t take the tests out when you ship! Remember, you will have bugs in the field! Deployment is your largest test driver Ship your tests as part of the code IN case of a failure, it saves you from Type 9 muda (unsafe execution)
  • 32. Be Customer- Focused Assertions and Design by Contract!
  • 33. How Adding ASSERTS reduces work 2500000 2000000 1500000 1000000 500000 0 15 bugs p=0.01 15 bugs p=0.02 10 bugs p=0.01 10 bugs p=0.02 5 bugs p=0.01 5 bugs p=0.02 0 1 2 5 10 20 50 100 number of ASSERTS Work, Tsinglechecks Overload Magazine, October 2014
  • 34. Defensive Programming … is largely the incorporation of tests in the code Long known for high-reliability systems The value of asserting the obvious Design by Contract
  • 35. Assertions make code readable! - (void) prepareForSegue: (UIStoryboardSegue*) segue sender: (id) sender { assert(segue != nil); if ([[segue identifier] isEqualToString: @"SegueAvatarPickerToPickOneLoginPlayer"]) { assert((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)); // The field parentViewController_ (instance variable) is // maybe null if we are in iPhone mode and doing a real // segue, instead of a popover as we do on the iPad. So // get the right object from the segue record. KnowsyPlayerPickerCommonViewController *parentViewController = [segue destinationViewController]; [parentViewController setKnowsyData: knowsyData_]; } else { // iPad - no special processing - should be no popover assert(parentViewController_ == nil); } }
  • 36. Part IV: Beyond agile testing, Lean testing When a test finds a bug, it’s about fixing the process — not the bug The long-term payoff is higher! No bug-tracking systems: we fix problems NOW. The tester should be the team’s conscience
  • 37. Other Lean-isms Deming: Quality is inversely proportional to the number of testers GM kept around its cars for 1 - 6 weeks for test and repair: Toyota drove them off the end of the assembly line onto the car carriers.
  • 38. Conclusion Be humble about what tests can accomplish It’s not about testing, but value Design tests to assess properties of business value Go beyond unit testing to defensive programming and design-by-contract As agile testers, focus on process first and product second