System Testing CS 414 – Software Engineering I Don Bagert January 21, 2003
CS 414 Software Engineering I - System Testing - January 21, Outline Testing and SQA Test Planning & Implementation Revisited Object-Oriented Integration Testing User and Client Testing Summary
CS 414 Software Engineering I - System Testing - January 21, Testing and SQA Software Quality Assurance (SQA) is a variety of activities that are used throughout the software process in order to ensure “high quality” Many practitioners (unfortunately) think that most of Testing is SQA, when in fact, it is only a subset of it
CS 414 Software Engineering I - System Testing - January 21, Testing and SQA (continued) Testing is part of an SQA activity called Verification and Validation, or V&V Verification answers the question “Are we building the product right?” Validation answers the question “Are we building the right product?” Testing encompasses both aspects of V&V Other V&V activities include inspections
CS 414 Software Engineering I - System Testing - January 21, Test Planning & Implementation Revisited Plan Creation Order (expanded): – System Test Plan (from System Specification) – Validation Test Plan (from Software Req. Specification) – Integration Test Plan (from Design Document) – Unit Test Plan (from source code) Plan Implementation Order (also expanded): – Unit Test Plan (tests functions and methods) – Integration Test Plan (test classes and subsystems) – Validation Test Plan (test entire software) – System Test Plan (test entire embedded system)
CS 414 Software Engineering I - System Testing - January 21, Object-Oriented Integration Testing In general, units are tested independently before they are integrated with other units – A driver is used to call (send a message) to the unit with the data for a particular test case – Instead of calling other units, stubs are used in their place during unit testing – During integration testing, the driver and stubs are replaced other units which have also been tested
CS 414 Software Engineering I - System Testing - January 21, OO Integration Testing (continued) OO integration testing is a two-phase process – Class Testing – Multiple Class Testing (called “Object and Independent Module Testing” in the Project Process) This is an extension of the bottom-up test plan implementation theory for OO
CS 414 Software Engineering I - System Testing - January 21, OO Integration Testing (continued) Techniques used in both class and multiple class testing – Test “minimum behavior” as one of the test cases – Random testing of other behavior – Partition testing
CS 414 Software Engineering I - System Testing - January 21, Examples
CS 414 Software Engineering I - System Testing - January 21, User and Client Testing Alpha Testing – under the watchful eye of the development team Beta Testing – users testing independently of project team; usually for software to be marketed (i.e. there is no specific client) Acceptance Testing – project client takes deliverables and determines if the contract has been fulfilled These are all done post-validation testing by the development team
CS 414 Software Engineering I - System Testing - January 21, Summary Testing is part of an Software Quality Assurance activity called Verification and Validation Drivers and stubs are used to test units independently before they are integrated with other units OO integration testing is a two-phase process: class testing, followed by multiple class testing Alpha, Beta and acceptance testing are some of the types of testing involving the client and/or potential users of the software