SlideShare une entreprise Scribd logo
1  sur  31
How Much Test Automation is
Enough and Why?
- By ShriKant Vashishtha
Importance of Test Automation
The Paradox of Test Automation
• You may be writing a lot of test
code. Sometimes it's twice or
thrice of the size of base code.
• You don't know how much
coverage is enough?
• Even after doing good amount of
test automation, many teams are
still not sure if they really trust
automation suite
Let’s Investigate
• Because of the siloed way of working (developers vs testers),
many teams go for functional test automation in which specialist
automation developers develop these tests
• In a team of developers and testers, testers (who may not have
coding skills) may not be able to validate the developers tests
and still do their own testing.
• Writing automated tests (twice or thrice of base code size)
takes time
• People move towards the concept of 100% code coverage as
they may not know how much is enough.
Translates into…
• Why writing tests takes so much time?
• Is there a way to know if we have enough coverage other than
so called 100% code coverage?
Lead Us to Questions…
Why writing tests takes so
much time?
A Siloed Development Team
• Need to test
class/method in
isolation without its
dependencies.
A ‘Mock’ Understanding of the
Unit Test
• Dependencies are
mocked
• Results into mock
code which may be
bigger than the actual
code under test
A ‘Mock’ Understanding of the
Unit Test
Problems with Such Tests
Difficult to Know Sometimes Why
a Test Broke
Refactoring is Tied to
Implementation
• We should be able to refactor our code, keep it basically fit and
clean.
• We wanted to change our code and our tests were obstacle to
that change.
The Promise
• Changing the implementation details without breaking tests.
Let’s go Back and Understand The
Promise of Refactoring
Let’s Go Back to The Source
Avoid Implementation details, test
behaviours
-- Kent Beck
The trigger in TDD to create a new
test is that you have a requirement you
want to implement.
The SUT (System Under Test) is not a Class
• Do not write tests for implementation details, they change.
• Write tests only against the stable contract of the module
interface
Test the behaviour not the class
“What behaviour will we need to produce the revised report?
Put another way, what set of tests, when passed, will
demonstrate the presence of code we are confident
will compute the report correctly?
• We need to be able to add amounts in two different currencies
and convert the result given a set of exchange rates.
• We need to be able to multiply an amount (price per share) by
a number (number of shares) and receive an amount.”
Excerpt From: Kent Beck. “Test-Driven Development By Example”.
Apple Books.
Unit of isolation is test and not
class under test.
“When we write a test, we imagine the perfect interface for our
operation. We are telling ourselves a story about how
the operation will look from the outside. Our story
won't always come true, but it's better to start from the
best-possible application program interface (API) and
work backward than to make things complicated, ugly, and
"realistic" from the get-go.”
Excerpt From: Kent Beck. “Test-Driven Development By Example”.
Apple Books.
• Strive to decouple your tests from your implementation details
• Tests should not depend on details because then changing
implementation details break tests.
• Tests should depend on contracts or public interfaces
• Test Behaviours and Not Implementations
Summary on Mocking
Weinberg’s Decomposition Law
• Design classes and APIs using good domain design techniques that
generalize to the future. Code up their interfaces to express the
design. Implement only those data structures and
methods necessary to support the known,
forthcoming use cases that will be delivered. If the
system use cases change, you can continue to evolve the individual
methods and private data without disturbing the overall
architecture.
• The payoff in investment is higher in system level testing than in unit
testing: put your effort there. System testing typically finds twice as
many bugs as unit testing, even though agile developers spend most
of their time doing testing at the unit level, including TDD.
Instead This is What We Could Do
• A smarter approach would reduce the test code mass through formal test design: that is, to do formal boundary-condition
checking, more white-box testing, and so forth.
• Move Assertions directly into the code
• Use them to feed your fault-tolerance architecture on high-availability systems. This solves the problem of
maintaining a lot of extra software modules that assess execution and check for correct behavior; that’s one half of a unit
test. The other half is the driver that executes the code: count on your stress tests, integration tests, and system tests to do
that.
Turn Unit Tests to Assertions
Questions?

Contenu connexe

Tendances

Test-Driven Development Reference Card
Test-Driven Development Reference CardTest-Driven Development Reference Card
Test-Driven Development Reference CardSeapine Software
 
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentHendrik Neumann
 
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 2015Kim Herzig
 
TDD- Test Driven Development
TDD- Test Driven DevelopmentTDD- Test Driven Development
TDD- Test Driven DevelopmentLiza Antoun
 
Episode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and InterfacesEpisode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and InterfacesJitendra Zaa
 
Sqa, test scenarios and test cases
Sqa, test scenarios and test casesSqa, test scenarios and test cases
Sqa, test scenarios and test casesConfiz
 
