Software Testing :

  • Software Testing is the process of finding bugs in the software and verifying its functionality against the client’s requirements.
  • It ensures that the software functions as expected and meets the specified requirements before deployment.
  • Execution of a program with the indent of finding bugs is called software testing.
  • Testing can be manual or automated, and it plays a crucial role in maintaining software quality.
  • Software testing is done to improve the quality of the software

Why is Software Testing Important?

Ensures Quality: Testing helps detect bugs early, preventing faulty software from reaching users.

Reduces Cost: Fixing issues during development is cheaper than post-release fixes.

Improves User Satisfaction: A well-tested product provides a smooth user experience.

Ensures Compliance: Helps meet regulatory or security standards.

Example: Imagine using a banking app that fails during a money transfer. Testing prevents such issues by checking for errors beforehand.

Types of Testing :

  1. Manual Testing : Performed by a tester manually without using any automation tools.

Example: Checking if the login button on a website works properly by manually entering different credentials.

  1. Automation Testing : Uses tools to run tests automatically and repeatedly.

Example: Using Selenium to check if an e-commerce site correctly displays product prices every time the page loads.

Profiles of Testing:

White Box Testing: Done by developers. It involves checking the internal code and logic.

Example: Verifying that a loop runs exactly 5 times in a piece of code.

Black Box Testing: Done by testers without knowing the code. Focuses on input and output.

Example: Entering a valid username and password and checking if the user logs in successfully.

Grey Box Testing: Combination of both white and black box testing.

Levels of Testing :

Unit Testing: Tests individual components.
Example: Testing a calculator’s Add function alone.

Integration Testing: Ensures different modules work together.
Example: Ensuring the login and dashboard work smoothly together.

System Testing: Tests the complete system as a whole.
Example: Running tests on the full website to ensure everything functions.

User Acceptance Testing (UAT): Ensures the software meets user expectations.
Example: A client tries the software and approves it for use.

Performance Testing: Testing the stability and response time of an application.
Example: You're testing an online shopping website during a festive sale.
*Does the site load within 2 seconds?
*Does it crash or slow down when multiple people place orders?
*Is the payment gateway responsive under load?
This helps ensure the website performs well even during traffic spikes.

Smoke Testing: Testing the basic functionality of an application.
Example: Checking log in functionality using valid credentials.

Functional vs Non-Functional Testing

Functional Testing: Checks what the system does.

Example: Verifying if the search bar returns correct results.

Non-Functional Testing: Checks how the system performs.

Example: Measuring how fast a website loads during peak hours.

Bug and Defect

Defect: A deviation from expected requirements.

Bug: Informal term for defect found during testing.

Software Testing Life Cycle (STLC):

1.Requirement Analysis

2.Test Planning

3.Test Case Development

4.Test Environment Setup

5.Test Execution

6.Test Closure

Bug Life Cycle :

New - Open - In Progress - Fixed - Retest - Closed/Reopened

Testing Tools :

Automation: Selenium

Defect Tracking: JIRA

Conclusion :

Software Testing is not just about finding bugs. It ensures the final product is reliable, performs well, and provides a good user experience. Whether done manually or through automation, testing plays a key role in building trust with users and stakeholders.