Building an Improved
Check Execution Framework
Software testing is by all means an important but also expensive software engineering tasks. Not only are automated checks valuable tool to support software testers, but they also are essential for essential for fast-evolving systems and continuous delivery done right.
With the growth of automated checks in a project, their execution time increases; thus, making fast feedback unfeasible. However, a change has only a partial impact on the system, so we can choose to execute only relevant test cases (test selection). Last but not least, the order of the test cases can reveal errors faster (test prioritization).
In research, several optimization techniques as proposed. However, those strategies often exists only on paper, don’t scale, and tools are very rare to non-existent. We are working on a framework for Java and JUnit that allows an easy integration into existing projects and enables researches to implement new optimization strategies.
In this lab, you will be working on engineering solutions and refactoring this framework towards a highly configurable check execution framework. Further, sophisticated optimization techniques need to be implemented and evaluated with real-world projects.
As a self-organized team, you will be implementing new functionalities to enhance an existing framework. We will work following the Scrum approach, supported by tools. Further, we will implement Continuous Integration and code reviews to ensure delivery of a quality software. Last but not least, automating checks will increase confidence in the functionality of the framework.
In this lab, you will get to know and work with various tools and technologies. Moreover, you will learn current techniques to foster working as a team.
- Kick-off meeting on October 18., 2016, 14:15 – 15:15 (room 4101)
- Weekly meetings (probably) on Tue. and Thu. 14:15 – 15:15 (room 4101)
- Milestones and final presentations TBD in the kick-off meeting
- Eager to work in a team and deliver quality software
- Motivation for learning new techniques and technologies
- Contributing own ideas and sharing knowledge
- Good programming skills with Java
- Good/basic knowledge with the tools and technologies above
Note: the application for this lab should be a brief motivation (instead of courses and grades).