comparing the actual states of the target with
expected ones – as produced by the same monitor
performing in the role of “oracle” (Weyuker, 1982)
– or reporting on system failures – as detected by the
same monitor performing in the role of “supervisor”
(Simser, 1996) – respectively. In safety-critical
applications, the system should be monitored by
another safety system to ensure continued correct
behavior. To achieve these goals, observed
behaviors must be quickly accepted or rejected; this
task is quite difficult to enact when complex real-
time systems are involved, and the requested
response time is not in the range of human
capabilities. Additionally, software practitioners
cannot diagnose, troubleshoot, and resolve every
component affecting a critical software performance
by using just manual methods.
The goal (Basili, 1994) of the present paper is
concerned with the purpose of measuring system test
performances. The focus is on measurement of CPU
and memory loads, performance monitoring of
distributed heterogeneous processes and their
threads, intrusiveness, and other key attributes. The
point of view consists in the reference organization
practitioners. The context is the development of
critical software. In particular, we want to proceed
by: (i) expressing the reference company need of
testing safety-critical software in terms of
conveniently feasible features and capabilities; (ii)
developing a new software tool that meet those
needs; (iii) Characterizing that tool, comparing it
with other testing tools, accepting it by a case study,
and eventually (iv) accrediting the tool in field and
continually improving it, based on feedback from
practitioners (Cantone, 2000).
In the remaining of the present paper, Section 2
transforms the reference organization’s needs and
goals in required testing features. Section 3 presents
the philosophy, architecture, and functionalities of
Software Test Framework (STFW), a new prototype
tool, which is based on those features. Section 4
shows results from a case study, which involved the
STFW. Section 5 briefly compares STFW with
major professional tools that the market provides.
Section 6 presents some conclusions and points to
future research.
2 TESTING FEATURES
There is not enough room here to report on the
interview-based requirement elicitation process that
we enacted with the customer stakeholders (rhe
reference company’s software practitioners and
project managers). Anyway, based on the expected
use cases and the resulting requirements, a list of
testing features (F) follows, which, in our view,
characterizes a software test framework and is able
to satisfy the needs that the reference organization
expressed. Each of the shown features is augmented
with the F’s: (i) function or capability, (ii)
measurement model applied (in round brackets), (iii)
relative importance or weight, as expressed by the
involved stakeholders [in square brackets] (values
are not shown; see Section 5).
F1 Heterogeneous targets monitoring (N|(Y,
heterogeneous target types) [w1].
F2 Average CPU percentage used during data
acquisition on a target system. CPU and
memory (see F3) occupancies are calculated
under their maximum load, i.e. when all
possible data are required for acquisition, and
the acquisition interval is the one suggested by
the tool producer, respectively (%) [w2].
F3 Memory occupancy on a target system (MB)
[w3].
F4 Persistent data repository and management
(N|Y) [w4].
F5 Tailor the test system to suit special user needs
or purposes (N|Y) [w5].
F6 Un-intrusiveness (Intrusiveness: time for data
acquisition in seconds) [w6].
F7 Distributed targets monitoring. TCP/IP over
Ethernet (N|Y) [w7].
F8 Plug-in architecture (N|Y) [w8].
F9 System CPU (idle and used) percentage
measurement (N|(Y, %)) [w9].
F10 System memory load (free and occupied)
measurement (N|(Y, MB)) [w10].
F11 Process CPU (idle and used) percentage
measurement (N|(Y, %)) [w11].
F12 Process memory load (free and occupied)
measurement ( N|(Y, MB)) [w12].
F13 Thread CPU (idle and used) percentage
measurement ( N|(Y, %)) [w13].
F14 Thread memory load (free and occupied)
measurement (N|(Y, MB) [w14].
F15 Support multi platform for all the major
operative systems (N | (Y, Checkbox for
LynxOS, Solaris, AIX, Linux, POSIX etc.,
respectively)) [w15].
F16 Allow regression testing (N|Y) [w16]
F17 Utilize software sensors (N|Y) [w17].
Cost (0|*$) [w18].
3 SOFTWARE TEST
FRAMEWORK
Software Test Framework is a complex analysis tool
that deals with capturing resource occupation data of
one or more target systems.
ADVANCES ON TESTING SAFETY-CRITICAL SOFTWARE - Goal-driven Approach, Prototype-tool and Comparative
Evaluation
219