Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00059
Jianbo Gao
As blockchain-based decentralized applications (DApp) become increasingly popular recently, there is an urgent demand for effective testing schemes and tools. Due to the complexity introduced by application-blockchain interaction, existing testing methods become non-applicable. In this paper, we present a guided and automated framework called Sungari to test DApps. The insights behind Sungari are two-fold. First, we employ random events to infer an abstract relation between frontend and blockchain. Second, we use the relation to generate event sequnces in a guided manner that can cover blockchain smart contracts as quick as possible. In a real-world DApp case study, Sungari outperformed random approach by covering 33% more application use cases.
{"title":"Guided, Automated Testing of Blockchain-Based Decentralized Applications","authors":"Jianbo Gao","doi":"10.1109/ICSE-Companion.2019.00059","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00059","url":null,"abstract":"As blockchain-based decentralized applications (DApp) become increasingly popular recently, there is an urgent demand for effective testing schemes and tools. Due to the complexity introduced by application-blockchain interaction, existing testing methods become non-applicable. In this paper, we present a guided and automated framework called Sungari to test DApps. The insights behind Sungari are two-fold. First, we employ random events to infer an abstract relation between frontend and blockchain. Second, we use the relation to generate event sequnces in a guided manner that can cover blockchain smart contracts as quick as possible. In a real-world DApp case study, Sungari outperformed random approach by covering 33% more application use cases.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117059029","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00045
Cuong Cu, Xin Ye, Yongjie Zheng
This paper presents an Eclipse-based toolset named xLineMapper to automatically manage the relationships (e.g., traceability, conformance) among product line features, architecture, and source code. The xLineMapper toolset can (1) trace a product line feature to its related architectural elements and code fragments, (2) automatically update both product line architecture and code when a feature is changed, and (3) automatically customize product line architecture and code for a particular product based on its feature configuration. This is an improvement from existing product line approaches which only support either feature-architecture or feature-code mapping. We conducted a case study of xLineMapper with a large open-source software system, Apache Solr. A video demo of xLineMapper is available at https://youtu.be/pdO-vnE8U6w.
{"title":"xLineMapper: A Product Line Feature-Architecture-Implementation Mapping Toolset","authors":"Cuong Cu, Xin Ye, Yongjie Zheng","doi":"10.1109/ICSE-Companion.2019.00045","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00045","url":null,"abstract":"This paper presents an Eclipse-based toolset named xLineMapper to automatically manage the relationships (e.g., traceability, conformance) among product line features, architecture, and source code. The xLineMapper toolset can (1) trace a product line feature to its related architectural elements and code fragments, (2) automatically update both product line architecture and code when a feature is changed, and (3) automatically customize product line architecture and code for a particular product based on its feature configuration. This is an improvement from existing product line approaches which only support either feature-architecture or feature-code mapping. We conducted a case study of xLineMapper with a large open-source software system, Apache Solr. A video demo of xLineMapper is available at https://youtu.be/pdO-vnE8U6w.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121711540","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00081
Christoph Matthies
Improving the way that teams work together by reflecting and improving the executed process is at the heart of agile processes. The idea of iterative process improvement takes various forms in different agile development methodologies, e.g. Scrum Retrospectives. However, these methods do not prescribe how improvement steps should be conducted in detail. In this research we investigate how agile software teams can use their development data, such as commits or tickets, created during regular development activities, to drive and track process improvement steps. Our previous research focused on data-informed process improvement in the context of student teams, where controlled circumstances and deep domain knowledge allowed creation and usage of specific process measures. Encouraged by positive results in this area, we investigate the process improvement approaches employed in industry teams. Researching how the vital mechanism of process improvement is implemented and how development data is already being used in practice in modern software development leads to a more complete picture of agile process improvement. It is the first step in enabling a data-informed feedback and improvement process, tailored to a team's context and based on the development data of individual teams.
{"title":"Feedback in Scrum: Data-Informed Retrospectives","authors":"Christoph Matthies","doi":"10.1109/ICSE-Companion.2019.00081","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00081","url":null,"abstract":"Improving the way that teams work together by reflecting and improving the executed process is at the heart of agile processes. The idea of iterative process improvement takes various forms in different agile development methodologies, e.g. Scrum Retrospectives. However, these methods do not prescribe how improvement steps should be conducted in detail. In this research we investigate how agile software teams can use their development data, such as commits or tickets, created during regular development activities, to drive and track process improvement steps. Our previous research focused on data-informed process improvement in the context of student teams, where controlled circumstances and deep domain knowledge allowed creation and usage of specific process measures. Encouraged by positive results in this area, we investigate the process improvement approaches employed in industry teams. Researching how the vital mechanism of process improvement is implemented and how development data is already being used in practice in modern software development leads to a more complete picture of agile process improvement. It is the first step in enabling a data-informed feedback and improvement process, tailored to a team's context and based on the development data of individual teams.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122391427","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00046
Zuxing Gu, Jiecheng Wu, Chi Li, Min Zhou, Yu Jiang, M. Gu, Jiaguang Sun
Libraries offer reusable functionality through application programming interfaces (APIs) with usage constraints such as call conditions and orders. Constraint violations, i.e., API misuses, commonly lead to bugs and even security issues. In this paper, we introduce IMChecker, a constraint-directed static analysis toolkit to vet API usages in C programs powered by a domain-specific language (DSL) to specify the API usages. First, we propose a DSL, which covers most API usage constraint types and enables straightforward but precise specification by studying real-world API-misuse bug patches. Then, we design and implement a static analysis engine to automatically parse specifications into checking targets, identify potential API misuses and prune the false positives with rich semantics. We have instantiated IMChecker for C programs with user-friendly graphic interfaces and evaluated the widely used benchmarks and real-world projects. The results show that IMChecker outperforms 4.78-36.25% in precision and 40.25-55.21% w.r.t. state-of-the-arts toolkits. We also found 75 previously unknown bugs in Linux kernel, OpenSSL and applications of Ubuntu, 61 of which have been confirmed by the corresponding development communities. Video: https://youtu.be/YGDxeyOEVIM
{"title":"Vetting API Usages in C Programs with IMChecker","authors":"Zuxing Gu, Jiecheng Wu, Chi Li, Min Zhou, Yu Jiang, M. Gu, Jiaguang Sun","doi":"10.1109/ICSE-Companion.2019.00046","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00046","url":null,"abstract":"Libraries offer reusable functionality through application programming interfaces (APIs) with usage constraints such as call conditions and orders. Constraint violations, i.e., API misuses, commonly lead to bugs and even security issues. In this paper, we introduce IMChecker, a constraint-directed static analysis toolkit to vet API usages in C programs powered by a domain-specific language (DSL) to specify the API usages. First, we propose a DSL, which covers most API usage constraint types and enables straightforward but precise specification by studying real-world API-misuse bug patches. Then, we design and implement a static analysis engine to automatically parse specifications into checking targets, identify potential API misuses and prune the false positives with rich semantics. We have instantiated IMChecker for C programs with user-friendly graphic interfaces and evaluated the widely used benchmarks and real-world projects. The results show that IMChecker outperforms 4.78-36.25% in precision and 40.25-55.21% w.r.t. state-of-the-arts toolkits. We also found 75 previously unknown bugs in Linux kernel, OpenSSL and applications of Ubuntu, 61 of which have been confirmed by the corresponding development communities. Video: https://youtu.be/YGDxeyOEVIM","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116242793","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00129
Gias Uddin, Foutse Khomh, C. Roy
The learnability of an API suffers when the official documentation of the API is incomplete. Developers discuss usage scenarios of APIs in the online developer forums. As such, by automatically mining such crowd-sourced documentation of APIs, we can address the shortcomings of API official documentation. We present a framework to automatically mine usage scenarios about APIs from online developer forums. Each usage scenario of an API consists of a code example, a summary description, and the reactions (i.e., positive and negative opinions) of other developers towards the code example. We evaluate our API usage mining framework by producing a benchmark dataset. We observed a precision of 0.947 and a recall of 1.0 with the linking of a code example to an API mention in the forum.
{"title":"Towards Crowd-Sourced API Documentation","authors":"Gias Uddin, Foutse Khomh, C. Roy","doi":"10.1109/ICSE-Companion.2019.00129","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00129","url":null,"abstract":"The learnability of an API suffers when the official documentation of the API is incomplete. Developers discuss usage scenarios of APIs in the online developer forums. As such, by automatically mining such crowd-sourced documentation of APIs, we can address the shortcomings of API official documentation. We present a framework to automatically mine usage scenarios about APIs from online developer forums. Each usage scenario of an API consists of a code example, a summary description, and the reactions (i.e., positive and negative opinions) of other developers towards the code example. We evaluate our API usage mining framework by producing a benchmark dataset. We observed a precision of 0.947 and a recall of 1.0 with the linking of a code example to an API mention in the forum.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"26 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114913725","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00109
Lingyun Situ, Linzhang Wang, Xuandong Li, Le Guan, Wenhui Zhang, Peng Liu
Existing energy distribution strategies of AFL and its variants have two limitations. (1) They focus on increasing coverage but ignore the fact that some code regions are more likely to be vulnerable. (2) They randomly select mutators and deterministically specify the number to mutator, therefore lack insights regarding which granularity of mutators are more helpful at that particular stage. We improve the two limitations of AFL's fuzzing energy distribution in a principled way. We direct the fuzzer to strengthen fuzzing toward regions that have a higher probability to contain vulnerabilities based on static semantic metrics of the target program. Furthermore, granularity-aware scheduling of mutators is proposed, which dynamically assigns ratios to different mutation operators. We implemented these improvements as an extension to AFL. Large-scale experimental evaluations showed the effectiveness of each improvement and performance of integration. The proposed tool has helped us find 12 new bugs and expose three new CVEs.
{"title":"Energy Distribution Matters in Greybox Fuzzing","authors":"Lingyun Situ, Linzhang Wang, Xuandong Li, Le Guan, Wenhui Zhang, Peng Liu","doi":"10.1109/ICSE-Companion.2019.00109","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00109","url":null,"abstract":"Existing energy distribution strategies of AFL and its variants have two limitations. (1) They focus on increasing coverage but ignore the fact that some code regions are more likely to be vulnerable. (2) They randomly select mutators and deterministically specify the number to mutator, therefore lack insights regarding which granularity of mutators are more helpful at that particular stage. We improve the two limitations of AFL's fuzzing energy distribution in a principled way. We direct the fuzzer to strengthen fuzzing toward regions that have a higher probability to contain vulnerabilities based on static semantic metrics of the target program. Furthermore, granularity-aware scheduling of mutators is proposed, which dynamically assigns ratios to different mutation operators. We implemented these improvements as an extension to AFL. Large-scale experimental evaluations showed the effectiveness of each improvement and performance of integration. The proposed tool has helped us find 12 new bugs and expose three new CVEs.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"20 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114399630","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00127
Adriana Lopes, E. Oliveira, T. Conte, C. D. Souza
In the development process, software models are used to support communication among development team members. Failures of communication that is mediated by software models may generate inconsistencies in software behavior, generating rework to correct them. This may occur because producers usually focus only on model content, although they should also reflect on how other members of the development team will interpret their models. We should therefore teach software engineering students how to communicate better through software models. In an attempt to improve communication through software models, we have developed the Directives of Communicability (DCs), based on theories that investigate different kinds of communication. In this poster, we present the highlights of a study to find out whether DCs improve software engineering students' communication through software models. Our results confirm that DCs have improved the students' reflections on how their models' content will be interpreted during the software development process.
{"title":"Directives of Communicability: Teaching Students How to Improve Communication Through Software Modeling","authors":"Adriana Lopes, E. Oliveira, T. Conte, C. D. Souza","doi":"10.1109/ICSE-Companion.2019.00127","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00127","url":null,"abstract":"In the development process, software models are used to support communication among development team members. Failures of communication that is mediated by software models may generate inconsistencies in software behavior, generating rework to correct them. This may occur because producers usually focus only on model content, although they should also reflect on how other members of the development team will interpret their models. We should therefore teach software engineering students how to communicate better through software models. In an attempt to improve communication through software models, we have developed the Directives of Communicability (DCs), based on theories that investigate different kinds of communication. In this poster, we present the highlights of a study to find out whether DCs improve software engineering students' communication through software models. Our results confirm that DCs have improved the students' reflections on how their models' content will be interpreted during the software development process.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128669454","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00119
Alessio Gambi, Tri Huynh, G. Fraser
Autonomous driving carries the promise to drastically reduce the number of car accidents; however, recently reported fatal crashes involving self-driving cars show this important goal is not yet achieved, and call for better testing of the software controlling self-driving cars. To better test self-driving car software, we propose to specifically test critical scenarios. Since these are difficult to test in field operation, we create simulations of critical situations. These simulations are automatically derived from natural language police reports of actual car crashes, which are available in historical datasets. Our initial evaluation shows that we can generate accurate simulations in a matter of minutes.
{"title":"Automatically Reconstructing Car Crashes from Police Reports for Testing Self-Driving Cars","authors":"Alessio Gambi, Tri Huynh, G. Fraser","doi":"10.1109/ICSE-Companion.2019.00119","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00119","url":null,"abstract":"Autonomous driving carries the promise to drastically reduce the number of car accidents; however, recently reported fatal crashes involving self-driving cars show this important goal is not yet achieved, and call for better testing of the software controlling self-driving cars. To better test self-driving car software, we propose to specifically test critical scenarios. Since these are difficult to test in field operation, we create simulations of critical situations. These simulations are automatically derived from natural language police reports of actual car crashes, which are available in historical datasets. Our initial evaluation shows that we can generate accurate simulations in a matter of minutes.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124383651","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00095
Sepehr Eghbali, Vinit Kudva, G. Rothermel, L. Tahvildari
Test case prioritization reorders sequences of test cases with the aim of increasing the rate at which faults can be detected. Most existing prioritization techniques employ coverage information gathered on previous test case executions to rank test cases. Existing studies in the literature, however, show that there is a high chance that "ties" occur during the prioritization procedure when using coverage-based techniques; that is, there is a high chance that cases will occur in which two or more candidate test cases have identical code coverage behaviors. To break such ties, most techniques resort to random re-ordering of test cases, which can degrade the rate of fault detection. In this work, we use an ensemble of defect prediction models to guide prioritization techniques towards breaking such ties by re-ordering test cases in terms of the likelihood that they will cover fault-prone units of code.
{"title":"Supervised Tie Breaking in Test Case Prioritization","authors":"Sepehr Eghbali, Vinit Kudva, G. Rothermel, L. Tahvildari","doi":"10.1109/ICSE-Companion.2019.00095","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00095","url":null,"abstract":"Test case prioritization reorders sequences of test cases with the aim of increasing the rate at which faults can be detected. Most existing prioritization techniques employ coverage information gathered on previous test case executions to rank test cases. Existing studies in the literature, however, show that there is a high chance that \"ties\" occur during the prioritization procedure when using coverage-based techniques; that is, there is a high chance that cases will occur in which two or more candidate test cases have identical code coverage behaviors. To break such ties, most techniques resort to random re-ordering of test cases, which can degrade the rate of fault detection. In this work, we use an ensemble of defect prediction models to guide prioritization techniques towards breaking such ties by re-ordering test cases in terms of the likelihood that they will cover fault-prone units of code.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"584 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116546485","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00054
Nghi D. Q. Bui
Programmers often need to migrate programs from one language or platform to another in order to implement functionality, instead of rewriting the code from scratch. However, most techniques proposed to identify API mappings across languages and facilitate automated program translation require manually curated parallel corpora that contain already mapped API seeds or functionally-equivalent code using the APIs in two different languages so that the techniques can have an anchor to map APIs. To alleviate the need of curating parallel data and to generalize the applicability of program translation techniques, we develop a new automated approach for identifying API mappings across languages based on the idea of unsupervised domain adaption via Generative Adversarial Network (GAN) and an additional refinement procedure that can transform two vector spaces to align the API vectors in the two spaces without the need of manually provided anchors. We show that our approach can identify API mappings more accurately than Api2Api without the need of curated parallel seeds
{"title":"Towards Zero Knowledge Learning for Cross Language API Mappings","authors":"Nghi D. Q. Bui","doi":"10.1109/ICSE-Companion.2019.00054","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00054","url":null,"abstract":"Programmers often need to migrate programs from one language or platform to another in order to implement functionality, instead of rewriting the code from scratch. However, most techniques proposed to identify API mappings across languages and facilitate automated program translation require manually curated parallel corpora that contain already mapped API seeds or functionally-equivalent code using the APIs in two different languages so that the techniques can have an anchor to map APIs. To alleviate the need of curating parallel data and to generalize the applicability of program translation techniques, we develop a new automated approach for identifying API mappings across languages based on the idea of unsupervised domain adaption via Generative Adversarial Network (GAN) and an additional refinement procedure that can transform two vector spaces to align the API vectors in the two spaces without the need of manually provided anchors. We show that our approach can identify API mappings more accurately than Api2Api without the need of curated parallel seeds","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122969114","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}