9. SYSTEM INTEGRATION.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Testing Workflow Purpose
Test Yaodong Bi.
System Integration Verification and Validation
Software Quality Assurance Plan
1 SOFTWARE TESTING Przygotował: Marcin Lubawski. 2 Testing Process AnalyseDesignMaintainBuildTestInstal Software testing strategies Verification Validation.
Chapter 4 Quality Assurance in Context
Documentation Testing
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
The case study ‘Encounter’ Section ‘About case studies’ 4 th Workshop “Software Engineering Education and Reverse Engineering” Zagreb, 5 – 12 September.
Iterative development and The Unified process
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
Introduction to Computer Technology
Verification & Validation and Systems Integration.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to Software Quality Assurance (SQA)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Fundamentals - Instructor Notes
Chapter 2 The process Process, Methods, and Tools
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
CPIS 357 Software Quality & Testing
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
UNIT TESTING. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering Roadmap Identify corporate.
RUP Implementation and Testing
Teaching material for a course in Software Project Management & Software Engineering – part II.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
SWE © Solomon Seifu CONSTRUCTION. SWE © Solomon Seifu Lesson 13-2 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Chapter 9 Project Management. Introduction Effective project management requires a well-structured project and diligent oversight A well-structured project.
1. The Context of Software Engineering. Definition of “Engineering” The profession in which a knowledge of the mathematical and natural sciences gained.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
ANU comp2110 Software Design lecture 5 COMP2110 Software Design in 2003 lecture 5 Requirements Specifications lecture 3 of 3 The Encounter game case study.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
CSC 480 Software Engineering Testing - I. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
CSC480 Software Engineering Lecture 7 September 16, 2002.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
 System Requirement Specification and System Planning.
CSC 480 Software Engineering
Software Engineering (CSI 321)
IEEE Std 1074: Standard for Software Lifecycle
COMP2110 Software Design in 2004 lecture 09 High level design
Applied Software Implementation & Testing
Introduction to Software Engineering
Introduction to Software Testing
Lecture 09:Software Testing
4 REQUIREMENTS ANALYSIS CASE STUDY
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

9. SYSTEM INTEGRATION

Software Engineering Roadmap: Chapter 9 Focus Construct system in stages - Plan integration of parts to yield whole - Test subassemblies - Assemble in “builds” - Test whole system in a variety of ways Identify corporate practices Plan project Maintain Analyze requirements Integrate & test system Design Implement Test units Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Chapter Learning Goals Be able to plan the integration of modules Understand types of testing required Be able to plan and execute testing beyond the unit level Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

1. Introduction to system integration

Unified Process for Integration & Test Jacobson et al: USDP Requirements Analysis Design Implemen- tation Test Inception Elaboration Construction Transition Integration Unit Tests Integration tests ... System tests Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k ….. …..

Development Overview Customer Requirements Architecture loss of information Requirements loss Architecture

Module (e.g., package) code Customer Development Overview loss of information Requirements loss Architecture loss loss Detailed design Interface specs loss Function code loss Module (e.g., package) code After Myers System code

Testing Units in Context Stand-alone unit test of function -- may require driver & stubs Test of function in context -- eliminate or reduce driver & stubs Function code Function tests code + Iteration or System code Complete code

Testing Overview: Artifact Flow (After Myers) order of testing Requirements (11) Acceptance tests Testing Overview: Artifact Flow (After Myers) Docs. (10) Installation tests Architecture (9) Usability tests Docs. Docs. Detailed design (8) System tests Docs. (7) Regression tests Interface specs (6) Integration tests Function code Docs. (5) Interface tests Code + Code + Module (e.g., package) code (2),(4) Module tests Code + Code + (1),(3) Function tests Iteration or System code Complete code

Testing for Validation and Verification (After Myers) (11) Acceptance tests* Requirements Tested against requirements (“validation”) (10) Installation tests*‡ (9) Usability tests*‡ (8) System tests*‡ (7) Regression tests* Testing for Validation and Verification (After Myers) (1), (4) Function tests Includes… : *use-cases ‡performance testing

