priya dharshiniIntroduction: Software testing is a procedure of validating and confirming that a software product...
Introduction:
Software testing is a procedure of validating and confirming that a software product meets business needs and technical specifications. It ensures the application is defect-free and delivers high performance and usability.
Testing has two types
• Manual Testing
• Automation Testing
These are several methods to detect issues at different stages of testing. Below is a list of common manual testing techniques with explanations
Common Manual testing techniques
• Black Box Testing
• White Box Testing
• Gray Box Testing
White Box Testing
White box testing is a type of testing where the tester has complete knowledge of the system. The tester should understand the source code, architecture, and design of the application. In this method, everything is visible to the tester. They check how the internal logic works, how the code is written, and how different parts of the system are connected.
Example:
Think of a car. In white box testing, it is not just about driving the car. The tester also understands how the engine works, how the internal parts function, and how the exterior and interior are connected. They check everything inside the system, not just the output.
Black Box Testing
Black box testing is a type of testing technique where the tester does not know the internal code or system design. The tester only checks the functionality of the application from the user’s point of view. In this method, the internal structure of the system is hidden, so the tester focuses only on inputs and outputs.
Example:
Consider an ATM machine. A user goes to the ATM and enters the PIN to withdraw money. The user only provides the input (PIN) and receives the output (cash). The user does not know how the system processes the request internally. This is an example of black box testing.
Types of Black Box Testing:
i. Functional Testing
ii. Non functional Testing
Functional Testing:
• Smoke Testing
• Sanity Testing
• Regression Testing
• Retesting
• Integration Testing
• User Acceptance Testing (UAT)
• Adhoc Testing
• End to End Testing
Smoke Testing
Smoke testing is a quick check of main features to ensure the software is stable for further testing
Example:
• E-commerce Website Update:
• Open the website → Does it load?
• Login → Can the user log in successfully?
• Add a product to the cart → Does it appear?
• Checkout → Can the user reach the payment page?
Sanity Testing
This type of testing is performed after a bug is fixed or small updates are made to the software. Its goal is to make sure the changes didn’t create new problems in the application. Testers focus on the affected areas, while developers do not participate.
Example: Suppose an online shopping site had a problem with the payment system. After the developer fixes it, the tester checks if other parts of the site were unintentionally affected by the fix.
Regression Testing
Regression testing is done to make sure that existing features still work correctly after making changes or adding new features.
Example: If an e-commerce site (like Flipkart, Amazon) adds a wish list, testers check that the login, shopping cart, and checkout still work properly.
Retesting
Retesting is done to check if reported bugs are fixed and to make sure the fix didn’t cause any new problems.
Example: Let’s take an online banking application the ‘Transfer Money’ option in a banking app was not working, the tester tests it again after the fix to confirm it works properly.
Integration Testing
Integration testing checks how different parts of a system work together.
Example: In Tamil Matrimony website, after a user registers, testers verify that the registration confirmation is received and that the user can log in and reach their dashboard successfully.
User Acceptance Testing
This testing is carried out just before the software is released to ensure it fulfills all requirements and meets the users’ expectations.
Adhoc Testing
This is an informal type of testing where there is no formal test plan or predefined test cases, and testers do not follow structured testing methods or techniques
Example: Take a Facebook application. We randomly perform the signup process. After the user is successfully registered, we can explore the application freely and choose any action we want, based on our thoughts or intuition.
End To End Testing
This testing is a type of testing where the complete workflow of an application is tested from start to finish, to ensure all integrated components work as expected. It checks the entire system flow, including front-end, back-end, database, and external interfaces.
Example: Let’s take a Flipkart app to testing a complete online shopping workflow from product search to order confirmation.
Non Functional Testing
Load Testing
Load testing is a type of performance testing where we check how an application behaves under expected or peak user load and it can’t be done manually. As humans, we cannot simulate hundreds or thousands of users at the same time. This limitation is why we use automated tools and thread-based load testing.
Example: Imagine an e-commerce website like Amazon during a sale. Thousands of users might try to access the site at the same time. With load testing, we can simulate 5,000 users logging in, browsing products, and making purchases simultaneously. The test will show whether the site can handle this load or if it slows down, so developers can fix performance issues before real users are affected.
Stress Testing
Testing the stability and response time of an application by applying load which is more than designed no of users is called as Stress Testing. The goal is to find out how much load the system can handle before it fails or crashes and to see how it recovers afterward.
Example: Take an e-commerce website like Amazon during a big sale. Normally 10,000 users visit the site at a time. During the sale, suddenly 100,000 users try to access the website at once. Stress testing checks if the website can handle this sudden high load or if it crashes. It also checks how the system recovers once the traffic reduces.
Volume Testing
Testing the stability and response time of an application by transferring huge amount of data is called as Volume Testing. It focuses on large datasets to ensure the application can store, process, and retrieve data correctly without slowing down.
Example: Take a banking app that stores transaction records. Normally, the app handles 1,000 transactions per day and we test with 1 million transaction records in the database and to check if the app can process deposits, withdrawals, and statements correctly without errors or slow performance.
Endurance Testing
Testing the stability and response time of an application by applying load continuously for a particular period of time is called as Endurance Testing.
Example: Take Instagram application and users scroll through feeds, watch reels, post stories, and upload photos continuously for several hours and it checks whether the app remains stable during long usage. It ensures the app does not slow down, crash, or consume too much memory over time.
Scalability Testing
Testing the stability and response time of an application by applying load which is more than designed no of users and here we try to find out the break point or where the software crashes is called as Scalability Testing.
Example: Take an e-commerce site Amazon this site handles 10,000 users browsing and buying products per hour and the load is gradually increased to 100,000 users per hour. The test checks whether the website can handle more traffic without slowing down or crashing
Gray Box Testing
It is blend of Black Box and White Box Testing and the tester knows some logics or source code but it focus only test the software from user’s point of view.
For Example: Online Banking Website
• Tester knows how the login and transaction system roughly works.
• Test: transferring money from one account to another.
• Input: Transfer $100 to another account.
• Expected Output: $100 deducted from sender, added to receiver, confirmation message shows.
• We check behavior and some internal logic (like limits on transfer) without looking at all the code.
Boundary Value Analysis
Boundary Value Analysis is a testing technique used to verify the behaviour of an application at the extreme ends (boundaries) of input values. It focuses on testing values at the edges of input ranges rather than the middle
Example: Imagine an ATM allows users to withdraw money between ₹100 and ₹10,000 per transaction. Using Boundary Value Analysis, we don’t test all values—instead, we focus on the edges (boundaries) of this range.
Boundary Values:
Minimum value boundaries
• Minimum limit(n): ₹100
• Just below minimum(n-1): ₹99
• Just above minimum(n+1): ₹101
Maximum value boundaries
• Maximum limit(n): ₹10,000
• Just below maximum(n-1): ₹9,999
• Just above maximum(n+1): ₹10,001
Example
• Enter ₹99 → Should be rejected
• Enter ₹100 →Should be accepted
• Enter ₹101 →Should be accepted
• Enter ₹9,999 →Should be accepted
• Enter ₹10,000 →Should be accepted
• Enter ₹10,001 → Should be rejected
Decision Table Testing
Decision table testing is a software testing technique used to test system behavior for different input combinations and it helps to check all possible combinations of conditions for testing and testers can also identify missed conditions easily.
Example: Let’s consider a Facebook login page with these conditions:
Conditions Rule1 Rule2 Rule 3 Rule 4 Rule 5
Valid Email or phone number Yes No Yes Empty Invalid format
Valid password Yes Yes No Empty Yes
Captcha Yes No No No No
Expected Result Prompt for captcha-->after correct captcha--->Go to homepage
The email address or mobile number you entered isn't connected to an account.
The password you've entered is incorrect
The email address or mobile number you entered isn't connected to an account.
Login should fail-->proper error message shown
The Future of Manual Testing in the Age of AI
Manual testing never ends, because AI cannot think like a user and also cannot do domain-specific testing which only Manual tester can do. Manual testing has both confident and adaptive in testing. Manual testers can analyze the complex code and undergo testing but AI cannot. The future is a collaboration of AI and human testers for better software quality. Manual tester and AI they both worked together we delivery quality products.