Software Testing
Software Testing
Non-Functional Testing
Checks the quality and performance of the software.
Focuses on aspects like speed, security, usability, and compatibility.
a. Performance Testing
Measures how fast and efficiently the system responds.
Example: Checking how quickly a website loads under normal conditions.
b. Security Testing
Identifies vulnerabilities and protects data from unauthorized access.
Example: Testing whether passwords are stored securely.
c. Usability Testing
Ensures the software is easy to learn and use.
Example: Checking if users can easily find the search option.
d. Compatibility Testing
Verifies that the software works on different devices, browsers, and
operating systems.
Example: Testing an app on Android, iOS, and Windows.
2. Testing Levels
Unit Testing
Tests individual components or functions separately.
Example: Testing a calculator's addition function.
Integration Testing
Checks whether different modules work together correctly.
Example: Testing communication between the login page and database.
Acceptance Testing
Confirms that the software meets user and business requirements.
Example: Client testing the final product before release.
3. Testing Techniques
Manual Testing Automated Testing
• Testers execute test cases without using • Uses software tools to run tests
automation tools. automatically.
• Useful for checking user experience and • Saves time when testing repetitive
visual issues. tasks.
4. Testing Methods
White Box Testing
Black Box Testing
• Tests the internal code, logic,
• Tests software without looking at the
and program structure.
internal code.
• Usually performed by
• Focuses on inputs, outputs, and
developers or testers with coding
expected behavior.
knowledge.
5. Testing Strategies
Top-Down Testing Bottom-Up Testing
• Testing starts from higher-level
• Testing starts from lower-level
modules and moves downward.
modules and moves upward.
• Uses temporary modules called
• Uses drivers to simulate higher-
stubs for lower-level
level modules during testing.
components.
The Software Testing Life Cycle (STLC) consists of the following key phases:
1. Requirement Analysis
Understand and analyze software requirements from a testing
perspective.
Identify testable and non-testable requirements.
Prepare a Requirement Traceability Matrix (RTM).
2. Test Planning
Define the test strategy, scope, schedule, and resources.
Identify testing tools, risk analysis, and effort estimation.
Create a Test Plan Document.
Formal Review
Follows a structured and planned process.
Includes planning, review meetings, and rework.
Informal Review
Simple review without a formal process.
Usually done by team members for quick feedback.
2. Inspection
Most formal type of review.
Led by a trained moderator.
Documents are checked thoroughly before meetings.
Used to detect defects at an early stage.
3. Walkthrough
Author explains the document or design to others.
Team members provide feedback and suggestions.