An Evaluation of Software Test Environment Architectures

An Evaluation of Software Test Environment Nancy S. Eickehnann Information and and Computer University Irvine, Debra California [email protected]....
10 downloads 0 Views 1MB Size
An Evaluation

of Software Test Environment

Nancy S.

Eickehnann

Information

and

and Computer

University Irvine,

Debra

California

[email protected]

J. Richardson

Science

Of California

Department

Irvine

92715

USA

and [email protected]

Abstract

tating evaluation of developers claims concerning of STlk

So~are Test Environments (STES) provide a means of automating the test process and integrating testing tools to support required testing capabilities across the test process. Specifically, STES may support test planning, test management, test measurement, test failure analysis, test development, and test execution. The software architecture of an STE describes the allocation of the environment’s jimctions to spec.i$c implementation structures. An STE’S

Developing sophisticated testing capabilities through composition of less complex, more general components proved to be an extremely effective approach, it facilitates rapid prototyping and lower development costs for new tools as well as tool integration [17]. It has been demonstrated be evaluated

through

architecture,

where

structure

ing

activity

ally it is highly

error-prone,

Software Testing

in the development

time consuming

Environments

Environment

and costly.

and Oracle

is defined

testing tools to support a wide range

ment

the critical

of

quality

capabilities quently

made

a given

How drawn depiction

software,

has keen largely among

[6, 12, 14,5, ports

importance

rigorous

evaluation Comparisons

STES

18]. These

using

a taxonomic

illustrate

whether

task or has a specific

attribute.

well

an STE

meets

from

textual

descriptions.

complements

0270-5257/96 Proceedings

its intended

textual

$5.0001996 of ICSE-18

A

2. Create

IEEE

with

in

this

(Prolog with

Test

halysis

Integrated

to describe

that of [10],

a canonical

Test

SW

where

SAAM

steps:

functional

tem’s

their

the

structural

4. Choose

diagram

the SAAM

3. Allocate

partition

for

of each system’s

graphical

functional

struc-

notation.

partition

onto

each

sys-

decomposition.

a set of quality

attibutes

with

which

to

which

test

the

assess the architectures.

approach sup-

5. Choose

vides

graphical

a set of

quality

6. Evaluate

is usually

thereby

II

(Testing

used

and analyz-

is used

(CONVEX

of the following

a graphical

ture using

desired goals

is consistent

as consisting

1. Characterize

are fre-

a system

uniform

descriptions,

of

terminology

[8,10]. (SAAM)

the domain.

of S333s in the develop-

ignored.

TAOS

The

in this paper

the test pro-

II),

and CITE

Environment).

of test capabilities. Industrial use of STES provide significant benefits by reducing testing costs, improving test accuracy, improving software quality, and providing for [17, 20]. test reproducibility Despite

Version

SAAM

STF!S: PROTest

Support),

depiction

Method

for describing

[10].

three

of both system

such an analysis

method

can

software

graphical

Analysis

architectures

to examine

manu-

(STES) overeome the defi-

ciencies of manual testing through automating cess and integrating

paper

facilitates

an established

software

consists

A uniform

Architecture

qualities

of the system’s

an architecture

architectures

Software

provides

1 Introduction

that some system

an analysis

and functionality.

of system The

of high quality software. When testing is performed

qualities

Examples of typical claims are

The rule-based approach offers many advantages over more traditional test execution systems...which require that each test case carry with it a script or a program to perform the necessary executions and results verification [20].

architecture can facilitate or impede modifications such as changes to processing algorithms, data representation, or jimctionality. Perjorrnance and reusability are also subject to architecturally imposed constraints. Evaluation of an STE’S architecture can provide insight into modifiability, extensibility, portability and reusability of the STE. This paper proposes a reference architecture for STES. Its analytical value is demonstrated by using SAAM (So@are Architectural Anulysis Method) to compare three sojlware test environments: PROTest II (Prolog Test Environment, Version II), TAOS (Testing with Analysis and Oracle Support), and CITE (CONVEX Integrated Test Environment).

Software testing is a critical

Architectures

the degree

support

353

tasks

to which

for each task,

tion of the desired

facili-

concrete

attributes.

quality.

each architecture

thus indicating

pro-

satisfac-

To accomplish

this analysis, the SAAM

three perspectives: a canonical functional domain, system structure, and allocation to system structm. The tit

perspective,

the application

method

may be provided

2 Architectural partition

of

In this paper, the three STEs are presented as originally and then their system stmctum

A

can

then

be

attributes.

To ascertain tasks

absence

of

with

whether

quality with

partition

to

in the

quality

has a particular

quality,

The

supporta

analysis specific

attributable

partition

tbe functional

of

the application

perspective

required

or

through field.

or

extensive domain

analysis by researchers in the

Software Test Euvironmenta do not yet have a reference architecture to characterize their domain specific function-

to the sys-

tem.

ality. A domain analysis is needed to accomplish

In section 2, the three architectural analysis perspectives partition

am described.

The canonical

specific testing activities

functional

and test process automation.

notation

STEa pose a significant

that is

ing the architecture

for evaluat-

over the years the test process has increased

of STES.

the quality

of reusability

challenge for domain analysis.

as well as the evolution of the test process that should be automated by an STE. Gelperin and Hetzel point out that in scope

