OnPath Testing Blog

Humans vs robots: manual testing vs automation testing

Written by Brian Borg | Jul 16 2020

The biggest difference between manual and automation testing is who does the testing.

It’s not a case of either-or. Manual testing is always required, but automation testing is extremely useful to speed up processes in your bigger or longer term projects. If there are repetitive tests to run, why not automate them?

The difference between manual testing and automation testing

 

Manual testing

Manual testing is when software tests are executed manually by a human tester. It is performed to discover bugs in your software during the development stages.

With this method, testers check the essential features of your application or software. They execute the test cases and create reports by hand. It is a classical method of all testing types to manage the software testing process.

 

Pros and cons of manual testing

Pros

Cons

  • Easy to explore side paths while testing and cover a variety of use cases
  • Time-consuming for large or complex applications
  • Ability to execute complex or context-sensitive test cases
  • Inconsistent execution across multiple engineers, possibility of human error
  • Good for small projects and quick test results

 

 

Manual testing use cases

There are certain test case scenarios where manual testing is best:  

  • During development stages: Manual testing can detect roadblocks and visual errors more easily. It helps create better UX when an actual human is detecting these by eye.
  • Smaller projects: If there is a limited budget you may not want to invest in automation tools and development. Manual testing will suffice for smaller, less repetitive projects.
  • Usability testing: When assessing the user-friendliness of a product, human observation is the most important factor so a manual approach is preferable.
  • Exploratory testing: Software testing where test cases are not created in advance and testers check system on the fly will require our tester’s intelligence, skills and experience. A hands-on human approach is best here.
  • Ad-hoc testing: In this case, there is no definitive test journey. It is an unplanned method of testing where our testers will try and break the system. Like the above, the knowledge and insight of the tester is an important factor.

Automation testing

Automation testing is where QA specialists automate a sequence of actions. Our testers write the code (test scripts) and a tool, such as Selenium testing tool for browser or Appium for mobile, automates test execution and reporting.

Automation gives the tester a more efficient way to test everything. Instead of continuous manual testing, we develop a series of automation scripts which, once executed by the automation tool, collates a set of results that is reviewed and confirmed. Processes are performed automatically, but the automation requires manual effort to create the initial testing scripts.

 

Pros and cons of automation testing

Pros

Cons

  • More efficient execution
  • Greater up front work and expertise
  • Wider coverage of system/platform combinations
  • Automation limitations depending on application technology
  • Useable throughout dev cycle in CI/CD environment
  • Ongoing maintenance required
  • Reduced engineer testing fatigue
  • No ad hoc testing during execution

 

  • Changes to the software will require extensive script modifications

 

Automation testing use cases

Automation testing is a good option when the following tests are required:

  • Regression testing: It is not abnormal that a piece of functionality previously approved breaks or becomes buggy after the current development efforts.
    These features need to be re-tested again and again. Automation testing offers the ability to run the regressions and reporting efficiently, saving you both time and money.
  • Repeated execution: Testing which requires the repeated execution of a task is best automated. This will save you using up human resources and time in the future.
  • Performance testing: Testing that determines the system's performance like speed and reliability under varying load checks is a good use case for automation.
  • Load testing: Similarly, testing which requires you to find the breaking point at which the volume of users will crash an application is better suited to automation.
  • Data-driven testing: Where testing includes executing the same simple scenarios with multiple data sets automation is extremely useful.

 

Keeping in mind that manual testing of some sort will always be required, the question becomes how can you find the best approach to any scenario? And, achieve quality output within your budget and timeline?

We’re here to help! If you have any questions about QA testing solutions for your team get in contact with us.