Testing for Validation and Verification (After Myers) (11) Acceptance tests* Requirements (10) Installation tests*‡ “validation1” (9) Usability tests*‡ (8) System tests*‡ Architecture “verification2” (7) Regression tests* (6) Integration tests* Interface specs “verification2” (5) Interface tests (1), (4) Function tests Detailed design “verification2” (2), (3) Module tests requirements Note 1: Tested against Note 2: Tested against documents indicated Includes… : *use-cases ‡performance testing

2. The integration process

Build 1 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Build 2 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Build 3 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Final Build of Single Level Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Final Build of Double Level Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Single level iteration Double level iteration The Build Process Single level iteration Double level iteration . . . . Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Integration in Spiral Development Design Requirements analysis First iteration Second iteration 2. Design for additional requirements 1. Get additional requirements 3. Code additional 5. Test 4. Integrate new code Implementation Test Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Relating Builds and Iterations in the Unified Process Jacobson et al: USDP Requirements Analysis Design Implemen- tation Test Inception Elaboration Construction Transition First build for iteration i Last build for iteration i Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #i Iter. #m Iter. #m+1 Iter. #k ….. ….. …..

Typical Build 1 Module 1 2 3 4 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Typical Build 2 Module 1 2 3 4 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Module 1 Unit-Oriented Build 1 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Module 1 2 3 4 Unit-Oriented Build 2 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Module 1 2 3 4 Unit-Oriented Build 3 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Last Build Module 1 2 3 4 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Build Sequences: Ideal vs. Typical Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

1. Understand the architecture decomposition. try to make architecture simple to integrate 2. Identify the parts of the architecture that each iteration will implement. build framework classes first, or in parallel if possible, integrate “continually” build enough UI to anchor testing document requirements for each iteration try to build bottom-up so the parts are available when required try to plan iterations so as to retire risks biggest risks first specify iterations and builds so that each use case is handled completely by one 3. Decompose each iteration into builds if necessary. 4. Plan the testing, review and inspection process. see section tbd. 5. Refine the schedule to reflect the results. One way to ... Plan Integration & Builds Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Roadmap for Integration and System Test 1. Decide extent of all tests. Roadmap for Integration and System Test 2. For each iteration … 2.1 For each build … 2.2 Perform iteration system and usability tests -- see section tbd 3. Perform installation tests -- see section tbd 4. Perform acceptance tests -- see section tbd

Roadmap for Integration and System Test 1. Decide extent of all tests. 2. For each iteration … 2.1 For each build … 2.1.1 Perform regression testing from prior build 2.1.2 Retest functions if required 2. 1.3 Retest modules if required 2. 1.4 Test interfaces if required 2. 1.5 Perform build integration tests -- section 3.1 Development of iteration complete 2.2 Perform iteration system and usability tests -- sections 3.4, 3.5 System implemented Roadmap for Integration and System Test 3. Perform installation tests -- section 3.8 System installed 4. Perform acceptance tests -- section 3.7 Job complete

«application package» RPG Video Game Architecture Packages -- built around the domain classes Characters «framework package» EncounterCharacters «uses» «application package» EncounterCharacter PlayerCharacter ForeignCharacter PlayerQualityWindow Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

«application package» «application package» «application package» RPG Video Game Architecture Packages -- built around the domain classes Framework layer GameArtifacts GameEnvironment «framework package» «framework package» Characters RolePlayingGame «framework package» «framework package» «uses» Application layer EncounterGame «uses» EncounterCharacters «application package» «application package» EncounterGame Engagement EncounterCharacter EngagementDisplay «uses» EncounterEnvironment PlayerCharacter «application package» ForeignCharacter Area EncounterAreaConnection PlayerQualityWindow ConnectionHyperlink Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Factors Determining the Sequence of Integration Usage of modules by other modules build and integrate modules used before modules that use them Defining and using framework classes Exercising integration early Exercising key risky parts of the application as early as possible Showing parts or prototypes to customers technical (factors) risk reduction requirements Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

“view characters in areas” Integration Schedule Milestones Iterations Inception iteration Elaboration iterations Iteration 2 “elementary interaction” Iteration 1 “view characters in areas” Builds Modules

“view characters in areas” Month 1 Month 2 Month 3 Month 4 Month 5 Integration Schedule 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 Milestones Proto. requirements Complete prototype Iterations Inception iteration Elaboration iterations Iteration 2 “elementary interaction” Iteration 1 “view characters in areas” Builds build 1 build 2 build 3 . . . . . . . Modules Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

