Striking the balance between agility and reliability through change-centric software development.
On Tuesday February 24th, we organized an open tool demonstration event at the University of Antwerp.
At this event, open to all companies and software teams interested in state-of-the-art tooling, we have demonstrated the chance-centric quality assurance tools developed by the Cha-Q consortium.
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 (University of Antwerp) and SOFT (University of Brussels) 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 following are examples of the problems addressed by our change-centric quality assurance tools:
Monitoring the test process. Determine the impact of changes on both the test and production code, to persuade team members to increase test activities. Demonstrate that the test process itself meets quality guidelines (e.g., every bug fix is covered by a regression test).
Deciding what to re-test. Instead of running all tests for a given release, run only those tests that are potentially affected by a given change. This allows for instant feedback on the changes that cause tests to fail, saving valuable time in identifying the precise location of a defect.
Monitoring the bug database. Verify whether anomalies occur in the bug database (e.g., wrong severity, assigned to wrong product or component). Assure that all severe bugs have been fixed before a release.
Deciding bug assignment. Once bugs have been reported, determine who is the best person in the team to handle the request. Use historical information to reliably estimate the time it will take to fix the bug.
Monitoring code changes. Monitor changes as they are made in the editor or as they are committed to the version repository. Use documented traceability links and past co-change information to recommend related code that should be changed accordingly (e.g., XML configuration files).
Automating code changes. Release a new API version with patches that automatically update all existing client code, reducing the number of API versions in the field. Replay code changes that were successful for a given branch on a variant branch, reducing manual branch synchronization.
We refer the Cha-Q info brochure for more details.
The open tool demonstration event takes place on Tuesday, February 24, 2015 from 13:00 till 17:30 at the University of Antwerp Campus Middelheim.
13:00 - 13:30 — Welcome
13:30 - 15:30 — Tool Demonstrations
15:30 - 16:30 — Invited Speaker — Jurgen Vinju — Software Engineering: the war against complexity (presentation)
16:30 - 17:30 — Networking drink