首页 > 最新文献

2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Towards Generating Thread-Safe Classes Automatically 实现自动生成线程安全类
Haichi Wang, Zan Wang, Jun Sun, Shuang Liu, A. Sadiq, Yuan-Fang Li
The existing concurrency model for Java (or C) requires programmers to design and implement thread-safe classes by explicitly acquiring locks and releasing locks. Such a model is error-prone and is the reason for many concurrency bugs. While there are alternative models like transactional memory, manually writing locks remains prevalent in practice. In this work, we propose AutoLock, which aims to solve the problem by fully automatically generating thread-safe classes. Given a class which is assumed to be correct with sequential clients, AutoLock automatically generates a thread-safe class which is linearizable, and does it in a way without requiring a specification of the class. AutoLock takes three steps: (1) infer access annotations (i.e., abstract information on how variables are accessed and aliased), (2) synthesize a locking policy based on the access annotations, and (3) consistently implement the locking policy. AutoLock has been evaluated on a set of benchmark programs and the results show that AutoLock generates thread-safe classes effectively and could have prevented existing concurrency bugs.
现有的Java(或C)并发模型要求程序员通过显式地获取锁和释放锁来设计和实现线程安全的类。这样的模型容易出错,并且是导致许多并发错误的原因。虽然存在事务性内存等替代模型,但在实践中手动写锁仍然很普遍。在这项工作中,我们提出了AutoLock,它旨在通过完全自动生成线程安全类来解决这个问题。给定一个类,假定它对顺序客户端是正确的,AutoLock自动生成一个线程安全的类,它是线性化的,并且以一种不需要类规范的方式来实现。AutoLock分为三个步骤:(1)推断访问注释(即抽象变量如何被访问和别名的信息),(2)基于访问注释合成锁定策略,(3)一致地实现锁定策略。在一组基准程序上对AutoLock进行了评估,结果表明AutoLock可以有效地生成线程安全的类,并且可以防止现有的并发错误。
{"title":"Towards Generating Thread-Safe Classes Automatically","authors":"Haichi Wang, Zan Wang, Jun Sun, Shuang Liu, A. Sadiq, Yuan-Fang Li","doi":"10.1145/3324884.3416625","DOIUrl":"https://doi.org/10.1145/3324884.3416625","url":null,"abstract":"The existing concurrency model for Java (or C) requires programmers to design and implement thread-safe classes by explicitly acquiring locks and releasing locks. Such a model is error-prone and is the reason for many concurrency bugs. While there are alternative models like transactional memory, manually writing locks remains prevalent in practice. In this work, we propose AutoLock, which aims to solve the problem by fully automatically generating thread-safe classes. Given a class which is assumed to be correct with sequential clients, AutoLock automatically generates a thread-safe class which is linearizable, and does it in a way without requiring a specification of the class. AutoLock takes three steps: (1) infer access annotations (i.e., abstract information on how variables are accessed and aliased), (2) synthesize a locking policy based on the access annotations, and (3) consistently implement the locking policy. AutoLock has been evaluated on a set of benchmark programs and the results show that AutoLock generates thread-safe classes effectively and could have prevented existing concurrency bugs.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1072 ","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113981989","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}
引用次数: 2
Anti-patterns for Java Automated Program Repair Tools Java自动程序修复工具的反模式
Y. Wu
Prior study has identified common anti-patterns in automated repair for C programs. In this work, we study if the same problems exist in Java programs. We performed a manual inspection on the plausible patches generated by Java automated repair tools. We integrated anti-patterns in jGenProg2 and evaluated on Defects4J benchmark. The result shows that the average repair time is reduced by 22.6 % and the number of generated plausible patches is reduced from 67 to 29 for 14 bugs in total. Our study provided evidence about the effectiveness of applying anti-patterns in future Java automated repair tools.
先前的研究已经确定了C程序自动修复中的常见反模式。在这项工作中,我们研究了Java程序中是否存在同样的问题。我们对Java自动修复工具生成的貌似合理的补丁执行了手动检查。我们在jGenProg2中集成了反模式,并在缺陷4j基准上进行了评估。结果表明,平均修复时间减少了22.6%,生成的可信补丁数量从67个减少到29个,总共有14个bug。我们的研究为在未来的Java自动修复工具中应用反模式的有效性提供了证据。
{"title":"Anti-patterns for Java Automated Program Repair Tools","authors":"Y. Wu","doi":"10.1145/3324884.3418919","DOIUrl":"https://doi.org/10.1145/3324884.3418919","url":null,"abstract":"Prior study has identified common anti-patterns in automated repair for C programs. In this work, we study if the same problems exist in Java programs. We performed a manual inspection on the plausible patches generated by Java automated repair tools. We integrated anti-patterns in jGenProg2 and evaluated on Defects4J benchmark. The result shows that the average repair time is reduced by 22.6 % and the number of generated plausible patches is reduced from 67 to 29 for 14 bugs in total. Our study provided evidence about the effectiveness of applying anti-patterns in future Java automated repair tools.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114061463","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}
引用次数: 1
Multiplex Symbolic Execution: Exploring Multiple Paths by Solving Once 多重符号执行:通过一次求解探索多重路径
Yufeng Zhang, Zhenbang Chen, Ziqi Shuai, Tianqi Zhang, Kenli Li, Ji Wang
Path explosion and constraint solving are two challenges to symbolic execution's scalability. Symbolic execution explores the program's path space with a searching strategy and invokes the underlying constraint solver in a black-box manner to check the feasibility of a path. Inside the constraint solver, another searching procedure is employed to prove or disprove the feasibility. Hence, there exists the problem of double searchings in symbolic execution. In this paper, we propose to unify the double searching procedures to improve the scalability of symbolic execution. We propose Multiplex Symbolic Execution (MuSE) that utilizes the intermediate assignments during the constraint solving procedure to generate new program inputs. MuSE maps the constraint solving procedure to the path exploration in symbolic execution and explores multiple paths in one time of solving. We have implemented MuSE on two symbolic execution tools (based on KLEE and JPF) and three commonly used constraint solving algorithms. The results of the extensive experiments on real-world benchmarks indicate that MuSE has orders of magnitude speedup to achieve the same coverage.
路径爆炸和约束求解是符号执行可扩展性面临的两大挑战。符号执行通过搜索策略探索程序的路径空间,并以黑盒方式调用底层约束求解器来检查路径的可行性。在约束求解器内部,使用另一个搜索程序来证明或否定可行性。因此,在符号执行中存在双重搜索的问题。本文提出统一双搜索过程,以提高符号执行的可扩展性。我们提出了多重符号执行(MuSE),它利用约束求解过程中的中间赋值来生成新的程序输入。MuSE将约束求解过程映射到符号执行中的路径探索,在一次求解中探索多条路径。我们在两种符号执行工具(基于KLEE和JPF)和三种常用的约束求解算法上实现了MuSE。在实际基准上的大量实验结果表明,为了达到相同的覆盖范围,MuSE具有数量级的加速。
{"title":"Multiplex Symbolic Execution: Exploring Multiple Paths by Solving Once","authors":"Yufeng Zhang, Zhenbang Chen, Ziqi Shuai, Tianqi Zhang, Kenli Li, Ji Wang","doi":"10.1145/3324884.3416645","DOIUrl":"https://doi.org/10.1145/3324884.3416645","url":null,"abstract":"Path explosion and constraint solving are two challenges to symbolic execution's scalability. Symbolic execution explores the program's path space with a searching strategy and invokes the underlying constraint solver in a black-box manner to check the feasibility of a path. Inside the constraint solver, another searching procedure is employed to prove or disprove the feasibility. Hence, there exists the problem of double searchings in symbolic execution. In this paper, we propose to unify the double searching procedures to improve the scalability of symbolic execution. We propose Multiplex Symbolic Execution (MuSE) that utilizes the intermediate assignments during the constraint solving procedure to generate new program inputs. MuSE maps the constraint solving procedure to the path exploration in symbolic execution and explores multiple paths in one time of solving. We have implemented MuSE on two symbolic execution tools (based on KLEE and JPF) and three commonly used constraint solving algorithms. The results of the extensive experiments on real-world benchmarks indicate that MuSE has orders of magnitude speedup to achieve the same coverage.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121140076","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}
引用次数: 10
Accelerating All-SAT Computation with Short Blocking Clauses 用短阻塞子句加速全sat计算
Yueling Zhang, G. Pu, Jun Sun
The All-SAT (All-SATisfiable) problem focuses on finding all satisfiable assignments of a given propositional formula, whose applications include model checking, automata construction, and logic minimization. A typical ALL-SAT solver is normally based on iteratively computing satisfiable assignments of the given formula. In this work, we introduce BASOLVER, a backbone-based All-SAT solver for propositional formulas. Compared to the existing approaches, BASOLVER generates shorter blocking clauses by removing backbone variables from the partial assignments and the blocking clauses. We compare BASOLVER with 4 existing ALL-SAT solvers, namely MBLOCKING, BC, BDD, and NBC. Experimental results indicate that although finding all the backbone variables consumes additional computing time, BASOLVER is still more efficient than the existing solvers because of the shorter blocking clauses and the backbone variables used in it. With the 608 formulas, BASOLVER solves the largest amount of formulas (86), which is 22%, 36%, 68%, 86% more formulas than MBLOCKING, BC, NBC, and BDD respectively. For the formulas that are both solved by BASOLVER and the other solvers, BASOLVER uses 88.4% less computing time on average than the other solvers. For the 215 formulas which first 1000 satisfiable assignments are found by at least one of the solvers, BASOLVER uses 180% less computing time on average than the other solvers.
all - sat (all - satisfiable)问题的重点是寻找给定命题公式的所有可满足的赋值,其应用包括模型检验、自动机构造和逻辑最小化。典型的ALL-SAT求解通常是基于对给定公式的可满足赋值的迭代计算。在这项工作中,我们介绍了BASOLVER,一个基于主干的全sat命题公式求解器。与现有方法相比,BASOLVER通过从部分赋值和阻塞子句中删除主干变量来生成更短的阻塞子句。我们将BASOLVER与现有的4种ALL-SAT求解器进行比较,即MBLOCKING、BC、BDD和NBC。实验结果表明,尽管寻找所有的骨干变量会消耗额外的计算时间,但由于BASOLVER的阻塞子句更短,并且使用了骨干变量,因此仍然比现有的求解器效率更高。在608个公式中,BASOLVER解决的公式最多(86个),比MBLOCKING、BC、NBC和BDD分别多22%、36%、68%和86%。对于同时使用BASOLVER和其他求解器求解的公式,BASOLVER比其他求解器平均节省了88.4%的计算时间。对于至少有一个求解器找到前1000个可满意赋值的215个公式,BASOLVER比其他求解器平均节省180%的计算时间。
{"title":"Accelerating All-SAT Computation with Short Blocking Clauses","authors":"Yueling Zhang, G. Pu, Jun Sun","doi":"10.1145/3324884.3416569","DOIUrl":"https://doi.org/10.1145/3324884.3416569","url":null,"abstract":"The All-SAT (All-SATisfiable) problem focuses on finding all satisfiable assignments of a given propositional formula, whose applications include model checking, automata construction, and logic minimization. A typical ALL-SAT solver is normally based on iteratively computing satisfiable assignments of the given formula. In this work, we introduce BASOLVER, a backbone-based All-SAT solver for propositional formulas. Compared to the existing approaches, BASOLVER generates shorter blocking clauses by removing backbone variables from the partial assignments and the blocking clauses. We compare BASOLVER with 4 existing ALL-SAT solvers, namely MBLOCKING, BC, BDD, and NBC. Experimental results indicate that although finding all the backbone variables consumes additional computing time, BASOLVER is still more efficient than the existing solvers because of the shorter blocking clauses and the backbone variables used in it. With the 608 formulas, BASOLVER solves the largest amount of formulas (86), which is 22%, 36%, 68%, 86% more formulas than MBLOCKING, BC, NBC, and BDD respectively. For the formulas that are both solved by BASOLVER and the other solvers, BASOLVER uses 88.4% less computing time on average than the other solvers. For the 215 formulas which first 1000 satisfiable assignments are found by at least one of the solvers, BASOLVER uses 180% less computing time on average than the other solvers.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124886539","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}
引用次数: 4
An Automated Assessment of Android Clipboards Android剪贴板的自动评估
Wei Wang, Ruoxi Sun, Minhui Xue, D. Ranasinghe
Since the new privacy feature in iOS enabling users to acknowledge which app is reading or writing to his or her clipboard through prompting notifications was updated, a plethora of top apps have been reported to frequently access the clipboard without user consent. However, the lack of monitoring and control of Android application's access to the clipboard data leave Android users blind to their potential to leak private information from Android clipboards, raising severe security and privacy concerns. In this preliminary work, we envisage and investigate an approach to (i) dynamically detect clipboard access behaviour, and (ii) determine privacy leaks via static data flow analysis, in which we enhance the results of taint analysis with call graph concatenation to enable leakage source backtracking. Our preliminary results indicate that the proposed method can expose clipboard data leakage as substantiated by our discovery of a popular app, i.e., Sogou Input, directly monitoring and transferring user data in a clipboard to backend servers.
由于iOS的新隐私功能更新了,用户可以通过提示通知确认哪个应用正在读取或写入他或她的剪贴板,据报道,大量的热门应用经常未经用户同意访问剪贴板。然而,由于缺乏对Android应用程序访问剪贴板数据的监控和控制,Android用户对从Android剪贴板泄露私人信息的可能性视而不见,从而引发了严重的安全和隐私问题。在这项初步工作中,我们设想并研究了一种方法:(i)动态检测剪贴板访问行为,以及(ii)通过静态数据流分析确定隐私泄漏,其中我们通过调用图连接增强污染分析的结果,以实现泄漏源回溯。我们的初步结果表明,我们所提出的方法可以暴露剪贴板数据泄露,我们发现了一个流行的应用程序,即搜狗Input,直接监控剪贴板中的用户数据并将其传输到后端服务器。
{"title":"An Automated Assessment of Android Clipboards","authors":"Wei Wang, Ruoxi Sun, Minhui Xue, D. Ranasinghe","doi":"10.1145/3324884.3418905","DOIUrl":"https://doi.org/10.1145/3324884.3418905","url":null,"abstract":"Since the new privacy feature in iOS enabling users to acknowledge which app is reading or writing to his or her clipboard through prompting notifications was updated, a plethora of top apps have been reported to frequently access the clipboard without user consent. However, the lack of monitoring and control of Android application's access to the clipboard data leave Android users blind to their potential to leak private information from Android clipboards, raising severe security and privacy concerns. In this preliminary work, we envisage and investigate an approach to (i) dynamically detect clipboard access behaviour, and (ii) determine privacy leaks via static data flow analysis, in which we enhance the results of taint analysis with call graph concatenation to enable leakage source backtracking. Our preliminary results indicate that the proposed method can expose clipboard data leakage as substantiated by our discovery of a popular app, i.e., Sogou Input, directly monitoring and transferring user data in a clipboard to backend servers.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128371318","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}
引用次数: 4
Defect Prediction Guided Search-Based Software Testing 缺陷预测指导基于搜索的软件测试
A. Perera, A. Aleti, Marcel Böhme, Burak Turhan
Today, most automated test generators, such as search-based software testing (SBST) techniques focus on achieving high code coverage. However, high code coverage is not sufficient to maximise the number of bugs found, especially when given a limited testing budget. In this paper, we propose an automated test generation technique that is also guided by the estimated degree of defectiveness of the source code. Parts of the code that are likely to be more defective receive more testing budget than the less defective parts. To measure the degree of defectiveness, we leverage Schwa, a notable defect prediction technique.We implement our approach into EvoSuite, a state of the art SBST tool for Java. Our experiments on the Defects4J benchmark demonstrate the improved efficiency of defect prediction guided test generation and confirm our hypothesis that spending more time budget on likely defective parts increases the number of bugs found in the same time budget.
今天,大多数自动化的测试生成器,比如基于搜索的软件测试(SBST)技术,关注于实现高代码覆盖率。然而,高代码覆盖率并不足以使发现的bug数量最大化,尤其是在测试预算有限的情况下。在本文中,我们提出了一种自动化的测试生成技术,该技术也是由源代码的估计缺陷程度指导的。代码中有缺陷的部分可能比缺陷较少的部分得到更多的测试预算。为了测量缺陷的程度,我们利用了Schwa,一种著名的缺陷预测技术。我们在EvoSuite中实现了我们的方法,EvoSuite是最先进的Java SBST工具。我们在缺陷4j基准上的实验证明了缺陷预测引导的测试生成的改进效率,并证实了我们的假设,即在可能有缺陷的部件上花费更多的时间预算会增加在相同时间预算中发现的错误数量。
{"title":"Defect Prediction Guided Search-Based Software Testing","authors":"A. Perera, A. Aleti, Marcel Böhme, Burak Turhan","doi":"10.1145/3324884.3416612","DOIUrl":"https://doi.org/10.1145/3324884.3416612","url":null,"abstract":"Today, most automated test generators, such as search-based software testing (SBST) techniques focus on achieving high code coverage. However, high code coverage is not sufficient to maximise the number of bugs found, especially when given a limited testing budget. In this paper, we propose an automated test generation technique that is also guided by the estimated degree of defectiveness of the source code. Parts of the code that are likely to be more defective receive more testing budget than the less defective parts. To measure the degree of defectiveness, we leverage Schwa, a notable defect prediction technique.We implement our approach into EvoSuite, a state of the art SBST tool for Java. Our experiments on the Defects4J benchmark demonstrate the improved efficiency of defect prediction guided test generation and confirm our hypothesis that spending more time budget on likely defective parts increases the number of bugs found in the same time budget.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121661081","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}
引用次数: 12
Identifying and Describing Information Seeking Tasks 识别和描述信息搜索任务
Chris Satterfield, Thomas Fritz, G. Murphy
A software developer works on many tasks per day, frequently switching between these tasks back and forth. This constant churn of tasks makes it difficult for a developer to know the specifics of when they worked on what task, complicating task resumption, planning, retrospection, and reporting activities. In a first step towards an automated aid to this issue, we introduce a new approach to help identify the topic of work during an information seeking task - one of the most common types of tasks that software developers face - that is based on capturing the contents of the developer's active window at regular intervals and creating a vector representation of key information the developer viewed. To evaluate our approach, we created a data set with multiple developers working on the same set of six information seeking tasks that we also make available for other researchers to investigate similar approaches. Our analysis shows that our approach enables: 1) segments of a developer's work to be automatically associated with a task from a known set of tasks with average accuracy of 70.6%, and 2) a word cloud describing a segment of work that a developer can use to recognize a task with average accuracy of 67.9%.
软件开发人员每天要处理许多任务,经常在这些任务之间来回切换。这种不断的任务混乱使得开发人员很难知道他们什么时候在做什么任务的细节,使任务恢复、计划、回顾和报告活动变得复杂。在自动化解决这个问题的第一步中,我们介绍了一种新的方法来帮助确定信息查找任务期间的工作主题-软件开发人员面临的最常见的任务类型之一-该方法基于定期捕获开发人员活动窗口的内容并创建开发人员查看的关键信息的矢量表示。为了评估我们的方法,我们创建了一个数据集,其中有多个开发人员在同一组六个信息搜索任务上工作,我们也为其他研究人员提供了研究类似方法的数据集。我们的分析表明,我们的方法可以实现:1)开发人员的工作片段自动与已知任务集中的任务相关联,平均准确率为70.6%;2)描述工作片段的词云,开发人员可以使用它来识别任务,平均准确率为67.9%。
{"title":"Identifying and Describing Information Seeking Tasks","authors":"Chris Satterfield, Thomas Fritz, G. Murphy","doi":"10.1145/3324884.3416537","DOIUrl":"https://doi.org/10.1145/3324884.3416537","url":null,"abstract":"A software developer works on many tasks per day, frequently switching between these tasks back and forth. This constant churn of tasks makes it difficult for a developer to know the specifics of when they worked on what task, complicating task resumption, planning, retrospection, and reporting activities. In a first step towards an automated aid to this issue, we introduce a new approach to help identify the topic of work during an information seeking task - one of the most common types of tasks that software developers face - that is based on capturing the contents of the developer's active window at regular intervals and creating a vector representation of key information the developer viewed. To evaluate our approach, we created a data set with multiple developers working on the same set of six information seeking tasks that we also make available for other researchers to investigate similar approaches. Our analysis shows that our approach enables: 1) segments of a developer's work to be automatically associated with a task from a known set of tasks with average accuracy of 70.6%, and 2) a word cloud describing a segment of work that a developer can use to recognize a task with average accuracy of 67.9%.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114372963","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}
引用次数: 1
DeepTC-Enhancer: Improving the Readability of Automatically Generated Tests DeepTC-Enhancer:提高自动生成测试的可读性
Devjeet Roy, Ziyi Zhang, Maggie Ma, V. Arnaoudova, Annibale Panichella, Sebastiano Panichella, Danielle Gonzalez, Mehdi Mirakhorli
Automated test case generation tools have been successfully proposed to reduce the amount of human and infrastructure resources required to write and run test cases. However, recent studies demonstrate that the readability of generated tests is very limited due to (i) uninformative identifiers and (ii) lack of proper documentation. Prior studies proposed techniques to improve test readability by either generating natural language summaries or meaningful methods names. While these approaches are shown to improve test readability, they are also affected by two limitations: (1) generated summaries are often perceived as too verbose and redundant by developers, and (2) readable tests require both proper method names but also meaningful identifiers (within-method readability). In this work, we combine template based methods and Deep Learning (DL) approaches to automatically generate test case scenarios (elicited from natural language patterns of test case statements) as well as to train DL models on path-based representations of source code to generate meaningful identifier names. Our approach, called DeepTC-Enhancer, recommends documentation and identifier names with the ultimate goal of enhancing readability of automatically generated test cases. An empirical evaluation with 36 external and internal developers shows that (1) DeepTC-Enhancer outperforms significantly the baseline approach for generating summaries and performs equally with the baseline approach for test case renaming, (2) the transformation proposed by DeepTC-Enhancer results in a significant increase in readability of automatically generated test cases, and (3) there is a significant difference in the feature preferences between external and internal developers.
自动化测试用例生成工具已经被成功地提出,以减少编写和运行测试用例所需的人力和基础设施资源的数量。然而,最近的研究表明,由于(i)没有提供信息的标识符和(ii)缺乏适当的文档,生成的测试的可读性非常有限。先前的研究提出了通过生成自然语言摘要或有意义的方法名称来提高测试可读性的技术。虽然这些方法被证明可以提高测试的可读性,但它们也受到两个限制的影响:(1)生成的摘要通常被开发人员认为过于冗长和冗余,(2)可读的测试既需要适当的方法名,也需要有意义的标识符(方法内的可读性)。在这项工作中,我们将基于模板的方法和深度学习(DL)方法结合起来,自动生成测试用例场景(从测试用例语句的自然语言模式中提取),并在基于路径的源代码表示上训练DL模型,以生成有意义的标识符名称。我们的方法,称为DeepTC-Enhancer,推荐文档和标识符名称,最终目标是增强自动生成的测试用例的可读性。对36名外部和内部开发人员的实证评估表明:(1)DeepTC-Enhancer在生成摘要方面明显优于基线方法,在测试用例重命名方面与基线方法表现相当;(2)DeepTC-Enhancer提出的转换显著提高了自动生成测试用例的可读性;(3)外部和内部开发人员在功能偏好方面存在显著差异。
{"title":"DeepTC-Enhancer: Improving the Readability of Automatically Generated Tests","authors":"Devjeet Roy, Ziyi Zhang, Maggie Ma, V. Arnaoudova, Annibale Panichella, Sebastiano Panichella, Danielle Gonzalez, Mehdi Mirakhorli","doi":"10.1145/3324884.3416622","DOIUrl":"https://doi.org/10.1145/3324884.3416622","url":null,"abstract":"Automated test case generation tools have been successfully proposed to reduce the amount of human and infrastructure resources required to write and run test cases. However, recent studies demonstrate that the readability of generated tests is very limited due to (i) uninformative identifiers and (ii) lack of proper documentation. Prior studies proposed techniques to improve test readability by either generating natural language summaries or meaningful methods names. While these approaches are shown to improve test readability, they are also affected by two limitations: (1) generated summaries are often perceived as too verbose and redundant by developers, and (2) readable tests require both proper method names but also meaningful identifiers (within-method readability). In this work, we combine template based methods and Deep Learning (DL) approaches to automatically generate test case scenarios (elicited from natural language patterns of test case statements) as well as to train DL models on path-based representations of source code to generate meaningful identifier names. Our approach, called DeepTC-Enhancer, recommends documentation and identifier names with the ultimate goal of enhancing readability of automatically generated test cases. An empirical evaluation with 36 external and internal developers shows that (1) DeepTC-Enhancer outperforms significantly the baseline approach for generating summaries and performs equally with the baseline approach for test case renaming, (2) the transformation proposed by DeepTC-Enhancer results in a significant increase in readability of automatically generated test cases, and (3) there is a significant difference in the feature preferences between external and internal developers.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129067631","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}
引用次数: 24
Understanding Performance Concerns in the API Documentation of Data Science Libraries 理解数据科学库API文档中的性能关注点
Yida Tao, Jiefang Jiang, Yepang Liu, Zhiwu Xu, S. Qin
The development of efficient data science applications is often impeded by unbearably long execution time and rapid RAM exhaustion. Since API documentation is the primary information source for troubleshooting, we investigate how performance concerns are documented in popular data science libraries. Our quantitative results reveal the prevalence of data science APIs that are documented in performance-related context and the infrequent maintenance activities on such documentation. Our qualitative analyses further reveal that crowd documentation like Stack Overflow and GitHub are highly complementary to official documentation in terms of the API coverage, the knowledge distribution, as well as the specific information conveyed through performance-related content. Data science practitioners could benefit from our findings by learning a more targeted search strategy for resolving performance issues. Researchers can be more assured of the advantages of integrating both the official and the crowd documentation to achieve a holistic view on the performance concerns in data science development.
高效数据科学应用程序的开发经常受到难以忍受的长时间执行和快速耗尽RAM的阻碍。由于API文档是故障排除的主要信息源,我们将研究如何在流行的数据科学库中记录性能问题。我们的定量结果揭示了在与性能相关的上下文中记录的数据科学api的普遍性,以及对此类文档的不频繁维护活动。我们的定性分析进一步表明,像Stack Overflow和GitHub这样的众包文档在API覆盖范围、知识分布以及通过与性能相关的内容传达的具体信息方面与官方文档具有很强的互补性。数据科学从业者可以通过学习更有针对性的搜索策略来解决性能问题,从而从我们的发现中受益。研究人员可以更加确信整合官方和大众文档的优势,以实现对数据科学发展中性能问题的整体看法。
{"title":"Understanding Performance Concerns in the API Documentation of Data Science Libraries","authors":"Yida Tao, Jiefang Jiang, Yepang Liu, Zhiwu Xu, S. Qin","doi":"10.1145/3324884.3416543","DOIUrl":"https://doi.org/10.1145/3324884.3416543","url":null,"abstract":"The development of efficient data science applications is often impeded by unbearably long execution time and rapid RAM exhaustion. Since API documentation is the primary information source for troubleshooting, we investigate how performance concerns are documented in popular data science libraries. Our quantitative results reveal the prevalence of data science APIs that are documented in performance-related context and the infrequent maintenance activities on such documentation. Our qualitative analyses further reveal that crowd documentation like Stack Overflow and GitHub are highly complementary to official documentation in terms of the API coverage, the knowledge distribution, as well as the specific information conveyed through performance-related content. Data science practitioners could benefit from our findings by learning a more targeted search strategy for resolving performance issues. Researchers can be more assured of the advantages of integrating both the official and the crowd documentation to achieve a holistic view on the performance concerns in data science development.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"142 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131706993","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}
引用次数: 3
Seven Reasons Why: An In-Depth Study of the Limitations of Random Test Input Generation for Android 7个原因:Android随机测试输入生成局限性的深入研究
Farnaz Behrang, A. Orso
Experience paper: Testing of mobile apps is time-consuming and requires a great deal of manual effort. For this reason, industry and academic researchers have proposed a number of test input generation techniques for automating app testing. Although useful, these techniques have weaknesses and limitations that often prevent them from achieving high coverage. We believe that one of the reasons for these limitations is that tool developers tend to focus mainly on improving the strategy the techniques employ to explore app behavior, whereas limited effort has been put into investigating other ways to improve the performance of these techniques. To address this problem, and get a better understanding of the limitations of input-generation techniques for mobile apps, we conducted an in-depth study of the limitations of MONKEy-arguably the most widely used tool for automated testing of Android apps. Specifically, in our study, we manually analyzed Monkey's performance on a benchmark of 64 apps to identify the common limitations that prevent the tool from achieving better coverage results. We then assessed the coverage improvement that Monkey could achieve if these limitations were eliminated. In our analysis of the results, we also discuss whether other existing test input generation tools suffer from these common limitations and provide insights on how they could address them.
经验报告:测试手机应用非常耗时,需要大量的手工操作。出于这个原因,行业和学术研究人员已经提出了许多自动化应用测试的测试输入生成技术。尽管这些技术很有用,但它们也有缺点和局限性,常常使它们无法获得高覆盖率。我们认为,这些限制的原因之一是工具开发人员倾向于主要关注改进技术用于探索应用程序行为的策略,而有限的努力已经投入到研究其他方法来提高这些技术的性能。为了解决这个问题,并更好地理解移动应用程序的输入生成技术的局限性,我们对monkey的局限性进行了深入研究,monkey可以说是Android应用程序自动化测试中使用最广泛的工具。具体来说,在我们的研究中,我们在64个应用程序的基准测试中手动分析了Monkey的性能,以确定阻碍该工具获得更好覆盖率结果的常见限制。然后,我们评估了如果消除这些限制,Monkey可以实现的覆盖率改进。在我们对结果的分析中,我们还讨论了其他现有的测试输入生成工具是否遭受这些常见的限制,并提供了如何解决这些限制的见解。
{"title":"Seven Reasons Why: An In-Depth Study of the Limitations of Random Test Input Generation for Android","authors":"Farnaz Behrang, A. Orso","doi":"10.1145/3324884.3416567","DOIUrl":"https://doi.org/10.1145/3324884.3416567","url":null,"abstract":"Experience paper: Testing of mobile apps is time-consuming and requires a great deal of manual effort. For this reason, industry and academic researchers have proposed a number of test input generation techniques for automating app testing. Although useful, these techniques have weaknesses and limitations that often prevent them from achieving high coverage. We believe that one of the reasons for these limitations is that tool developers tend to focus mainly on improving the strategy the techniques employ to explore app behavior, whereas limited effort has been put into investigating other ways to improve the performance of these techniques. To address this problem, and get a better understanding of the limitations of input-generation techniques for mobile apps, we conducted an in-depth study of the limitations of MONKEy-arguably the most widely used tool for automated testing of Android apps. Specifically, in our study, we manually analyzed Monkey's performance on a benchmark of 64 apps to identify the common limitations that prevent the tool from achieving better coverage results. We then assessed the coverage improvement that Monkey could achieve if these limitations were eliminated. In our analysis of the results, we also discuss whether other existing test input generation tools suffer from these common limitations and provide insights on how they could address them.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134082525","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}
引用次数: 2
期刊
2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1