(ii) To provide a remote control for the other ATM
component, which is in the responsibility of
performing the test.
In the remaining of the present paper, Section 2
analyzes previous work on automatic software
validation, Section 3 describes the adopted method
to perform automatic validation, Section 4 presents
the architecture and the functionalities of the ATM-
Console. Section 5 shows results from a case study,
which involved the ATM-Console. Some final
remarks and forward to future work conclude the
paper.
2 RELATED WORK
Such as other authors (Liu, Yang, Wang, 2005)
(Min, Yang, Wang, 2006), we propose an automatic
expert system-like validation subsystem: the
validation activity is based on a Validation
Knowledge Base, which is divided in three parts:
• Validation Data Knowledge Base, which is
built by parsing test results. Knowledge is
arranged as an object-oriented knowledge
representation (S. Walczak, 1998) (Liu,
Yang, Wang, 2005).
• Validation Rules Knowledge Base, which is
composed by validation rules as provided
by end-users.
• Validation Techniques Knowledge Base,
which is in the responsibility of
determining whether the validation activity
was or was not successful.
Our approach substantially differs from the
others known from the literature (Liu, Yang, Wang,
2005) (Min, Yang, Wang, 2006). We perform
automatic test and validation on real distributed and
parallel systems to verify if their components run
properly. Instead those other approaches validate
distributed simulation systems, i.e. they test the
credibility of their simulation model; in fact, they
also provide an automatic tool, but use it to compare
the outputs from a simulator with the corresponding
outputs from the real system.
The originality of this paper consists in the
novelty of using a Rule-based Engine as the
“Validator” (Liu, Yang, Z. Wang, 2005): given the
Validation Data Base and the Validation Rules Base,
our ATM-Console is able to detect which validation
rules are actually verified by matching the given
Validation Rules with Validation Data.
3 A RULE-BASED ENGINE FOR
AUTOMATED VALIDATION
It involves complex verifications, like checking the
periodical transmission of a message, to enact
automated validation of functional tests in
distributed, interactive, and real time systems. So
our decision was to use a Rule-based Engine to
achieve the automatic validation activity.
A Rule Engine can be viewed as a sophisticated
interpreter of logical implications: in fact, it
evaluates and executes rules that are expressed in
terms of if-then statements.
The power of those rules lies both in their ability
to separate knowledge from its implementation
logic, and in the fact that we can change those rules
without having to act on artifacts in source code.
It dictates a Java runtime API for rule engines,
the specification for the Java Rule Engine API (JSR
94) (Sun, 2005), as developed by the Java
Community Process (JCP) program. In fact, such an
API provides a simple means to access a rule engine
from an up to date Java Platform.
Drools (JBoss, 2006), Fair Isaac Blaze Advisor
(Fair Isaac, 2007), ILOG JRules (ILOG, 2007), and
Jess (Sandia, 2007) are instances of JSR 94
compliant rule engines. ATM-Console adopts JBoss'
Drools (Dynamic Rule Object-Oriented Language
System) rule engine (JBoss, 2006), because it is a
solid inference engine, completely Open Source,
well documented, and with an Eclipse plug-in,
which is useful for debugging.
Drools uses the Rule Based approach to
implement an Expert System; more correctly, it is
classified as a Production Rule System, which
focuses on knowledge representation to express
propositional and first order logic in a concise, non-
ambiguous, and declarative manner. The “brain”
(JBoss, 2007) of such a Production Rules System is
an Inference Engine. In order to infer conclusions,
which result in actions, this inference engine
matches facts, the data, against the Production Rules
(also called Productions or just Rules in the
followings). A Rule, in Drools, is a twofold structure
with Left (LHS) and Right (RHS) Hand Sides.
The syntax for a rule is:
when
<condition>
then
<action>;
When the condition is met, the action is
executed. As already mentioned, first order logic is
USING RULE-BASED ENGINE TO SUPPORT TEST VALIDATION MANAGEMENT OF COMPLEX
SAFETY-CRITICAL SYSTEMS
137