Navigation auf uzh.ch
This master project is not available anymore, as students are currently working on it.
Unit testing has grown into a software-engineering practice, which is for example through test-driven development a common technique. Testing in combination with continuous delivery forms a rigorous methodology to detect software failures as early as possible.
Adressing the gaps mentioned above, we envision tooling, which brings performance testing in form of software microbenchmarks (e.g., JMH for Java, and Go benchmarking) into the world of continuous delivery. The students are expected to design and implement a Jenkins plugin, which continuously (e.g., on every commit) tests for a software's performance. The plugin should take parameters which define the way tests are executed, and different test environments should be selectable. These environments should range from a bare-metal machine to virtualized environemnts with VMs and containers hosted on different cloud providers (e.g., Amazon EC2, Azure, and Google Compute Engine). Furthermore, test results are automatically evaluated for regressions, and outcomes are saved in a database which allows for historical performance-regression analysis.
The main tasks of the project are (depending on number of students, this list is adaptable):
This project is also available as a master thesis in reduced size and slightly different focus.
Posted: 12.03.2018
Contact: Christoph Laaber