Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
ISBN Prentice-Hall, 2006 Chapter 8 Testing the Programs Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Integration testing Satish Mishra
Software Testing and Quality Assurance
Integration Testing Presented By Nesreen Ahmad. *Main Points:-  Definition Of Integration Testing.  Procedure Of Integration Testing.  Integration.
Illinois Institute of Technology
INTEGRATION TESTING ● After or during Unit Testing ● Putting modules together in a controlled way to incrementally build up the final system. ● Start with.
Outline Types of errors Component Testing Testing Strategy
Lecturer: Dr. AJ Bieszczad Chapter 87-1 How does software fail? Wrong requirement: not what the customer wants Missing requirement Requirement impossible.
Software Testing & Strategies
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Software System Integration
CH08: Testing the Programs
ECE 355: Software Engineering
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Overview Integration Testing Decomposition Based Integration
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Chapter 8 Testing the Programs Shari L. Pfleeger Joann M. Atlee
CPIS 357 Software Quality & Testing
Software Testing.
RUP Implementation and Testing
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
Software Testing Testing types Testing strategy Testing principles.
Article for last Tuesday u “Enhancing Software Testing by Judicious Use of Code Coverage Information” 1 540f07testing20nov06.
System Test Methods TESTTEME The Test Challenge Bottom Up Testing Strategy Integration Test System Test Types of Testing Unit Test = Code-based Testing.
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Testing the programs In this part we look at classification of faults the purpose of testing unit testing integration testing strategies when to stop testing.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Chapter 2.11 Program Validation. Reliable System = Reliable Hardware AND Reliable Software AND Compatible Hardware and Software.
Software Engineering Saeed Akhtar The University of Lahore.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
ISBN Prentice-Hall, 2006 Chapter 8 Testing the Programs Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Chapter 8 Testing the Programs. Integration Testing  Combine individual comp., into a working s/m.  Test strategy gives why & how comp., are combined.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Chapter 8 Testing the Programs 8.1 Software Faults and Failures 1. Introduction  faults: A: definition: the problem caused by error B: cause: X: the software.
CHAPTER 9 - PART 1 Software Testing Strategies. Lesson Outlines Definitions and objectives Software testing strategies Software test classifications White.
Software Testing By Souvik Roy. What is Software Testing? Executing software in a simulated or real environment, using inputs selected somehow.
Testing Integral part of the software development process.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Software Engineering TESTING Compiled by: Dr. S. Prem Kumar
Rekayasa Perangkat Lunak Part-13
Software Testing An Introduction.
Verification and Testing
Designing and Debugging Batch and Interactive COBOL Programs
Software testing strategies 2
Introduction to Software Testing
Chapter 8 Testing the Programs Shari L. Pfleeger Joann M. Atlee 4th Edition.
Higher-Level Testing and Integration Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 10 – Software Testing
Baisc Of Software Testing
Integration Testing CS 4311
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each component at lower hierarchy is tested individually; then the components that rely upon these are tested. Component Driver: a routine that simulates a test call from parent component to child component

Bottom-Up Testing Example A BC 1)Test B, C individually (using drivers) 2)Test A such that it calls B If an error occurs we know that the problem is in A or in the interface between A and B 3)Test A such that it calls C If an error occurs we know that the problem is in A or in the interface between A and C (-) Top level components are the most important yet tested last.

Top-Down Testing Example A BC 1)Test A individually (use stubs for B and C) 2)Test A such that it calls B (stub for C) If an error occurs we know that the problem is in B or in the interface between A and B 3)Test A such that it calls C (stub for B) If an error occurs we know that the problem is in C or in the interface between A and C * Stubs are used to simulate the activity of components that are not currently tested; (-) may require many stubs

Big-Bang Integration After all components are unit testing we may test the entire system with all its components in action. (-) may be impossible to figure out where faults occur unless faults are accompanied by component-specific error messages

Sandwich Integration Multi-level component hierarchy is divided into three levels with the test target being in the middle: -Top-down approach is used in the top layer; -Bottom-down approach used in the lower layer.

Sync & Stabilize Approach

Integration Strategies Comparison

Testing Object Oriented Systems Objects tend to be small and simple while the complexity is pushed out into the interfaces. Hence unit testing tends to be easy and simple, but the integration testing complex and tedious. (-) Overridden virtual methods require thorough testing just as the base class methods.

Testing Object Oriented Systems

Test-Related Activities 1)Define test objectives (i.e. what qualities of the system you want to verify) 2)Devise test cases 3)Program (and verify!) the tests 4)Execute tests 5)Analyze the results

Test Plan A document that describes the criteria and the activities necessary for showing that the software works correctly. A test plan is well-defined when upon completion of testing every interested party can recognize that the test objectives has been met.

Test Plan Contents What automated test tools are used (if any) Methods for each stage of testing (e.g. code walk-through for unit testing, top-down integration, etc.) Detailed list of test cases for each test stage How test data is selected or generated How output data & state information is to be captured and analyzed

Static & Dynamic Analysis Static Analysis: uncovers minor coding violations by analyzing code at compile time (e.g. compiler warnings, FxCop) Dynamic Analysis: runtime monitoring of code (e.g. profiling, variable monitoring, asserts, tracing, exceptions, runtime type information, etc)

Automated Testing Stub & driver generation Unit test cases generation Keyboard input simulation / terminal user impersonation Web request simulation / web user impersonation Code coverage calculation / code path tracing Comparing output to the desired

When to Stop Testing? Run out of time, money? Curiously, the more faults we find at the beginning of testing the greater the probability that we will find even more faults if we keep testing further! Finding and testing all possible path combinations though the code?

Fault Seeding Faults are intentionally inserted into the code. Then the test process is used to locate them. The idea is that: Detected seeded faults/total seeded faults = detected nonseeded faults/total nonseeded faults Thus we can obtain a measure of effectiveness of the test process and use it to adjust test time and thoroughness.

Confidence in the Software The likelihood that the software is fault-free: C = S/(S-N+1), if n <= N C = 1, if n > N Where S the number of seeded faults, N – the expected number of indigenous faults, n – number of indigenous faults found.

Read Chapter 8 from the white book.