论文标题

通过过程间的一致性测试优先考虑服务器端的可及性

Prioritising Server Side Reachability via Inter-process Concolic Testing

论文作者

Vandercammen, Maarten, Christophe, Laurent, Di Nucci, Dario, De Meuter, Wolfgang, De Roover, Coen

论文摘要

上下文:自动化白框测试的大多数方法都彼此隔离考虑Web应用程序的客户端和服务器端。此类测试人员对正在测试的Web应用程序缺乏全面的观点。 查询:我们假设一个额外的全程图表可以使测试仪能够通过通过客户端访问应用程序访问应用程序的实际最终用户可以触发哪些服务器端错误,并且只能在假设的情况下触发哪些服务器。 方法:在本文中,我们探讨了在测试中采用这样的整个程序观点的想法。为此,我们开发了一个新颖的Concolic Tester,该测试仪在全堆栈JavaScript Web应用程序上运行,在该应用程序中,客户端和服务器端都是JavaScript流程通过异步消息进行通信的JavaScript进程 - 由Websocket或Socket.io-Libraries启用。 知识:我们发现,整个编程的观点可以从特定客户端从低优先级错误到达,可以从特定的客户端遇到高优先级错误,而这些错误是通过测试的客户端无法访问的。该角度的另一个好处是,它允许自动化测试仪构建实用的,分步的方案,以从最终用户的角度触发服务器端错误。 接地:我们应用于Web应用程序的集合来评估测试在区分高优先级和低优先级错误方面的有效性。结果表明,正确分类了大多数服务器错误。 重要性:本文证明了测试作为一种自动测试Web应用程序的新方法的可行性。将错误归类为具有很高或低重要性的艾滋病开发人员,可以优先考虑用户可能遇到的错误,并将其推迟诊断不太容易到达的错误。

Context: Most approaches to automated white-box testing consider the client side and the server side of a web application in isolation from each other. Such testers lack a whole-program perspective on the web application under test. Inquiry: We hypothesise that an additional whole-program perspective would enable the tester to discover which server side errors can be triggered by an actual end user accessing the application through the client, and which ones can only be triggered in hypothetical scenarios. Approach: In this paper, we explore the idea of employing such a whole-program perspective in testing. To this end, we develop , a novel concolic tester which operates on full-stack JavaScript web applications, where both the client and the server side are JavaScript processes communicating via asynchronous messages -- as enabled by the WebSocket or Socket.IO-libraries. Knowledge: We find that the whole-program perspective enables discerning high-priority errors, which are reachable from a particular client, from low-priority errors, which are not accessible through the tested client. Another benefit of the perspective is that it allows the automated tester to construct practical, step-by-step scenarios for triggering server side errors from the end user's perspective. Grounding: We apply on a collection of web applications to evaluate how effective testing is in distinguishing between high- and low-priority errors. The results show that correctly classifies the majority of server errors. Importance: This paper demonstrates the feasibility of testing as a novel approach for automatically testing web applications. Classifying errors as being of high or low importance aids developers in prioritising bugs that might be encountered by users, and postponing the diagnosis of bugs that are less easily reached.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源