they run on or the WS they invoke. WS-BPEL pro-
cess definitions can be divided in four sections:
1. Declarations of the relationships to the external
partners. These include both the client that has in-
voked the business process and the external part-
ners whose services are required to complete the
request of the client.
2. Declarations of the variables used by the process
and their types. Variables are used for storing both
the messages received and sent from the business
process and the intermediate results required by
the internal logic of the composition.
3. Declarations of handlers for various situations,
such as fault, compensation or event handlers.
4. Description of the business process behavior.
The major building blocks of a WS-BPEL process
are activities, XML elements which model assign-
ments, control structures, message passing primitives
or synchronization constraints, among others. There
are two types: basic and structured activities. Basic
activities specify a single action, such as receiving a
message from a partner or performing an assignment
to a variable. Structured activities contain other ac-
tivities and prescribe their execution order. Activi-
ties may have both attributes and a set of containers.
These containers can also include elements with their
own attributes. Here is an example:
<flow>
← Structured activity
<links>
← Container
<link name="checkFl-BookFl"/>
← Element
</links>
<invoke name="checkFlight"
.. .
>
← Basic activity
<sources>
← Container
<source linkName="checkFl-BookFl"/>
← Element
</sources>
</invoke>
<invoke name="checkHotel"
.. .
/>
<invoke name="checkRentCar"
.. .
/>
<invoke name="bookFlight"
← Attribute . ..
>
<targets>
← Container
<target linkName="checkFl-BookFl" />
</targets>
</invoke>
</flow>
WS-BPEL provides concurrency and synchro-
nization primitives. For instance, the
flow
activ-
ity runs a set of activities in parallel. Synchroniza-
tion constraints between activities can be defined. In
the above example, the
flow
activity invokes three
WS in parallel:
checkFlight
,
checkHotel
, and
checkRentCar
. There is another WS,
bookFlight
,
that will only be invoked if
checkFlight
is com-
pleted. Activities are synchronized by linking them:
the target activity of every link will only be executed
if the source activity of the link has been completed
successfully.
2.2 Mutation Testing
Mutation testing (DeMillo et al., 1978; Hamlet, 1977)
is a fault-based testing technique that introduces sim-
ple flaws in the original program by applying muta-
tion operators. The resulting programs are called mu-
tants. Each mutation operator models a category of
errors that the developer could make. For instance,
if a program contains the instruction
a > 5000
and
we apply the relational mutation operator (which re-
places a relational operator with another), one of the
mutants produced will contain
a < 5000
instead. If
a test case can tell apart the original program and the
mutant, i.e. their outputs are shown to be different, it
is said that this test case kills the mutant. Otherwise,
the mutant is said to stay alive.
Equivalent mutants, which always produce the
same output as the original program, are a common
problem when applying mutation testing. Equivalent
mutants should not be confused with stubborn non-
equivalent mutants, which are produced because the
test suite is not adequate to detect them. The general
problem of determiningif a mutant is equivalentto the
original program is undecidable (Zhu et al., 1997).
2.3 Genetic Algorithms
Genetic Algorithms (Goldberg, 1989; Holland, J. H.,
1992) are probabilistic search techniques based on the
theory of evolution and natural selection.
GAs work with a population of solutions, known
as individuals, and process them in parallel. Through-
out the successive generations of the population, GAs
perform a selection process to improve the popula-
tion, and so they are ideal for optimization. In this
sense, GAs favor the best individuals and generate
new ones through the recombination and mutation
of information from existing ones. The strengths of
GAs are their flexibility, simplicity and ability for hy-
bridization. Among their weaknesses are their heuris-
tic nature and their difficulties in handling restrictions.
The fitness of an individual measures its quality as
a solution for the problem to be solved. The average
fitness of the population will be maximized along the
generations produced by the GA.
GAs use two types of genetic operators: selection
and reproduction. Selection operators select individ-
uals in a population for reproduction. The likelihood
of selecting an individual may be proportional to its
fitness. Reproduction operators generate the new in-
dividuals in the population by applying crossover and
mutation operators. On the one hand, crossover op-
erators generate two individuals (children) from two
pre-selected individuals (parents). The children in-
ICE-B 2011 - International Conference on e-Business
144