Search Based Software Testing as a Practical Tool [PEX]
Submitting Institution
King's College LondonUnit of Assessment
Computer Science and InformaticsSummary Impact Type
TechnologicalResearch Subject Area(s)
Information and Computing Sciences: Computation Theory and Mathematics, Computer Software, Information Systems
Summary of the impact
KCL researchers, led by Professor Mark Harman, developed algorithms and
contributed code to
the Microsoft Pex automatic software testing tool, which is now part of
the Fakes integral
component on Microsoft Visual Studio 2012/2013 development environment
used by tens of
thousands of professional software developers. Harman's work on Search
Based Software Testing
(SBST) has been pioneering in the development of automatic test case
generation. The Pex/Fakes
tool supports software engineers in automatic test-case generation, and is
in very wide use in the
commercial and industrial software development environment (tens of
thousands of software
developers have downloaded the Pex plug-in or acquired it as the Microsoft
Visual Studio Fakes
component). Further impact of the SBST work carried out by the KCL
research team can be seen
in the adoption of SBST techniques by Google software developers and in
work on the Vada
software testing system carried out with DaimlerChrysler.
Underpinning research
The Search-based Software Engineering (SBSE) research programme is based
on the insight that
software engineering problems can be formulated as search problems. Harman
and his colleagues
have pioneered the development of this agenda in software engineering over
the past decade. The
research work has demonstrated feasibility of SBSE across a surprisingly
wide range of software
engineering activities. It is fair to say that this work has changed the
way that many software
engineering researchers think about software engineering and, that as a
result, more recently,
SBSE is starting to change the practice of software engineering, through
uptake in several large
organisations, particularly with respect to their testing programmes.
Professor Harman is well known for many contributions to the field of
Search based Software
Engineering (SBSE), a field he founded in 2001 and now with active
research groups in 25
countries. At KCL, Harman founded and led the Centre for Research on
Evolution, Software and
Testing (CREST), which included researchers Yuanyuan Zhang, Yue Jia, Shin
Yoo and Kiran
Lakhotia and other KCL academic staff, including Dr Kathleen Steinhofel.
Their joint work, during
the REF period, has underpinned impact in search based software testing
[1-6].
Search-based Software Engineering exploits adaptive optimisation
algorithms, including genetic
algorithms, particle swarms, simulated annealing and other stochastic
search and meta-search
techniques, to optimise software engineering artefacts such as
requirements, plans, test cases,
architectures and the software products created by Software Engineering.
Systematic search for
optimisation is also exploited, including tools such as the Z3 SAT Modulo
Theories solver which
can solve constraints generated from code analysis in order to construct
test cases that cover the
behaviour of a program or program fragment. Harman and his team have
developed the framework
and specific instantiations of the search-based approach to provide tools
that perform automatic
test case generation, greatly easing the process of software development
in an industrial context,
where it is essential to create appropriate test cases to cover a space of
possible software failures.
The use of meta-heuristic search techniques allows the generation and
careful selection of test
cases (and, in other contexts, of requirements, plans etc) to be subjected
to automated evaluation
and refinement. This process, iterated many times, leads to the
identification of a suite of high-value
artefacts (eg test cases) fully automatically.
Key researchers
Prof Mark Harman. Professor and director of the CREST centre (at
KCL from 2005 to 2010, at
UCL from 2010).
Kiran Lakhotia, Research Associate in the CREST centre (at KCL
from 2004, at UCL from 2010).
Yue Jia, PhD Student in the CREST centre (at KCL from 2006, at UCL
from 2010).
Shin Yoo, Research Associate in the CREST centre (at KCL from
2005, at UCL from 2010 to
2012), Lecturer in Software Engineering at UCL from 2012.
Yuanyuan Zhang, Research Associate in the CREST centre (at KCL
from 2006; at UCL from
2010).
Kathleen Steinhofel, KCL academic staff 2003-
Drs. Jia, Yoo and Lakhotia were all KCL MSc students then KCL PhD
students and then KCL RAs
under Harman's supervision while at KCL. Zhang was funded by the KCL KC
Wong scholarship
and subsequently became an RA at KCL.
References to the research
*[1] Mark Harman, Lin Hu, Rob Hierons, Joachim Wegener, Harmen
Sthamer, Andre Baresel and
Marc Roper. "Testability Transformation". IEEE Trans. on Software
Engineering. 30(1): 3-16, 2004.
DOI: 10.1109/TSE.2004.1265732.
*[2] Paul Baker, Mark Harman, Kathleen Steinhöfel and Alexandros
Skaliotis. "Search Based
Approaches to Component Selection and Prioritization for the Next
Release Problem". 22nd Int.
Conf. on Software Maintenance (ICSM 06). pp. 176-185. 2006. DOI:
10.1109/ICSM.2006.56
*[3] Shin Yoo, Mark Harman "Using hybrid algorithm for Pareto
efficient multi-objective test suite
minimization". Journal of Systems and Software 83(4): 689-701
(2010). DOI:
10.1016/j.jss.2009.11.706
[4] K. Lakhotia, M. Harman, P. McMinn. "Handling Dynamic Data
Structures in Search Based
Testing". Proc. of the Genetic and Evolutionary Computation
Conference (GECCO 2008). pp.
1759-1766. 2008. DOI: 10.1145/1389095.1389435
[5] Yuanyuan Zhang, Enrique Alba, Juan J. Durillo, Sigrid Eldh and
Mark Harman. "Today/future
importance analysis". ACM Genetic and Evolutionary Computation
Conference (GECCO 2010).
pp. 1357-1364. 2010. DOI: 10.1145/1830483.1830733
[6] Kiran Lakhotia , Phil McMinn and Mark Harman, "Automated
Test Data Generation for
Coverage: Haven't We Solved This Problem Yet?", Proceedings of the
2009 Testing: Academic
and Industrial Conference — Practice and Research Techniques, p.95-104,
September 04-06, 2009
DOI: 10.1109/TAICPART.2009.15
* Publications indicating quality of underpinning research.
Harman was supported by EPSRC Platform grant EP/G060525/1 "CREST: Centre
for Research on
Evolution, Software and Testing", worth £1,091,081 2009-2010 (held at KCL)
Details of the impact
Although the use of search-based methods, including constraint reasoning,
has had an impact
across many areas with software engineering, the SBSE approach has had
particularly strong
impact on Software Testing. All software organisations depend crucially on
their testing to ensure
that software performs within acceptable engineering tolerances for both
the functional properties
and the behavioural (non-functional) properties of the systems. Research
carried out by Professor
Harman and his colleagues is used by many commercial and industrial
software developers across
the world, embodied in the Microsoft Pex tool and the Microsoft Visual
Studio integral component,
Fakes. The head of the Microsoft Pex development team reports that "development
of Pex...has
been very significantly influenced by the work of Professor Harman and
his group."
Harman and his post-doctoral researcher Kiran Lakhotia worked with
Microsoft to incorporate their
work on search based test optimisation into the Microsoft Pex automated
software testing tool.
These techniques are available online as plug-ins for the .Net Visual
Studio development tool and
have, together, been downloaded more than 50,000 times. The work that
underlies this tool was
published in 2008 [LHM08]. The work on Pex was cited in the recent
Microsoft report on the impact
of research on Microsoft's software testing programme that appeared at the
top-tier Software
Engineering conference, ICSE, in 2011.
Lakhotia was seconded to Microsoft in 2009, while employed as a Research
Assistant at KCL in
Harman's CREST team. During his secondment, he implemented the floating
point test case
analysis parts of Pex. This work is described in detail in the paper on
FloPSy [A] coauthored by
Lakhotia, Harman and the head of the Microsoft Pex development team, in
2010. In addition to this
direct contribution to the Pex code-base, Harman and his team influenced
and informed the
development of Pex throughout the project and "have continued to
influence and contribute to the
development of Pex" [C].
Microsoft's Pex development team leader reports [C]: "Without Harman's
work, there is little doubt
that the Pex tool would not exist in its current form and his
contributions have had a significant
impact on the relevance and value of the Visual Studio plug-in
downloaded by more than 50,000
users worldwide. The overall success of the plug-in eventually caused
the Visual Studio product
group to ship Fakes, one core component of Pex, as an integral part of
Visual Studio 2012/2013."
Harman and another post-doctoral research, Shin Yoo worked with Google to
implement a
regression test optimisation system. This system was deployed for a period
of two weeks (before it
became overloaded with internal demand and had to be disabled) as an
integrated part of Google's
entire code base to collect data for analysis and optimisation. Google
made a research award of
£25k to support this work. The ideas that underpin this work were
published in a 2007 paper at the
ACM International Symposium on Software Testing and Analysis (ISSTA),
subsequently presented
in a more detailed journal version [3], and a paper describing the
collaboration and its effects at
Google [B] was published more recently.
DaimlerChrysler funded research on development of the Vada system by
Harman and his team at
KCL, in a series of research projects that accrued cash funding of
approximately £60k, much of
which was received by KCL.
SBST is changing the way software engineers build unit tests for code and
is affecting the software
engineering process. The Pex/Code Digger tool is widely discussed in the
software development
community [E] demonstrating its impact on some of the most influential
figures in the software
development world.
Sources to corroborate the impact
The following papers record the evidence of the collaborations between
KCL researchers and
industrial users:
[A] K. Lakhotia, N. Tillmann, M. Harman, J. de Halleux, "FloPSy
— Search-Based Floating Point
Constraint Solving for Symbolic Execution." 22nd IFIP International
Conference on Testing
Software and Systems, Natal, Brazil, November 8-12, 2010, pp. 142-157.
[B] Shin Yoo, R. Nilsson, M. Harman. "Faster Fault Finding at
Google using Multi Objective
Regression Test Optimisation" ACM SIGSOFT Symposium on the
Foundations of Software
Engineering (FSE 2011), Industry track. Szeged, Hungary, 5th-9th September
2011.
The following people can corroborate the contributions of KCL researchers
to the work, as
described above and confirm the quoted material in the above.
[C] Head of Microsoft Pex Development Team (Letter supplied)
[D] Test Software Engineering Team, Google, Zurich
[E] Articles corroborating range of users of Pex: http://research.microsoft.com/en-us/projects/pex/