SlideShare a Scribd company logo
Intelligent People. Uncommon Ideas.




Automated Testing vs Manual Testing

                               By Bhavin Turakhia
                                  CEO, Directi
  (shared under Creative Commons Attribution Share-alike License incorporated herein by reference)
                          (http://creativecommons.org/licenses/by-sa/3.0/)
Manual Tests

 • Coding Process with Manual Tests
     Write code
     Uploading the code to some place
     Build it
     Running the code manually (in many cases filling up forms etc
      step by step)
     Check Log files, Database, External Services, Values of variable
      names, Output on the screen etc
     If it does not work, repeat the above process




             Creative Commons Attribution Share-alike                    2
Automated Tests

 • Coding Process with Automated Unit Tests
       Write one or more test cases
       Auto-compile and run to see the tests fail
       Write code to pass the tests
       Auto-compile and run
       If tests fail -> make appropriate modifications
       If tests pass -> repeat for next method
 • Coding Process with Automated Functional Tests
       Finish writing code (with all unit tests passing)
       Write a Functional Test using any tool
       Auto-compile and run
       If tests fail -> make appropriate modifications
       If tests pass -> move ahead


               Creative Commons Attribution Share-alike     3
Automated Tests vs Manual Tests

 • Effort and Cost
        Lets assume 6 test cases
        Effort required to run all 6 manually => 10 min
        Effort required to write unit tests for all 6 cases => 10 min
        Effort required to run unit tests for all 6 cases => < 1 min
        Number of testing iterations => 5
        Total manual testing time => 50 min
        Total unit testing time => 10 min
                                            Manual Test
        Release   Manual Test   Auto Test   Cumulative

          1           10           10           10

          2           10           0            20

          3           10           0            30

          4           10           0            40

          5           10           0            50



                   Creative Commons Attribution Share-alike              4
Automated Tests vs Manual Tests

 • Effort and Cost
     Adding incremental Unit test cases is cheaper than adding
      incremental Manual Test Cases
        • Eg registerDomain
              Case 1: Register a .com domain with all correct fields
              Case 2: Register a .com domain with an invalid nameserver




               Creative Commons Attribution Share-alike                    5
Automated Tests vs Manual Tests

 • Manual Testing is boring
       Noone wants to keep filling the same forms
       There is nothing new to learn when one tests manually
       People tend to neglect running manual tests
       Noone maintains a list of the tests required to be run if they are
        manual tests
 • Automated Tests on the other hand are code
       They are fun and challenging to write
       One has to carefully think of design for reusability and coverage
       They require analytical and reasoning skills
       They represent contribution that is usable in the future




               Creative Commons Attribution Share-alike                      6
Automated Tests vs Manual Tests

 • Manual Testing is not reusable
     The effort required is the same each time
     One cannot reuse a Manual Test
 • Automated Tests are completely reusable
     IMPORTANT: One needs to setup a Continuous Integration
      Server, a common Code Repository and a organization structure
     Once written the Automated Tests form a part of the codebase
     They can be reused without any additional effort for the lifetime of
      the Project




             Creative Commons Attribution Share-alike                        7
Automated Tests vs Manual Tests

  • Manual Tests provide limited Visibility and have to be
          Repeated by all Stakeholders
           Only the developer testing the code can see the results
           Tests have to be repeated by each stakeholder
             • For eg Developer, Tech Lead, GM, Management
  • Automated Tests provide global visibility
           Developers, Tech Leads and Management can login and see Test
            Results
           No additional effort required by any of them to see the software
            works!!
           Manual        Manual       Manual                             Dev Manual Total Manual
          Testing by    Testing by   Testing by   Total Manual              Test        Test
Release      Dev       Team Leads      Mgmt          Testing   Auto Test Cumulative Cumulative
   1          10            5             3             18        10         10           18
   2          10            5             3             18        0          20           36
   3          10            5             3             18        0          30           54
   4          10            5             3             18        0          40           72
   5          10            5             3             18        0          50           90


                             Creative Commons Attribution Share-alike                              8
Automated Tests vs Manual Tests

 • Manual Testing ends up being an Integration Test
     In a typical manual test it is very difficult to test a single unit
     In most circumstances you end up checking the unit alongwith
      backend services
     Introduces fragility – if something else breaks the manual test
      breaks
 • Automated Tests can have varying scopes
     One can test a unit (class / method), a module, a system etc




              Creative Commons Attribution Share-alike                      9
Automated Tests vs Manual Tests

 • Manual Testing requires complex Manual Setup and Tear
   Down
     Can involve frequently running db queries
     Can involve making changes to backend servers
     Steps become more complex with multiple dependent test cases
 • Automated Tests can have varying scopes and require
   less complex setup and teardown
     Unit Tests have external dependencies mocked – so no setup /
      teardown required
     Setup and Tear down are automated in Functional Tests using
      framework support




             Creative Commons Attribution Share-alike                10
Automated Tests vs Manual Tests

 • Manual Testing has a high risk of missing out on
   something
     Each time a developer runs manual tests it is likely he will miss out
      on an important test case
     New developers may have no clue about the battery of tests to be
      run
 • Automated Tests have zero risk of missing out a pre-
   decided test
     Once a Test becomes a part of Continuous Integration – it will run
      without someone having to remember to run it




             Creative Commons Attribution Share-alike                         11
Automated Tests vs Manual Tests

 • Manual Tests do not drive design
     Manual tests are run post-facto and hence only drive bug-patching
 • Automated Tests and TDD / Test-First development drive
   design
     Writing a Unit test first clarifies the requirement and influences
      design
     Writing Unit Tests with Mock Objects etc forces clean design and
      segregation through abstraction / interfaces / polymorphism etc




             Creative Commons Attribution Share-alike                      12
Automated Tests vs Manual Tests

 • Manual Tests do not provide a safety-net
     Manual tests are run post-facto and hence only drive bug-patching
 • Automated Tests provide a safety-net for refactoring /
   additions
     Even New developers who have never touched the code can be
      confident about making changes




             Creative Commons Attribution Share-alike                     13
Automated Tests vs Manual Tests

 • Manual Tests have no training value
 • Automated Tests act as documentation
     Reading a set of Unit Tests clarifies the purpose of a codebase
     They provide a clear contract and define the requirement
     They provide visibility into different use cases and expected results
     A new developer can understand a piece of code much more by
      looking at Unit Tests than by looking at the code
     Unit Tests define the expected behavior of the code




             Creative Commons Attribution Share-alike                         14
Automated Tests vs Manual Tests

 • Manual Tests create crazy code clutter
     Most manual testing involves –
       • System.outs to check values of variable names
       • Useless log file entries in app server, db server etc
       • Cause code / log / console clutter
                if then(s), flag based logging, event based log entries etc
        • Slows down the application
 • Automated Tests reduce code clutter to zero
     Log file entries / System.outs are replaced by assertions in test
      code
     Even if specific console / log entries are needed they can reside in
      the test and not in the code
     Keep a live application / logs / console clutter-free and fast



                 Creative Commons Attribution Share-alike                      15
Summary

 1. Manual Tests take more Effort and Cost more than
      Automated Test to write and run
 2.   Manual Testing is boring
 3.   Automated Tests are reusable
 4.   Manual Tests provide limited Visibility and have to be
      Repeated by all Stakeholders
 5.   Automated Tests can have varying scopes and can test
      single units of code by Mocking the dependencies
 6.   Automated tests may require less complex setup and
      teardown




             Creative Commons Attribution Share-alike          16
Summary

 7. Automated Testing ensures you dont miss out on running
    a test
 8. Automated Testing can actually enforce and drive clean
    design decisions
 9. Automated Tests provide a Safety Net for refactoring
 10.Automated Tests have Training value
 11.Automated Tests do not create clutter in
    code/console/logs




           Creative Commons Attribution Share-alike          17
Why do people not write Automated
Tests
 • Initial learning curve
      Understanding Unit Testing Frameworks and Functional Testing
       Frameworks
      Understanding Continuous Integration and effective usage of it
      Understanding and learning Code Coverage Tools
      Figuring out how to organize the tests
      How to create Mock Objects?
      How to automate the running of the tests each time?
      Where to commit the tests?
 • Am I really going to be working on this same module
     again?
 •   Will my tests be re-used? If not what is the point?


              Creative Commons Attribution Share-alike                  18
Why do people not write Automated
Tests
 • Solution
     Spend time during First Release to freeze / design / implement -
       • A Code Repository structure that incorporates Unit Tests and
          Functional Tests
       •  A CI Server integrated with the release
       •  Unit Testing Framework (any xUnit framework)
       •  Functional Testing Tools (Sahi / Watir / Selenium / QTP etc)
       •  Code Coverage Tools (Clover)
       •  Testing guidelines and principles
     Designate Responsibility
       • Each developer MUST write Unit tests for multiple use cases per unit
       • Designate a specific Developer to write Functional Tests
       • The developer who writes the tests is also responsible for organizing
          them, committing them and linking them in CI



              Creative Commons Attribution Share-alike                           19
Why do people not write Automated
Tests
 • Don’t give up
     If you come across a hurdle, pair
     Make sure you complete your testing responsibility
 • Check Code Coverage
     Use code coverage tools while coding and post-coding to check
      parts of your code that are covered by tests




             Creative Commons Attribution Share-alike                 20
What to Test

 • Unit Tests
     Ideally do not cross class boundaries
     Definitely do not cross process-boundaries
     Write a unit test with multiple cases
 • Functional Tests
     UI Tests using specific tools (Watir / Selenium / QTP / White etc)
     Tests one layer below the UI (Using APIs)




             Creative Commons Attribution Share-alike                      21
Best Practices

 • You must use a unit testing frameworks (there’s one for
     every platform)
 •   You must have an auto-build process, a CI server, auto-
     testing upon commits etc
 •   Unit Tests are locally during the day, and upon commit by
     CI Server
 •   Over a period of time you may want to have your CI
     Server run tests selectively
 •   Tests must be committed alongwith code




             Creative Commons Attribution Share-alike            22
Best Practices

 • Organize the tests properly
 • If you do not commit Tests they are not reusable and the
   reduced effort advantage is lost




            Creative Commons Attribution Share-alike          23
Intelligent People. Uncommon Ideas.




    Visit our Websites
http://careers.directi.com | http://www.directi.com
Ad

Recommended

Learning's from mobile testing
Learning's from mobile testing
Vikrant Chauhan
 
Manual Vs Automation Testing
Manual Vs Automation Testing
Livares Technologies Pvt Ltd
 
Quiz3 tonghop
Quiz3 tonghop
Daewoo Han
 
Automated Testing vs Manual Testing
Automated Testing vs Manual Testing
didev
 
Automated Testing
Automated Testing
John Paulett
 
Manual Testing.
Manual Testing.
Dhanasekaran Nagarajan
 
Testing Tools
Testing Tools
Ted Husted
 
Manual Testing Interview Questions | Edureka
Manual Testing Interview Questions | Edureka
Edureka!
 
Software testing tools (free and open source)
Software testing tools (free and open source)
Wael Mansour
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
Łukasz Morawski
 
Software Testing or Quality Assurance
Software Testing or Quality Assurance
Trimantra Software Solutions
 
Testing concept definition
Testing concept definition
Vivek V
 
Quality center interview questions and answers
Quality center interview questions and answers
Garuda Trainings
 
Practical Software Testing Tools
Practical Software Testing Tools
Dr Ganesh Iyer
 
Intro to Manual Testing
Intro to Manual Testing
Ayah Soufan
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
Kumari Warsha Goel
 
Basics in software testing
Basics in software testing
TOPS Technologies
 
Manual testing interview questions and answers
Manual testing interview questions and answers
karanmca
 
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Computer Trainings Online
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in selinium
Kevalkumar Shah
 
Interview questions
Interview questions
sivareddyeda
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
Pravinsinh
 
Software testing and quality assurance
Software testing and quality assurance
Benjamin Baumann
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile Projects
Ravi Kumar
 
Manual testing
Manual testing
ShahaniIntikab
 
Test Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Interview questions for manual testing technology.
Interview questions for manual testing technology.
Vinay Agnihotri
 
Testing Tool Evaluation Criteria
Testing Tool Evaluation Criteria
basma_iti_1984
 
Orientation Program on Automated Software testing Powered by Infaum Education...
Orientation Program on Automated Software testing Powered by Infaum Education...
Anju ML
 
The Debate: Manual vs Automated Testing
The Debate: Manual vs Automated Testing
DeRisk IT Inc.
 

More Related Content

What's hot (20)

Software testing tools (free and open source)
Software testing tools (free and open source)
Wael Mansour
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
Łukasz Morawski
 
Software Testing or Quality Assurance
Software Testing or Quality Assurance
Trimantra Software Solutions
 
Testing concept definition
Testing concept definition
Vivek V
 
Quality center interview questions and answers
Quality center interview questions and answers
Garuda Trainings
 
Practical Software Testing Tools
Practical Software Testing Tools
Dr Ganesh Iyer
 
Intro to Manual Testing
Intro to Manual Testing
Ayah Soufan
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
Kumari Warsha Goel
 
Basics in software testing
Basics in software testing
TOPS Technologies
 
Manual testing interview questions and answers
Manual testing interview questions and answers
karanmca
 
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Computer Trainings Online
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in selinium
Kevalkumar Shah
 
Interview questions
Interview questions
sivareddyeda
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
Pravinsinh
 
Software testing and quality assurance
Software testing and quality assurance
Benjamin Baumann
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile Projects
Ravi Kumar
 
Manual testing
Manual testing
ShahaniIntikab
 
Test Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Interview questions for manual testing technology.
Interview questions for manual testing technology.
Vinay Agnihotri
 
Testing Tool Evaluation Criteria
Testing Tool Evaluation Criteria
basma_iti_1984
 
Software testing tools (free and open source)
Software testing tools (free and open source)
Wael Mansour
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
Łukasz Morawski
 
Testing concept definition
Testing concept definition
Vivek V
 
Quality center interview questions and answers
Quality center interview questions and answers
Garuda Trainings
 
Practical Software Testing Tools
Practical Software Testing Tools
Dr Ganesh Iyer
 
Intro to Manual Testing
Intro to Manual Testing
Ayah Soufan
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
Kumari Warsha Goel
 
Manual testing interview questions and answers
Manual testing interview questions and answers
karanmca
 
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Computer Trainings Online
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in selinium
Kevalkumar Shah
 
Interview questions
Interview questions
sivareddyeda
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
Pravinsinh
 
Software testing and quality assurance
Software testing and quality assurance
Benjamin Baumann
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile Projects
Ravi Kumar
 
Test Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Interview questions for manual testing technology.
Interview questions for manual testing technology.
Vinay Agnihotri
 
Testing Tool Evaluation Criteria
Testing Tool Evaluation Criteria
basma_iti_1984
 

Viewers also liked (9)

Orientation Program on Automated Software testing Powered by Infaum Education...
Orientation Program on Automated Software testing Powered by Infaum Education...
Anju ML
 
The Debate: Manual vs Automated Testing
The Debate: Manual vs Automated Testing
DeRisk IT Inc.
 
Software Quality Assurance(Sqa) automated software testing
Software Quality Assurance(Sqa) automated software testing
REHMAT ULLAH
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 
Automated Testing vs Manual Testing
Automated Testing vs Manual Testing
Directi Group
 
Introduction to Test Automation
Introduction to Test Automation
Pekka Klärck
 
Automated Software Testing
Automated Software Testing
arild2
 
Automated vs manual testing
Automated vs manual testing
Kanoah
 
Software Engineering ppt
Software Engineering ppt
shruths2890
 
Orientation Program on Automated Software testing Powered by Infaum Education...
Orientation Program on Automated Software testing Powered by Infaum Education...
Anju ML
 
The Debate: Manual vs Automated Testing
The Debate: Manual vs Automated Testing
DeRisk IT Inc.
 
Software Quality Assurance(Sqa) automated software testing
Software Quality Assurance(Sqa) automated software testing
REHMAT ULLAH
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 
Automated Testing vs Manual Testing
Automated Testing vs Manual Testing
Directi Group
 
Introduction to Test Automation
Introduction to Test Automation
Pekka Klärck
 
Automated Software Testing
Automated Software Testing
arild2
 
Automated vs manual testing
Automated vs manual testing
Kanoah
 
Software Engineering ppt
Software Engineering ppt
shruths2890
 
Ad

Similar to Automated testing vs manual testing (20)

Automated+Testing+Vs+Manual+Testing
Automated+Testing+Vs+Manual+Testing
gueste1e4db
 
Automated Testing vs Manual Testing.ppt
Automated Testing vs Manual Testing.ppt
ZakriyaMalik2
 
Automated Testing v s Manual Testing.ppt
Automated Testing v s Manual Testing.ppt
ZakriyaMalik2
 
Automated testing-whitepaper
Automated testing-whitepaper
imdurgesh
 
A Comparative Guide to Automation and Manual Testing.pdf
A Comparative Guide to Automation and Manual Testing.pdf
kalichargn70th171
 
Introduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Automated vs.pdf
Automated vs.pdf
AmirKhan811717
 
Manual vs. Automated Testing.pdf
Manual vs. Automated Testing.pdf
AnanthReddy38
 
Manual vs Automation Testing_ Pros, Cons, and When to Choose Automation.pdf
Manual vs Automation Testing_ Pros, Cons, and When to Choose Automation.pdf
khushnuma khan
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Automated testing handbook from Linda Hayes
Automated testing handbook from Linda Hayes
Cristiano Caetano
 
Types of Software Testing: Ensuring Quality and Performance
Types of Software Testing: Ensuring Quality and Performance
zdtwenty4
 
Testing Slides 1 (Testing Intro+Static Testing).pdf
Testing Slides 1 (Testing Intro+Static Testing).pdf
MuhammadShoaibHussai2
 
programs testing programs
programs testing programs
ICANS GmbH
 
Thomson reuters qtp training presentation
Thomson reuters qtp training presentation
Sravan Vasireddy
 
A Complete Guide to Functional Testing.pdf
A Complete Guide to Functional Testing.pdf
flufftailshop
 
The Continuing Relevance of Manual Testing.pdf
The Continuing Relevance of Manual Testing.pdf
Mindfire LLC
 
Testing 101
Testing 101
Noam Barkai
 
Types of Automation Testing: A Comprehensive Guide
Types of Automation Testing: A Comprehensive Guide
Jace Reed
 
Automated+Testing+Vs+Manual+Testing
Automated+Testing+Vs+Manual+Testing
gueste1e4db
 
Automated Testing vs Manual Testing.ppt
Automated Testing vs Manual Testing.ppt
ZakriyaMalik2
 
Automated Testing v s Manual Testing.ppt
Automated Testing v s Manual Testing.ppt
ZakriyaMalik2
 
Automated testing-whitepaper
Automated testing-whitepaper
imdurgesh
 
A Comparative Guide to Automation and Manual Testing.pdf
A Comparative Guide to Automation and Manual Testing.pdf
kalichargn70th171
 
Introduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Manual vs. Automated Testing.pdf
Manual vs. Automated Testing.pdf
AnanthReddy38
 
Manual vs Automation Testing_ Pros, Cons, and When to Choose Automation.pdf
Manual vs Automation Testing_ Pros, Cons, and When to Choose Automation.pdf
khushnuma khan
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Automated testing handbook from Linda Hayes
Automated testing handbook from Linda Hayes
Cristiano Caetano
 
Types of Software Testing: Ensuring Quality and Performance
Types of Software Testing: Ensuring Quality and Performance
zdtwenty4
 
Testing Slides 1 (Testing Intro+Static Testing).pdf
Testing Slides 1 (Testing Intro+Static Testing).pdf
MuhammadShoaibHussai2
 
programs testing programs
programs testing programs
ICANS GmbH
 
Thomson reuters qtp training presentation
Thomson reuters qtp training presentation
Sravan Vasireddy
 
A Complete Guide to Functional Testing.pdf
A Complete Guide to Functional Testing.pdf
flufftailshop
 
The Continuing Relevance of Manual Testing.pdf
The Continuing Relevance of Manual Testing.pdf
Mindfire LLC
 
Types of Automation Testing: A Comprehensive Guide
Types of Automation Testing: A Comprehensive Guide
Jace Reed
 
Ad

Recently uploaded (20)

Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 

Automated testing vs manual testing

  • 1. Intelligent People. Uncommon Ideas. Automated Testing vs Manual Testing By Bhavin Turakhia CEO, Directi (shared under Creative Commons Attribution Share-alike License incorporated herein by reference) (http://creativecommons.org/licenses/by-sa/3.0/)
  • 2. Manual Tests • Coding Process with Manual Tests  Write code  Uploading the code to some place  Build it  Running the code manually (in many cases filling up forms etc step by step)  Check Log files, Database, External Services, Values of variable names, Output on the screen etc  If it does not work, repeat the above process Creative Commons Attribution Share-alike 2
  • 3. Automated Tests • Coding Process with Automated Unit Tests  Write one or more test cases  Auto-compile and run to see the tests fail  Write code to pass the tests  Auto-compile and run  If tests fail -> make appropriate modifications  If tests pass -> repeat for next method • Coding Process with Automated Functional Tests  Finish writing code (with all unit tests passing)  Write a Functional Test using any tool  Auto-compile and run  If tests fail -> make appropriate modifications  If tests pass -> move ahead Creative Commons Attribution Share-alike 3
  • 4. Automated Tests vs Manual Tests • Effort and Cost  Lets assume 6 test cases  Effort required to run all 6 manually => 10 min  Effort required to write unit tests for all 6 cases => 10 min  Effort required to run unit tests for all 6 cases => < 1 min  Number of testing iterations => 5  Total manual testing time => 50 min  Total unit testing time => 10 min Manual Test Release Manual Test Auto Test Cumulative 1 10 10 10 2 10 0 20 3 10 0 30 4 10 0 40 5 10 0 50 Creative Commons Attribution Share-alike 4
  • 5. Automated Tests vs Manual Tests • Effort and Cost  Adding incremental Unit test cases is cheaper than adding incremental Manual Test Cases • Eg registerDomain  Case 1: Register a .com domain with all correct fields  Case 2: Register a .com domain with an invalid nameserver Creative Commons Attribution Share-alike 5
  • 6. Automated Tests vs Manual Tests • Manual Testing is boring  Noone wants to keep filling the same forms  There is nothing new to learn when one tests manually  People tend to neglect running manual tests  Noone maintains a list of the tests required to be run if they are manual tests • Automated Tests on the other hand are code  They are fun and challenging to write  One has to carefully think of design for reusability and coverage  They require analytical and reasoning skills  They represent contribution that is usable in the future Creative Commons Attribution Share-alike 6
  • 7. Automated Tests vs Manual Tests • Manual Testing is not reusable  The effort required is the same each time  One cannot reuse a Manual Test • Automated Tests are completely reusable  IMPORTANT: One needs to setup a Continuous Integration Server, a common Code Repository and a organization structure  Once written the Automated Tests form a part of the codebase  They can be reused without any additional effort for the lifetime of the Project Creative Commons Attribution Share-alike 7
  • 8. Automated Tests vs Manual Tests • Manual Tests provide limited Visibility and have to be Repeated by all Stakeholders  Only the developer testing the code can see the results  Tests have to be repeated by each stakeholder • For eg Developer, Tech Lead, GM, Management • Automated Tests provide global visibility  Developers, Tech Leads and Management can login and see Test Results  No additional effort required by any of them to see the software works!! Manual Manual Manual Dev Manual Total Manual Testing by Testing by Testing by Total Manual Test Test Release Dev Team Leads Mgmt Testing Auto Test Cumulative Cumulative 1 10 5 3 18 10 10 18 2 10 5 3 18 0 20 36 3 10 5 3 18 0 30 54 4 10 5 3 18 0 40 72 5 10 5 3 18 0 50 90 Creative Commons Attribution Share-alike 8
  • 9. Automated Tests vs Manual Tests • Manual Testing ends up being an Integration Test  In a typical manual test it is very difficult to test a single unit  In most circumstances you end up checking the unit alongwith backend services  Introduces fragility – if something else breaks the manual test breaks • Automated Tests can have varying scopes  One can test a unit (class / method), a module, a system etc Creative Commons Attribution Share-alike 9
  • 10. Automated Tests vs Manual Tests • Manual Testing requires complex Manual Setup and Tear Down  Can involve frequently running db queries  Can involve making changes to backend servers  Steps become more complex with multiple dependent test cases • Automated Tests can have varying scopes and require less complex setup and teardown  Unit Tests have external dependencies mocked – so no setup / teardown required  Setup and Tear down are automated in Functional Tests using framework support Creative Commons Attribution Share-alike 10
  • 11. Automated Tests vs Manual Tests • Manual Testing has a high risk of missing out on something  Each time a developer runs manual tests it is likely he will miss out on an important test case  New developers may have no clue about the battery of tests to be run • Automated Tests have zero risk of missing out a pre- decided test  Once a Test becomes a part of Continuous Integration – it will run without someone having to remember to run it Creative Commons Attribution Share-alike 11
  • 12. Automated Tests vs Manual Tests • Manual Tests do not drive design  Manual tests are run post-facto and hence only drive bug-patching • Automated Tests and TDD / Test-First development drive design  Writing a Unit test first clarifies the requirement and influences design  Writing Unit Tests with Mock Objects etc forces clean design and segregation through abstraction / interfaces / polymorphism etc Creative Commons Attribution Share-alike 12
  • 13. Automated Tests vs Manual Tests • Manual Tests do not provide a safety-net  Manual tests are run post-facto and hence only drive bug-patching • Automated Tests provide a safety-net for refactoring / additions  Even New developers who have never touched the code can be confident about making changes Creative Commons Attribution Share-alike 13
  • 14. Automated Tests vs Manual Tests • Manual Tests have no training value • Automated Tests act as documentation  Reading a set of Unit Tests clarifies the purpose of a codebase  They provide a clear contract and define the requirement  They provide visibility into different use cases and expected results  A new developer can understand a piece of code much more by looking at Unit Tests than by looking at the code  Unit Tests define the expected behavior of the code Creative Commons Attribution Share-alike 14
  • 15. Automated Tests vs Manual Tests • Manual Tests create crazy code clutter  Most manual testing involves – • System.outs to check values of variable names • Useless log file entries in app server, db server etc • Cause code / log / console clutter  if then(s), flag based logging, event based log entries etc • Slows down the application • Automated Tests reduce code clutter to zero  Log file entries / System.outs are replaced by assertions in test code  Even if specific console / log entries are needed they can reside in the test and not in the code  Keep a live application / logs / console clutter-free and fast Creative Commons Attribution Share-alike 15
  • 16. Summary 1. Manual Tests take more Effort and Cost more than Automated Test to write and run 2. Manual Testing is boring 3. Automated Tests are reusable 4. Manual Tests provide limited Visibility and have to be Repeated by all Stakeholders 5. Automated Tests can have varying scopes and can test single units of code by Mocking the dependencies 6. Automated tests may require less complex setup and teardown Creative Commons Attribution Share-alike 16
  • 17. Summary 7. Automated Testing ensures you dont miss out on running a test 8. Automated Testing can actually enforce and drive clean design decisions 9. Automated Tests provide a Safety Net for refactoring 10.Automated Tests have Training value 11.Automated Tests do not create clutter in code/console/logs Creative Commons Attribution Share-alike 17
  • 18. Why do people not write Automated Tests • Initial learning curve  Understanding Unit Testing Frameworks and Functional Testing Frameworks  Understanding Continuous Integration and effective usage of it  Understanding and learning Code Coverage Tools  Figuring out how to organize the tests  How to create Mock Objects?  How to automate the running of the tests each time?  Where to commit the tests? • Am I really going to be working on this same module again? • Will my tests be re-used? If not what is the point? Creative Commons Attribution Share-alike 18
  • 19. Why do people not write Automated Tests • Solution  Spend time during First Release to freeze / design / implement - • A Code Repository structure that incorporates Unit Tests and Functional Tests • A CI Server integrated with the release • Unit Testing Framework (any xUnit framework) • Functional Testing Tools (Sahi / Watir / Selenium / QTP etc) • Code Coverage Tools (Clover) • Testing guidelines and principles  Designate Responsibility • Each developer MUST write Unit tests for multiple use cases per unit • Designate a specific Developer to write Functional Tests • The developer who writes the tests is also responsible for organizing them, committing them and linking them in CI Creative Commons Attribution Share-alike 19
  • 20. Why do people not write Automated Tests • Don’t give up  If you come across a hurdle, pair  Make sure you complete your testing responsibility • Check Code Coverage  Use code coverage tools while coding and post-coding to check parts of your code that are covered by tests Creative Commons Attribution Share-alike 20
  • 21. What to Test • Unit Tests  Ideally do not cross class boundaries  Definitely do not cross process-boundaries  Write a unit test with multiple cases • Functional Tests  UI Tests using specific tools (Watir / Selenium / QTP / White etc)  Tests one layer below the UI (Using APIs) Creative Commons Attribution Share-alike 21
  • 22. Best Practices • You must use a unit testing frameworks (there’s one for every platform) • You must have an auto-build process, a CI server, auto- testing upon commits etc • Unit Tests are locally during the day, and upon commit by CI Server • Over a period of time you may want to have your CI Server run tests selectively • Tests must be committed alongwith code Creative Commons Attribution Share-alike 22
  • 23. Best Practices • Organize the tests properly • If you do not commit Tests they are not reusable and the reduced effort advantage is lost Creative Commons Attribution Share-alike 23
  • 24. Intelligent People. Uncommon Ideas. Visit our Websites http://careers.directi.com | http://www.directi.com