FACTS: automated black-box testing of FinTech systems

FACTS: automated black-box testing of FinTech systems
复制标题

DOI:
10.1145/3236024.3275533
复制
发表时间:
2018-10
期刊:
Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
Qingshun Wang;Lintao Gu;Minhui Xue;Lihua Xu;Wenyu Niu;Liang Dou;Liang He;Tao Xie
Qingshun Wang;Lintao Gu;Minhui Xue;Lihua Xu;Wenyu Niu;Liang Dou;Liang He;Tao Xie
中科院分区:
其他
文献类型:
--
作者:
Qingshun Wang;Lintao Gu;Minhui Xue;Lihua Xu;Wenyu Niu;Liang Dou;Liang He;Tao Xie

文献摘要

被引文献

相似文献

FinTech是“金融科技”的简称,通过提供各种软件平台,推动了金融业务从传统的手工流程驱动向自动化驱动模式的转变。然而,目前的金融科技行业仍然严重依赖人工测试,这成为金融科技行业发展的瓶颈。为了实现测试过程的自动化,我们提出了一种针对金融科技系统的黑盒测试方法,该方法为测试生成和测试预言机提供了有效的工具支持。对于测试生成,我们首先从业务逻辑规范中提取输入类别,然后使用从每个提取的输入类别中随机选取的值来改变从系统日志中收集的真实的数据。对于测试预言机,我们提出了一种新的优先级差分测试技术,在该技术中,我们评估系统头上的系统测试输入的执行结果(即,最新)版本(1)对照版本储存库中的最后遗留版本(仅当执行的测试输入在新的、尚未部署的服务上时),以及(2)对照当前部署的版本和最后遗留版本(仅当测试输入在现有的、部署的服务上时)。当我们对行为不一致性结果进行排名以供开发人员检查时,对于后一种情况,我们将当前部署的版本作为更高优先级的行为源进行检查。我们将我们的方法应用于CSTP子系统,中国外汇交易系统(CFETS)平台最大的数据处理和转发模块之一,其年交易总额达到150万亿美元。大量的实验结果表明,我们的方法可以大大提高分支覆盖率约40%,也是有效的金融科技系统中的常见故障识别。
FinTech, short for ``financial technology,'' has advanced the process of transforming financial business from a traditional manual-process-driven to an automation-driven model by providing various software platforms. However, the current FinTech-industry still heavily depends on manual testing, which becomes the bottleneck of FinTech industry development. To automate the testing process, we propose an approach of black-box testing for a FinTech system with effective tool support for both test generation and test oracles. For test generation, we first extract input categories from business-logic specifications, and then mutate real data collected from system logs with values randomly picked from each extracted input category. For test oracles, we propose a new technique of priority differential testing where we evaluate execution results of system-test inputs on the system's head (i.e., latest) version in the version repository (1) against the last legacy version in the version repository (only when the executed test inputs are on new, not-yet-deployed services) and (2) against both the currently-deployed version and the last legacy version (only when the test inputs are on existing, deployed services). When we rank the behavior-inconsistency results for developers to inspect, for the latter case, we give the currently-deployed version as a higher-priority source of behavior to check. We apply our approach to the CSTP subsystem, one of the largest data processing and forwarding modules of the China Foreign Exchange Trade System (CFETS) platform, whose annual total transaction volume reaches 150 trillion US dollars. Extensive experimental results show that our approach can substantially boost the branch coverage by approximately 40%, and is also efficient to identify common faults in the FinTech system.