A Strategic Approach to Software Testing – College Notes
A Strategic Approach to Software Testing
Software testing is a critical activity in the software development lifecycle. It helps ensure that the
software performs correctly, meets user requirements, and is free from defects. The strategic approach
defines how testing activities are planned, executed, and managed across the software process.
Strategic Issues
Strategic issues in testing include defining objectives, selecting appropriate testing techniques,
allocating resources, and determining the level of test automation. Effective testing strategy aligns with
organizational goals and project risk factors.
Test Strategies for Conventional Software
For traditional applications, testing strategies include unit testing, integration testing, validation testing,
and system testing. Each phase ensures that individual components and the overall system meet
design and functional requirements.
Test Strategies for Object-Oriented Software
Object-oriented testing focuses on testing classes, objects, and their interactions. It includes unit testing
of methods, integration of collaborating objects, and system testing based on use cases.
Test Strategies for WebApps
Web application testing involves testing client-server interactions, browser compatibility, security, and
performance. It includes usability testing, configuration testing, and regression testing.
Validation Testing
Validation testing ensures that the developed system meets the customer’s expectations and
requirements. It focuses on user needs and functional correctness.
System Testing
System testing verifies that the complete integrated system meets the specified requirements. It
involves testing interfaces, data flow, and system behavior under various conditions.
The Art of Debugging
Debugging is the process of finding and fixing defects in software after testing. It involves error
identification, cause analysis, and correction. Common techniques include backtracking and cause
elimination.
White Box Testing
White box testing involves testing internal structures or workings of an application. It focuses on logic
paths, loops, and conditions within the code. Techniques include statement coverage and decision
coverage.
Basis Path Testing
Basis path testing is a white box method that identifies independent execution paths through the code. It
uses control flow graphs and cyclomatic complexity to ensure adequate test coverage.
Control Structure Testing
Control structure testing examines program logic and control constructs such as loops, decisions, and
conditions to ensure correctness and completeness.
Black Box Testing
Black box testing focuses on input-output behavior without considering internal code structure.
Common techniques include equivalence partitioning, boundary value analysis, and cause-effect
graphing.
Model Based Testing
Model-based testing uses models to design test cases and predict expected results. It improves
efficiency and coverage, especially for complex systems.
Object Oriented Testing Strategies
Object-oriented testing includes class testing, integration testing based on collaborations, and validation
through scenarios. It uses methods like cluster testing and inheritance testing.
Object Oriented Testing Methods
Common OO testing methods include state-based testing, mutation testing, and fault-based testing.
These ensure that object interactions and state changes function as expected.
Testing Concepts for WebApps
WebApp testing verifies reliability, performance, security, and compatibility across browsers and
devices. It includes functional, usability, and stress testing.
The Testing Process
The testing process includes planning, test case design, test execution, defect reporting, and test
closure. Continuous evaluation and documentation are essential for process improvement.