DEV Community

Guru prasanna
Guru prasanna

Posted on

Software Testing - Manual Testing ,Levels,Types

Manual Testing

Manual Testing is the process of testing software manually (without using automation tools) to find bugs. A tester plays the role of an end-user and executes test cases to ensure the application works as expected.


1. What is Software Testing?

Software testing is the process of checking whether a software application meets the required specifications and is free of defects. It ensures that the application behaves correctly, is reliable, and performs well.

Why is Testing Needed?

  • To find bugs before users face them.
  • To ensure the software meets user requirements.
  • To improve software quality.
  • To avoid financial and reputation loss due to software failures.

2. What is Manual Testing?

Manual testing is testing software without using automation tools. Testers check the application by clicking buttons, entering data, and verifying outputs.

Advantages of Manual Testing:

✔ Better for new applications that change frequently.

✔ Finds user experience issues that automation may miss.

✔ Cost-effective for small projects.

Disadvantages of Manual Testing:

❌ Time-consuming for large applications.

❌ More chance of human errors.


3. Types of Manual Testing

a) Black Box Testing(For testers)

  • The tester doesn’t need to know the internal code.
  • Tests based on user actions.
  • Example: Checking if a login form works by entering a username and password.

b) White Box Testing(For developers or automation testers)

  • The tester knows the internal code and tests how different parts of the program work.
  • Example: Checking if a function correctly calculates the sum of two numbers.

c) Grey Box Testing(For testers with partial code knowledge)

  • A mix of Black Box and White Box testing.
  • The tester knows some internal working of the application but tests it as an end-user.

4. Different Levels of Manual Testing

a) Unit Testing

  • Testing individual parts of the application (like a single function or module).
  • Example: Checking if the “Add to Cart” button works properly.

b) Integration Testing

  • Testing how different modules work together.
  • Example: Checking if the cart updates correctly when an item is added.

c) System Testing

  • Testing the entire application to ensure it meets requirements.
  • Example: Checking if an e-commerce website works from login to checkout.

d) User Acceptance Testing (UAT)

  • Done by end users or clients before releasing the software.
  • Example: A customer testing a banking app before it goes live.

5. Test Case & Test Scenario

Test Case:

  • A detailed step-by-step document to test a specific function.
  • Example:
    • Test Case: Verify the login page
    • Steps: Enter username, enter password, click login
    • Expected Result: User should log in successfully

Test Scenario:

  • A high-level idea of what to test.
  • Example: “Test login functionality” (without detailed steps).

6. Defect Life Cycle (Bug Life Cycle)

When a tester finds a bug, it follows a lifecycle:

  1. New → Bug is reported.
  2. Assigned → Sent to a developer.
  3. In Progress → Developer starts fixing it.
  4. Fixed → Bug is resolved.
  5. Retest → Tester checks if it is fixed.
  6. Closed → If fixed, it is marked as closed.

7. Difference Between Manual & Automation Testing

Execution:

--> Manual Testing is performed by a human tester.
--> Automation Testing is done using scripts and tools like Selenium.

Speed:

--> Manual Testing is slower since it requires human effort.
--> Automation Testing is faster as scripts execute quickly.

Cost:

--> Manual Testing is cost-effective for small projects.
--> Automation Testing has a higher initial cost due to tool and script development.

Accuracy:

--> Manual Testing is prone to human errors.
--> Automation Testing is more accurate since it follows predefined scripts.

Best For:

--> Manual Testing is ideal for small projects, exploratory testing, and UI testing.
--> Automation Testing is best for large projects, repetitive tasks, and regression testing.


8. Common Manual Testing Tools

Although manual testing doesn’t use automation, testers may use tools for reporting and tracking defects.

JIRA – Tracks bugs and test cases.

TestRail – Manages test cases.

Bugzilla – Reports and tracks defects.


Software Development Life Cycle (SDLC)

SDLC is the process of developing software in a structured way, ensuring that it meets user requirements and is of high quality.
Phases of SDLC:

Requirement Gathering & Analysis:

  • Collect requirements from the client.
  • Example: A client wants an online banking system.

Planning:

  • Decide the budget, timeline, and resources needed for the project.

Design:

  • Create system architecture and UI/UX designs.
  • Example: Designing how the login page will look.

Development (Coding):

  • Developers write the code based on the design.

Testing:

  • Testers check for bugs and defects.
  • Example: Checking if the login works correctly.

Deployment:

  • The software is released for users.

Maintenance:

  • Fixing bugs and updating features after release.
  • Example: Fixing issues reported by users.

Software Testing Life Cycle (STLC)

STLC is a step-by-step process followed by testers to ensure the software is free of bugs and meets requirements.
Phases of STLC:

Requirement Analysis:

  • Testers understand what needs to be tested.

  • Example: Checking login, payments, and UI elements in a banking app.

Test Planning:

  • Create a test strategy and decide testing timelines.

Test Case Development:

  • Write test cases (step-by-step instructions for testing).

Test Environment Setup:

  • Prepare hardware, software, and test data for testing.

Test Execution:

  • Execute test cases and report bugs.

Test Closure:

  • Prepare a report summarizing the testing process and defects found.

Difference Between SDLC & STLC

  1. SDLC is about software development, whereas STLC is about software testing.
  2. SDLC includes coding, but STLC focuses only on testing.
  3. STLC starts after SDLC’s requirement phase and runs in parallel with development.

9. Common Interview Questions on Manual Testing

1. What is the difference between testing and debugging?

  • Testing is finding defects; debugging is fixing them.

2. What are the qualities of a good tester?

  • Attention to detail, patience, analytical thinking, communication skills.

3. What is a test plan?

  • A document outlining what to test, how to test, and who will test.

Top comments (0)