Swarm Computing Applications
in Software Engineering
Ant colony optimization algorithms
Applications in Software Engineering
Software testing is an important and
valuable part of the software
development life cycle.
Due to the time and cost constraints, it is
not possible to test the software manually
and fix the defects. Thus the use of test
automation plays a very important role in
the software testing process.
Swarm Computing/ Swarm Intelligence is
defined as the collective behavior of
decentralized, self-organized systems, natural or
artificial. The concept is employed in work on
The inspiration often comes from nature,
especially biological systems.
The agents follow very simple rules, and
although there is no centralized control
structure dictating how individual agents should
behave, local, and to a certain degree random,
interactions between such agents lead to the
emergence of "intelligent" global behavior.
Natural examples of Swarm Intelligence include
ant colonies, bird flocking, animal herding,
bacterial growth, and fish schooling.
Use of positive feedback
Autocatalytic in nature
Ant Colony Optimization (ACO)
ACOAs have been introduced as powerful tools to
solve order-based problems, such as the traveling
salesman problem (TSP) and the quadratic assignment
The main characteristics of ACSA are positive feedback,
distributed computation, and the use of a constructive
ACOAs, to some extent, mimic the behavior of real
Real ants are capable of finding the shortest
path from food sources to the nest without
using visual cues.
They are also capable of adapting to changes in
These capabilities ants have are essentially due
to what is called “pheromone trails” that ants
use to communicate information among
individuals regarding path and to decide where
Ants deposit a certain amount of pheromone
while walking, and each ant probabilistically
prefers to follow a direction rich in pheromone
rather than a poorer one.
Agents in ACO
The ant colony optimization algorithm (ACO) is
a probabilistic technique for solving
computational problems which can be reduced
to finding good paths through graphs.
The individual agents are rather simple.
However, when the entire colony foraging
towards the bait site complicated dynamics are
exhibited, achieving a super–nonlinear increase
Applications of ACO
ACO algorithm techniques can be used in a
number of applications like controlling unmanned
vehicles, control nanobots within the body for the
purpose of killing cancer tumors. Swarm
intelligence has also been applied for data mining.
Meta-Heuristic algorithms have been applied to
three areas of software engineering: test data
generation, module construction and cost/effort
But these algorithms can be applied to many
other operations in software engineering and
much research should be done in this field.
Application of ACO to software
Three main activities normally associated with
software testing are:
Test data generation,
Test execution involving the use of test data and
the software under test and
Evaluation of test results.
The process of test data generation involves
activities for producing a set of test data that
satisfied a chosen testing criterion.
Requirements for test case
Transformation of the testing problem
into a graph.
A heuristic measure for measuring the
“goodness” of paths through the graph.
A mechanism for creating possible
solutions efficiently and a suitable
criterion to stop solution generation.
A suitable method for updating the
The generated test suite has to satisfy
All state coverage
Coffee and Cocoa vending machine
Individual Agent properties
An ant k at a vertex of the graph is
associated with a four tuple:
Vertex Track Set
Pheromone Trace Set
Algorithm for agent
Evaluation at vertex
-Update the track
Move to next vertex
All states have been visited at least once
Search upper bound has been reached.
The final optimal solution can be obtained by examining all
of the solution candidates created by ant exploration.
Current research into the ASOA is still at a
More potentially beneficial work remains to be
done, particularly in the areas of improvement
of its computation efficiency.
Automated Software Testing Using Meta-heuristic Technique
Based on An Ant Colony Optimization [Praveen Ranjan
Srivastava, Km Baby] 2010
Reformulating Software Engineering as a search problem
[John Clarke, Bryan jones]
An Ant Colony Optimization Approach to Test Sequence
Generation for State-Based Software Testing [Huaizhong
Li, Chiou Peng] 2005