Push-Button Reliability Testing for Cloud-Backed Applications with Rainmaker

Push-Button Reliability Testing for Cloud-Backed Applications with Rainmaker
复制标题

DOI:
--
复制
发表时间:
2023
期刊:
--
影响因子:
--
通讯作者:
Yinfang Chen;Xudong Sun;Suman Nath;Ze Yang;Tianyi Xu
Yinfang Chen;Xudong Sun;Suman Nath;Ze Yang;Tianyi Xu
中科院分区:
其他
文献类型:
--
作者:
Yinfang Chen;Xudong Sun;Suman Nath;Ze Yang;Tianyi Xu

文献摘要

被引文献

相似文献

现代应用程序已经朝着基于云的编程模型中崭露头角,其中的应用程序依赖于各种功能的云服务。为了解决不透明的云的故障模型,我们在本文中讨论了这些可靠性挑战开发一个构成云支持的应用程序的分类法,我们表明(MIS)处理瞬态误差,即通过构建一个名为RainMaker的“按钮”可靠性测试工具,作为任何云支持雨林的基本SDK实用程序。在基于云的故障模型下,不需要编写新的策​​略或测试用例,直接与现有的测试套件一起使用,并且是现有测试环境的插件工具。应用程序和云服务都在其余部分中进行,因此更重要的是,它编码了自动故障注入策略迄今为止,RainMaker的错误模式和自动甲壳机采用了现有的内部软件测试。
Modern applications have been emerging towards a cloud-based programming model where applications depend on cloud services for various functionalities. Such “cloud native” practice greatly simplifies application deployment and realizes cloud benefits (e.g., availability). Meanwhile, it imposes emerging reliability challenges for addressing fault models of the opaque cloud and less predictable Internet connections. In this paper, we discuss these reliability challenges. We develop a taxonomy of bugs that render cloud-backed applications vulnerable to common transient faults. We show that (mis)handling transient error(s) of even one REST call interaction can adversely affect application correctness. We take a first step to address the challenges by building a “push-button” reliability testing tool named Rainmaker, as a basic SDK utility for any cloud-backed application. Rainmaker helps developers anticipate the myriad of errors under the cloud-based fault model, without a need to write new policies, oracles, or test cases. Rainmaker directly works with existing test suites and is a plug-and-play tool for existing test environments. Rainmaker injects faults in the interactions between the application and cloud services. It does so at the REST layer, and thus is transparent to applications under test. More importantly, it encodes automatic fault injection policies to cover the various taxonomized bug patterns, and automatic oracles that embrace existing in-house software tests. To date, Rainmaker has detected 73 bugs (55 confirmed and 51 fixed) in 11 popular cloud-backed applications.