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 developmentHarry Potter
 
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 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 Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...AgileNetwork
 
ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...
ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...
ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...AgileNetwork
 
ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...
ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...
ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...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
 

Plus de AgileNetwork (20)

ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
 
ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...
ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...
ANIn Chennai April 2024 |Beyond Big Bang: Technical Agility in Vintage Produc...
 
ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...
ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...
ANIn Gurugram April 2024 |Agile Adaptation: Driving Progress in Generative AI...
 
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...
 

Dernier

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 

Dernier (20)

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 

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