“view characters in areas” Month 1 Month 2 Month 3 Month 4 Month 5 Integration Schedule 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 Milestones Proto. requirements Complete prototype Iterations Inception iteration Elaboration iterations Iteration 2 “elementary interaction” Iteration 1 “view characters in areas” Builds build 1 build 2 build 3 GameEn- vironment package Characters package RolePlaying- Game package Modules Encounter- Environ- ment package Encounter Characters package EncounterGame package Integrate & test Integrate & test Integrate & test Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

3. The testing process

Encounter Continual Integration week 3 RolePlayingGame Encounter Continual Integration week 3 EncounterGame Characters GameCharacter Layout EncounterCharacters EncounterLayout Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Encounter Continual Integration week 7 RolePlayingGame RPGame EncounterGame Characters GameCharacter Layout EncounterCharacters Map EncounterLayout EncounterCast «facade» EncounterEnvironment «facade» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Encounter Continual Integration week 11 RolePlayingGame Encounter Continual Integration week 11 RPGame EncounterGame Characters GameCharacter Layout EncounterCharacters Map EncounterLayout EncounterCast «facade» EncounterEnvironment «facade» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

EncounterEnvironment RolePlayingGame Encounter Continual Integration week 15 RPGame EncounterGame Characters EncounterGame «facade» GameCharacter Layout EncounterCharacters Map Location EncounterCharacter EncounterLayout EncounterCast «facade» EncounterEnvironment «facade» Area Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Plan and Execute Integration Tests One way to ... Plan and Execute Integration Tests 1. Decide how and where to store, reuse and code the integration tests. show this in the project schedule 2. Execute as many unit tests (again) as time allows this time in the context of the build no drivers or stubs required this time prioritize by those most likely to uncover defects 3. Exercise regression tests to ensure existing capability has not been compromised 4. Ensure build requirement are properly specified 5. Exercise use cases that the build should implement test against the SRS 6. Execute the system tests supported by this build Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Relationship Between Use Cases, Iterations and Builds

Relationship between Use Cases, Iterations and Builds … 4 Iteration 5 … 6 5.2 build 5.3 5.4 Use case 7 * Use case 14 * * Use case 9 Use case 23 * «extends» or «includes» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Final Code Build and Integration Schedule: a Banking Example week 23 week 31 biweekly daily weekly code builds baseline release

Final Code Build and Integration Schedule: a Banking Example week 23 week 31 biweekly daily weekly code builds baseline Integration of module into baseline bank query module release tasks bank deposit module bank withdrawal module Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Typical Day-by-Day Code Integration Process biweekly daily weekly builds week 23 week 31 release

Typical Day-by-Day Code Integration Process Run regression tests 6 pm 7 am development development time Confirm baseline or revert to previous baseline Freeze development biweekly daily weekly builds week 23 week 24 week 25 week 26 week 27 week 28 week 29 week 30 week 31 release = overnight regression test Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Artifacts and Roles for Integration Testing* Component engineer Integration tester System tester Test engineer . . . . . . . . . . . . . . . . . . responsible for . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Artifacts and Roles for Integration Testing* Component engineer Integration tester System tester Test engineer . . . . . . . . . . . . . . . . . . responsible for . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test evaluation  Use-case model Test plan Test procedure Test component Defect management Test case *Jacobson et al: USDP

Interface Testing for Encounter EncounterCharacters EncounterCast «facade» getTheEncounterCast() getThePlayerCharacter() getTheForeignCharacter() Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Interface Testing for Encounter EncounterGame InterfaceTest «test class» EncounterGame «facade» getTheEncounterGame() getState() setState() handleEvent() References all packages EncounterCharacters EncounterCast «facade» getTheEncounterCast() getThePlayerCharacter() getTheForeignCharacter() EncounterEnvironment EncounterEnvironment «facade» setLocation() Class relationships not fully shown. Area Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Interface Test Scenario of Encounter Kitchen Interface Test Scenario of Encounter Dressing room Courtyard Living room Dungeon Study Key: = connection Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 20001), with permission. Graphics reproduced with permission from Corel.

Reliability / Availability Types of System Tests* 1 Volume Subject product to large amounts of input. Usability Measure user reaction (e.g., score 1-10). Performance Measure speed under various circumstances. Configuration Configure to various hardware / software e.g., measure set-up time. Compatibility -- with other designated applications e.g., measure adaptation time. Reliability / Availability Measure up-time over extended period. *see Kit [Ki]

