In this section, we will explore two essential types of manual testing: Smoke Testing and Sanity Testing. Both are crucial in ensuring the stability and functionality of software applications, but they serve different purposes and are applied at different stages of the testing process.
Smoke Testing
What is Smoke Testing?
Smoke Testing, often referred to as "Build Verification Testing," is a preliminary test to check the basic functionality of an application. It is performed after a new build is received to ensure that the critical functionalities of the program are working correctly.
Key Characteristics of Smoke Testing
- Purpose: To verify that the most important functions of a software application work correctly.
- Scope: Limited to the most critical functionalities.
- Frequency: Conducted on every new build.
- Automation: Often automated due to its repetitive nature.
Example of Smoke Testing
Imagine a web application for online shopping. A smoke test might include:
1. Launch the application. 2. Log in with valid credentials. 3. Search for a product. 4. Add the product to the cart. 5. Proceed to checkout. 6. Log out.
Practical Exercise: Smoke Testing
Task: Create a smoke test for a simple calculator application that includes addition, subtraction, multiplication, and division.
Solution:
1. Launch the calculator application. 2. Perform an addition operation (e.g., 2 + 2). 3. Perform a subtraction operation (e.g., 5 - 3). 4. Perform a multiplication operation (e.g., 4 * 2). 5. Perform a division operation (e.g., 8 / 2). 6. Close the application.
Feedback: Ensure that each operation returns the correct result. If any operation fails, the build should be rejected.
Sanity Testing
What is Sanity Testing?
Sanity Testing is a subset of regression testing. It is performed when a small section of an application is modified to ensure that the bugs have been fixed and no further issues are introduced.
Key Characteristics of Sanity Testing
- Purpose: To verify that specific functionalities work as expected after changes.
- Scope: Narrow and focused on specific areas of functionality.
- Frequency: Conducted after receiving a software build with minor changes.
- Automation: Can be automated but often performed manually for quick checks.
Example of Sanity Testing
Continuing with the online shopping application, if a bug was fixed in the checkout process, a sanity test might include:
1. Launch the application. 2. Log in with valid credentials. 3. Add a product to the cart. 4. Proceed to checkout. 5. Verify that the checkout process completes without errors. 6. Log out.
Practical Exercise: Sanity Testing
Task: Perform a sanity test on a login feature after a bug fix that addressed incorrect password handling.
Solution:
1. Launch the application. 2. Attempt to log in with an incorrect password. 3. Verify that an error message is displayed. 4. Attempt to log in with the correct password. 5. Verify successful login. 6. Log out.
Feedback: Focus on the specific area where the bug was fixed. Ensure that the fix works and does not affect other functionalities.
Conclusion
Smoke and Sanity Testing are vital components of the software testing process. Smoke Testing ensures that the critical functionalities of an application are working after a new build, while Sanity Testing verifies that specific functionalities work as expected after changes. Both types of testing help maintain the quality and reliability of software applications, ensuring a smooth user experience. In the next section, we will delve into more advanced manual testing techniques.
Manual Testing and Types of Tests
Module 1: Introduction to Manual Testing
- What is Manual Testing?
- Importance of Manual Testing
- Manual Testing vs. Automated Testing
- Roles and Responsibilities of a Manual Tester
Module 2: Basic Concepts in Manual Testing
- Software Development Life Cycle (SDLC)
- Software Testing Life Cycle (STLC)
- Test Plan and Test Case
- Defect Life Cycle
Module 3: Types of Manual Testing
Module 4: Advanced Manual Testing Techniques
Module 5: Specialized Testing Types
- Security Testing
- Performance Testing
- Localization and Internationalization Testing
- User Acceptance Testing (UAT)