Unit Testing
Unit TestingUnit Testing
Unit TestingDotitude
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategiesHylke Stapersma
 
TDD and Unit Testing in Golang
TDD and Unit Testing in GolangTDD and Unit Testing in Golang
TDD and Unit Testing in GolangSofian Hadiwijaya
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat
 
Test case design_the_basicsv0.4
Test case design_the_basicsv0.4Test case design_the_basicsv0.4
Test case design_the_basicsv0.4guest31fced
 
Becoming a better programmer - unit testing
Becoming a better programmer - unit testingBecoming a better programmer - unit testing
Becoming a better programmer - unit testingDuy Tan Geek
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomationjeisner
 
Unit testing solid fundamentals
Unit testing solid fundamentalsUnit testing solid fundamentals
Unit testing solid fundamentalsMilan Vukoje
 
Mihai mahulea the zen of test driven development
Mihai mahulea   the zen of test driven developmentMihai mahulea   the zen of test driven development
Mihai mahulea the zen of test driven developmentCodecamp Romania
 
Test cases for effective testing - part 1
Test cases for effective testing - part 1Test cases for effective testing - part 1
Test cases for effective testing - part 1Mona M. Abd El-Rahman
 

Tendances (20)

Test-Driven Development Reference Card
Test-Driven Development Reference CardTest-Driven Development Reference Card
Test-Driven Development Reference Card
 
Code review at large scale
Code review at large scaleCode review at large scale
Code review at large scale
 
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
 
Tdd
TddTdd
Tdd
 
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
 
TDD- Test Driven Development
TDD- Test Driven DevelopmentTDD- Test Driven Development
TDD- Test Driven Development
 
Episode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and InterfacesEpisode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and Interfaces
 
Sqa, test scenarios and test cases
Sqa, test scenarios and test casesSqa, test scenarios and test cases
Sqa, test scenarios and test cases
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
 
TDD and Unit Testing in Golang
TDD and Unit Testing in GolangTDD and Unit Testing in Golang
TDD and Unit Testing in Golang
 
Test case writing
Test case writingTest case writing
Test case writing
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir Majer
 
Test case design_the_basicsv0.4
Test case design_the_basicsv0.4Test case design_the_basicsv0.4
Test case design_the_basicsv0.4
 
Becoming a better programmer - unit testing
Becoming a better programmer - unit testingBecoming a better programmer - unit testing
Becoming a better programmer - unit testing
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
Test cases
Test casesTest cases
Test cases
 
Unit testing solid fundamentals
Unit testing solid fundamentalsUnit testing solid fundamentals
Unit testing solid fundamentals
 
Mihai mahulea the zen of test driven development
Mihai mahulea   the zen of test driven developmentMihai mahulea   the zen of test driven development
Mihai mahulea the zen of test driven development
 
Test cases for effective testing - part 1
Test cases for effective testing - part 1Test cases for effective testing - part 1
Test cases for effective testing - part 1
 

Similaire à Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automation Effort? | Shrikant Vashishtha

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentnikhil sreeni
 
Testing, a pragmatic approach
Testing, a pragmatic approachTesting, a pragmatic approach
Testing, a pragmatic approachEnrico Da Ros
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Abhijeet Vaikar
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven DevelopmentMeilan Ou
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineeringkiansahafi
 
