Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

System Testing CS 414 – Software Engineering I


Published on

  • Be the first to comment

  • Be the first to like this

System Testing CS 414 – Software Engineering I

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