@inproceedings {Simula.simula.1858,
	title = {Automated Unit Test Generation for Classes With Environment Dependencies},
	journal = {IEEE/ACM International Conference on Automated Software Engineering (ASE)},
	year = {2014},
	month = {09/2014},
	pages = {79-90},
	publisher = {ACM/IEEE},
	type = {Conference},
	address = {New York, USA},
	abstract = {Automated test generation for object-oriented software typically consists of producing sequences of calls aiming at high code coverage. In practice, the success of this process may be inhibited when classes interact with their environment, such as the file system, network, user-interactions, etc. This leads to two major problems: First, code that depends on the environment can sometimes not be fully covered simply by generating sequences of calls to a class under test. For example, execution of a branch may depend on the contents of a file. Second, even if code that is environmentdependent can be covered, the resulting tests may be unstable, i.e., they would pass when first generated, but then may fail when executed in a different environment. For example, tests on classes that make use of the system time may have failing assertions if the tests are executed at a different time than when they were generated. In this paper, we apply bytecode instrumentation to automatically separate code from its environmental dependencies, and extend the EVOSUITE Java test generation tool such that it can explicitly set the state of the environment as part of the sequences of calls it generates. Using a prototype implementation, which handles a wide range of environmental interactions such as the file system, console inputs and many non-deterministic functions of the JVM, we performed experiments on 100 Java projects randomly selected from SourceForge (the SF100 corpus). The results show significantly improved code coverage - in some cases even in the order of +80\%/+90\%. Furthermore, our techniques reduce the number of unstable tests by more than 50\%.},
	keywords = {Conference},
	author = {Arcuri, Andrea and Fraser, Gordon and Juan Pablo {Galeotti}}
}
@inproceedings {Simula.simula.2034,
	title = {Automated Test Generation for Java Generics},
	journal = {Software Quality Days (SWQD)},
	volume = {166},
	year = {2013},
	pages = {185-198},
	publisher = {Springer International Publishing},
	type = {Conference},
	address = {Berlin Heidelberg},
	abstract = {Software testing research has resulted in effective white-box test generation techniques that can produce unit test suites achieving high code coverage. However, research prototypes usually only cover basic programming language features, thus inhibiting practical use and evaluation. One such feature are Java{\textquoteright}s generics, which have been present in the language since 2004. In Java, a generic class has type parameters and can be instantiated for different types; for example, a collection can be parameterized with the type of values it contains. To enable test generation tools to cover generics, two simple changes are required to existing approaches: First, the test generator needs to use Java{\textquoteright}s extended reflection API to retrieve the little information that remains after type erasure. Second, a simple static analysis can identify candidate classes for type parameters of generic classes. The presented techniques are implemented and evaluated in the EvoSuite test data generation tool.},
	keywords = {Conference},
	isbn = {978-3-319-03601-4},
	issn = {1865-1348},
	doi = {10.1007/978-3-319-03602-1_12},
	author = {Fraser, Gordon and Arcuri, Andrea}
}
@inproceedings {Simula.simula.1474,
	title = {Combining Search-Based and Adaptive Random Testing Strategies for Environment Model-Based Testing of Real-Time Embedded Systems},
	journal = {Symposium on Search Based Software Engineering (SSBSE)},
	year = {2012},
	publisher = {Springer},
	type = {Conference},
	address = {Berlin Heidelberg},
	abstract = {Effective system testing of real-time embedded systems (RTES) requires a fully automated approach. One such black-box system testing approach is to use environment models to automatically generate test cases and test oracles along with an environment simulator to enable early testing of RTES. In this paper, we propose a hybrid strategy, which combines (1+1) Evolutionary Algorithm (EA) and Adaptive Random Testing (ART), to improve the overall performance of system testing that is obtained when using each single strategy in isolation. An empirical study is carried out on a number of artificial problems and one industrial case study. The novel strategy shows significant overall improvement in terms of fault detection compared to individual performances of both (1+1) EA and ART.},
	keywords = {Conference},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude},
	editor = {Fraser, Gordon and Susi, Angelo and Jerffeson Teixeira {de Souza}}
}
