The costly impact of bugs
Bugs - faults in the development of programs - result in errors and can even lead to breakdowns, and are a headache for all program designers. “They're the scourge of the software industry”, says Steven Costiou, a researcher with the project team RMoD, a joint undertaking involving the University of Lille Inria Centre and the University of Lille.
This 36-year-old researcher, who joined Inria in 2019, has first-hand experience with this issue: before entering the world of research, he spent six years as a software engineer with a consulting firm working for Thales and a software publisher. “When companies decide to launch an app, they come up with an estimate as to how much its development will cost”, he explains. “But too often they ignore the cost of maintenance and debugging (correcting bugs) during the development of the software and after handover to clients, costs which we know can quickly add up.”
A project supported by the ANR
Debugging is one of the main areas of focus for the project team RMoD (at the University of Lille Inria Centre), which specialises in software analysis and building languages for the development of object-oriented applications. It is also central to Ocre (“Reducing the cost of debugging with next-generation, object-oriented debuggers”), the project which Steven Costiou is behind - a project for which he has just been awarded a Young Researcher Grant from the French National Research Agency (ANR).
Worth €173,000, the researcher has already been able to use this funding to take on a Ph.D. student, Valentin Bourcier, whose thesis will focus on new debugging methods developed as part of the Ocre project. “For his research, Valentin will be able to draw on the discoveries made by Maximilian Willembrinck, one of my other Ph.D. students, particularly when it comes to analysing the development of a program at different points in time”, explains Steven Costiou.
Focusing debugging on objects
Correcting bugs is primarily about understanding programs. “The traditional debuggers that have been developed so far are generic programs, which can be used by developers to identify huge numbers of lines of code which are causing problems, but not which corrections have to be made”, explains the researcher.
“Our focus is on a more recent method known as ‘object-centric debugging’, which first emerged in 2012 but which has still to be developed. The benefit of this is that debugging tasks are able to focus on specific objects found in object systems.” As a result, they are able to take advantage of one of the main features of object-oriented programming languages such as Python, Pharo, or Java. These languages can be used to program objects interacting with each other, allowing these debugging programs to focus on these abstractions and to detect and isolate any problems to be corrected more quickly.
Pharo: a playground for testing out innovations
When it comes to making progress on this subject, the researchers from the Ocre project will be able to count on their proximity to Pharo, a dynamic object language created by Inria and used widely in the industrial sphere. “Pharo is the perfect testing ground for debuggers”, explains Steven Costiou. We are part of the team responsible for developing this language and the community associated with it, meaning we have the expertise for experimenting with possible breakthroughs and the modifications to the language which could help to bring these about.”
Those involved in Ocre also have a partnership with two academic institutions - the University of Quebec at Chicoutimi (Canada) and the University of Zurich - and another partnership with Thales, a company that uses Pharo for many of its software programs. As an example of why there has been so much interest in Ocre, Thales DMS (Défense et systèmes de mission - Defence and mission systems) has used object languages (including Pharo) to develop extremely complex models for clients for demonstrations taking place over several days. “When there's a bug, their aim is to find the object in the memory as quickly as possible in order to correct it while it is running”, says the researcher, whose Ph.D. (completed in 2018 at the University of Brest) tackled the issue of the burn-in of programs in use.
Analysis, testing and evaluations on a large scale
The Ocre project is set to run for four years and incorporate three stages. The first stage will give the researchers the opportunity to develop a method for identifying objects for debugging. “Our reasoning is that people all have different ways of interacting with objects. They have different habits, and don’t necessarily want to handle the same things”, explains Steven Costiou.
Our long-term goal is to create a framework that will enable users to choose how they want to search for, view, or handle objects requiring debugging.
The second phase of the project will involve developing and studying debugging tools. “Just as you would do when testing a new drug, what we're planning to do is to bring together a wide variety of developers to see if they program more quickly with or without our prototype debuggers”, adds the researcher. Usage data will be collected anonymously and fed back to an Inria server for analysis purposes.
This test will make it possible to identify the benefits of each system and the potential cognitive costs (i.e. learning costs) for any company which might adopt them. The final phase will focus on empirical evaluations, part of which will take place at Thales: “This is when we will test our tools in real-life situations within an industrial development context, which will show us how useful they are in the event of something unexpected happening.”
Making debuggers available opensource
The prototype debuggers developed through Ocre will be made available to the public open source. Everyone in the software sphere (including manufacturers, researchers, and academics) who uses object-oriented programming languages will then be able to adopt these debuggers.
As a scientist, I believe that what I produce through my research should be made available to as many people as possible”, explains Steven Costiou. “Another benefit with the open-source model is that it makes it easier to share prototypes with different communities, who will then be able to give us their feedback and ideas.” What better way to spread the word of new methods for getting rid of bugs?
Find out more (for experts)
- Advanced Debugging Tools, talk given in English by Steven Costiou (ESUG 2019, Cologne, Germany), 27/10/2019.
- Sindarin : A Versatile Scripting API for the Pharo Debugger, talk given in English by Thomas Dupriez, then a PhD student at Inria, (SPLASH 2019, Athens, Greece), ACM SIGPLAN, 21/10/2019.
- Time-traveling queries for faster debugging and program comprehension, presentation by Maximilian ignacio Willembrick Santander PhD of the RMoD project team at the University of Lille Inria Centre.