Vous êtes sur la page 1sur 15

Software Components

With Retrospectors

Chang Charles Liu & Debra J Richardson


University of California, Irvine
July 1998

Problems of Testing

COTS component-based Software


Have no access to source code of COTS
component. Cant apply traditional codebased testing techniques.
Even with COTS source code, cant avoid
duplicated testing.
Traditional integration testing coverage
criteria may not apply any more.
Retrospectors

Problems of Testing

COTS component-based Software


For an
application that
never uses
Hide(), 100%
method
coverage can
never be
achieved.

Slideviewer

Slideviewer

Previous

Previous

Next

Next

Show

Show

Hide

Hide

Retrospectors

Problems of COTS component


producers
COTS component producers do not have
complete knowledge of future execution
context.
Their assumption about the expected
usage of the COTS component are
usually implicit.

Retrospectors

Problems of COTS component


producers (?)
How can component producers provide
usage guidance and testing information to
component consumers

Retrospectors

Solution: Retrospectors

Reside in software components


Assist software testing
Record testing and execution history
Communicates with tester-tools

Retro-component: Software components


with retrospectors
Retrospectors

Retrospectors v.s.
Introspectors
Records static
component
information
communicate to
builder tools
size wont change

Records dynamic
execution information
communicate to
builder tools and
tester tools
size changes
dramatically
Retrospectors

Design Principles
Automatic retrospection
Design-time v.s. Test-time v.s. Run-time
Support for both visible and invisible
components
Flexible test-time component test case
generators

Retrospectors

Architecture-Based Testing
and Retrospectors
ABT enhances traditional software testing
COTS component-based software creates
new problems for ABT
Retrospectors fill the gap

Retrospectors

ABT & Retrospectors:

Architecture-Based Testing
ABT enhances traditional software testing
by explicitly using architectural information
to decide integration testing order,
create/generate test cases, provide more
test coverage criteria, etc.

Retrospectors

10

ABT & Retrospectors:

Problems of ABT
Improvement in architecture techniques
and component models makes COTScomponent-based software a better way
of software development
COTS component-based software, the
very result of improvement of software
architecture technique, creates new
problems for ABT
Retrospectors

11

ABT & Retrospectors:

Problems of ABT

(contd)

ABT provides the overall testing


strategies. But individual components
cant support them.
We need a corresponding lower-level part
which works inside components to cooperate with ABT techniques.

Retrospectors

12

ABT & Retrospectors:

Retrospectors fill the gap


Retrospectors enhance and adjust
components to global ABT strategies
Retrospectors can be fine-tuned by
testers to provide best support for a
particular ABT technique.

Retrospectors

13

Perpetual Testing and


Retrospectors
Retrospectors can record all necessary
testing and execution information for
perpetual analysis and testing
Compressing history information, reducing
the size of retrospector, and minimizing
the performance impact, becomes critical.

Retrospectors

14

Conclusion
Retro-Components are much more
testable components.
Retro-Components help to apply ABT
techniques on COTS component-based
software.
Retro-Components bring component
producers understanding to component
consumers.
Retrospectors

15

Vous aimerez peut-être aussi