Skip to content

分层测试策略

简介

分层测试策略是一种将测试工作按层次分解的策略,旨在通过不同层次的测试来确保软件系统的质量。这种策略有助于有效地组织测试工作,优化测试资源的利用,并提高缺陷发现和修复的效率。

分层测试策略价值

质量保证

  • 需求分析
  • 测试标准确立
  • 测试用例 review
  • 界面覆盖率
  • 接口覆盖率
  • 代码覆盖率

效率提升

  • 人工测试:招人 加人培训,无论横向扩容还是纵向扩容,成本都很大。
  • 自动化测试:自动化测试、自动遍历测试、录制回放测试。
  • 尽早测试尽快反馈:单元测试、集成测试。
  • 流水线:持续集成、持续交付、DevOps

分层测试策略理论体系

测试金字塔

测试金字塔(Test Pyramid)是由Martin Fowler提出的一种测试策略模型,用于帮助开发团队构建更高效和更可靠的自动化测试体系。测试金字塔将测试分为三个主要层次:单元测试(Unit Tests)、服务测试(Service Tests)和用户界面测试(UI Tests)。每个层次都有不同的测试重点和作用,金字塔的形状象征了各层次测试的数量比例。

  • UI:确保用户界面元素的正确性和用户操作流程的正常性。
  • Service:确保系统的各个部分能够正确地协同工作。
  • Unit:验证单个功能模块的正确性。

马丁弗勒

todo 截图

UI 组件的分层测试

Google Android开发中,UI组件的分层测试通常包括三层测试:单元测试(Unit Tests)、集成测试(Integration Tests)和用户界面测试(UI Tests)。这三层测试有助于确保应用程序的各个部分都能正常工作,并且整体功能符合预期。

google android 测试体系

todo 截图

金字塔模型与沙漏模型

金字塔模型

理想自动化测试分布:单元测试占据测试总量的最大部分,通常应占测试用例的70%-80%;集成测试占据测试总量的中等比例,通常应占测试用例的10%-20%;端到端测试占据测试总量的最少部分。

todo 截图

沙漏模型

沙漏模型是对金字塔模型的一种变形,其测试类型的分布与金字塔模型有所不同。沙漏模型强调更多的单元测试和端到端测试(End-to-End Tests),而减少了集成测试的数量。

todo 截图

微服务测试模型

  • Resources 通过特定协议暴露能力。
  • Service 负责领域模型的协作。
  • Domain 包含行为和数据的领域对象模型。
  • Repositories 作用于域实体的集合,并且通常是持久性支持的。
  • Gateway 与远程服务进行通讯。
  • Data Mappers 模型的序列化方案。

马丁福勒微服务测试

todo 截图

微服务测试策略

  • 单元测试:检验应用程序中最小的可测试软件,以确定它们的行为是否符合预期
  • 集成测试:验证组件之间的通信路径和交互以检测接口缺陷。
  • 组件测试:将运行软件的范围限制在被测系统的一部分,通过内部代码接口操纵系统,并使用测试替身将被测代码与其他组件隔离开来。
  • 端到端测试:验证系统是否满足外部要求并实现其目标,从头到尾测试整个系统。

todo 截图

总结

  • 分层测试策略理论体系。
  • 测试金字塔。
  • UI 组件的分层测试。
  • 金字塔模型与沙漏模型。
  • 微服务测试模型。
  • 微服务测试策略。