"面向对象测试涉及对对象的属性、实例、服务、消息连接及类的全面性和合理性的验证。在面向对象的软件工程中,测试是贯穿整个开发过程的,包括面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)的各个阶段。"
在面向对象的测试中,主要关注以下几个关键知识点:
1. **面向对象测试的概念**:面向对象系统的测试与传统功能测试不同,因为对象通常更大且集成方式更灵活。测试者往往无法直接分析复用对象的内部代码。这要求测试策略适应对象的特性,如封装和继承。
2. **开发阶段的测试**:面向对象测试模型包括OOATest、OODTest、OOPTest、面向对象单元测试和面向对象集成测试,以及系统测试。这些测试在不同的开发阶段执行,确保每个阶段的质量。
- **OOATest和OODTest**:主要针对分析和设计阶段的结果,检查类和类结构的完整性和正确性。
- **OOPTest**:关注编程实现,包括代码风格和单元功能,是面向对象单元测试和集成测试的基础。
- **面向对象单元测试**:检验单个类或成员函数的正确性,确保它们按预期工作。
- **面向对象集成测试**:测试类之间的交互和消息传递,强调对象间的协作。
- **面向对象系统测试**:最后阶段,以用户需求为基准,确保整个系统满足功能和性能要求。
3. **开发前期的测试**:在OOA和OOD阶段,测试侧重于静态特性,如类的全面性(是否覆盖所有问题领域对象)和合理性(类的属性数量,避免单一属性类)。此外,还需要确保类的抽象程度恰当,能够准确反映问题领域。
4. **面向对象的开发模型**:OOA、OOD和OOP三个阶段紧密相连,测试贯穿其中。分析阶段产生问题域的抽象描述,设计阶段形成类和结构,编程阶段实现代码。测试模型反映了这一流程,每个阶段都有相应的测试活动。
5. **松散耦合与集成测试**:由于对象间的松散耦合,集成测试特别重要,它确保对象间的通信和协作正确无误,这是系统能够正常工作的关键。
面向对象测试是确保软件质量的重要组成部分,它要求测试者深入理解对象的性质和行为,以及它们在系统中的交互方式。通过各个阶段的细致测试,可以有效地提高软件的可靠性和稳定性。