Expected start date2023
Estimated duration3 years
ContactArnaud Blouin, Olivier Barais, Djamel-Eddine Khelladifirstname.firstname.lastname@example.org
Web front-ends are integral parts of Web applications and are specific software components to be tested. Detecting and fixing bugs in Web front-ends that threaten the stability of entire software systems is crucial to the industry (stability, privacy, etc.). However, testing front-ends is currently a complex task: the test fixtures (that configure front-end tests) are complex since they have to simulate (mock) multiple dependencies of the front-end component under test. Moreover, software engineers still rely on low-level object-oriented metrics (code coverage) to measure the quality of their front-end test suites. Finally, the maintenance of front-end tests after production code changes is still a burden for engineers that need to manually craft co-evolutions between code and their tests.
The global objective of this PhD is to improve the front-end testing techniques.
More precisely, this PhD will focus on the following research questions:
1/ What characterize front-end tests? Mainstream front-end testing toolkit rely on object-oriented testing concepts. Is there differences between object-oriented test suites and front-end test suites (in terms of complexity, assertions, etc.)? What compose a front-end test? Etc. Discussing this question requires conducting large scale code analyzes (on code Software Heritage archived).
2/ How to characterize and measure front-end coverage? This question aims at providing front-end testers with dedicate coverage techniques. Test coverage is used to identify elements that are not, or only partially, covered by tests. As one of the pillars of the testing process, coverage calculation is used to automatically analyze the gaps in a test suite and then determine how to fill them. Existing front-end testing approaches do not consider all aspects of state-of-the-art front-ends for human-computer interaction and mainly focus on code coverage. However, a front-end is made of interactive graphical objects, which state may depend on the interactive path a user took using the front-end. This raises the challenge of gathering and leveraging front-end paths to detect stability and security issues.
3/ How to ease the production of front-end tests? This question focuses on developing techniques to produce (partial) front-end tests automatically using different techniques, such as test amplification or static/dynamic code analysis.
4/ How to maintain front-end tests? Front-end code is composed of multiple languages (e.g. TypeScript, HTML, CSS). Changes in such code may have impacts on their front-end tests. This makes more complex that testing tasks of developers that need to manually modify tests. This question focuses on easing such a task using adapted techniques such as code analyses, impact analyses in a polyglot context.
To work on the above-mentioned objectives the candidate will conduct empirical studies on large set of representative front-end projects the Software Heritage project archived. Software Heritage is an open (french) initiative for building a universal code archive. They harvest publicly available source code from numerous software projects and have archived 14 008 454 316 source files, 2 916 219 378 commits and 207 503 026 projects. They currently provide standard search engines only. The candidate will investigate new approaches for improving front-end testing. The candidate will evaluate the proposals empirically on representative front-end projects and based on developed prototypes.
The candidate will work in the DiverSE team, common to IRISA and Inria. The DiverSE team is located in Rennes. DiverSE’s research is in the field of software engineering. The team is actively involved in European, French and industrial projects and is composed of 9 professors/researchers, 20 PhD students, 4 post-docs and 3 engineers. The main supervisors of the thesis will be Arnaud Blouin, Olivier Barais and Djamel Eddine Khelladi. The candidate will enrol in the doctoral school in computer science of the University of Rennes 1.
We are looking for exceptional and motivated candidates for this 3-year PhD. The candidate must have (or be about to obtain) a master’s or engineering degree in computer science. Appetence and curiosity related to code analysis, code transformation, software testing, Web front-end are mandatory for this thesis. A mastery of scientific English is necessary. Knowledge of French is not required. Gross monthly salary: around 2050 € (years 1 and 2) then around 2150 €.
The candidates must send their application to Arnaud Blouin and Djamel Eddine Khelladi (arnaud.blouin at irisa.fr, djamel.khelladi at irisa.fr), with the following documents: