Transcript
Page 1: System Testing CS 414 – Software Engineering I

System Testing

CS 414 – Software Engineering IDon Bagert

January 21, 2003

Page 2: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 2

Outline Testing and SQA Test Planning & Implementation Revisited Object-Oriented Integration Testing User and Client Testing Summary

Page 3: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 3

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

Page 4: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 4

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

Page 5: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 5

Test Planning & Implementation RevisitedPlan 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)

Page 6: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 6

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

Page 7: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 7

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

Page 8: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 8

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

Page 9: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 9

Examples

Page 10: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 10

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

Page 11: System Testing CS 414 – Software Engineering I

CS 414 Software Engineering I - System Testing - January 21, 2003 11

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


Recommended