Manual Testing Tutorial - 3 to 4
Manual Testing Tutorial - 3 to 4
The Software Testing Life Cycle (STLC) is a systematic process that defines testing activities to be performed during
each stage of software development. It ensures a thorough evaluation of the product's functionality, performance, and
reliability.
1. Requirement Analysis
o Activities:
Analyze requirements.
2. Test Planning
o Activities:
o Activities:
4. Environment Setup
o Activities:
Set up hardware, software, and network configurations.
5. Test Execution
o Activities:
6. Test Closure
o Activities:
Entry Criteria:
Exit Criteria:
plaintext
Copy code
Requirement Analysis
Test Planning
↓
Test Case Design
Environment Setup
Test Execution
Test Closure
1. Requirement Analysis:
2. Test Planning:
4. Test Execution:
Steps:
Expected Result: The message "Hello" is displayed in the chat and marked as delivered.
Steps:
Expected Result: The system displays "Message length exceeded" and prevents the message
from being sent.
5. Test Closure:
Activities:
Defects logged: 2.
o Deliverables:
3. Test Cases: Detailed steps and expected results for test scenarios.
5. Test Summary Report: Overview of testing activities, results, and key metrics.
In software testing, various types of testing are used to validate different aspects of a software product. These can be
broadly categorized into Functional and Non-Functional testing, but there are also specialized types based on specific
goals, such as exploratory testing and regression testing.
4.2 Functional Testing
Functional testing validates the functionality of a software application by checking whether it behaves as expected.
These tests are usually based on requirements and specifications.
Example: Testing a login function to verify the correct username and password handling.
o Integration Testing: Ensures that different modules or components of the software work together.
Example: Testing the interaction between a payment gateway and the shopping cart in an e-
commerce application.
o System Testing: Tests the entire system as a whole to ensure it works as expected.
Example: Testing a fully developed e-commerce website, including login, shopping, and
checkout functionality.
o Acceptance Testing: Verifies if the software meets the business requirements and is ready for
deployment.
Example: Testing an online banking system to ensure it meets regulatory requirements and
user expectations.
Non-functional testing focuses on non-functional aspects of the software, such as performance, usability, and security.
o Performance Testing: Assesses how well the software performs under load and stress.
Example: Load testing an e-commerce website to see how many users it can handle
simultaneously.
o Usability Testing: Evaluates how user-friendly and intuitive the software is.
Example: Testing the navigation and layout of a mobile app to ensure a seamless user
experience.
o Security Testing: Ensures that the software is secure from vulnerabilities and cyber-attacks.
Example: Penetration testing an online banking application to check for security flaws.
o Compatibility Testing: Verifies that the software works across different environments, devices, and
browsers.
Example: Testing a website on various browsers like Chrome, Firefox, and Safari to ensure
cross-browser compatibility.
These are testing types performed in specific scenarios or to uncover particular issues.
1. Exploratory Testing:
o The tester explores the application without predefined test cases to find potential issues.
o Example: Manually testing an e-commerce website's checkout process by trying different
combinations of payment methods and discounts.
2. Regression Testing:
o Ensures that new changes or updates do not break or negatively impact existing features.
o Example: After adding a new product page, testing the existing checkout and search functionalities to
make sure they still work properly.
3. Smoke Testing:
o A preliminary test to check whether the basic functions of the application work.
o Example: After a new build, testing if users can log in and access the main page of the application.
4. Sanity Testing:
o Focuses on verifying whether a specific bug has been fixed or if a small change works as expected.
o Example: After fixing a bug where a user couldn't add items to their cart, testing this specific
functionality.
5. Ad-hoc Testing:
o Unscripted testing performed to find unexpected defects without following any formal testing process.
o Example: Randomly clicking on different features of an app to see if any unexpected crashes occur.
Types of Testing
/ \
/ | | \ / | | \
o Steps:
2. Click on "Login".
o Steps:
1. Select a product and add it to the cart.
o Expected Result: The correct product, quantity, and price should be displayed in the cart.
o Bug Example: The cart shows the wrong price or an empty cart after adding products.
o Steps:
o Expected Result: The website should respond to all users without crashing.
o Bug Example: The website becomes slow or crashes under heavy traffic.
o Steps:
o Expected Result: The app should be intuitive, with easy navigation and minimal friction.
o Bug Example: Users have difficulty finding the settings menu or navigating between screens.
Functional Testing is typically prioritized during the initial stages of development, while Non-Functional Testing
is done later to ensure overall performance.
Specialized testing types like Exploratory and Ad-hoc are used for finding defects that are not easily identified
through standard testing procedures.