ExVivoMicroTest: ExVivo Testing of Microservices

被引:8
作者
Gazzola, Luca [1 ]
Goldstein, Maayan [2 ]
Mariani, Leonardo [1 ]
Mobilio, Marco [1 ]
Segall, Itai [3 ]
Tundo, Alessandro [1 ]
Ussi, Luca [1 ]
机构
[1] Univ Milano Bicocca, Dept Informat Syst & Commun DISCo, Milan, Italy
[2] Nokia Bell Labs, Tel Aviv, Israel
[3] Nokia Bell Labs, Murray Hill, NJ USA
基金
欧盟地平线“2020”;
关键词
ex vivo testing; microservices; regression testing; software testing; STRATEGIES;
D O I
10.1002/smr.2452
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Microservice-based applications consist of multiple services that can evolve independently. When a service must be updated, it is first tested with in-house regression test suites. However, the test suites that are executed are usually designed without the exact knowledge about how the services will be accessed and used in the field; therefore, they may easily miss relevant test scenarios, failing to prevent the deployment of faulty services. To address this problem, we introduce ExVivoMicroTest, an approach that analyzes the execution of deployed services at run-time in the field, in order to generate test cases for future versions of the same services. ExVivoMicroTest implements lightweight monitoring and tracing capabilities, to inexpensively record executions that can be later turned into regression test cases that capture how services are used in the field. To prevent accumulating an excessive number of test cases, ExVivoMicroTest uses a test coverage model that can discriminate the recorded executions between the ones that are worth to be turned into test cases and the ones that should be discarded. The resulting test cases use a mocked environment that fully isolates the service under test from the rest of the system to faithfully reply interactions. We assessed ExVivoMicroTest with the PiggyMetrics and Train Ticket open source microservice applications and studied how different configurations of the monitoring and tracing logic impact on the capability to generate test cases.
引用
收藏
页数:23
相关论文
共 55 条
[1]  
Alshahwan N., 2008, P INT C SOFTW TEST V
[2]  
[Anonymous], 2020, REST API
[3]  
Baeldung, 2020, DEFINE SPRING BOOT F
[4]   Diversity-Based Web Test Generation [J].
Biagiola, Matteo ;
Stocco, Andrea ;
Ricca, Filippo ;
Tonella, Paolo .
ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, :142-153
[5]   A comparative study of coarse- and fine-grained safe regression test-selection techniques [J].
Bible, J ;
Rothermel, G ;
Rosenblum, DS .
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2001, 10 (02) :149-183
[6]  
Brandon Byars and Contributors, 2021, MOUNT WIR TEST DOUBL
[7]   Developing a Single Model and Test Prioritization Strategies for Event-Driven Software [J].
Bryce, Renee C. ;
Sampath, Sreedevi ;
Memon, Atif M. .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2011, 37 (01) :48-64
[8]  
Chen L., 2018, MICROSERVICES ARCHIT
[9]   The AETG system: An approach to testing based on combinatorial design [J].
Cohen, DM ;
Dalal, SR ;
Fredman, ML ;
Patton, GC .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1997, 23 (07) :437-444
[10]  
Dallmeier V., 2006, P INT WORKSH DYN AN