面向对象软件测试的问题
面向对象程序的单元测试
- 不变式边界测试。首先准确定义类的不变式,其次寻找成员方法的调用序列,以违反类的不变式,这些调用序列即可作为测试用例。
- 模态类测试:模态类是指对该类所接受的成员方法的调用序列设置一定的限制。这时,需要对类的状态进行建模,确定类的不同状态、每个状态下可以接受的成员方法调用以及状态间的转换关系,从而获得类的状态转换图。根据状态转换图,可以生成调用序列来覆盖状态转换图上的边和路径。每个调用序列可以作为一个测试用例。
- 非模态类测试:该类所接受的成员方法的调用序列没有任何限制。可以避免很多因状态引起的麻烦,但整个测试不能以状态图为指导。
- 多态服务测试。多态服务测试是为了测试子类中的多态方法的实现是否保持了父类对该方法的规格说明。
- 展平测试:将子类自身定义的成员方法和成员变量以及从父类和祖先类继承来的成员方法和成员变量全部放在一起组成一个新类,并对其进行测试。展平后的类的规模可能会相当大,这会给测试带来昂贵的代价,因此需要尽可能地减少不必要的代价。在复杂的情况下,对子类的测试可能只采用展平测试策略。
- 传统的集成测试策略:主要有大突击集成测试、自底向上集成测试、自顶向下集成测试、夹层式集成测试。
- 协作集成:在集成时,针对系统完成的功能,将可以相互协作完成特定功能的类集成在一起进行测试。优点:编写测试驱动和测试桩的开销小。缺点:当协作关系复杂时,测试难以充分进行;与传统集成测试相比,协作集成通常不完备。
- 基干集成:在嵌入式系统中,基干集成划分为两部分:内核部分(基干部分)和外围应用部分。优点:集中了传统集成的优点,并对缺点进行了控制,更加适合大型复杂项目的集成。缺点:必须对系统的结构和相互依存性进行分析;必须开发桩模块和驱动模块;由于局部采用一次性集成策略导致有些接口可能测试不完整。
- 高频集成:一般采用冒烟测试(对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。)的方式,即不预测每个测试用例的预期结果,如果测试中未出现反常情况,就认为通过测试。高频集成有三个主要步骤:1
- 分布式集成:用于测试松散耦合的同级构件之间交互的稳定性。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!