面向对象的测试层理分类
面向对象测试(Object-Oriented Testing, OOT)不同于传统软件测试,其核心单位从“模块/函数”转变为“对象/类”。根据业界共识,面向对象测试通常划分为以下四个层次: [1, 2]
1. 算法层(Algorithm Level)
这是测试的最低层次,主要针对类中定义的每个具体方法进行测试。 [3, 4]
- 测试内容:验证单个方法的逻辑正确性、参数处理、循环边界及局部数据流。
- 定位:相当于传统软件测试中的单元测试(Unit Testing)级别。
2. 类层(Class Level)
类层是面向对象测试特有的层次,重点在于测试封装在同一个类中的属性与方法之间的相互作用。 [3, 4, 5]
- 测试内容:
- 状态转换:测试对象在接收不同消息(调用方法)后,其内部状态的变化是否符合预期。
- 方法交互:一个类内部多个方法对共有数据的操作是否产生冲突。
- 定位:在面向对象领域,类常被视为基本的“单元”。 [5]
3. 集成层(Integration Level / Cluster Level)
该层次关注多个类或对象之间的协作与通信。 [5]
- 测试内容:
- 消息传递:验证对象间通过接口调用是否准确。
- 分类结构(继承):测试父类与子类之间的行为一致性,验证里氏替换原则是否满足。
- 组装结构(组合):测试整体对象与部分对象之间的关联是否正确。
- 定位:考察类簇(Cluster)的整体功能。 [6, 7]
4. 系统层(System Level)
当所有类组装成一个完整的应用后,进行的全局测试。 [8, 9]
- 测试内容:主要根据用户需求和场景图(Scenario-based testing)验证软件的功能、性能和安全性。
- 定位:验证软件整体是否达到了最初的设计目标。 [10]
[1] https://hit-alibaba.github.io
[2] https://developer.aliyun.com
[3] https://zhuanlan.zhihu.com
[4] https://blog.csdn.net
[5] https://www.uml.org.cn
[6] https://huangwang.github.io
[7] https://www.ltesting.net
[8] https://bbs.huaweicloud.com
[9] https://zhuanlan.zhihu.com
[10] https://www.cnblogs.com