Security Resource usage Install-abililty Recoverability Subject to compromise attempts. e.g., measure average time to break in. Resource usage Measure usage of RAM and disk space etc. Install-abililty Install under various circumstances. measure time to install. Recoverability Force activities that take the application down. measure time to recover Serviceabililty Service application under various situations. measure time to service Load / Stress Subject to extreme data & event traffic Types of System Tests* 2 * see Kit [Ki]

Key Attributes for Usability Testing* Accessibility How easily can users enter, navigate & exit? e.g., measure by average time taken to . . . Responsiveness How quickly does the application allow the user to accomplish specified goals? e.g., measure by average time taken Efficiency Degree to which the number of required steps for selected functionality is minimal “minimal” deduced in theory e.g., measure by minimal time / average time Comprehensibility How easy is the product to understand and use with documentation and help? e.g., measure time taken for standard queries Key Attributes for Usability Testing* * Adapted from Kit [Ki].

4. Documenting integration and tests

ANSI/IEEE 829-1983 Software Test Documentation (reaff. 1991) 1. Introduction 2. Test plan items under test, scope, approach, resources, schedule, personnel 3. Test design items to be tested, the approach, the plan in detail 4. Test cases sets of inputs and events 5. Test procedures steps for setting up and executing the test cases

ANSI/IEEE 829-1983 Software Test Documentation (reaff. 1991) 1. Introduction 2. Test plan items under test, scope, approach, resources, schedule, personnel 3. Test design items to be tested, the approach, the plan in detail 4. Test cases sets of inputs and events 5. Test procedures steps for setting up and executing the test cases 6. Test item transmittal report items under test, physical location of results, person responsible for transmitting 7. Test log chronological record, physical location of test, tester name 8. Test incident report documentation of any event occurring during testing which requires further investigation 9. Test summary report summarizes the above

System Test Documentation in Context SPMP Software Project Management Plan SCMP Software Configuration Management Plan -- statement of procedures Appendix -- references all versions of documents SDD Software Design Document Source Code STD Software Test Documentation SRS Software Requirements Specification Key: “Refers to” Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Organization of Integration and System Test Documentation** SCMP STD‡ Software Test Documentation consists of ... Integration T.D.‡ System T.D.‡ Acceptance T.D.‡ Installation T.D.‡ references ... ‡ Test Documentation, each divided into: Introduction Test plans Test designs Test cases Test procedures Test log Build 1 T.D.‡ Build 2 T.D.‡ Build 3 T.D.‡ ** With R. Bostwick Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

5. The Transition iterations

Goals of the Transition Iterations Find defects through customer use Test user documentation and help Requirements Analysis Design Implemen- tation Test Transition Iter. #m+1 Iter. #k …

Goals of the Transition Iterations Find defects through customer use Test user documentation and help Determine realistically whether application meets customer requirements Retire deployment risks Satisfy miscellaneous marketing goals Requirements Analysis Design Implemen- tation Test Transition Iter. #m+1 Iter. #k …

Alpha- and Beta- Releases In-house and highly trusted users Multiplies testing Previews customer reaction Benefits third-party developers Forestalls competition Alpha

Alpha- and Beta- Releases In-house and highly trusted users Multiplies testing Previews customer reaction Benefits third-party developers Forestalls competition Alpha Selected customers Multiplies testing activity Gets customer reaction Beta Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Roadmap for the Transition Iterations Define population Plan defect collection Identify stopping criteria 1. Plan alpha and beta testing.

Roadmap for the Transition Iterations Define population Plan defect collection Identify stopping criteria 1. Plan alpha and beta testing. Prepare Distribute & install Carry out (users / customers) Gather defect reports Observe stopping criteria Correct defects 2. Conduct alpha testing. 3. Conduct beta testing. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Completing a particular test methodology Complete the procedures of a method or tool. Estimated percent coverage for each category predetermine percent of each & how to calculate e.g., “95% statement coverage” Error detection rate predetermine rate with given severity level e.g., “2 medium severity defects or less per 100 hours of operation” Total number of errors found (if possible) computed from a percentage of remaining defects predetermine percent e.g., “95% of estimated existing defects found ” Stopping Criteria * Kit [Ki]

