Le développement de logiciels est devenu de plus en plus complexe, intégrant des millions de lignes de code, incluant : le code du logiciel, l’utilisation d’API tierces, et le code des tests du logiciel indispensables pour une meilleure fiabilité. La maintenance de de tels logiciels complexes est une tâche ardue car elle implique la co-évolution entre ces trois artefacts logiciels. Actuellement, cette co-evolution est majoritairement réalisée manuellement ce qui engendre des problèmes de : 1/ fiabilité car sujette aux erreurs si effectuée manuellement par les développeurs ; 2/ de coût car la réalisation manuelle par les développeurs des tâches de maintenance et d'évolution est chronophage et donc coûteuse ; 3/ d’impact écologique car la maintenance manuelle des tests peut créer des tests redondants qui consomment des ressources (temps, matériels) ont donc un impact écologique non négligeable.
Le but de cette thèse est de répondre à deux problèmes scientifiques et techniques liées à cette co-evolution : 1/ comment automatiser autant que possible la co-évolution du code, des tests et des API pour réduire les coûts et erreurs de maintenance ; 2/ comment identifier les optimisations de la suite de tests à effectuer pendant la co-évolution pour réduire l'impact écologique de la suite de tests.
Le doctorant rejoindra l'équipe DiverSE (Diversity-centric Software Engineering), équipe commune IRISA/Inria Rennes, et sera supervisé par : Arnaud Blouin, Jean-Marc Jézéquel, et Djamel-Eddine Khelladi.
[1] Nagappan, N., Murphy, B., & Basili, V. The influence of organizational structure on software quality. In ACM/IEEE 30th ICSE, (pp. 521-530). IEEE. 2008. (link)
[2] Glass, R. L. Frequently forgotten fundamental facts about software engineering. IEEE software, (3), 112-110. 2001. (link)
[3] Alkhatib, G. The maintenance problem of application software: an empirical analysis. Journal of Soft. Maintenance: Research and Practice, 83-104. 1992. (link)
[4] R. Banker, S. Datar, C. Kemerer, D. Zweig. Software Complexity and Software Maintenance Costs. Sloan School of Management, Massachusetts Institute of Technology, Cambridge, MA, USA, 1990. (link)
[5] Soto-Valero, C., Benelallam, A., Harrand, N., Barais, O., & Baudry, B. The emergence of software diversity in maven central. MSR 2019: 333-343. (link)
[6] Sawant, A. A., Aniche, M., van Deursen, A., & Bacchelli, A. Understanding developers' needs on deprecation as a language feature. ICSE 2018: 561-571. (link)
[7] Hebig, R., Khelladi, D. E., Bendraou, R. Approaches to Co-Evolution of Metamodels and Models: A Survey. IEEE Trans. Software Eng. 43(5): 396-414 (2017). (link)
[8] Khelladi, D. E., Bendraou, R., Hebig, R., & Gervais, M. P. A semi-automatic maintenance and co-evolution of OCL constraints with (meta)model evolution. Journal of Systems and Software 134: 242-260 (2017). (link)
[9] Khelladi, D. E., Kretschmer, R., & Egyed, A. Change Propagation-based and Composition-based Co-evolution of Transformations with Evolving Metamodels. MoDELS 2018: 404-414. (link)
[10] Henkel, J., & Diwan, A. CatchUp! Capturing and replaying refactorings to support API evolution. In Proceedings. 27th ICSE. (pp. 274-283). IEEE. 2005. (link)
[11] Dagenais, B., & Robillard, M. P. Recommending adaptive changes for framework evolution. ACM Trans. on Soft. Eng. and Methodology. 20(4), 19. 2011. (link)
[12] Nguyen, H. A., Nguyen, T. T., Wilson Jr, G., Nguyen, A. T., Kim, M., & Nguyen, T. N. A graph-based approach to API usage adaptation. ACM Sigplan OOPSLA, 302-321. 2010. (link)
[13] Andersen, J., & Lawall, J. L. Generic patch inference. In Automated software engineering Journal, 17(2), 119-148. 2010. (link, link)
[14] Xu, Z., Kim, Y., Kim, M., Rothermel, G., & Cohen, M. B. Directed test suite augmentation: techniques and tradeoffs. 18th FSE (pp. 257-266). ACM. 2010. (link)
[15] Mirzaaghaei, M., Pastore, F., & Pezzè, M. Automatic test case evolution. Software Testing, Verification and Reliability, 24(5), 386-411. 2014. (link)
[16] Kuutila, M., Mäntylä, M., Farooq, U., Claes, M., Time Pressure in Software Engineering: A Systematic Review, Information and Software Technology, 2020 (link)
[17] Yoo, S., Harman, M., Regression testing minimization, selection and prioritization: a survey, Softw. Test. Verif. Reliab Journal, 22:67-20, 2012 (link)