分层测试策略
简介
分层测试策略是一种将测试工作按层次分解的策略,旨在通过不同层次的测试来确保软件系统的质量。这种策略有助于有效地组织测试工作,优化测试资源的利用,并提高缺陷发现和修复的效率。
分层测试策略价值
质量保证
- 需求分析
- 测试标准确立
- 测试用例 review
- 界面覆盖率
- 接口覆盖率
- 代码覆盖率
效率提升
- 人工测试:招人 加人培训,无论横向扩容还是纵向扩容,成本都很大。
- 自动化测试:自动化测试、自动遍历测试、录制回放测试。
- 尽早测试尽快反馈:单元测试、集成测试。
- 流水线:持续集成、持续交付、
DevOps
。
分层测试策略理论体系
测试金字塔
测试金字塔(Test Pyramid
)是由Martin Fowler
提出的一种测试策略模型,用于帮助开发团队构建更高效和更可靠的自动化测试体系。测试金字塔将测试分为三个主要层次:单元测试(Unit Tests
)、服务测试(Service Tests
)和用户界面测试(UI Tests
)。每个层次都有不同的测试重点和作用,金字塔的形状象征了各层次测试的数量比例。
- UI:确保用户界面元素的正确性和用户操作流程的正常性。
- Service:确保系统的各个部分能够正确地协同工作。
- Unit:验证单个功能模块的正确性。
马丁弗勒
UI 组件的分层测试
在Google Android
开发中,UI
组件的分层测试通常包括三层测试:单元测试(Unit Tests
)、集成测试(Integration Tests
)和用户界面测试(UI Tests
)。这三层测试有助于确保应用程序的各个部分都能正常工作,并且整体功能符合预期。
google android
测试体系
金字塔模型与沙漏模型
金字塔模型
理想自动化测试分布:单元测试占据测试总量的最大部分,通常应占测试用例的70%-80%;集成测试占据测试总量的中等比例,通常应占测试用例的10%-20%;端到端测试占据测试总量的最少部分。
沙漏模型
沙漏模型是对金字塔模型的一种变形,其测试类型的分布与金字塔模型有所不同。沙漏模型强调更多的单元测试和端到端测试(End-to-End Tests
),而减少了集成测试的数量。
微服务测试模型
Resources
通过特定协议暴露能力。Service
负责领域模型的协作。Domain
包含行为和数据的领域对象模型。Repositories
作用于域实体的集合,并且通常是持久性支持的。Gateway
与远程服务进行通讯。Data Mappers
模型的序列化方案。
马丁福勒微服务测试
微服务测试策略
- 单元测试:检验应用程序中最小的可测试软件,以确定它们的行为是否符合预期
- 集成测试:验证组件之间的通信路径和交互以检测接口缺陷。
- 组件测试:将运行软件的范围限制在被测系统的一部分,通过内部代码接口操纵系统,并使用测试替身将被测代码与其他组件隔离开来。
- 端到端测试:验证系统是否满足外部要求并实现其目标,从头到尾测试整个系统。
总结
- 分层测试策略理论体系。
- 测试金字塔。
- UI 组件的分层测试。
- 金字塔模型与沙漏模型。
- 微服务测试模型。
- 微服务测试策略。