Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

MANUAL TESTING

Manual testing involves evaluating software manually to identify defects without using
automated tools. Here are the main types of manual testing:

1. Black Box Testing:


o Focuses on the functionality of the software.
o Testers do not need knowledge of the internal code structure.
o Based on inputs and outputs.
2. White Box Testing:
o Also known as clear box testing.
o Involves testing the internal structures or workings of an application.
o Requires knowledge of the code and logic.
3. Unit Testing:
o Tests individual components or modules of the software.
o Ensures that each unit functions correctly.
o Typically done by developers.
4. Integration Testing:
o Tests the interaction between integrated units or components.
o Ensures that combined parts of the application work together.
5. System Testing:
o Tests the complete and integrated software system.
o Verifies that the system meets the specified requirements.
6. Acceptance Testing:
o Conducted to determine if the system satisfies the acceptance criteria.
o Often performed by the end-users or clients.
o Includes Alpha and Beta testing.
7. Smoke Testing:
o Preliminary testing to check the basic functionality.
o Ensures that the major functions work and the system is stable enough for further
testing.
8. Sanity Testing:
o Performed after receiving a software build to verify that a specific function or bug
has been fixed.
o A subset of regression testing.
9. Regression Testing:
o Ensures that new code changes do not adversely affect existing functionality.
o Re-runs previously conducted tests.
10. Exploratory Testing:
o Involves exploring the application without predefined test cases.
o Testers learn and design tests as they explore.
11. Ad-hoc Testing:
o Informal and unstructured testing.
o No formal test plans or documentation involved.
12. Usability Testing:
o Assesses the user-friendliness of the application.
o Focuses on user interface and user experience.
13. Performance Testing:
o Measures the system's performance under a specific load.
o Includes load testing, stress testing, and scalability testing.
14. Security Testing:
o Identifies vulnerabilities and security flaws in the software.
o Ensures that the application is protected against threats.
15. Compatibility Testing:
o Checks if the software works across different environments, browsers, devices,
etc.
o Ensures consistency in various setups.
16. Localization Testing:
o Verifies that the software is adapted correctly for different languages and regions.
o Ensures the product is culturally and linguistically appropriate.

Each type of testing plays a critical role in ensuring the quality, functionality, and performance
of the software.

LOAD TESTING

 Purpose: To determine how the system behaves under a specific load.


 Focus: Simulates expected user load to ensure the system can handle it.
 Example: Testing an e-commerce website by simulating hundreds of users shopping
simultaneously to ensure the website doesn't slow down or crash.

STRESS TESTING

 Purpose: To evaluate the system's behavior under extreme conditions.


 Focus: Pushing the system beyond its normal operational capacity to identify breaking
points.
 Example: Increasing the number of users beyond the system's maximum capacity to see
when it starts to fail or degrade significantly.

SCALABILITY TESTING

 Purpose: To determine the system's ability to scale up or down in response to load


changes.
 Focus: Evaluates if the system can handle increasing loads by adding resources (vertical
scaling) or by adding more systems (horizontal scaling).
 Example: Testing a cloud application by gradually increasing the number of users and
checking if adding more servers or resources improves performance accordingly.
SDLC (SOFTWARE DEVELOPMENT LIFE CYCLE)

 Purpose: A framework defining the steps involved in developing software.


 Stages:
1. Planning: Define project goals, scope, and requirements.
2. Analysis: Gather and analyze requirements from stakeholders.
3. Design: Create software architecture and design specifications.
4. Implementation (Coding): Develop the actual software code.
5. Testing: Verify that the software works as intended.
6. Deployment: Release the software to users.
7. Maintenance: Provide ongoing support and updates.

STLC (SOFTWARE TESTING LIFE CYCLE)

 Purpose: A series of activities focused on testing the software to ensure quality.


 Stages:
1. Requirement Analysis: Understand and review the requirements from a testing
perspective.
2. Test Planning: Define the scope, approach, resources, and schedule for testing.
3. Test Case Development: Create detailed test cases and test scripts.
4. Environment Setup: Prepare the testing environment and tools.
5. Test Execution: Run the test cases and log defects.
6. Test Closure: Summarize testing activities, results, and assess quality.

KEY DIFFERENCES

 SDLC: Covers the entire software development process from planning to maintenance.
 STLC: Focuses specifically on the testing phases within the SDLC to ensure software
quality.

SOFTWARE TESTING
 Purpose: To identify defects and ensure that software meets specified requirements and
quality standards.
 Objectives:
1. Verification: Confirm that the software functions as intended and meets
requirements.
2. Validation: Ensure the software is fit for its purpose and satisfies user needs.
3. Defect Identification: Detect and document bugs, errors, and issues in the
software.
4. Quality Assurance: Improve software quality, reliability, and performance.
IMPORTANCE

 Error Detection: Find and fix issues early to prevent them from affecting users.
 Cost Efficiency: Reduce the cost of fixing defects by catching them in earlier stages.
 User Satisfaction: Ensure a positive user experience by delivering reliable and functional
software.
 Compliance: Verify that the software adheres to industry standards and regulations.

TYPES OF TESTING

 Functional Testing: Validates that each function of the software operates in


conformance with requirements.
 Non-Functional Testing: Tests aspects like performance, usability, and security.
 Manual Testing: Performed by humans without automation tools.
 Automated Testing: Uses tools to execute tests and compare actual outcomes with
expected results.

In essence, software testing is crucial for delivering high-quality software that performs reliably
and meets user expectations.

You might also like