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.
翻译:上下文: 自动白箱测试的大多数方法都考虑网络应用程序的客户端和服务器端, 彼此隔离。 测试者在测试中的网络应用程序中缺乏全程序视角 。 调查 : 我们假设, 额外的全程序视角将使测试者能够发现, 实际终端用户通过客户访问应用程序可以触发服务器端错误, 而哪个服务器端错误只能在假设情景中触发 。 方法 : 在本文件中, 我们探索了在测试中采用这样的整体程序错误的观点 。 为此, 我们开发了一个新型的colcoli测试器, 该测试器在全斯塔克· JavaScript 自动自动应用程序上运行, 客户和服务器侧端都是 JavaScript 程序, 其中, 客户和服务器端端端的流程将让用户通过“ 通灵敏化” 信息进行沟通。 知识 : 我们发现, 整个方案视角能够识别高优先级错误, 从特定的客户端、 低级错误, 无法通过测试客户端的文档客户端获取。 另一个好处是: 将用户端的错误从自动测试到高端的错误, 快速测试到高端, 测试到高端的用户端的路径测试到高端测试。 。 。 我们的用户端的测试到高端的路径的路径的路径的路径将显示, 测试到高端的路径的路径的路径是: 。