SlideShare a Scribd company logo
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
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
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 Creative Commons Attribution Share-alike Release Manual Test Auto Test Manual Test Cumulative 1 10 10 10 2 10 0 20 3 10 0 30 4 10 0 40 5 10 0 50
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
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
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
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!! Creative Commons Attribution Share-alike Release Manual  Testing by Dev Manual  Testing by Team Leads Manual  Testing by Mgmt Total Manual Testing Auto Test Dev Manual Test Cumulative Total Manual Test 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
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
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
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
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
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
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
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
Summary Manual Tests take more Effort and Cost more than Automated Test to write and run Manual Testing is boring Automated Tests are reusable Manual Tests provide limited Visibility and have to be Repeated by all Stakeholders Automated Tests can have varying scopes and can test single units of code by Mocking the dependencies Automated tests may require less complex setup and teardown Creative Commons Attribution Share-alike
Summary Automated Testing ensures you dont miss out on running a test Automated Testing can actually enforce and drive clean design decisions Automated Tests provide a Safety Net for refactoring Automated Tests have Training value Automated Tests do not create clutter in code/console/logs Creative Commons Attribution Share-alike
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
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
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
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
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
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
Visit our Websites http://careers.directi.com  |  http://www.directi.com

More Related Content

PPTX
Learning's from mobile testing
PPTX
Manual Vs Automation Testing
PPT
Automated Testing vs Manual Testing
PDF
Agile Testing Pasadena JUG Aug2009
PPT
Introduction to Gauge
PDF
Engaging IV&V Testing Services for Agile Projects
PPTX
Unit Testing in Action - C#, NUnit, and Moq
PPTX
Software testing
Learning's from mobile testing
Manual Vs Automation Testing
Automated Testing vs Manual Testing
Agile Testing Pasadena JUG Aug2009
Introduction to Gauge
Engaging IV&V Testing Services for Agile Projects
Unit Testing in Action - C#, NUnit, and Moq
Software testing

What's hot (19)

PPTX
Unit tests benefits
PPTX
Test Driven Development
PPS
Why Unit Testingl
PPT
SW Testing Fundamentals
PDF
Test Driven Development (TDD)
PDF
Win at life with unit testing
PPTX
Test-Driven Development
PDF
TDD and BDD and ATDD
DOCX
Some Commonly Asked Question For Software Testing
PPTX
Test automation
PPTX
Practical unit testing in c & c++
PPTX
Automation Testing with Test Complete
PPTX
Unit testing & TDD concepts with best practice guidelines.
PDF
Test Automation and Keyword-driven testing af Brian Nielsen, CISS/AAU
PPS
Unit Testing
PDF
Getting started with Test Driven Development
PPTX
Introduction to Automation Testing
PDF
iOS Test-Driven Development
PPTX
Test Driven Development (TDD) Preso 360|Flex 2010
Unit tests benefits
Test Driven Development
Why Unit Testingl
SW Testing Fundamentals
Test Driven Development (TDD)
Win at life with unit testing
Test-Driven Development
TDD and BDD and ATDD
Some Commonly Asked Question For Software Testing
Test automation
Practical unit testing in c & c++
Automation Testing with Test Complete
Unit testing & TDD concepts with best practice guidelines.
Test Automation and Keyword-driven testing af Brian Nielsen, CISS/AAU
Unit Testing
Getting started with Test Driven Development
Introduction to Automation Testing
iOS Test-Driven Development
Test Driven Development (TDD) Preso 360|Flex 2010
Ad

Viewers also liked (9)

PDF
161 Son
PDF
362 Son
PPT
Myth Slideshow
PDF
143 Son
PDF
Hanzala Naci El Ali
PDF
Klasoer 32
PDF
Klasoer 22
PDF
197 Son
PDF
16
161 Son
362 Son
Myth Slideshow
143 Son
Hanzala Naci El Ali
Klasoer 32
Klasoer 22
197 Son
16
Ad

Similar to Automated+Testing+Vs+Manual+Testing (20)

PPT
Automated Testing vs Manual Testing.ppt
PPT
Automated Testing v s Manual Testing.ppt
PPT
Automated testing vs manual testing
PDF
Automated testing-whitepaper
PDF
A Comparative Guide to Automation and Manual Testing.pdf
PPTX
Introduction to Software Testing Techniques
PPTX
Testing 101
PPTX
Unit Testing and TDD 2017
PPT
Automated testing overview
PPTX
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
PDF
Types of Automation Testing_ A Comprehensive Guide.pdf
PDF
Introduction to Automated Testing
PDF
Introduction to-automated-testing
PDF
Manual vs Automation Testing_ Pros, Cons, and When to Choose Automation.pdf
PDF
Types of Automation Testing: A Comprehensive Guide
PPT
Paper PsUpload
PPT
justin presentation upload PPT june 19
PPT
justin presentation Slideshare PPT upload June 25 Final one
PPT
Justin Presentation PPT Upload June 25 adv
PPT
justin for ppt1 by browse button
Automated Testing vs Manual Testing.ppt
Automated Testing v s Manual Testing.ppt
Automated testing vs manual testing
Automated testing-whitepaper
A Comparative Guide to Automation and Manual Testing.pdf
Introduction to Software Testing Techniques
Testing 101
Unit Testing and TDD 2017
Automated testing overview
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
Types of Automation Testing_ A Comprehensive Guide.pdf
Introduction to Automated Testing
Introduction to-automated-testing
Manual vs Automation Testing_ Pros, Cons, and When to Choose Automation.pdf
Types of Automation Testing: A Comprehensive Guide
Paper PsUpload
justin presentation upload PPT june 19
justin presentation Slideshare PPT upload June 25 Final one
Justin Presentation PPT Upload June 25 adv
justin for ppt1 by browse button

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
cuic standard and advanced reporting.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PDF
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
sap open course for s4hana steps from ECC to s4
Diabetes mellitus diagnosis method based random forest with bat algorithm
Review of recent advances in non-invasive hemoglobin estimation
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
cuic standard and advanced reporting.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Chapter 3 Spatial Domain Image Processing.pdf
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
Encapsulation theory and applications.pdf

Automated+Testing+Vs+Manual+Testing

  • 1. 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
  • 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
  • 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 Creative Commons Attribution Share-alike Release Manual Test Auto Test Manual Test Cumulative 1 10 10 10 2 10 0 20 3 10 0 30 4 10 0 40 5 10 0 50
  • 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
  • 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
  • 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
  • 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!! Creative Commons Attribution Share-alike Release Manual Testing by Dev Manual Testing by Team Leads Manual Testing by Mgmt Total Manual Testing Auto Test Dev Manual Test Cumulative Total Manual Test 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 16. Summary Manual Tests take more Effort and Cost more than Automated Test to write and run Manual Testing is boring Automated Tests are reusable Manual Tests provide limited Visibility and have to be Repeated by all Stakeholders Automated Tests can have varying scopes and can test single units of code by Mocking the dependencies Automated tests may require less complex setup and teardown Creative Commons Attribution Share-alike
  • 17. Summary Automated Testing ensures you dont miss out on running a test Automated Testing can actually enforce and drive clean design decisions Automated Tests provide a Safety Net for refactoring Automated Tests have Training value Automated Tests do not create clutter in code/console/logs Creative Commons Attribution Share-alike
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 24. Visit our Websites http://careers.directi.com | http://www.directi.com