Important Topics for Final Term - CS608
(Software Verification and Validation)
1. Model-Based Testing (MBT)
A technique where software behavior is validated against a model representing the
expected behavior. Models include data flow, control flow, state-machines, etc.
2. Finite State Machines (FSM) and State Transition Testing
FSM represents system behavior using states and transitions. State Transition Testing
checks outputs based on different inputs and states, applicable in real-time systems.
3. Confidence-Based Testing & Mutation Testing
Tests the adequacy of test suites through artificially seeded faults or mutants. Mutation
Testing introduces small changes and checks if tests can detect them.
4. Fault Seeding Technique
Intentional insertion of known faults to assess the efficiency of testing processes in
detecting both real and seeded defects.
5. Software Verification vs Validation
Verification ensures the product is built correctly (reviews, walkthroughs), while Validation
ensures the correct product is built (testing like unit/system/UAT).
6. Walkthroughs, Peer Reviews, and Inspections
Walkthrough: Informal review led by author; Peer Review: Colleague review for quality;
Inspection: Formal review with structured steps (e.g., Fagan inspection).
7. Checklists for Reviews and Inspections
Standardized checklists are used during review of SRS, code, and documentation to ensure
coverage of quality aspects and standards.
8. Test Planning
Involves creating documents detailing scope, objectives, approach, resources, risks,
schedules, and deliverables for software testing.
9. Test Case Lifecycle and Test Suite Structure
Covers creation, execution, and status tracking of test cases and organizing them into suites
for efficient management.
10. Test Execution and Reporting
Test execution followed by reporting of results, bug logging, and metrics documentation.
Tools like MTM (Microsoft Test Manager) aid in this process.
11. Regression Testing
Ensures new changes don’t adversely affect existing functionality. Includes full retest,
selective retest, and test case prioritization methods.