1 Software Testing & Quality Assurance Lecture 15 Created by: Paulo Alencar Modified by: Frank Xu
2 Overview Functional Testing Structural Testing Integration and System Testing Process Models and Software Testing Integration Testing System Testing
3 Testing in the V-Model Requirements Detailed Design Module implementation Unit test Integration test System test Acceptance test Run tests Write tests Customer Developer Functional (BB) Structural (WB) Architectural Design
4 Unit testing –Testing of individual components Integration testing –Testing to expose problems arising from the combination of components System testing –Testing the complete system prior to delivery Acceptance testing –Testing by users to check that the system satisfies requirements. Sometimes called alpha testing Testing stages
5 Layered Tests /
6 Integration Testing Objectives: To expose problems arising from the combination To quickly obtain a working solution from components. Problem areas –Internal: between components Invocation: call/message passing/… Parameters: type, number, order, value Invocation return: identity (who?), type, sequence –External: Interrupts (wrong handler?) I/O timing –Interaction
7 Integration Testing Types of integration –Structural “Big bang” no error localization Bottom-up: terminal, driver/module, (driver module) Top-down: top, stubs, (stub module), early demo –Behavioral
8 System Testing Concerns with the app’s externals Much more than functional –Load/stress testing –Usability testing –Performance testing –Resource testing
9 Waterfall Model and Integration Testing The Waterfall model is closely associated with top-down development and functional decomposition Top down integration testing will start from the main and use stubs Bottom up integration testing will start from lower level functions and use drivers Big-bang integration testing will test all components at once Traditional integration testing integrates previously tested units with respect to the functional decomposition tree
10 Incremental Models and Integration Testing DesignCodingTestDeploymentDesignCodingTestDeploymentDesignCodingTestDeployment Requirements Release 1 Release 2 Release 3 Each release adds more functionality, i.e., a new increment Incremental Builds: Regression Testing Progression Testing
11 Evolutionary Models and Integration Testing DesignCodingTestDeploymentRequirementsDesignCodingTestDeploymentRequirementsDesignCodingTestDeploymentRequirements Feedback Version 1 New versions implement new and evolving requirements Incremental Builds: Regression Testing Progression Testing
12 Spiral Model and Integration Testing Rapid prototyping brings the operational / behavioral profile of the system in the requirements phase