2016 - 2017 Term 1, 2 Monday 13:00 - 14:00
Evolutionary Testing for iOS Apps
Evolutionary Testing has proved to be a very effective way to test apps. It is capable of exploring and optimising test sequences for many objectives, for example, minimising length, while simultaneously maximising coverage and crash revelation. This project aims to develop an automated testing system for iOS apps using evolutionary search techniques.
 Ke Mao, Mark Harman, Yue Jia. Sapienz: Multi-objective automated testing for Android applications. In International Symposium on Software Testing and Analysis (ISSTA’16), 2016. pp. 94-105.
Smart Robotic Testing for Mobile Apps
Many app testing techniques are white-box based, which cannot test apps without source code. Testing robotic arms provide a general solution to black-box testing tasks. In this project, the student will program on a 4-axis robotic arm and develop a smart robotic testing system based on computer vision and machine learning techniques.
 Ke Mao. Towards Realistic Mobile Test Generation. The Doctoral Symposium of 25th International Symposium on Software Testing and Analysis (ISSTA-DS'16), 2016
Empirical Study on Android Fragmentation The massive fragmentation of Android ecosystem poses a significant challenge to app developers. Your app may run perfect fine on some models of devices but fail on others. This project aims to study the Android app failures caused by the device fragmentation problem. The student will analysis a data set collected from an online mobile cloud with 100 Android devices.
 Taming Android Fragmentation: Characterizing and Detecting Compatibility Issues for Android Apps" by Lili Wei, Yepang Liu, and S.C. Cheung. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016), Singapore, September 2016, pp. 226-237 (ACM SIGSOFT Distinguished Paper Award).
Mutation Testing for Invariant Filtering
In a previous paper , Ratcliff et al. showed the power of mutation testing in identifying "interesting" invariants from a list generated by an automatic invariant mining tool such as Daikon . This key insight was only one part of this paper and has yet to be fully explored in itself. The project will re-implement and then evaluate the potential of the idea on a set of programs; if the technique works it could greatly enhance the utility of already-renown tools such as Daikon.
 Ratcliff, Sam, David R. White, and John A. Clark. "Searching for invariants using genetic programming and mutation testing." Proceedings of the 13th annual conference on Genetic and evolutionary computation. ACM, 2011.
 Ernst, Michael D., et al. "The Daikon system for dynamic detection of likely invariants." Science of Computer Programming 69.1 (2007): 35-45.
Evolutionary Compression of Images and Sound
In the 1990s, Nordin and Banzhaf  published a paper on the compression of images and sound using evolutionary computation, namely Genetic Programming [2, 3]. This work was visionary but unfortunately restricted by available computation power.
Since 2008, an idea popularised by Roger Alsing  on his blog gained much interest as a method of compression through the use of Genetic Algorithms, one specific instance of the much more general and powerful idea that Nordin and Banzhaf had proposed. UCL has since developed an iOS app demonstrating the idea .
This project will resurrect Nordin and Banzhaf's powerful vision, exploiting Moore's Law by radically accelerating their original work, and investigate how far evolution can take this alternative approach to compression.
A related and even more ambitious concept is that of "programmatic generation" of plausible images in a given class. For example, can we then use a similar approach to generate plausible images, for example to fool an image recognition system, or to create art?
 Nordin, Peter, and Wolfgang Banzhaf. "Programmatic compression of images and sound." Proceedings of the 1st annual conference on genetic programming. MIT Press, 1996.
 Banzhaf, Wolfgang, et al. Genetic programming: an introduction. San Francisco: Morgan Kaufmann Publishers, 1998.
 Poli, Riccardo, et al. A field guide to genetic programming. Lulu. com, 2008.
Yuan Wei - Mutation Testing for Android Apps
Kelly Zhou - App store mining and analysis
Second supervisor (or co-supervising)