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 :
- 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.
- 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.