{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptxAmalEldhose2
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applicationsnadeembtech
 
Week 14 Unit Testing.pptx
Week 14  Unit Testing.pptxWeek 14  Unit Testing.pptx
Week 14 Unit Testing.pptxmianshafa
 
Unit Testing Full@
Unit Testing Full@Unit Testing Full@
Unit Testing Full@Alex Borsuk
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham.NET Conf UY
 
Test driven development
Test driven developmentTest driven development
Test driven developmentLuis Goldster
 
Test driven development
Test driven developmentTest driven development
Test driven developmentTony Nguyen
 
Test driven development
Test driven developmentTest driven development
Test driven developmentYoung Alista
 
Test driven development
Test driven developmentTest driven development
Test driven developmentJames Wong
 
Test driven development
Test driven developmentTest driven development
Test driven developmentFraboni Ec
 
Test driven development
Test driven developmentTest driven development
Test driven developmentHarry Potter
 
Test driven development
Test driven developmentTest driven development
Test driven developmentnamkha87
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Shelley Lambert
 

Similaire à Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automation Effort? | Shrikant Vashishtha (20)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Testing, a pragmatic approach
Testing, a pragmatic approachTesting, a pragmatic approach
Testing, a pragmatic approach
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineering
 
{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx
 
Lecture 21
Lecture 21Lecture 21
Lecture 21
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
 
Week 14 Unit Testing.pptx
Week 14  Unit Testing.pptxWeek 14  Unit Testing.pptx
Week 14 Unit Testing.pptx
 
Unit Testing Full@
Unit Testing Full@Unit Testing Full@
Unit Testing Full@
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
 
Agile testing
Agile testingAgile testing
Agile testing
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014
 

Plus de AgileNetwork

ANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by Kunal
ANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by KunalANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by Kunal
ANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by KunalAgileNetwork
 
ANIn Kolkata April 2024 |Ethics of AI by Abhishek Nandy
ANIn Kolkata April 2024 |Ethics of AI by Abhishek NandyANIn Kolkata April 2024 |Ethics of AI by Abhishek Nandy
ANIn Kolkata April 2024 |Ethics of AI by Abhishek NandyAgileNetwork
 
ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...
ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...
ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...AgileNetwork
 
ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...
ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...
ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...AgileNetwork
 
ANIn Pune April 2024 |L&D Accelerating business growth by Mukta Nalke
ANIn Pune April 2024 |L&D Accelerating business growth by Mukta NalkeANIn Pune April 2024 |L&D Accelerating business growth by Mukta Nalke
ANIn Pune April 2024 |L&D Accelerating business growth by Mukta NalkeAgileNetwork
 
ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...
ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...
ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...AgileNetwork
 
ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...
ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...
ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...AgileNetwork
 
ANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna S
ANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna SANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna S
ANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna SAgileNetwork
 
ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...
ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...
ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...AgileNetwork
 
ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...
ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...
ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...AgileNetwork
 
ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...
ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...
ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...AgileNetwork
 
ANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh Mehta
ANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh MehtaANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh Mehta
ANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh MehtaAgileNetwork
 
ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...
ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...
ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...AgileNetwork
 
ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...
ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...
ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...AgileNetwork
 
ANIn Coimbatore May 2023 | Agile and Beyond by Nithya Sitharam
ANIn Coimbatore May 2023 | Agile and Beyond by Nithya SitharamANIn Coimbatore May 2023 | Agile and Beyond by Nithya Sitharam
ANIn Coimbatore May 2023 | Agile and Beyond by Nithya SitharamAgileNetwork
 
ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...
ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...
ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...AgileNetwork
 
ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...
ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...
ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...AgileNetwork
 
ANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TS
ANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TSANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TS
ANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TSAgileNetwork
 
ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...
ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...
ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...AgileNetwork
 
ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...
ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...
ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...AgileNetwork
 

Plus de AgileNetwork (20)

ANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by Kunal
ANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by KunalANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by Kunal
ANIn Noida Oct 2023 |AI Usage in Agile Transformation Journey by Kunal
 
ANIn Kolkata April 2024 |Ethics of AI by Abhishek Nandy
ANIn Kolkata April 2024 |Ethics of AI by Abhishek NandyANIn Kolkata April 2024 |Ethics of AI by Abhishek Nandy
ANIn Kolkata April 2024 |Ethics of AI by Abhishek Nandy
 
ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...
ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...
ANIn Kolkata April 2024 | AI Enabled Reflection in Agile Delivery by Indranil...
 
ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...
ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...
ANIn Gurugram April 2024 |Can Agile and AI work together? by Pramodkumar Shri...
 
ANIn Pune April 2024 |L&D Accelerating business growth by Mukta Nalke
ANIn Pune April 2024 |L&D Accelerating business growth by Mukta NalkeANIn Pune April 2024 |L&D Accelerating business growth by Mukta Nalke
ANIn Pune April 2024 |L&D Accelerating business growth by Mukta Nalke
 
ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...
ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...
ANIn Pune April 2024 | Meeting Modern Learning Needs with Innovation by Ankit...
 
ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...
ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...
ANIn Ahmedabad April 2024 | Powering Big Wins with Small, Agile Teams by Yoge...
 
ANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna S
ANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna SANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna S
ANIn Coimbatore March 2024 | Unlocking Agility with Gen AI by Balaprasanna S
 
ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...
ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...
ANIn Coimbatore March 2024 | Agile & AI in Project Management by Dhilipkumar ...
 
ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...
ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...
ANIn Chennai March 2024 |Conversational AI for Agility in Healthcare by Shine...
 
ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...
ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...
ANIn Chennai March 2024 |Oxygenating AI ecosystem with Agility by Gowtham Bal...
 
ANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh Mehta
ANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh MehtaANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh Mehta
ANIn Ahmedabad March 2024 | The Power of Retrospection by Rakesh Mehta
 
ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...
ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...
ANIn Pune March 2024 | Customer Stratification for Business Growth by Manish ...
 
ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...
ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...
ANIn Coimbatore July 2023 | Business Agility in Data Science by Dr.Selvaraaju...
 
ANIn Coimbatore May 2023 | Agile and Beyond by Nithya Sitharam
ANIn Coimbatore May 2023 | Agile and Beyond by Nithya SitharamANIn Coimbatore May 2023 | Agile and Beyond by Nithya Sitharam
ANIn Coimbatore May 2023 | Agile and Beyond by Nithya Sitharam
 
ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...
ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...
ANIn Hyderabad Jun 2023 |Humanizing Agile Transformation Beyond Process and T...
 
ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...
ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...
ANIn Coimbatore Jul 2023 |The Importance of Business Agility in the Current L...
 
ANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TS
ANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TSANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TS
ANIn Chennai Jul 2023 |Technical Agility in Startups by Sudarshan TS
 
ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...
ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...
ANIn Ahmedabad Jul 2023 |Waterfall & Agile- The Mindset in building scalable ...
 
ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...
ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...
ANIn Ahmedabad March 2023 |Achieving Agility across the Enterprise by Kuldeep...
 

Dernier

Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 

Dernier (20)

Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 

Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automation Effort? | Shrikant Vashishtha

  • 1. How Much Test Automation is Enough and Why? - By ShriKant Vashishtha
  • 2. Importance of Test Automation
  • 3. The Paradox of Test Automation
  • 4. • You may be writing a lot of test code. Sometimes it's twice or thrice of the size of base code. • You don't know how much coverage is enough? • Even after doing good amount of test automation, many teams are still not sure if they really trust automation suite Let’s Investigate
  • 5. • Because of the siloed way of working (developers vs testers), many teams go for functional test automation in which specialist automation developers develop these tests • In a team of developers and testers, testers (who may not have coding skills) may not be able to validate the developers tests and still do their own testing. • Writing automated tests (twice or thrice of base code size) takes time • People move towards the concept of 100% code coverage as they may not know how much is enough. Translates into…
  • 6. • Why writing tests takes so much time? • Is there a way to know if we have enough coverage other than so called 100% code coverage? Lead Us to Questions…
  • 7. Why writing tests takes so much time?
  • 9. • Need to test class/method in isolation without its dependencies. A ‘Mock’ Understanding of the Unit Test
  • 10. • Dependencies are mocked • Results into mock code which may be bigger than the actual code under test A ‘Mock’ Understanding of the Unit Test
  • 12. Difficult to Know Sometimes Why a Test Broke
  • 13. Refactoring is Tied to Implementation
  • 14. • We should be able to refactor our code, keep it basically fit and clean. • We wanted to change our code and our tests were obstacle to that change. The Promise
  • 15. • Changing the implementation details without breaking tests. Let’s go Back and Understand The Promise of Refactoring
  • 16. Let’s Go Back to The Source
  • 17.
  • 18. Avoid Implementation details, test behaviours -- Kent Beck
  • 19. The trigger in TDD to create a new test is that you have a requirement you want to implement.
  • 20. The SUT (System Under Test) is not a Class
  • 21. • Do not write tests for implementation details, they change. • Write tests only against the stable contract of the module interface
  • 22.
  • 23. Test the behaviour not the class
  • 24. “What behaviour will we need to produce the revised report? Put another way, what set of tests, when passed, will demonstrate the presence of code we are confident will compute the report correctly? • We need to be able to add amounts in two different currencies and convert the result given a set of exchange rates. • We need to be able to multiply an amount (price per share) by a number (number of shares) and receive an amount.” Excerpt From: Kent Beck. “Test-Driven Development By Example”. Apple Books.
  • 25. Unit of isolation is test and not class under test.
  • 26. “When we write a test, we imagine the perfect interface for our operation. We are telling ourselves a story about how the operation will look from the outside. Our story won't always come true, but it's better to start from the best-possible application program interface (API) and work backward than to make things complicated, ugly, and "realistic" from the get-go.” Excerpt From: Kent Beck. “Test-Driven Development By Example”. Apple Books.
  • 27. • Strive to decouple your tests from your implementation details • Tests should not depend on details because then changing implementation details break tests. • Tests should depend on contracts or public interfaces • Test Behaviours and Not Implementations Summary on Mocking
  • 29. • Design classes and APIs using good domain design techniques that generalize to the future. Code up their interfaces to express the design. Implement only those data structures and methods necessary to support the known, forthcoming use cases that will be delivered. If the system use cases change, you can continue to evolve the individual methods and private data without disturbing the overall architecture. • The payoff in investment is higher in system level testing than in unit testing: put your effort there. System testing typically finds twice as many bugs as unit testing, even though agile developers spend most of their time doing testing at the unit level, including TDD. Instead This is What We Could Do
  • 30. • A smarter approach would reduce the test code mass through formal test design: that is, to do formal boundary-condition checking, more white-box testing, and so forth. • Move Assertions directly into the code • Use them to feed your fault-tolerance architecture on high-availability systems. This solves the problem of maintaining a lot of extra software modules that assess execution and check for correct behavior; that’s one half of a unit test. The other half is the driver that executes the code: count on your stress tests, integration tests, and system tests to do that. Turn Unit Tests to Assertions