Software Testing Study Notes
Testing Objectives
• Ensure software meets requirements (verification) by checking work products (requirements,
design, code) early 1 .
• Verify all specified requirements are implemented (using traceability from tests to requirements)
2 .
• Validate that the finished product works as intended for users (user acceptance) 3 .
• Improve confidence in quality by finding and preventing defects (early bug detection) 4 .
• Provide stakeholders with information on test coverage, risks, and quality (reports on missing
requirements or bugs) 5 .
Unit Testing
• Tests individual components (functions, methods, classes) in isolation 6 .
• Usually automated and written by developers, allowing fast and cheap execution in CI pipelines
6 .
• Catches bugs early when they are cheapest to fix (early bug fixes reduce cost) 7 .
• Enables frequent releases and refactoring: by verifying units work correctly, developers can
safely improve or redesign code 8 .
Integration Testing
• Combines unit-tested modules and tests their interactions (interfaces, data flow) 9 .
• Verifies that separate components work together correctly; catches interface/communication
errors early.
• Performed after unit testing and before system testing to reduce risks of late discovery of
integration bugs 9 .
Acceptance Testing
• Formal testing against business/user requirements to decide if the system is ready for release
10 .
• Carried out by end-users, customers, or representatives (often called User Acceptance Testing) in
a realistic environment.
• Ensures the complete system satisfies acceptance criteria (business goals, user needs) 10 ;
passing this test means the software is fit for deployment.
Regression Testing
• Re-runs existing tests after changes (bug fixes or enhancements) to ensure previously working
features still work 11 .
• Detects unintended side-effects of code changes, preventing new bugs from being introduced.
• Often automated (test suites grow over time) since regression tests are repeated frequently 11 .
1
Testing for Functionality
• Checks that the software’s features behave according to specifications (functional requirements)
12 .
• Verifies end-to-end business operations (e.g., user login, data processing) produce the correct
outputs.
• Focuses on what the system does (output/results) rather than how it does it.
Testing for Performance
• Measures non-functional attributes: speed, responsiveness, throughput, and scalability under
load 13 .
• Includes load, stress, and volume testing to find bottlenecks (e.g., response time with many
users) 13 .
• Ensures the system meets performance criteria (e.g., acceptable latency, stability under peak
usage) 13 .
Top-Down and Bottom-Up Testing Strategies
Top-down and bottom-up are incremental integration approaches 14 15 . In top-down testing, high-
level modules are integrated and tested first; lower-level modules are added later using dummy stubs to
stand in for missing parts 14 . In bottom-up testing, low-level modules are integrated first; drivers are
used to call up to higher-level modules that are not yet developed 15 .
- Test Stubs: Simplified modules that simulate lower-level components in top-down integration testing
14 .
- Test Drivers: Temporary routines that invoke (call) the module under test, used in bottom-up testing
when higher-level modules are missing 15 .
Structural Testing (White Box Testing)
• Focuses on internal code structure and logic 16 . Testers have access to source code and design
test cases based on code paths, branches, and conditions.
• Techniques include statement/branch coverage, path testing, and code reviews. The goal is to
exercise all internal paths and loops to find hidden logic errors 16 .
2
Functional Testing (Black Box Testing)
• Tests software functionality without knowledge of internal code 17 . Test cases are based on
requirements or specifications, focusing on input/output behavior.
• Emphasizes correct outputs for given inputs and handling of typical use cases, edge cases, and
error conditions.
Test Data Suite Preparation
• Design comprehensive sets of input data covering various scenarios to exercise all functionality
18 .
• Include valid data (meets constraints), invalid data (violates constraints), boundary values (edge
cases), and random/extreme data 18 .
• Well-prepared test data ensures all paths and conditions are tested, improving defect detection.
Alpha and Beta Testing of Products
• Alpha Testing: Internal testing by developers and QA in a controlled environment before release
19 . Identifies bugs in functionality and usability early.
• Beta Testing: Pilot release to a select group of external users in a real-world environment 20 .
Collects user feedback and discovers real-world issues before wide deployment.
Static Testing Strategies
• Formal Technical Review (Peer Review): Team-based, structured examination of software
artifacts (requirements, design, code) to detect defects early in development 21 .
• Walkthrough: Informal review led by the artifact’s author to present work and gather feedback
from peers 22 . Focuses on knowledge sharing and finding obvious issues.
• Code Inspection: Detailed, manual review of source code by one or more reviewers, checking
for defects and adherence to design/coding standards 23 . High defect-detection rate.
• Compliance Checks: Verify that design and code follow agreed standards and best practices
(naming conventions, formatting, SOLID principles, etc.), improving maintainability and
consistency 24 .
Sources: Authoritative testing literature and current software engineering resources 1 9 11 25 14
16 17 18 26 .
1 2 3 What are Software Testing Objectives and Purpose? | ISTQB | ToolsQA
4 5 https://toolsqa.com/software-testing/istqb/software-testing-objectives/
6 7 8 Unit testing - Wikipedia
https://en.wikipedia.org/wiki/Unit_testing
9 Integration Testing – Software Engineering | GeeksforGeeks
https://www.geeksforgeeks.org/software-engineering-integration-testing/
10 Acceptance Testing – Software Testing | GeeksforGeeks
https://www.geeksforgeeks.org/acceptance-testing-software-testing/
11 Regression testing - Wikipedia
https://en.wikipedia.org/wiki/Regression_testing
3
12 13 25 The different types of testing in software | Atlassian
https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing
14 15 Difference between Top Down and Bottom Up Integration Testing | GeeksforGeeks
https://www.geeksforgeeks.org/difference-between-top-down-and-bottom-up-integration-testing/?ref=rp
16 White box Testing – Software Engineering | GeeksforGeeks
https://www.geeksforgeeks.org/software-engineering-white-box-testing/
17 Black Box Testing – Software Engineering | GeeksforGeeks
https://www.geeksforgeeks.org/software-engineering-black-box-testing/
18 19 20 Notes B.tech
21 22 23 https://notesly.s3.amazonaws.com/media/uploads/notes/pdf/964b3ec1-368d-4aae-802c-24a137121a0c.pdf
24 26