What is Manual Testing?

Testing an application without any tool is called Manual Testing.

The test cases or scenarios are executed manually by testers one by one, without any tools, and the results are then verified.

Advantages of Manual Testing

  • It is less expensive, as you don’t need to spend your budget on automation tools and processes.
  • While testing a small change, automation requires coding, which can be time-consuming — whereas doing it manually can be easy.
  • Manual testing is slow, but its strength is that it better handles complex scenarios.

Disadvantages of Manual Testing

  • It is less reliable because it is conducted by humans; therefore, mistakes and errors are likely.
  • The manual testing process can’t be recorded, so test cases cannot be reused.
  • Certain tasks are difficult to perform manually, which may require additional time in the software testing phase.
  • When there are many test cases, running tests manually is very time-consuming.
  • Load testing and performance testing are impractical in manual testing.

What is Automation Testing?

Testing the application using tools such as Selenium/QTP is called Automation Testing.

Advertisement

In automated software testing, testers write code/test scripts that run automatically to compare actual results with the expected results.

For that, testers use appropriate automation tools to develop the test scripts and validate the software.

The advantage is that test execution can be completed more quickly.

Advantages of Automation Testing

  • Automated tests help you find more bugs than manual testers do.
  • Most of the process is automated, enabling a speedy, efficient workflow.
  • The automation process can be recorded, allowing the reuse and execution of the same test cases.
  • It can easily increase productivity by providing fast, accurate test results.
  • Automated testing supports various applications.
  • Through automated testing, coverage can be increased because automated testing tools never forget to check even the smallest unit.

Disadvantages of Automation Testing

  • Automated testing requires coding skills and maintenance — but on the plus side, it is much faster and covers more scenarios.
  • It is expensive, as it requires tools.
  • It cannot handle complex scenarios.
  • As we use tools, there are some limitations: we cannot automate CAPTCHA and cannot read barcodes.
  • It is difficult to test UI aspects such as colors, fonts, sizes, contrast, and button sizes through automated testing.

Manual Testing vs Automation Testing: Which is Best?

There is a key difference between manual testing and automation testing. In manual testing, we execute tests step by step without scripts.

In automation testing, tests are executed automatically via test automation frameworks, along with other tools and software.

That means automation testing is faster than manual testing.


When to Use Manual Testing

  • When we have to do exploratory testing.
  • When complex test scenarios cannot be automated.
  • When we have to do testing only once.
  • Manual testing is suitable for exploratory, usability, and ad-hoc testing.
  • It should also be used where the AUT (Application Under Test) changes frequently.

When to Use Automation Testing

  • When test cases are executed repeatedly.
  • Test cases that are time-consuming.
  • For all regression test cases.
  • Test cases that must run across multiple builds.
  • Automation testing is suited for regression testing, performance testing, load testing, or highly repeatable functional testing.

Preconditions to Automate Test Cases

A test case should be automated if the following criteria apply:

  • The task will be repeated.
  • It is going to save time.
  • The requirements, tests, or tasks are low-risk, stable, and unlikely to change frequently.
  • The test is subject to human error.
  • The test is time-consuming.
  • The test has significant downtime between steps.
  • The test is repetitive.

Test Cases Not Suitable for Automation

  • Test cases that are newly designed.
  • Test cases that have not been executed manually at least once.
  • Test cases for which the requirements are frequently changing.
  • Test cases that are executed on an ad-hoc basis.

How to Perform Manual Testing

  • Read and understand the software specification documentation/guides. Also, study the Application Under Test (AUT) if available.
  • Draft test cases that cover all the requirements mentioned in the documentation.
  • Review the test cases with the team lead and client (if applicable).
  • Execute the test cases.
  • Report the bugs.
  • Once bugs are fixed, rerun the failing test cases to verify that they pass.

Steps to Test an Application Manually

Step 1

First, gather the requirements using the requirement analysis step. Once we gather and understand the requirements, we know the expected behavior, what we need to test, and when to say we have found a defect.

Step 2

Once we understand the requirements, we identify and draft the test cases that cover all the requirements in the project documentation. The test cases help us follow a sequence to test functionality and various test scenarios, ensuring we cover the entire application and verify expected results.

Step 3

Once the test cases are ready, the tester reviews them with the team leader and senior members. By examining the test cases, we identify any glitches or errors and correct them before execution.

Step 4

After reviewing, we set up the test environment and execute the test cases one by one.

Each test case will have one of the following states:

  • Passed: The scenario works as expected.
  • Failed: The scenario is not as expected.
  • Skipped: The test cannot be completed, possibly due to some limitation or unforeseen circumstance.

Step 5

As the test cases execute, we report the identified bugs and defects to the concerned developer and submit a bug report.

Step 6

Finally, we create a detailed test report that includes:

  • Number of defects/bugs found
  • Number of test cases that need to be rerun
  • Number of test cases that failed
  • Number of test cases that were skipped

Once the bugs and defects are fixed, we run the test cases that verify the fixes.

Types of Automation Testing

The types of automation testing include:


Unit Testing

Unit testing is a type of software testing in which individual units or components of a software system are tested.

Testing the application unit-wise or module-wise is called Unit Testing.

  • Unit testing is white-box testing, usually performed by developers.
  • Unit testing is the first level of testing, done before integration testing.

Unit Testing Techniques

  • Basis Path Testing
  • Control Structure Testing
  • Conditional Coverage
  • Loops Coverage
  • Mutation Testing

Why Do We Perform Unit Testing?

To fix bugs early in the development cycle and save costs. It helps developers understand the testing code and make changes quickly.


How to Execute Unit Testing

A developer writes code in the application just to test the function.

A coder usually uses a unit test framework to develop automated test cases that include coding criteria to verify code correctness.

The workflow is:

  1. Create test cases.
  2. Review/Rework.
  3. Baseline.
  4. Execute test cases.

Unit Testing Tools

JUnit

JUnit is a free testing tool used for the Java programming language.

It provides assertions to identify test methods. It tests the data first and then inserts it into the code.

NUnit

NUnit is a widely used unit testing framework for all .NET languages.

It is open source, supports manual script writing, and runs data-driven tests in parallel.


FAQs

1. What is the difference between manual and automation testing?

In manual testing, test execution is done step by step by a tester without scripts.

In automation testing, tests run automatically via frameworks and tools, which makes automation faster than manual testing.


2. What are the advantages of manual testing?

  • It is less expensive.
  • It is easy for testing small changes without coding.
  • It handles complex scenarios well.

3. What are the advantages of automation testing?

  • It finds more bugs.
  • It is speedy and efficient.
  • It is reusable through recording.
  • It increases productivity.
  • It supports many applications.
  • It improves coverage.

4. When should you use automation testing?

  • For repeatedly executed test cases.
  • For time-consuming test cases.
  • For regression test cases.
  • For test cases that must run across multiple builds.

5. Which test cases should be automated?

  • Tasks that are repeated.
  • Tasks that are time-consuming.
  • Tasks subject to human error.
  • Repetitive tasks.
  • Tasks whose requirements are low-risk, stable, and unlikely to change often.

6. Which test cases are not suitable for automation?

  • Test cases that are newly designed.
  • Test cases that have not been executed manually at least once.
  • Test cases with frequently changing requirements.
  • Test cases executed on an ad-hoc basis.

7. What are the states of a test case during execution?

  • Passed
  • Failed
  • Skipped

8. What are the main types of automation testing?