across the life cycle and has been refocused as to ita primary goals and objectives [9]. STH.S have not all kept up with the state-of-the-art in test process or its automation. To describe the STE’S process focus, we provide a history of test process evolution.

Section 3 describes each of the three STES to be evaluated PROTest II, TAOS, and CITE. Each is first described as originally diagramed and discussed by the authors and then nxast in the graphical notation used by SAAM along with an allocation of the canonical functional partition. Section 4 delhes

of that pro-

This is in part due to the rapid advances in test technology

used by SAAM to describe system structure is provided. Finally, the allocation of functionality to system structure is described. This section sets the groundwork

in an ideal test process

cess.

This results in a reference

for STES. Them the graphical

inclusive

[9] and the functions specific to the automation

is a result of a domain analysis of the test process

architecture

this. The

domain analysis and resulting canonical functional partition for STE5 requires that two aspects be evaluated the

1.1 Overview used by SAAM

by

ment Environments), provide fictional characterizations for their domains. In mature domains such as these, a canonical functional partition has been accomplished

detertasks

functional

provides

tems) and the Toaster model for SDES (Software Develop-

specific

STE.

the qualities

is then

the presence

Perspectives

SAAM. Reference architectures, such as the Arch/Slinky Mets-model for UIMSS (User Jnterface Management Sys-

The architecture

to demonstrate

the architecture

not in accordance

respect

if a system

are chosen

that

functional

decomposition.

evaluated

concrete mines

the canonical

to its structural

canonical

domain

the analysis. For each STE,

Analysis

2.1 Canonical Functional Partition

is recast in the

SAAM architectural notation. Using a uniform notation permits a common level of understanding on which to base

allocated

as an analysis method for software

Using SAAM, architectural analysis is approached from three perspectives: a canonical functional partition, system stmcture, and allocation of functionality to system structure. This section describes these three perspectives.

by a reference

architecture. If one is not available, a domain analysis can be done to determine the necessary partitioning of functionality. published

of SAAM

architectures.

partition of the of functionality

a canonical functional

domain,

evaluation

takes

Test process evolution

of test arti-

is shown in figure

process began with a debugging

1. The test

focus in the early 50’s,

facts analyzed in this paper. The test artifacts and the functional partition to which they are relevant are deactibed. Each of the three STES is then evaluated with respect to test artifact reusability.

where the process took an ad hoc approach of simply finding bugs. The test process then evolved to a demonstration

Section 5 concludes with a summary of results and contributions as well as a discussion of future work.

the destruction

Specific contributions of the paper include an initial reference amhitectum for So&vare Test Environments (STEs), a comparison of three WE-s using the Software an evaluation of architecArchitectural Analysis Meth@

ing.

tural constraints on test artifact reusability,

[13]. The evaluation

period, which focused on making sure the program ran and solved gram

the intended to tid Next,

integration throughout

354

which

failures

This

period

focused

through

of

methods

the software

to

period

provide

lifecycle,

Processing

was followed

on executing

as described

Systems

test-

addressed

evaluative

(FIRS)

by

a pro-

implementation-based

an evaluation-oriented

eral Information

and further

problem.

period,

the

support in the Fed-

guidelines

process focuses on detecting require

ments, design, and implementation

faults, which requires

an early life cycle testing effort. The current test process is

Test Process Evolutiou

canonical

a life cycle prevention model, which focuses on fault prevention through parallel development and test processes.

Functional Partitions

The change of emphasis has been from detection of faults to one of prevention of faults. 1950-1956 1957-1978 1979-1982 1983-1987 1988-1995

The The The The The

Debugging-Oriented Period Demonstration-Oriented Period Destruction-Oriented Period Evaluation-Oriented Period Prevention-Oriented Period

Debugging ........................ ...................... Demonstration

Figure 1. Test process evolution, adapted from [9] Our domain

analysis

evaluated

cess, test process automation,

the software

and current ST&.

....................................

test pro-

Destruction

The anal-

ysis resulted in a partitioning of the STE domain into six canonical functions: test execution, test development, test failure analysis, test measurement, test msnagemen~ and test planning. Test Execution



mented

source

and recording

of

Evaluation

Test Management

includes the execution of the instrucode

...........................

Test Measurement

— \

execution

traces. Test artifacts ntcorded include test output resuha, test execution traces, and test status.

Test Plaoning

/ /

................. Prevention

\ ~----------

● Test Development includes the specification and implementation of a test cotiguration. This results in a test suite, the input related test artifacts, and documentation. Specific artifacts developed include test

Figure 2. STEP Model

oracles, test cases, and test adequacy criteria.

tition resulting f%om the STE domain analysis provide

Test Failure



Analysis

and documentation

The test process evolution

includes behavior verification

for the Software

Test Environment

parthe

Pyramid

of test execution

(STEP) model. The STEP model, shown in figure 2, strati-

pass/fail statistics. Specific artifacts include pass/fail state and test failure reports. ● Test Measurement includes test coverage measure-

fies test functionalities from the apex of the pyramid to its base in a corresponding progression of test process evolu-

ment and analysis.

and analysis

foundation

and canonical functional

Source code is typically

tion as described in figure 1. Each period represented in the pyramid includes the functionalities of previous peri-

instru-

mented to collect execution traces. Resulting test artifacts include test coverage measures and test fail-

ods as you descend from the apex to the base.

ure measures.

of test execution. Test execution is clearly required by any



Test Management

persistence, execution

artifact

The top section of the pyramid

includes support for test artifact relations

state preservation.

persistence,

represents the function

test process. The test process focus of the debugging-oriented period was solely on test execution.

and test

The second segment of the pyramid,

Test process automation

from the top, is

divided into two scalene triangles. The smaller scalene triangle representa test development. The larger scalene tri-

requires a repository for test artifacts. A passive repository such as a file serves the basic need of storage. However, an active repository is needed to support relations among test artifacts and provide for their persistence. ● Test PZanning includes the development of a master

angle represents test failure analysis. The relative positions and sizes have semantic significance. Test development played a more significant role to the overall test process during the demonstration-oriented and destruction-oriented periods due to the manual intensive nature of test development at that time. Test development methods have not significantly changed, although they have improved in reliability and reproducibfity with automation. Thus, their role in test process has diminished in

test plan, the features of the system to be tested, and detailed test plans. Included in this function are risk assessment issues, organizational training needs, required and available resources, comprehensive test strategy, resource and staffing requirements, roles and responsibility allocations, and overall schedule.

significance

355

as you move ahead in test procxws evolution.

Test failure analysis was less important manually,

as interactive

checking

when performed

Components

benefit for test behavior

verification.

to test failure

analysis

have increased

sophistication,

making

The methods applied

test failure

in their level

are

specification-based

test

oracles

I

of

o

analysis more signifi-

cant to the overall test process. One of the most significant advances

which

enables early entry of the test process into the life cycle. This is a key difference in test process focus as it progresses towards the prevention-oriented period.

Computational Component

I

[

period,

(3

which represents the point of

departure from a phase approach to a life cycle approach, A significant

change in the test process focus is that testing

is applied in parallel to development of development. and improving

Test measurement

reused. Test management The base, or foundation,

is critical

Software

Active Data Repository

of the pyramid

Test Environment

is test planning.

Pyramid

presented here is an initial

to refine and improve

recognizes a number of distinct design levels, each with its own notations, models, componentry, and analysis techniques. A more detailed and complex lexicon would be required for a more focused analysis. This is not within the scope or objectives work.

reference

attempt at a dia-

2.3 Allocation ture

the STEP model and wel-

of this paper but is planned for future

of Functional

The allocation

Partitions

of domain functionality

to Struc-

to the software

structure of an STE completes the graphical representation of the STE. The allocation provides the mapping of a system’s intended functionality to the concrete interpretation in the implementation. SAAM focuses most closely on

of the term architecture, canonical functional partition is used in the remainder of the paper in deference to reference architecture.

allocation

SAAM Structure

as the primary

differentiating

factor

among

architectures of a given domain.

Structure represents the decomposition and their

by of

essary level of detail for a system level comparison. The field of software architecture, not unlike hardware design,

come other researchers to do the same. To avoid overuse

components

Uni/Bi Directional

the notation is achieved by abstracting away all but a nec-

for test process repro-

grammatic representation of the canonical functional partition of the Software Test Environment domain. We will

2.2

+

SAAM’S goal is to provide a uniform representation which to evaluate architectural qualities. The simplicity

and

Test planning is the essential component of the preventionoriented period, Test planning introduces the test process before requirements, so that rather than being an afterthought, testing is preplanned and occurs concurrently with development.

continue

Control Flow

Figure 3. SAAM graphical architectural notation

ducibility.

The

Passive Data Repository

the test process.

that is created and must be stored, retrieved,

architecture

Uni/Bi Directional



4

not merely at the end also enables evaluating

Approaching the base of the pyramid, the fourth segment representa test managemen~ which is essential to the evaluative test process due to the sheer volume of information

Data Flow 4

Test measurement is represented by the third segment in the pyramid. Test measurement is required to support the evaluation-oriented

Connections

by humans added little

interconnections.

of the system The

3 Architectural

graphical

notation used by SAAM is a concise snd simple lexicon, which is shown in figure 3. In the notation used by SAAM

In this section the domain

there are four types of components: a process (unit with an independent thread of control); a computational component (a procedure or module); a passive repository (a file); and an active repository (database). There are two types of connectom: control flow and data flow, either of which may be uni or hi-directional.

Descriptions we evaluate

of Software

We &-at duplicate components

referred Next,

to the

the system in this

authors’

level

by their

from

diagram

papem

for

graphical

diagram

respective

authors.

briefly.

The reader

detailed

we recast each STE in the graphical

SAAM.

356

three test environments

Test Environments.

for each STE as published discuss

of STES

We is

information.

notation

osed by

Here, we name components of all three systems of stillar

P

functionrdity

DLT/1 Program

the same and indicate descriptions

narned components.

The re-characterization

tectures in a uniform, and common

structure

what components

the authora’ original

of the archi-

evenly abstract graphical

terminology

provides

a sound

diagram basis for

understanding and comparison. Each STE is evaluated in terms of ita stated goals and compared with the STEP model to determine its process focus. Finally, the three STE architectures are compared as represented in the notation used by SAAM.

Checker

3.1 Teat

PROTest

PROTest

II

11 Author’s

Description.

The PROTest

system, as depicted by [2], is shown graphically 4. PROTest v

u

description

\

Report

II is composed

of five components:

a test

of the system can be found in [2].

PROTest II SAAM Description and Functional Allocation. As shown in figure 5, PROTeat 11includes three of

(1 Test Rept

the canonical development,

functional

partitions

and test measurement.

test managemen~

and test planning

often typical of interactive

Figure 4. The PROTest II system, adapted from [2]

The”SAAM

test execution,

analysis,

are missing,

which is

test environments

re-characterization

test

Test failure [11].

of the PROTest 11 archi-

tecture facilitates determining g if system goals achieved. In particular, a major deficiency highlighted

,------------------,

, , , ,

------

------

;-------------------------------

-------------------------

,

Test Development

,-----~

----------------------------------

-------

Test Measurement

s I

4 --------------

t

\ ,

+ ---------------------

I 1

I t

---,

,

, I

I I

I ( 6 # 1

h

t

, 0 ,

, , , ,

# 1 # I 1 t I I I , t

o ,

,

0 $ ,

are is

#

Test Execution

I

, ,

I t

t b

r ,

1

I

t

1

I 1 t 4

I I 1 I

-----, t

I 8

I I

o I I

l ----------------------

II

in figure

driver, structure checker, test input generator, test coverage analyzer, and a test report generator. PROTest II also provides a graphical user interface. A detailed textual

Teat Report Generator

~

in

correspond to these like-

--------------------------------------

, ,--------------------------------------------------------

.

Figure 5. The PROTest II system structure and functional allocation through SAAM.

357

----------

J

II

TAOS -.,;

.-----

,..

.:. ;

I

1

=-----

: Teat

Developmen~-------------

..::. .+-

,.--”’-

m&

&’y&----M:me”t

. . . . .* Teat

Management S’=.+

Figure 6. The TAOS system, source[171 II Process Focus. The SAAM

PROTest that the PROTest II architecture

does not have structural

PROTest

separation between the functions of test development and test measurement. The test input generation process is interdependent with the test coverage process. This is not evident in the author’s diagram but is explicit in the SAAM architectural description. PROTest II accomplishes the function of test measurement by analyzing instrumented source code to determine what clauses will be covcoverage of clauses is reported

along with the test cases

The resulting

with

test development

srchitectme

as is clear in the functional

and test execution.

structural

a basis to compare

the STE

of the STEP Model.

implementation-based

entry

point

for

testing

PROTest

II system

The PROTest

II

supports

II does not support

development

life

3.2

cycle.

system,

may extend

However, mentioned

its range

diagram

of

composition. to the process II system the

life

is post-implementation.

and thus the test process

part of a larger

thus,

executing

[9]. PROTest

which

has highly coupled components,

the system’s

ports

failures,

that did not execute (called the failed to execute report). These structural choices create interdependencies of test measurement

It also provides evolution

PROTest

ered given the test cases that are chosen. The predicted

II highlights

The

a program

to cause

has a destructive

the test process the PROTest

supcycle

focus

across the II STE

but not described

is

in [2],

of support.

TAOS

TAOS Author’s Description. The TAOS system as depicted by [17], is shown graphically in figure 6. TAOS is composed of several components: a test generator, test criterion deriver, artifact repository, parallel test executor,

overlays in figure 5,

The objective of PROTest II is to provide a fully automated test environment for Prolog programs [2]. PROTest II does not achieve this goal but rather provides an interactive test environment that partially automates test execu-

behavior verifier,

tiou test development, and test measurement. The developers state that the strength of PROTest II as a system stems from the idea of delining coverage in real logic

and coverage analyzer. TAOS also inte-

grates several tools ProDAG ysis Graph), Artemis

(Program Dependenm

(source code instmmentor),

Anal-

and LPT

@@age processing Tools). The TAOS system is shown in figure 6. A complete detailed textual description of TAOS and its integration with the Arcadia SDE is given in [17]. Specification-based test oracles as automated by TAOS are described in [16].

programming terms, rather than adapting imperative pro@ amming ideas. It appears that this language focus led to coupling of components, since generic capabilities were not developed,

358

---------------------

.

\ Test Development

~

1

I

r -------------

, -----------------

--------1

------------

----

----------

*

, I , -------------------

,1

4

ProDAG

I \ ‘;:;:’; ,,:,,

$w+’:”:’::::i

:.:~&:**,;T::;:?;:’’:’; *:”,

;:f::j:;’,,

:-&*M;;,,;;::::[~’::;;,

.------:::::::-:::'_;:: (

~ml

-:-::

-_-------:::-----------------------------“’’”

)

‘g

!

Figure 7. The TAOS system structure and functional allocation through SAAM ADES

TAOS SAAM Description and Functional Allocation. As shown in figure 7, TAOS provides support for test execution,

test development,

Test planning,

egy identified

however, is

of building

not supported. As

evident

system, which supporta persisin an active reuositorv

The TAOS system was built using a development

test failure analysis, test mea-

surement, and test management.

objeet management

tence of data and data relations [19]. during the TEAM components

project

that provide

strat-

[4] with the goal

generic capabilities

and abstract interfaces to support varied testing activities in

the

SAAM

architectural

description,

and processes.

TAOS achieves loosely cnupled components through separation of concerns with respect to system functionalities. The composition of each functional partition is accomplished through the use of highly cohesive components. Test generation is a process with an independent thread of control and is not dependent on components from other functional areas. Test execution is achieved by an independent process for program and test measurement

execution.

are invoked

remain highly

cohesive componentry

tive functional

partitions.

Test failure

analysis

testing (by identifying

their respec-

The TAOS arehiteetare genetic capabilities

several

multipurpose

code affeeted by program changes). clearly

achieves its goal through

and abstract programmatic

TAOS Process Focus. TAOS

This high degree of separation of concerns is facilitated by the primary component integration mechanism, which is data integration. Data integration is facilitated by abstract programmatic

integrates

(LPT), which is also used by ProDAG and ,Artemis. Integration of generic analysis tools supports multiple test and analysis purposes. ProDAG, for instance supports the use of program dependence graphs for test adequacy criteria, test coverage analysis, and optimizing efforts in regression

by the test driver, but within

TAOS

components, including ProDAG, LPT, and Artemis. Effective data integration is achieved through a consistent internal data representation in the Language Processing Tools

supports

interfaces, specification-

bssed testing and thus an entry point into the life cycle after the requirements phase. TAOS suppoms a test process with an evaluative focus.

interfaces provided by the PLEI-

359

Test Coverage Anslysis ,- .-=--------------------

source Conml

.---z”--I

-z--z-,

---------

---------

-------,

#

.------

H-H

................................ ---------------D,--?---------------~-------=-J~~--------=

‘w=

I

!

*

i # I

xp. Files

1

TC

I

Figure 8. The CITE system, adapted from [20] mated, general purpose software. test environment.

3.3 _—— — - .- CITE

CITE Proce-= Focus. CITE supports implementationCITE

Author’s

Description.

The CITE system, as

depicted by [20], is shown graphically

baaed testing. CITE has a destructive

in figure 8 (only the

that is, it executes a program to &tect

components of CITE developed by Convex are shown). The CITE architecture consists of several components: a test driver

(’ID),

test coverage analyzer

(TCA),

test process focus failures,

which is a

limited scope for automation of the test process. However, all testing functionalities supported by CITE are fully automated,

test data

reviewer (TDReview and TDPP), test generator, and databases and a rule base. Additional tools have been inte-

3.4

STE Comparison

grated for use with the system. Specifically, the OCT test coverage tool expanda the typea of test coverage measured by the environment and the EXPECT simulator provides for special purpose interactive testing. A complete textual

process. The use of SAAM clarifies how well each STE achieves this goal and to what degree. SAAM uses a

description

canonical

The three STEa share stated goals of automating

of CITE is given in [20].

structure

CITE SAAM Description and Functional Allocation. The SAAM graphical depiction of CITE, as shown in fig-

for test execution,

test development

to characterize

the system

level. The functionalities

sup-

Test process focus was identified for each STE. PROTest II and CITE support implementation-baaed testiug

test failure

analysis, test measurement, and test management. does not support teat planning,

partition

ported and stmctural constraints imposed by the architecture are more readily identified when compared in a uniform notation.

ure 9, reflects the structural separation desired in a system that controls the test process automatically. CITE provides support

functional

at a component

the test

CITE

and have a destructive test process focus. This focus has a limited scope of life cycle applicability, as it initiates testing after implementation for the purpose of detecting failures. TAOS supporta specification-baaed testing and has an evaluative teat process focus. An evaluative test process focus provides complete life cycle support, as failure de-

CITE has achieved the desired functionalities through allocation to atructarally cohesive components. The process control exercised by the ride-base ia evidenced in direct control to each functional area. This clean separation of concerns supports the primary goal of a fully auto-

360

,Z-------------

.

------------,

,

, ,

Test ~ Measurement

--------------

ii

t # # I , -------------

,

Test

1$1

# 1 I

1 t I

Test

,.

~

~q

--------------

,

Test

:

/jl

,

1 I #

!-------------I

:

I # I

I

,

t I I

/----- -------!

,-------------.

!t N --------------------It ,-----------------------------------------------H

.,,

,

k————— “’,:’C?A4’, :,,:’” ~ ‘e’m “ ‘!: I [1 -------------------------------------------------------------------------------!

Figure 9. The CITE system structure and functional allocation through SAAM Test Measurement

tection extends ffom requirements

and design to code. Test

test development

process focus appears to dictate the scope of automation achieved across the life cycle and the types of functionality supported by an STE.

in PROTest II is tightly coupled with

and test execution. PROTest II only par-

tially automates measurement, specifically source code instrumentation is done manually. PROTest II addresses test measurement and test development by focusing on the language constructs of Prolog. The resulting monolithic,

Test planning is not supported by any of the three STES. Test planning functionality specifically supports a preven-

highly

coupled architecture

tative test process focus. We could not Iind an STE that

TAOS provide

explicitly

Some tools

CITE

supports block

as a separate issue but fail to integrate

gram

dependence

supports

address planning

a preventative

test artifacta with a parallel

process.

development

effort. A preven-

tative process focus may be best achieved through grating an STE with an SDE.

Test management

reflects this focus. CITE and

automation

of test measurement.

coverage and TAOS

coverage

as well

supports pro-

as statement

and

branch coverage.

inte-

Test Failure Aualysis be documented

Test Management is not supported in PROTest II. CITE and TAOS support test management with an active repository. TAOS provides support for object management and process management. CITE provides support for object management, rule-based test process templates and configuration management.

for full

requires that the expected output

for test case inputs.

The actual outputs

must be verified with respect to correct or expected behavior. Verification can be accomplished through a test oracle. The most accurate of oracles are specification-based test oracle~ the most error prone are interactive human oracles. Test failure analysis has increased in importance as the test process focus has changed fimn demonstrative to

is essential for full

evaluativ% it is also critical in achieving a preplanned preventative process. PROTest II does not support failure analysis, as it does not store expected outputw rather behavior verification relies on an interactive human oracle.

automation. The test process spans a temporal boundary of the life cycle and generates voluminous amounts of test artifacts with complex relations that must be supported by test management. Coordinating the test process over time is not possible without automated test management.

CJTE stores expected outputs with test case inputs, yet this

361

enhancements, and performance examined in future work.

approach still relies on a human as oracle. The process is not interactive, however, and is thus less error prone. CITE provides additional leverage for the human oracle in that

improvements

are to be

Component reusability is the attribute of facilitating multiple snd/or repeated use of components, This applies

stored expected outputs are reused extensively adding to the cotidence that they are correct. TAOS supporta specithe greatest

to both computational and data components. Wh.h respect to STES, we might evaluate reuse of the components in the

automated in PROTest II.

by the STE. Here, we choose the latter, and thus will eval-

It is an interactive process that manually develops an augmented Prolog program for test execution, manually instruments the source code, and manually checks the

uate each STB with respect to its support for reuse of the artifacts of the test process managed by the STE. An

fication-based

test oracles,

which

provide

degree of oracle accuracy and reproducibility. Test development

is partially

structure report. CITE and TAOS provide support for test development tion. Test execution

including

STE or reuse of the components managed and manipulated

test data genera-

automate the test process. Note that some of these artifacts

software

are indeed computational

is ftdly automated by all three STBS.

All thee STES share the goal of providing mated

STB’S ability to store, retrieve, and reuse test plans, test scripts, test suites, test cases, test criteria, test oracles, test resulta, and the like is central to their ability to effectively

full automated

test environment.

achieve this goal. The author’s

PROTest

a fully auto-

Reuse is further

II does not

of highly

claim their focus on lan-

cohesive components.

and provides

cycle with an evaluative sis is optimized

broader

advantage of reducing

TAOS

test effort.

modi@ the test artifact

as verbatim

Leveraged

or

reuse is of and

than to simply reproduce it.

The next section evaluates test artifact

support across the life

reusability

for

each of the three STES. The presence or absence of the

process focus. Test failure analy-

quality

in TAOS through the use of specification-

of ~usability

in PROTest II, TAOS, and CITE is

evaluated in regards to the STE’S support for test artifact reusability. 4.1

process control. Analyzing

by [Bie91]

value as long as it takes less effort to locate, select

based test oracles. CITE meets its goal of full automation. A particular strenglh of the CITE STE is its provision for automated configuration management (CM) and versioning control, Automated CM is foundational to successful

4

delineated

tion to the code. Leveraged reuse is reuse through modi~ing some portion of the code. Verbatim reuse has the clear

and CITE have highly cohesive components that are loosely coupled. TAOS clearly achieves its goal of full automation

(e.g., test scripts)

leveraged reuse. Verbatim reuse is reuse without modifica-

guage constructs is a strength despite the architectural implications in lack of support for separation of concerns and development

components

while others are data components.

Reusability

of Test Artifacts

in PROTest

II.

PROTest II does not support test artifact reuse. The lack Software

Architectural

of provision for test management is a primary factor in this deficiency. Test management is necessary to support artifact persistence and thus reuse.

Quali-

ties The goal of a software

development

The structure of PROTest II also impedes test artifact

process is to pro-

reusability.

duce software having a specified set of qualities, hopefully

Test inputs are generated based on test cover-

age. Test execution results provide clauses actually covered in the execution. Failed cases are test cases that did not execute. This functional interdependency among structural components inhibits test artifact reuse. The high degree of artifact interdependence impedes reuse as well.

quantifiable. The eleven ...ilities of software quality, delineated by [3], are correctness, reliability, efficiency, integrity, usability, maintainability, flexibility, testability, portabdity, reusabilhy and interoperabilhy. These qutilties are also desirable for Software Test Environments. Software architectural analysis is used to determine if a specific structural decomposition and the functional allocation to system structures supports or irnpedos certain qualities. Parnas identified changes to data representation

test artifact

relations

and changes to processing algorithm

TAOS

management

as particularly

4.2

Reusability

TAOS

sensi-

tive to system architectural constraints [15]. Gsrlan, Kaiser, and Notkin further identified enhancements to system functionality, improvements to performance (space and time), and reuse of components [7]. This paper examines software architectural constraints in relation to reusability. An examination of system modifications, functional

supporta

test

store, retrieve, quately

362

As

test artifact through

TAOS

graphs

for

quacy

criterion

many

uses,

provides

support

F%oDAG including

test

and maintains

object

repository.

the

Thus,

ability

TAOS

to ade-

reuse.

provides

and

persistence

test artifacts.

test artifact

an example,

in TAOS.

an active

support

and modi@

supports

Primarily, ability.

of Test Artifacts

coverage

for

verbatim

provides derivation analysis.

reus-

dependence of test

ade-

The

same

dependence

graphs can be reused iu debugging,

code slices leading

to a failure

can be determined.

where

recognizes the importance

These

STEP also provides

same graphs can be used later in the life cycle to facilitate software

maintenance,

where

code slices affected

of test process focus for STG.

insight

into an STE’S range of life

cycle support in the test process focus. The STEP model’s integration of process evolution recognizes the importance

by a

change can be determined analyzed and related test artifacts reused for regression testing. Thus, we see that

of test process automation as well as ita evolutionary nature in applicability across the life cycle,, The STEP

TAOS provides

model attempts to capture the complexity

for reuse in diverse functional

capacities

as well as in disbursed temporal contexts.

automation explanatory

TAOS also provides support for leveraged reuse as persistent test artifacts may be modified for use in slightly different contexts, such as during software evolution and

Reusability

of Test Artifacts

CITE was the most powerful environment

reuse in CITE includes reuse of test rides

test suites for a family

of related compiler

nificant

Test Artifact

Reusability.

Test artifact reusability

is of

particular importance for ST13S.Reuse of test artifacts with little or no modification is critical to providing full aut~

Work for future evaluation

systems using the architecture,

for automated

test oracles to support test failure anal-

ysis.

mation across the test process and the software life cycle.

of

Reuse is also an effective

software testing environments by developing the STEP Model for STES, validating the model by representing three different

strength of TAOS is its provision

specification-based

and updates of previously

This paper laid the groundwork

component

for configuration management and versioning control. TAOS achieves its goal of a fully automated test environment and covers test activities across the life cycle. A sig-

released or tested code.

and Future

an automated

mated oracle support for test failure analysis could be improved. A particular strength of CITE is its provision

prod-

provides support for version control, which supporta reus-

5 Conclusions

provided

tools and generic

PROTest II provides a partially automated environment. CITE is indeed powerful and complete, although auto-

Verbatim reuse in CITE includes the reuse of entire test suites as well as individual test caaes.The test management maintenance

intuitive

functionality.

ucts, where in each instance the rule required a simple modification allowing 909% of the test suite to be reused.

ing tests during

with

and complete automated test

in use, and TAOS

STE based on integrated

and test templates. The rules may be reused with slight modifications to execute tests including new capabilities. Test information can be modified for reuse by editing templates. As an example, Convex discusses the reuse of the compiler

of test process

were: the PROTest II focus on declarative language constructs would provide an advantage for such a system,

in CITE.

CITE provides extensive support for leveraged reusability. Leveraged

rich model

Comparison of Three STES. PROTest II, TAOS, and CITE all share the goal of a fully automated test environment. Claims made by the respective authors of the S’Ilk

maintenance. 43

in a semantically powers.

determinant

for delimiting

the

amount of information that must be stored and therefore managed by an STE. To support artifact reuse, an STE

comparing

three STEa using SAAM, and evaluating the architectural constraints for one quality attribute, test artifact reusability, for all three STES. This work has also provided insight into the application of SAAM for architectural analysis of

must provide test management utilities,

STES.

storage, retrieval, and modification for leveraged reuse. If this capability is not supported, leveraged reuse becomes

STEP Model. (STEP) model

The Software Test Environment was introduced

attempt at providing

Pyramid

persis-

more costly and possibly prohibitive.

in section 2 as an initial

a much needed canonical

specifically

tence of test artifacts and test artifact relations. Persistence alone, however, is not sufficient to support leveraged reusability. The artifacts must be configured to enable efficient

This paper examined PROTest II, TAOS, and CITE for

functional

partition for STEs in a semantically significant model that incorporates process evolution and focus. The six func-

the quality of reusability, in particular test artifact reusability. PROTest II does not support such reuse. TAOS and

tions identified

CITE support both verbatim and leveraged reuse. Support for test artifact reuse serves as the litmus test for an STE’S

- test execution,

test development,

test fail-

ure analysis, test measurement, test management and test planning - provide orthogonal partitiona for all STE func-

support for full automation life cycle.

tionality. The pyramid model provides semantic significance in the ordering of the sections through the test process evolution progression from apex to base. This model is unique in its incorporation of both functionality and teat process evolution.

The STEP model

of the test process across the

Evaluation of SAAM Method. The SAAM architectural analysis is approached from three perspectives: a canonical functional partition, system structwe, and allocation of functionality to structural decomposition of the

implicitly

363

References

system. SAAM uses a simple lexicon to describe all the STES in a uniform notation to depict their system structure so as to permit a common level of understanding. The systems are further evaluated in their support for some con-

[1] J.M. Beiman.“Deriving Measuresof SoftwareReusein ObjectOrientedSystems.”JtrProceedingsof theBCS-FACSWorkshopon Formal Aapcta of Measurement,pages63-83, SouthBank University, London,May 5, 1991. [2] F. Belli and O. Jack.“Jmplementstion-baaed analysissod testing of prelogpxugrsms.”JntheProceedingsof the 1993InternationalSymposiumon SoftwareTestingandAnalysis,pages70-80. Cambridge, Massachusetts, June1993. [3] J.P.CsvenoandJ.A. McCall. “A frameworkfor the measurementof softwarequaMy.” ht the proceedingsof the Software Qualb,yand AssuranceWorkshop,pages133-139.November1978. [4] L. A. Clarke,D.J.Richardson,endS.J.Zeil. “TearrxA supportenvironment for testing, evaluation, and analysis.” Jn Proceedingsof ACM SIGSOFT’88: Third Symposiumon SoftwareDevelopment Environments,pages153-162.November 1988.Appearedas SIGNotes 13(5). PLAN Notices 24(2) and Software Engineering [51 DaybreakTechnologiesInc., Datasourcessoftwareproductsguide.. CherryHill, New Jersey,DataSourcesInc., 1990. [6] R. A. Fairley. So&are testingtools. In ComputerProgramTesting, New York ElsevierNorth Holland, 1981. [7] D. Gerlan,G. Kaiser,andD. Notkin. “Using tool abstractionto composesystems.”IBHEComputer,vol. 25,June1992. [8] D. GsrlsnsodM. Shaw.“An introductionto softwarearchitecture.”. Advancesin Software Engineming and Knowledge Engineering, VolumeI, World ScientificPublishingCo., 1993. [9] D. GelperittandB. Hetzel.“The growth of softwaretesting.” Communicationsof the ACM, 31(6):687-695,June198S. [10]R. Kazman,L. Baas,G. Abowd, andM. Webb.“SAAM A method for analyzingthe propertiesof softwarearchitectures.”JnProceedings of the SixteenthInternational Conference.on Software.Engineering,81-90,Sorrento,Italy, May 21, 1994. [11]G. J. Myera.The art of acdlweretesting.New York, JohnWdey end sons, 1978. [12]E. Miller. MechanMmgsoftwaretesting.TOCG Meeting, Westlake VWage,California, April 15, 19S6. [13]Guidelinefor LifeCycleValidation,Verification,andTestingof ComputerSoftware.NationalBureauof StandardsReportNBS FIPS 101. Washington,D.C., 1983. [14]T. Nomura. “Use of softwareengineeringtools in Japan.”.Jn Proceedingsof the Ninth International Conferenceon Software13ngirteering,449,Monterey,California, March 1987. [15]D.L. Parnas.“On the criteriato beusedin decomposingsystemsinto modules.’’Communicatiooa of theACM, 15(12):1053-1058,December 1972. [16]D.J.Richardson,S.L. Aha, andT.O.O’Melley. “Specification-based teatoraclesfor reactivesystems.”In proceedingsof the Fourteenth JntemationslCottferettcoon SoftwareEngineering, 105-118,Melbourne,Auatrsti~ Msy 1992. [17]D. J. Richardson.“TAOS: Testingwith Oracleaand Analysis Suppmt.” JnProceedingsof the 1994InternationalSymposiumon Software Testing and Analysis, pages 13S-153. Seattle, Washington, August 1994. [181Sotlwsre Quality Engineering.Survey of Software Test Practices. Jacksonville,Florida SoftwareQuality Engineering19SS. [19]P.Tarr and L.A. Clarke.“An Object ManagementSystemfor SotlwareEngineeringEnvironments.”JrtACM SIGSOF’r’93: Proceedingsof the Symposiumon theFoundsdonsof SoftwareEngineering, Los Angeles,California, December1993. [20] P. A. Vogel. “An integrated generat propose automated teat environment.” In the proceedingsof the 1993JnternatiottrdSymposiumon SoftwareTestingandAnatysis,pages61-69.Cambridge,Massachusetts,June1993.

crete task that would determine whether or not the system has a quality such as modifiability or reusability. SAAM enabled our analysis of all three STES and revealed system strengths and weaknesses inherent to structural

decompositions

tional allocations, from the original

and choices

concerning

func-

The differences noted were not apparent author’s descriptions but were revealed

by using SAAM. A more detailed lexicon in SAAM would support more in-depth analysis of test artifact reusability. The SAAM lexical notation

supports analysis of data and control flow

among system components data relationships.

but does not address complex

Future work

will

look at augmenting

the SAW lexical notation to provide greater detail and support complex analysis of data components. Future Work. The STEP model reference architecture for STES is to be further refined. Specific improvements planned are adding a third dimension to the pyramid and providing

the required

semantic

closely correlate the canonical process evolution. Additional

to more

partitions

to test

STES will be compared to the current work

and evaluated insight into approaches.

significance

function

with

SAANL

WI%

beyond

This will that

provide

gained

by

additional taxonomic

The three STES analyzed in this paper will be further evaluated for architectural impact on enhancements to system functionality. Such analysis is supported by SAAM and will be the next area of investigation. In addition, system modifiability as evidenced in changes to data representation, optimization lexicon

processing

algorithms,

will be examined.

and

However,

performance

SAAM’S

simple

does not support such analysis and will therefore

require a more detailed lexical notation be developed.

Acknowledgment Thank you to the referees for their insightful suggestions and to Peter Vogel for his corrections to the CITE diagrams. This work was sponsored in part by the Air Force Material Command, Rome Laboratories, and the Advanced Research Projects Agency under Contract # F’30602-94-C-0218 and the University of California MICRO program and Hughes Aircraft Company under Grant #94- 105. The content does not necessarily reflect the position or policy of the U.S. Government, the University of California, or Hughes Aircraft Company, and no official endorsement should be inferred.

364

Suggest Documents