面向对象系统测试全解析
1. 测试阶段概述
测试一般分为四个阶段:单元测试、集成测试、系统测试和验收测试。尽管每个应用系统都有所不同,但大多数错误是在集成测试和系统测试阶段被发现的。测试不仅要涵盖不同阶段,还需同时满足功能和非功能需求。
2. 面向对象特性对测试的影响
2.1 封装与信息隐藏
封装和信息隐藏允许将过程和数据组合成整体实体(即对象),支持将所有内容隐藏在可见接口之后。这虽有利于系统的修改和维护,但给系统测试带来了问题:
- 业务流程测试难题 :要测试系统满足用户需求的能力,需测试用例中代表的业务流程。然而,业务流程分布在一组协作类及其方法中,而类实例将数据隐藏在类边界之后,难以看到业务流程的影响。
- 单元定义问题 :在传统方法中,单元测试的单元可能是函数中的过程,但在面向对象系统中,过程分布在一组类中,测试单个方法没有意义,单元应是类,这极大改变了单元测试的方式。
- 集成测试影响 :对象可聚合形成聚合对象,也可分组形成协作,还可用于类库、框架和组件。基于这些不同的类组合方式,如何有效进行集成测试成为难题。
2.2 多态与动态绑定
多态和动态绑定对单元测试和集成测试都有显著影响。由于单个业务流程通过分布在一组对象上的方法实现,在方法级别进行单元测试没有意义。而且,同一个方法可在多个不同对象中实现,动态绑定使得在系统执行前难以知道将执行哪个实现,这让集成测试极具挑战性。
2.3 继承
继承会影响面向对象系统的测
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



