Software Testing Study Notes
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.
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 .
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.
• 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.
• 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.
16 17 18 26 .
3
12 13 25 The different types of testing in software | Atlassian
https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-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