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).

Test Selection / Prioritization
Check Execution Framework Vision

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.

Lab Concept

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.

Atlassian Tools
Maven
Java
IntelliJ
Junit 5
Git
Spring
neo4j

Dates

  • 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

Prerequisites

  • 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).

Andrej Dyck

Contact

Andrej Dyck, M.Sc.
andrej.dyck@swc.rwth-aachen.de