{"title":"VSCode Migrate:低覆盖率项目的半自动迁移","authors":"Tim Vahlbrock, Martin Guddat, Tom Vierjahn","doi":"10.1109/ICSME55016.2022.00070","DOIUrl":null,"url":null,"abstract":"Modern software is subject to continuous change and so are its interfaces to other software. Introducing breaking changes to an interface requires its consumers to make adaptions to their own code base in order to compensate. Oftentimes, the number of changes requires a large effort when performed manually. Additionally, the places that require changes may be hard to find using simple pattern matching. Both have lead to the development of tools like ClangMR, which automatically find and adapt affected pieces of code. Such automatic tools, however, assume that the correctness of the applied changes will be verified by tests. This makes them risky to use for projects with a low test coverage.In this paper we present VSCode Migrate, an IDE extension to perform semi-automatic migrations, enabling large refactorings in low coverage projects. The locations that need to be refactored can be found using alternative matching strategies, including AST based ones, and the changes to perform can be generated automatically. However, instead of applying the changes immediately, VSCode Migrate lets the developer verify and modify each adaption. If a change is not sufficiently covered, additional tests can be added before the change is applied. These mechanisms provide the safeguarding necessary for projects with low test coverage.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"VSCode Migrate: Semi-Automatic Migrations for Low Coverage Projects\",\"authors\":\"Tim Vahlbrock, Martin Guddat, Tom Vierjahn\",\"doi\":\"10.1109/ICSME55016.2022.00070\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Modern software is subject to continuous change and so are its interfaces to other software. Introducing breaking changes to an interface requires its consumers to make adaptions to their own code base in order to compensate. Oftentimes, the number of changes requires a large effort when performed manually. Additionally, the places that require changes may be hard to find using simple pattern matching. Both have lead to the development of tools like ClangMR, which automatically find and adapt affected pieces of code. Such automatic tools, however, assume that the correctness of the applied changes will be verified by tests. This makes them risky to use for projects with a low test coverage.In this paper we present VSCode Migrate, an IDE extension to perform semi-automatic migrations, enabling large refactorings in low coverage projects. The locations that need to be refactored can be found using alternative matching strategies, including AST based ones, and the changes to perform can be generated automatically. However, instead of applying the changes immediately, VSCode Migrate lets the developer verify and modify each adaption. If a change is not sufficiently covered, additional tests can be added before the change is applied. These mechanisms provide the safeguarding necessary for projects with low test coverage.\",\"PeriodicalId\":300084,\"journal\":{\"name\":\"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)\",\"volume\":\"3 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICSME55016.2022.00070\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSME55016.2022.00070","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
VSCode Migrate: Semi-Automatic Migrations for Low Coverage Projects
Modern software is subject to continuous change and so are its interfaces to other software. Introducing breaking changes to an interface requires its consumers to make adaptions to their own code base in order to compensate. Oftentimes, the number of changes requires a large effort when performed manually. Additionally, the places that require changes may be hard to find using simple pattern matching. Both have lead to the development of tools like ClangMR, which automatically find and adapt affected pieces of code. Such automatic tools, however, assume that the correctness of the applied changes will be verified by tests. This makes them risky to use for projects with a low test coverage.In this paper we present VSCode Migrate, an IDE extension to perform semi-automatic migrations, enabling large refactorings in low coverage projects. The locations that need to be refactored can be found using alternative matching strategies, including AST based ones, and the changes to perform can be generated automatically. However, instead of applying the changes immediately, VSCode Migrate lets the developer verify and modify each adaption. If a change is not sufficiently covered, additional tests can be added before the change is applied. These mechanisms provide the safeguarding necessary for projects with low test coverage.