Professional Documents
Culture Documents
Michael Fourman
2001-10-27
Introduction Introduction
Verify the result from implementation by testing each build Plan the tests in each iteration Integration tests for every build within the iteration System tests for the end of the iteration Design and implement tests by creating test cases that specify what to test test procedures that specify how to perform the tests executable test components to automate the tests (if possible) Perform the tests and systematically handle the test results Defective builds are sent to other workflows (e.g., design and implementation) for defect fixing
Cs2 Software Engineering
2001-10-27
Context Context
Test System Procedures Plans Expected Results Results Evaluations Defects Test Components
Tester
2001-10-27
Phases
Inception Elaboration Construction Transition
Analysis
Design
Implementation
Test
Preliminary 1 2 n n+1 n+2 m m+1
Iterations
2001-10-27 Cs2 Software Engineering
Testing in the Software Life Cycle Testing in the Software Life Cycle
In general, whenever there is an implementation result, there is a test Test at each build Inception phase: initial test planning, prototype testing Elaboration phase: test architectural baseline Construction phase: significant testing at each build Transition phase: re-test fixes and regression tests Regression tests: in a new build, re-apply tests from old builds to make sure nothing broke in new build Evolve test model create new test cases for next build refine prior test cases into regression tests remove obsolete tests and corresponding test procedures and Software Engineering components 2001-10-27 Cs2
Artifacts Artifacts
Test model artifacts Test cases Test procedures Test components Test subsystem packages for complex test models Other artifacts Test Plan Defects Test Evaluation
Cs2 Software Engineering
2001-10-27
2001-10-27
2001-10-27
2001-10-27
2001-10-27
2001-10-27
2001-10-27
2001-10-27
2001-10-27
Test Workflow Activities and Workers Test Workflow Activities and Workers
Plan Test Design Test Evaluate Test
Test Engineer
Integration Tester
System Tester
Component Engineer
2001-10-27
Implement Test
Cs2 Software Engineering
Workers Workers
Test designer: responsible for integrity of the test model plan tests: test goals and schedule select and define test cases, test procedures evaluate test results Component engineer: responsible for development of test components that automate some of the test procedures consider independent test
2001-10-27
Workers Workers
Integration tester: perform integration tests and report defects may be same person as system integrator in implementation workflow System tester: perform system tests and report defects focus on externally observable behavior consider users, beta customers, etc. as testers
2001-10-27
2001-10-27
Activity: Design Integration Test Cases Activity: Design Integration Test Cases
Derive test cases from use-case realizations design (component interaction) Develop tests with minimal overlap that test an interesting path or scenario through use case Primarily consider interaction diagrams Combinations of actor input, output and system start state that lead to interesting scenarios that employ the classes that participate in the diagrams
2001-10-27
Activity: Design System Test Cases Activity: Design System Test Cases
Test system as a whole Test combinations of use cases instantiated under different conditions Hardware configurations System loads Number of actors Database size etc. Prioritize combinations that are required or are likely to function in parallel are likely to influence each other if they function in parallel involve multiple processes frequently use system resources or use them in complex and unpredictable ways
Cs2 Software Engineering
2001-10-27
Activity: Design Regression Test Cases Activity: Design Regression Test Cases
Modify test cases from earlier builds to be used as regression tests in subsequent builds Make more flexible and resilient to changes to the system under test Specifically address previously found defects Automate where possible
2001-10-27
Activity: Identify and Structure Test Procedures Activity: Identify and Structure Test Procedures
Work test case by test case and suggest testing procedures for each one Reuse existing test cases May need to modify them to be reusable Align test procedures to subsystems under test Minimize overlap Isolates change to test resulting from change to subsystem
2001-10-27
2001-10-27
Activity: Perform Integration and System Test Activity: Perform Integration and System Test
Perform the integration tests relevant to a build Manually perform test procedures or execute test components Compare test results with the expected test results Investigate test results that deviate from the expected Faulty system and/or faulty test? Report defects to the component engineer responsible for the components likely to contain the fault Report defects to the test designers For use in evaluation of overall test results System tests are performed the same way as integration tests
Cs2 Software Engineering
2001-10-27
2001-10-27
2001-10-27
Summary Summary
Test Model Test cases specify what to test Test procedures specify how to perform test cases Test components automate the test procedures Test Plan Test Evaluation Defects to be fed into other core workflows
2001-10-27