![Page 1: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/1.jpg)
Integration and Component basedIntegration and Component-based Software Testing
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 1
![Page 2: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/2.jpg)
Learning objectivesLearning objectives
• Understand the purpose of integration testing• Understand the purpose of integration testing– Distinguish typical integration faults from faults that
should be eliminated in unit testingshould be eliminated in unit testing– Understand the nature of integration faults and how
to prevent as well as detect themto prevent as well as detect them
• Understand strategies for ordering construction and testingand testing– Approaches to incremental assembly and testing to
reduce effort and control riskreduce effort and control risk
• Understand special challenges and approaches for testing component based systems
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 2
for testing component-based systems
![Page 3: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/3.jpg)
What is integration testing?What is integration testing?
Module test Integration test System testModule test Integration test System test
Specification: Module interface
Interface specs, module breakdown
Requirements specification
Visible structure: Coding details Modular structure (software architecture)
— none —( )
Scaffolding Some Often extensive SomeScaffolding required:
Some Often extensive Some
Looking for faults Modules Interactions System Looking for faults in:
Modules Interactions, compatibility
System functionality
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 3
![Page 4: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/4.jpg)
Integration versus Unit TestingIntegration versus Unit Testing
• Unit (module) testing is a necessary foundation• Unit (module) testing is a necessary foundation– Unit level has maximum controllability and visibility
Integration testing can never compensate for – Integration testing can never compensate for inadequate unit testing
Integration testing may serve as a process check• Integration testing may serve as a process check– If module faults are revealed in integration testing,
they signal inadequate unit testingthey signal inadequate unit testing– If integration faults occur in interfaces between
correctly implemented modules the errors can be correctly implemented modules, the errors can be traced to module breakdown and interface specificationsp
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 4
![Page 5: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/5.jpg)
Integration Faults
• Inconsistent interpretation of parameters or values– Example: Mixed units (meters/yards) in Martian Landerp ( y )
• Violations of value domains, capacity, or size limits– Example: Buffer overflow
• Side effects on parameters or resources– Example: Conflict on (unspecified) temporary file
O itt d i d t d f ti lit• Omitted or misunderstood functionality– Example: Inconsistent interpretation of web hits
• Nonfunctional properties• Nonfunctional properties– Example: Unanticipated performance issues
• Dynamic mismatchesDynamic mismatches– Example: Incompatible polymorphic method calls
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 5
![Page 6: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/6.jpg)
Example: A Memory LeakExample: A Memory Leak
Apache web server, version 2.0.48Apache web server, version 2.0.48Response to normal page request on secure (https) port
static void ssl io filter disable(ap filter t *f) { bio filter in ctx t *inctx = f >ctx;{ bio filter in ctx t inctx = f->ctx;
i t l NULL No obvious error but inctx->ssl = NULL; inctx->filter ctx->pssl = NULL;
No obvious error, but Apache leaked memory slowly (in normal use) or
} quickly (if exploited for a DOS attack)
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 6
![Page 7: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/7.jpg)
Example: A Memory LeakExample: A Memory Leak
Apache web server, version 2.0.48Apache web server, version 2.0.48Response to normal page request on secure (https) port
static void ssl io filter disable(ap filter t *f) { bio filter in ctx t *inctx = f >ctx;{ bio filter in ctx t inctx = f->ctx;
SSL_free(inctx -> ssl);i t l NULL The missing code is for a inctx->ssl = NULL; inctx->filter ctx->pssl = NULL;
The missing code is for a structure defined and created elsewhere,
} accessed through an opaque pointer.
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 7
![Page 8: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/8.jpg)
Example: A Memory LeakExample: A Memory Leak
Apache web server, version 2.0.48Apache web server, version 2.0.48Response to normal page request on secure (https) port
static void ssl io filter disable(ap filter t *f) { bio filter in ctx t *inctx = f >ctx;{ bio filter in ctx t inctx = f->ctx;
SSL_free(inctx -> ssl);i t l NULL Almost impossible to find inctx->ssl = NULL; inctx->filter ctx->pssl = NULL;
Almost impossible to find with unit testing. (Inspection and some
} dynamic techniques could have found it.)
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 8
![Page 9: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/9.jpg)
Maybe you’ve heardMaybe you ve heard ...
• Yes I implemented • Yes, I implemented module A , but I
didn’t test it didn t test it thoroughly yet. It will be tested along will be tested along with module A when that’s ready that s ready.
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 10
![Page 10: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/10.jpg)
TranslationTranslation...
• Yes I implemented • I didn’t think at all • Yes, I implemented module A , but I
didn’t test it
• I didn t think at all about the strategyfor testing I didn’t didn t test it
thoroughly yet. It will be tested along
for testing. I didn t design module A for testability and I will be tested along
with module A when that’s ready
testability and I didn’t think about the best order to that s ready. the best order to build and test modules A and B modules A and B .
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 11
![Page 11: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/11.jpg)
Integration Plan + Test PlanIntegration Plan + Test Plan
• Integration test plan drives and is plan drives and is driven by the project “build plan”
...
...
project build plan– A key feature of the
system architecture Build Plan Test Plan
System Architecture
system architecture and project plan...
System Architecture
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 12
![Page 12: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/12.jpg)
Big Bang Integration TestBig Bang Integration Test
An extreme and desperate approach: An extreme and desperate approach:
Test only after integrating all modules
+Does not require scaffolding• The only excuse, and a bad one
- Minimum observability, diagnosability, efficacy, feedback
- High cost of repairg p• Recall: Cost of repairing a fault rises as a function of
time between error and repair
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 13
p
![Page 13: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/13.jpg)
Structural and Functional StrategiesStructural and Functional Strategies
• Structural orientation:• Structural orientation:Modules constructed, integrated and tested based on a hierarchical project structurebased on a hierarchical project structure– Top-down, Bottom-up, Sandwich, Backbone
F ti l i t ti• Functional orientation:Modules integrated according to application h t i ti f tcharacteristics or features– Threads, Critical module
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 14
![Page 14: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/14.jpg)
Top downTop down .
Top
stub A stub B stub Cstub stub B stub C
W ki f th t l l (i t f “ ” Working from the top level (in terms of “use” or “include” relation) toward the bottom.No drivers required if program tested from No drivers required if program tested from top-level interface (e.g. GUI, CLI, web app, etc.)
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 15
![Page 15: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/15.jpg)
Top downTop down ..
Top
A stub B stub Cstub B stub C
stub Ystub X
Write stubs of called or used modules at each step in constructionstep in construction
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 16
![Page 16: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/16.jpg)
Top downTop down ...
Top
A B CB C
stub Ystub X
As modules replace stubs, more functionality is functionality is testable
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 17
![Page 17: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/17.jpg)
Top down completeTop down ... complete
Top
A B CB C
until the program is
YX
... until the program is complete, and all functionality can be ytested
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 18
![Page 18: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/18.jpg)
Bottom UpBottom Up .
Driver Starting at the leaves of the “uses” hierarchy, we never need stubs
X
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 19
![Page 19: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/19.jpg)
Bottom UpBottom Up ..
Driver Driver but we must Driver ... but we must construct drivers for each module (as in
YX
(unit testing) ...
Y
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 20
![Page 20: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/20.jpg)
Bottom UpBottom Up ...
Driver
A i t di t ... an intermediate
module replaces a driver and needs its
YX
driver, and needs its own driver ...
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 21
![Page 21: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/21.jpg)
Bottom UpBottom Up ....
Driver DriverDriver Driver
A BB
YX
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 22
![Page 22: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/22.jpg)
Bottom UpBottom Up .....
Driver Driver Driver
A B C
YX
... so we may have several working subsystems YX subsystems ...
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 23
![Page 23: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/23.jpg)
Bottom Up (complete)Bottom Up (complete)
Top
A B CB C
YX
... that are eventually integrated into a i l tsingle system.
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 24
![Page 24: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/24.jpg)
SandwichSandwich .
Top (parts)
QuickTime?and aNone decompressor
are needed to see this picture.
Stub CC
Y
Working from the extremes (top and bottom) toward center bottom) toward center, we may use fewer drivers and stubs
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 25
drivers and stubs
![Page 25: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/25.jpg)
SandwichSandwich ..
Top (more)
QuickTime?and aNone decompressor
are needed to see this picture.
A CC
YX
Sandwich integration is flexible and adaptable but adaptable, but complex to plan
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 26
![Page 26: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/26.jpg)
ThreadThread ...
Top
QuickTime?and aNone decompressor
are needed to see this picture.
A CC
A “thread” is a portion of several
X
pmodules that together provide a user-visible program feature.
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 27
![Page 27: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/27.jpg)
ThreadThread ...
Top
QuickTime?and aNone decompressor
are needed to see this picture.
A B CB C
I t ti
YX
Integrating one thread, then another, etc we maximize etc., we maximize visibility for the user
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 28
![Page 28: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/28.jpg)
ThreadThread ...
Top
QuickTime?and aNone decompressor
are needed to see this picture.
A B CB C
YX
As in sandwich integration testing, we can minimize stubs can minimize stubs and drivers, but the integration plan may
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 29
integration plan may be complex
![Page 29: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/29.jpg)
Critical ModulesCritical Modules
• Strategy: Start with riskiest modules• Strategy: Start with riskiest modules– Risk assessment is necessary first step
May include technical risks (is X feasible?) process – May include technical risks (is X feasible?), process risks (is schedule for X realistic?), other risks
May resemble thread or sandwich process in • May resemble thread or sandwich process in tactics for flexible build order
E t ti t f d l t t t – E.g., constructing parts of one module to test functionality in another
K i t i i k i t d • Key point is risk-oriented process– Integration testing as a risk-reduction activity,
designed to deliver any bad news as early as possibledesigned to deliver any bad news as early as possible
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 30
![Page 30: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/30.jpg)
Choosing a StrategyChoosing a Strategy
• Functional strategies require more planning• Functional strategies require more planning– Structural strategies (bottom up, top down,
sandwich) are simpler) p– But thread and critical modules testing provide
better process visibility, especially in complex tsystems
• Possible to combineT d b tt d i h bl – Top-down, bottom-up, or sandwich are reasonable for relatively small components and subsystems
– Combinations of thread and critical modules Combinations of thread and critical modules integration testing are often preferred for larger subsystems
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 31
![Page 31: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/31.jpg)
Working Definition of ComponentWorking Definition of Component
• Reusable unit of deployment and composition• Reusable unit of deployment and composition– Deployed and integrated multiple times
Integrated by different teams (usually)– Integrated by different teams (usually)• Component producer is distinct from component user
Characterized by an interface or contract• Characterized by an interface or contract• Describes access points, parameters, and all functional and
non-functional behavior and conditions for using the non functional behavior and conditions for using the component
• No other access (e.g., source code) is usually available
• Often larger grain than objects or packages– Example: A complete database system may be a
component(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 33
![Page 32: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/32.jpg)
Components — Related ConceptsComponents — Related Concepts
• Framework• Framework• Skeleton or micro-architecture of an application• May be packaged and reused as a component, with “hooks” May be packaged and reused as a component, with hooks
or “slots” in the interface contract
• Design patternsg p• Logical design fragments• Frameworks often implement patterns, but patterns are not
f k F k t tt frameworks. Frameworks are concrete, patterns are abstract
• Component-based system• Component-based system• A system composed primarily by assembling components,
often “Commercial off-the-shelf” (COTS) components • Usually includes application-specific “glue code”
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 34
![Page 33: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/33.jpg)
Component Interface ContractsComponent Interface Contracts
• Application programming interface (API) is • Application programming interface (API) is distinct from implementation
Example: DOM interface for XML is distinct from – Example: DOM interface for XML is distinct from many possible implementations, from different sourcessources
• Interface includes everything that must be known to use the componentknown to use the component– More than just method signatures, exceptions, etc
May include non functional characteristics like – May include non-functional characteristics like performance, capacity, security
– May include dependence on other componentsMay include dependence on other components
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 35
![Page 34: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/34.jpg)
Challenges in Testing ComponentsChallenges in Testing Components
• The component builder’s challenge: • The component builder s challenge: – Impossible to know all the ways a component may be
usedused– Difficult to recognize and specify all potentially
important properties and dependenciesimportant properties and dependencies
The component user’s challenge: • The component user’s challenge: – No visibility “inside” the component
Of diffi l j d i bili f i l – Often difficult to judge suitability for a particular use and context
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 36
![Page 35: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/35.jpg)
Testing a Component: Producer ViewTesting a Component: Producer View
• First: Thorough unit and subsystem testing• First: Thorough unit and subsystem testing– Includes thorough functional testing based on
application program interface (API)application program interface (API)– Rule of thumb: Reusable component requires at
least twice the effort in design, implementation, least twice the effort in design, implementation, and testing as a subsystem constructed for a single use (often more)
• Second: Thorough acceptance testing– Based on scenarios of expected useased o sce a os o e pected use– Includes stress and capacity testing
• Find and document the limits of applicability pp y
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 37
![Page 36: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/36.jpg)
Testing a Component: User ViewTesting a Component: User View
• Not primarily to find faults in the component• Not primarily to find faults in the component• Major question: Is the component suitable for
thi li ti ?this application?– Primary risk is not fitting the application context:
U i i d d d i i i h i• Unanticipated dependence or interactions with environment• Performance or capacity limits• Missing functionality misunderstood API• Missing functionality, misunderstood API
– Risk high when using component for first time
• Reducing risk: Trial integration early• Reducing risk: Trial integration early– Often worthwhile to build driver to test model
scenarios long before actual integrationscenarios, long before actual integration
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 38
![Page 37: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/37.jpg)
Adapting and Testing a ComponentAdapting and Testing a Component
QuickTime?and aNone decompressor
are needed to see this picture.
Application
p
Adaptor
ComponentComponent
• Applications often access components through an adaptor, which can also be used by a test driver(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 39
![Page 38: PezzeYoung-Ch21-integration.ppt [호환 모드]dslab.konkuk.ac.kr/Class/2008/08SSD1/Lecture Note... · 2012. 9. 13. · Title: Microsoft PowerPoint - PezzeYoung-Ch21-integration.ppt](https://reader035.vdocuments.net/reader035/viewer/2022071606/614365986b2ee0265c02055d/html5/thumbnails/38.jpg)
SummarySummary
• Integration testing focuses on interactions• Integration testing focuses on interactions– Must be built on foundation of thorough unit testing
Integration faults often traceable to incomplete or – Integration faults often traceable to incomplete or misunderstood interface specifications
• Prefer prevention to detection and make detection easier • Prefer prevention to detection, and make detection easier by imposing design constraints
• Strategies tied to project build orderg p j– Order construction, integration, and testing to
reduce cost or risk
• Reusable components require special care– For component builder, and for component user
(c) 2007 Mauro Pezzè & Michal Young Ch 21, slide 40
For component builder, and for component user