微服务系统端到端测试覆盖率指标:自动化方法解析
1. 微服务架构与端到端测试挑战
微服务架构凭借云原生优势、可扩展性和去中心化发展势头迅猛。它将软件系统拆分为一系列松散耦合的交互服务,每个服务负责特定业务功能,能独立开发和部署,带来了更快的开发周期、更便捷的维护和更好的可扩展性。
然而,微服务系统的端到端(E2E)测试面临挑战。在E2E系统验证过程中,测试人员主要通过用户界面与系统交互,这掩盖了底层逻辑系统结构。与传统单体系统相比,微服务架构更为复杂,涉及多个服务、相互依赖关系和持续演变。测试人员可能不清楚系统中具体涉及和执行的服务,难以测试所有可能的场景,这种复杂性影响了测试的完整性和效率。
2. 相关工作
众多研究指出微服务系统缺乏有效的评估技术:
- Ghani等人的系统文献综述表明,大多数专注于微服务测试方法的文章缺乏足够的评估和实验。
- Jiang等人强调需要改进微服务系统的测试管理以提高整体质量。
- Waseem等人的调查显示,单元和E2E测试是行业中最常用的策略,但微服务系统的复杂性给监控和测试带来挑战,目前尚无专门解决方案。
- Giamattei等人指出黑盒测试微服务系统时,监控内部API是一个挑战,呼吁进一步研究。
为解决这些问题,一些方法被提出,但都存在一定局限性:
- Corradini等人对REST API的自动化黑盒测试用例生成方法进行了实证比较,提出了基于OpenAPI规范的测试覆盖框架和一组覆盖指标,但这些指标未考虑微服务系统的独特特征。
- Giamattei等人引入了MACROHIVE灰盒测试方法,可自动生成和执行测试套件并分析服务间调用