Striking the balance between agility and reliability through change-centric software development.
After four years, the Cha-Q project is running to its completion. To demonstrate our results on change-centric quality assurance, we organized our second and final tool demonstration event on Monday, December 5th, 2016 at the U-residence on Campus Etterbeek of the Vrije Universiteit Brussel. This event is open to all software teams interested in state-of-the-art development tooling.
Cha-Q Info Brochure
Quality software has long been synonymous with software “without bugs”. Today, however, quality software has come to mean “easy to adapt” because of the constant pressure to change. Software teams seek for a delicate balance between two opposing forces: striving for reliability and striving for agility. In the former, teams optimize for perfection; in the latter they optimize for ease of change.
The ANSYMO (Universiteit Antwerpen) and SOFT (Vrije Universiteit Brussel) research groups are investigating ways to reduce this tension between reliability and agility. Together, we seek to make changes the primary unit of analysis during quality assurance and as such we expect to speed up the release process without sacrificing the safety net of quality assurance. The Info Brochure details the change-centric quality assurance tools that we have developed to this end, and that we have put to the test in pilot cases at software-intensive companies from our user committee.
[12:30 - 13:00] — Registration
[13:30 - 14:20] — Pilot Studies on Cha-Q Technology for "Mining and Automating Past Changes"
Mining Git Repositories for Repeated Systematic Edits at TPVision - Reinout Stevens (VUB) (presentation)
Developers often perform similar, but context-dependent, edits to multiple files. For instance, to update all clients of a library to the newest version. In the course of a project's history, developers might unconsciously repeat such systematic edits several times. To provide developers insights into the edits that are repeated, we propose an algorithm inspired by big data processing that mines a project's Git repository for repeated edits. Its output can motivate a restructuring of the project to minimize the need for repeated edits, or a project-specific refactoring tool that automates them. We report on the mining algorithm and its application at TPVision.
Automating Systematic Edits and Project-Specific Refactorings at FOD Financiën - Tim Molderez (VUB) (presentation)
Manually performing similar, but context-dependent, edits to multiple files can be effort-intensive and error-prone. We therefore developed a powerful, but user-friendly, program transformation tool that can be used to automate such systematic edits. Using this tool, we performed a pilot study at FOD Financiën in which we tried to automate the systematic edits found in one year of development activity on Tax-on-web’s tax simulation service. We report on the results and sketch potential applications of the program transformation tool, such as adjusting code to API changes, migrating to alternative frameworks and libraries, repairing multiple instances of the same bug, creating project-specific refactorings, etc... .
[14:20 - 14:30] — Coffee break
[14:30 - 14:55] — Pilot Studies on Cha-Q Technology for "Monitoring Ongoing Changes"
[14:55 - 15:45] — Pilot Studies on Cha-Q Technology for "History-Inspired Decision Making"
Exploiting the Issue Tracker for Project Planning at Inventive Designers - Murgia Alessandro (UA) (presentation)
Planning poker is a proven Scrum technique for estimating the effort required to address an issue. However, it is sometimes necessary to provide these estimations before the team gathers for the planning poker session. We therefore developed a recommendation system that provides estimates based on the similarity of the issue with all the others recorded in the JIRA database. In a pilot study at Inventive Designers, the recommendation system produced estimates aligned to the one produced by developers. Moreover, the results were sufficiently encouraging to use the system during planning poker session, to supplement the discussion whenever there is a disagreement in the team. Based on this experiment, we believe the system can help the team to schedule the developers’ workload, and help long-term project planning.
[15:45 - 15:55] — Coffee break
[15:55 - 16:45] — Invited Talk "What Software Analytics Can Do for Developers and Testers" by Andy Zaidman (Delft University of Technology, The Netherlands)
What do we know about software development? A whole lot and at the same time surprisingly little. Some of the things that we know came to us through folklore, stories of how something happened in a specific project, for a specific programming language. One such element of folklore is the assumption that software developers spend around 50% of their time on testing and debugging. While no-one would disagree that these phases are essential in software development, the real effort it takes is unknown. What is more, also the things that software engineers are struggling with during testing or debugging are not know to us. In this talk, we will analyse how developers perform developer testing, how they use Continuous Integration related to testing and how debugging is done. From a research perspective, but also from a very practical developer-oriented perspective. This talk goes to show that both researchers and developers can benefit from software analytics.
[16:45 - 18:00] — Poster Reception and Networking Drink