Stopping Criteria: Graphical Representation Percentage of deposit transaction types tested % Target: 95% week 1

Stopping Criteria: Graphical Representation Number per 1000 hrs Stopping Criteria: Graphical Representation Error detection rate Target: <= 7 per1000 hrs for 4 weeks % Percentage of deposit transaction types tested Target: 98% Target: 91% Percentage of withdrawal transactions tested week 1 week 10 week 20 End tests Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

6. Quality in integration, verification and validation

functionality after fact documented, standardized, tailorable CMM Levels (SEI) 1. Initial undefined, ad hoc tracks cost, schedule, functionality after fact documented, standardized, tailorable detailed measurement; control continual quantified process improvement 2. Repeatable 3. Defined 4. Managed 5. Optimized

Postmortem Example: Requirements Analysis Through System Integration Phase Metric collection Controllability Action items   Require-ments Analysis Only 2of 4 requirements metrics maintained Good -- problem was neglect, not lack of time Designate QA engineer to maintain SRS and all four metrics. LD by 3/1 Design Failed to define metrics Poor --Completed in 140% of scheduled duration H.R. to select best three metrics for this type of application; estimate cost and schedule consequences; by 3.5 LD to describe how we should prioritize design activities; by 4/1 ST to decide whether insufficient time was allocated to design , or whether the process was inefficient, and identify reasons why; by 3/15 Implementa-tion Good Completed in 130% of scheduled duration Revise line-of-code estimation methods; identify top three reasons for overrun; J.A. by 3/5 Integration and release Applied too many useless metrics Adequate Eliminate "rate of beta site signup" metric. Re-assess effectiveness of the other metrics used. BV by 3/10 Postmortem Example: Requirements Analysis Through System Integration Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

7. Tools for integration and system testing

Capabilities of Automated System Test Tools 1. Record mouse and keyboard actions to enable repeated playback 2. Run test scripts repeatedly 3. Enable recording of test results 4. Record execution timing 5. Record runtime errors

Capabilities of Automated System Test Tools 1. Record mouse and keyboard actions to enable repeated playback 2. Run test scripts repeatedly 3. Enable recording of test results 4. Record execution timing 5. Record runtime errors 6. Create and manages regression tests 7. Generate test reports 8. Generate test data 9. Record memory usage 10. Manage test cases 11. Analyze coverage

Types of Capture/Playback Tests* Native / software intrusive test software intermingled with software under test could compromise software under test least expensive Native / hardware intrusive test hardware intermingled with software under test Non-intrusive uses separate test hardware does not compromise software under test most expensive * adapted from Kit [Ki]

Memory Usage Test Tools Memory leaks detect growing amounts of unusable memory inadvertently caused by the implementation Memory usage behavior confirm expectations identify bottlenecks Data bounds behavior e.g., confirm integrity of arrays e.g., detect attainment of limiting values Variable initialization indicate un-initialized variables Overwriting of active memory

Provide user interface Organize tests Test Case Management* Provide user interface to manage tests Organize tests for ease of use for maintenance Manage test execution sessions to run tests selected by user Integrate with other test tools to capture and play back to analyse coverage Provide reporting Provide documentation * adapted from Kit [Ki]

8. Summary

Summary of System Integration and Verification: Integration process executed in carefully planned builds Integration testing: each build System testing: whole application Regression testing: verify that changes do not compromise pre-existing capabilities Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Case study - SCMP: Appendix A Plan for Integration Baselines

EncounterEnvironment Integration Plan Build 3 EncounterGame Build 1 EncounterGame EncounterCharacters EncounterCast Build 2 EncounterEnvironment EncounterEnvironment Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Build 1 GameCharacters GameCharacter Encounter Characters «framework package» GameCharacter Encounter Characters EncounterCharacter EncounterCast «façade» «singleton» PlayerCharacter ForeignCharacter Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

