Software Engineering Testing & Maintenance
Notes
Verification vs Validation
Verification: Are we building the product right? (checks design/specs)
Validation: Are we building the right product? (checks user needs)
Test Case & Test Suite
Test Case: A set of inputs, conditions, and expected results to test a feature.
Test Suite: A collection of related test cases.
Short Notes
Regression Testing: Re-testing after changes to ensure stability.
User Acceptance Testing: Testing by end users for approval.
Alpha Testing: Testing at developer site with limited users.
Beta Testing: Testing at user site before full release.
Load Testing: Test under expected user load.
Robustness Testing: System behavior with invalid/stress inputs.
Structural vs Functional Testing
Structural Testing: Tests internal logic/code (white box).
Functional Testing: Tests external behavior/output (black box).
Black Box Testing Techniques
Equivalence Class Partitioning: Divide input into valid/invalid classes.
Example: Age 1–100 → valid(25), invalid(-5,150)
Boundary Value Analysis: Test boundary values.
Example: Range 1–100 → 0,1,2,99,100,101
Cause-Effect Graph: Relationship between inputs and outputs.
Example: Login success only if username & password valid.
White Box Testing
Tests internal logic of the program.
Includes Statement, Branch, Condition, Loop, and Basis Path Testing.
Basis Path + Cyclomatic Complexity
Cyclomatic Complexity measures number of independent paths and complexity.
Formulas:
V(G) = E − N + 2
V(G) = D + 1
V(G) = Number of Regions
Lower CC means easier testing; ideal < 10.
Software Quality Assurance (SQA)
SQA ensures software quality using planned and systematic activities.
Includes: Quality planning, standards, reviews, defect tracking, training and documentation control.
Formal Technical Review (FTR)
Purpose: Detect errors early in requirements, design, code, testing.
Process: Preparation → Review Meeting → Record Findings → Follow-up.
Software Configuration Management (SCM)
SCM manages and controls software changes ensuring consistency and integrity.
Configuration Items
SRS, Design docs, Source code, Test cases, Manuals, Plans.
Baseline
Approved reference version that cannot change without formal approval.
Version Control
Manages multiple versions; supports rollback and team collaboration (Git, SVN).
Change Control Process
Submit Change Request → Impact Analysis → CCB Decision → Implementation → Testing →
Version Update.
Software Maintenance
Activities after delivery to fix problems, improve performance, adapt environment.
Types of Maintenance
Corrective: Fix bugs.
Adaptive: Adjust to environment changes.
Perfective: Improve performance/features.
Preventive: Prevent future problems.