EncounterEnvironment Build 2 GameEnvironment GameAreaConnection GameArea GameCharacter GameLayout Area EncounterEnvironment «facade» EncounterCast «facade» EncounterEnvironment Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Status After Build 2 Characters GameEnvironment EncounterCharacters «framework package» «framework package» EncounterCharacters EncounterLayout Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Build 3 -- Includes Builds 1 and 2 (not shown) RolePlayingGame RPGMouseEventListener notifyOfEvent() RPGame handleEvent() GameState handleEvent() EncounterGame <<singleton>> Engaging handleEvent() Waiting handleEvent() Engagement Reporting handleEvent() Preparing handleEvent() EngagementDisplay EncounterGame Key: Domain class Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Software Test Documentation for Encounter

Corresponding document sections Test Type Approach Corresponding document sections Unit White- and black box; method and class tests; test against D-requirements and design. SRS section(s): 3.2 Classes/Objects SDD section(s): 6. Detailed design Integration Gray box; mostly package-level; oriented to builds (1, 2, and 3); test against architecture and C-requirements. SRS section(s): 2. Overall description, 3.1 External interfaces, validate representative requirements in 3.2 Classes/Objects SDD section(s): 3. Decomposition description, 4. Dependency description, 5. Interface description. System Black box; all packages; whole system (Build 3); test against non-functional requirements, architecture and C-requirements. SRS section(s): 2. Overall description, 3.1 External interfaces, validate representative requirements in 3.2 Classes/Objects, 3.3 Performance requirements, 3.4 Design constraints, 3.5 Software system attributes, 3.6 Other requirements SDD section(s): 3. Decomposition description, 4. Dependency description, 5. Interface description; validate representative requirements in 6. Detailed design. Approaches and Documentation for Test Types

Approaches and Documentation for Test Types Acceptance Black box; all packages; whole system (Build 3); test against C-requirements and D-requirements. SRS section(s): 2. Overall description, 3.2 Classes/Objects Installation Black box; all packages; whole system (Builds for customer specific configurations); test against C-requirements and D-requirements. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Features to be Tested in Build 1 Document Section Requirement Title SRS 2.1.2.2 User interface for setting quality values   3.1.1.2 3.2.EC Encounter characters 3.2.FC Foreign characters 3.2.P Player characters 3.2.PQ The player quality window SDD for RPG framework 3.1.2 Characters package 5.0 Interface description SDD for Encounter EncounterCharacters package 4.2 Inter-process dependencies 5.1.2 Interface to the EncounterCharacters package Features to be Tested in Build 1

Test Document Identifiers Build 1 Test Plan Build1_TP Build 1 Test Design Specification Build1_TD Build 1 Test Case Specifications Build1_TC1 to Build1_TC… Build 1 Test Procedure Specifications Build1_TP1 to Build1_TP… Build 1 Test Logs Build1_LOG1 to Build1_LOG… Build 1 Test Incident Report Build1_InRep1 to Build1_InRep… Build 1 Test Summary Report Build1_SumRep1 to Build1SumRep… Test Document Identifiers Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Integration Test Inputs, Outputs, and Actions   Quality Player input value Foreign input value Other Action Inte-gra-tion Test # B1.1 N/A Get player character Verify by name B1.2 Get foreign character B1.3 Concentra-tion 30 40 Verify output values == input values B1.4 Stamina B1.5 . . . . . Integration Test Inputs, Outputs, and Actions Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Build 1 Test Log Result Defect reference Test # 1 Passed N/A 2 Failed   Result Defect reference Test # 1 Passed N/A 2 Failed 1823 3 Data lost -- To be repeated 4 Loss of precision in returned value 2872 5 . . . . . Build 1 Test Log Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Architecture and Modularization of Encounter Role-playing Game EncounterGame EncounterGame «facade» EncounterCharacters EncounterCast «facade» EncounterEnvironment EncounterEnvironment «facade» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Sequence Diagram for Initialize Use Case main player character: Player Character :Player quality window dressing room: Area :Encounter- Game User 1a*. «create» 1b. «create» 2. «create» 3a. enter quality value 3b. setQuality() 4. select exit for character 5. move() * Numbering keyed to use case Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Sequence Diagram for Encounter Foreign Character Use Case game :Encounter Cast freddie: Foreign Character engagement: Engagement 1.1 displayForeignChar() :Player’s main character 1.2 display() 1.3 «create» 2. execute() :Engagement Display 2.1 setPlayerQuality() 2.2 setQuality() 2.3 setForeignQuality() 3.1 «create» 2.4 setQuality() 3.2 displayResult() Sequence Diagram for Encounter Foreign Character Use Case Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.