面向对象软件测试
面向对象模型的软件测试

面向对象模型的软件测试软件测试是确保软件质量的重要环节,而面向对象模型的软件测试在现代软件开发中扮演着重要的角色。
本文将探讨面向对象模型的软件测试方法和其在软件开发中的应用。
一、什么是面向对象模型面向对象模型是一种软件设计和开发方法,它基于将现实世界的事物抽象为对象,并定义对象之间的关系和交互。
面向对象模型的三大特点是封装、继承和多态。
在面向对象模型中,软件系统的功能被划分为一系列的对象,每个对象具有特定的属性和行为。
对象通过消息传递来进行交互,从而完成各种功能。
二、面向对象模型的测试方法1. 单元测试单元测试是对软件中最小单位(类或方法)进行测试的方法。
在面向对象模型中,每个对象都被看作是一个独立的单元,因此需要对每个对象进行单元测试。
单元测试的目的是验证对象的功能是否正常,并发现对象中可能存在的错误和缺陷。
通过编写测试用例,执行测试代码并进行断言,可以对对象的各个方法和属性进行全面的测试。
2. 集成测试集成测试是测试多个对象之间的相互作用和协作的方法。
在面向对象模型中,对象之间通过消息传递来进行交互,因此需要对对象之间的接口和交互进行测试。
集成测试的目的是验证对象之间的协作是否顺利,并发现可能存在的错误和冲突。
通过模拟实际的交互场景,可以测试对象之间的消息传递和数据交换。
3. 系统测试系统测试是对整个软件系统进行测试的方法。
在面向对象模型中,系统由多个对象组成,因此需要对整个对象系统进行测试。
系统测试的目的是验证整个软件系统的功能和性能是否满足需求,并发现系统中可能存在的错误和问题。
通过编写全面的测试用例,可以对系统进行全面的功能和性能验证。
三、面向对象模型的软件测试应用面向对象模型的软件测试方法广泛应用于各种软件开发项目中,尤其是大型复杂系统的开发。
1. 在敏捷开发中的应用面向对象模型的软件测试适用于敏捷开发方法中的迭代开发和持续集成过程。
通过快速编写和执行测试用例,可以及时发现和修复软件中的问题,确保软件的质量和稳定性。
软件测试第5章面向对象软件的测试

用户
读入 输入
账目
完成 服务
现金卡
卡号及密码
产生 输出
这三种模型分别从三个不同的方面对所要开发的系统进行了描述,功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候(即在何种状态下)接受了什么事件的触发;对象模型则定义了做事情的实体。因此在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础。我们依靠对象模型完成三种模型的集成。
软 件 测 试 教 程
第5章 面向对象软件的测试
教授内容
面向对象的测试概述
5.1
面向对象的单元测试
5.2
面向对象的集成测试和系统测试
5.3
5.1 面向对象的测试概述
PART . 01
1.对象
5.1.1 面向对象的基本概念
类是具有相同或相似性质的对象的抽象集合。因此,对象的抽象就是类,类的具体化就是对象,也可以说类的实例是对象。类通过构造函数来创造新的对象,并对新的对象进行初始化,因此在对类进行测试时,需要考虑对象初始化过程是否正确。
图 描绘教材结构的聚集树
图 一家公司的对象模型
图 与上图对应的ER图
动态模型 动态模型是与时间和变化有关的系统性质。该模型描述系统的控制结构,表示瞬间的、行为化的系统控制。该模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织。该模型包括以下几个方面的元素: 事件:指定时刻发生的某件事。 状态:是对象属性值的抽象,指明对象对输入事件的响应。 状态图:反映状态与事件的关系。
面向对象的软件开发可分为面向对象的分析(Object Oriented Analysis,OOA)、面向对象的设计(Object Oriented Design,OOD)和面向对象的编程(Object Oriented Progamming,OOP)三部分,后面将对这些分析和设计、模型进行讨论。
面向对象的软件测试

面向对象的软件测试一、引言随着软件领域的迅猛发展,面向对象编程成为主流的开发范式。
在面向对象的软件开发过程中,软件测试是不可或缺的一环。
本文将重点讨论面向对象的软件测试方法和技术。
二、面向对象的软件测试概述面向对象的软件测试是基于面向对象编程范式的软件测试过程。
它的核心思想是将软件抽象为对象,通过对对象的测试来确保软件的质量和可靠性。
与传统的结构化软件测试相比,面向对象的软件测试更加灵活、可复用,并能够更好地应对软件变更和维护的需求。
三、面向对象的软件测试原则1. 固化测试用例:面向对象的软件测试需要建立一组完整的测试用例,覆盖各个对象的各种状态和行为。
这样可以确保对对象的测试的全面性和准确性。
2. 封装测试逻辑:对于面向对象的软件,应该封装测试逻辑,将测试代码与被测试的对象分离开来,从而提高代码的可维护性和可测试性。
3. 高内聚低耦合:在进行面向对象的软件测试时,应该尽量保持对象之间的高内聚性和低耦合性。
这样可以使得测试更加独立,减少测试之间的相互影响。
4. 多态性测试:面向对象的软件中,多态性是非常关键的特性。
在进行测试时,需要充分考虑对象在不同状态下的不同行为,以及对象之间的相互作用。
四、面向对象的软件测试方法1. 单元测试:单元测试是面向对象的软件测试的基石。
通过针对各个对象进行独立的测试,可以确保对象的功能和逻辑正确性。
2. 集成测试:集成测试是对多个对象间相互作用的测试。
可以通过模拟对象之间的协作和通信,来检验对象间的接口和交互是否符合预期。
3. 系统测试:系统测试是对整个软件系统的测试,包括功能测试、性能测试、安全性测试等。
通过系统测试可以全面评估软件的质量和性能。
4. 面向对象的覆盖率分析:面向对象的覆盖率分析能够精确评估测试用例对对象的覆盖程度。
通过该分析,可以发现测试用例中的不足和重复,从而优化测试策略和用例设计。
五、面向对象的软件测试工具1. JUnit:JUnit是Java语言中最常用的单元测试框架,支持面向对象的测试方法和断言。
面向对象的软件测试与质量控制技术研究

面向对象的软件测试与质量控制技术研究一、引言面向对象程序设计是当前软件开发中最为普遍的一种设计方式,随着程序规模的不断增大,对于软件测试与质量控制也提出了新的要求。
本文将探究面向对象的软件测试与质量控制技术。
二、面向对象的软件测试面向对象的软件测试主要是针对对象的测试,因为一个对象可能涉及到多个方法或属性,而且这些方法都可能被多个类调用。
因此,对于每个对象,都需要进行全面的测试,包括它的方法、属性以及与其他对象的交互等。
下面我们将介绍面向对象软件测试的几个主要方面。
1.测试用例设计测试用例的设计是软件测试的重要组成部分,也是面向对象软件测试的关键。
通常情况下,测试用例应该覆盖所有的代码路径,这样才能尽可能地发现潜在的缺陷。
在面向对象的程序设计中,测试用例设计应该考虑到每一个对象,它的方法和属性以及与其他对象之间的关系。
2.测试数据设计测试数据在软件测试中同样起着关键的作用。
在面向对象的程序设计中,测试数据同样要考虑到对象之间的交互。
因为在真实的环境中,不同的对象的行为通常会受到其他对象的影响。
因此,在测试数据设计中,需要考虑到对象之间的关系,例如对象之间的依赖关系、消息传递等。
3.测试代码实现测试代码实现是面向对象软件测试的重要部分。
测试代码的实现应该尽量简化,避免过度复杂,因为简单的代码更容易调试和维护。
另外,在测试代码实现时,还应考虑到对象之间的相互影响,例如对象之间的调用顺序、对象之间的依赖关系等。
4.测试执行和评估测试的执行和评估是测试过程的最后两个步骤。
在测试执行过程中,测试人员应该记录下测试结果和日志,及时发现和处理问题。
在测试评估过程中,需要对测试结果进行分析,找出问题的根源,并作出相应的改进。
三、面向对象的质量控制技术面向对象的质量控制技术主要是针对软件质量的控制,包括软件的可维护性、可扩展性、可重用性等。
在面向对象的程序设计中,质量控制技术同样需要考虑到对象之间的交互。
1.封装性封装性是面向对象程序设计中的一个基本概念,它关注的是每个对象对外界的表现。
《软件测试》第章面向对象的软件测试

确定决策
01
确定被测对象的功能决策,包括条件和结果。
决策表
02
根据条件和结果,建立决策表,包括输入、决策规则和期望输
出。
测试用例设计
03
根据决策表,设计针对每个决策的测试用例,包括输入、期望
输出和测试步骤。
基于类图的测试用例设计
确定类
确定被测对象涉及的类,包括类之间的关系。
类图
根据类之间的关系,建立类图,包括类之间的关系、属性和方法。
面向对象软件测试的特点
基于对象、注重交互性、考虑继承性和多态性等。
面向对象软件测试的国内外发展现状及趋势
面向对象软件测试的国内外发展现状
目前,面向对象软件测试已经得到了广泛的应用和研究,国内外出现了一些成熟的面向对象软件测试框架和工 具,如JUnit、TestNG、HP QTP等。
面向对象软件测试的未来趋势
基于TestNG的集成测试技术
TestNG简介
TestNG基本结构
TestNG功能
TestNG是另一个开源的Java测试框 架,与JUnit相比,它提供了更加灵活 的测试配置和管理功能。TestNG支 持多线程测试、分组测试、参数化测 试和依赖测试等。
TestNG测试用例由测试类和方法组 成,使用@Test注解标识测试方法。 TestNG还提供了@Before和@After 注解以及@BeforeClass和 @AfterClass注解,用于在测试前和 测试后执行一些操作。
实例2
基于类图和交互图的测试模型实例,通过分析 类和对象间的交互关系,设计有效的测试用例 。
实例3
对象测试的实例,针对单个对象及其方法进行 测试,并模拟对象间的交互来设计更有效的测 试用例。
面向对象的软件测试基础

• 对象 • 消息 • 接口 •类 • 继承 • 多态
7
对象
• 对象是指包含了一组属性以及对这些属性的 操作的封装体。
• 对象是软件开发期间测试的直接目标
– 在程序运行时,对象被创建、修改、访问或删除, 而在运行期间,对象的行为是否符合它的规格说 明,该对象与和它相关的对象能否协同工作,这 两方面都是面向对象软件测试所关注的焦点。
– 多态和动态绑定增加了系统运行中可能的执行路径,而且 给面向对象软件带来了严重的不确定性,给测试覆盖率的 活动带来新的困难。
2
测试面向对象软件的不同
• 另一方面,面向对象的开发过程以及分析和 设计方法也对测试产生了影响
– 分析、设计和编码实现密切相关,分析模型可以 映射为设计模型,设计模型又可以映射为代码。
23
例如
• Base::Redefined()含有如下语句:
If(value<0)message("less"); else if(value==0)message("equal"); else message("more");
• 在Derived::Redefined()中定义为:
If(value<0)message("less"); else if(value==0)message("It is equal") else{
• 从测试视角的角度,关于继承:
–继承提供了一种机制,潜在的错误会从基类传递到其派生 类,因此类测试中要尽早消除错误。
–子类继承了父类的说明和实现,因此可重复使用相同的测 试方法。
–设计模型时,检查是否合理地使用了继承。
面向对象的软件测试技术分析

面向对象的软件测试技术分析一、引言现代软件的蓬勃发展,越来越多的企业采用面向对象的开发模式。
针对这种开发模式,软件测试也需要进行相应的改进和完善,因此面向对象的软件测试技术成为了当前软件测试领域中的热门话题。
在本文中,我们将探讨面向对象的软件测试技术。
二、面向对象的软件测试概述面向对象是一种软件开发方法,其中一个基本的概念就是类。
在面向对象的软件中,类是代码的主要组成单位。
因此,面向对象的软件测试也必须考虑类的特征。
面向对象的软件测试是对类和对象进行测试,以确保它们的行为和功能符合预期。
面向对象的软件测试通常包括以下几个方面:1.类测试:测试类的属性和方法是否正确地实现了所有的需求和规范,并且是否符合受到测试的对象的约束。
2.对象测试:测试对象的方法和属性是否被正确的调用和使用。
3.集成测试:测试组成组件的类和对象之间协同进行时能否正常工作。
4.系统测试:测试整个系统的功能,性能和健壮性。
面向对象的软件测试技术通常需要识别类的特性和规范,开发测试用例来测试类和方法的正确性,使用覆盖率来改进测试,以及使用调试和性能分析工具来检测代码缺陷。
三、面向对象的软件测试技术详解1.识别类的特性和规范对于面向对象的软件测试,首先需要考虑到类的特性和规范。
这对于测试用例的开发至关重要。
一个好的测试用例需要很好地理解类的实现和应用场景。
例如:如果测试继承类,则测试用例必须包括涉及基类和派生类的所有方面。
更通用的规则是检查是否符合类的公有接口。
2.开发测试用例在面向对象的软件测试中,测试用例的开发和设计十分重要。
测试用例必须覆盖类的所有方法和属性,并对各种输入进行测试。
例如:如果类有一个方法来验证输入是否为邮政编码格式,则需要编写一些测试用例来测试针对ZipcodeFormat输入值的有效性,而不只是任意输入。
在这种情况下,编写一些测试用例来验证输入为“12345-6789”或“12345”等格式的有效性非常重要。
面向对象软件测试要点与技巧

面向对象软件测试要点与技巧面向对象的软件开发方法已经成为现代软件开发的主流,在这种开发方法中,软件系统被分解为对象,而对象之间通过消息传递进行交互。
面向对象软件测试是为了验证系统的正确性和可靠性而进行的一项重要工作。
本文将介绍面向对象软件测试的要点和技巧,帮助开发人员更好地进行软件测试。
一、了解软件测试的基本概念在进行面向对象软件测试之前,首先需要了解软件测试的基本概念。
软件测试是指通过运行和评估软件,以验证软件是否满足预定义的需求和预期的性能。
软件测试可以帮助发现和纠正软件中的错误,并确保软件的质量和可靠性。
二、理解面向对象软件测试的特点1. 封装性:面向对象软件测试需要关注对象之间的交互和信息传递,而不仅仅是测试单个函数或方法。
2. 继承性:在进行面向对象软件测试时,需要考虑继承关系对测试的影响,确保子类的测试能够覆盖到父类的功能。
3. 多态性:多态性使得同一个方法在不同的对象上有不同的实现,因此在进行面向对象软件测试时,需要考虑不同对象的测试用例设计。
三、设计有效的面向对象软件测试用例1. 根据需求和用例进行测试用例设计:根据软件需求和用例设计相应的测试用例,确保测试能够覆盖到系统的各个功能。
2. 考虑特殊情况:在进行面向对象软件测试时,需要考虑到各种特殊情况,例如边界条件、异常处理等。
3. 设计可重复性的测试用例:设计可重复性的测试用例可以提高测试效率,同时能够对软件系统进行多次验证。
四、选择合适的面向对象软件测试技术和工具1. 单元测试:通过对单个类或方法进行测试,验证其功能的正确性。
2. 集成测试:将多个对象组合起来进行测试,验证对象之间的交互是否正常。
3. 系统测试:对整个软件系统进行测试,验证系统的功能和性能是否满足需求。
4. 自动化测试工具:选择合适的自动化测试工具可以提高测试效率和准确性。
五、进行面向对象软件测试的常见问题及解决方法1. 测试用例设计不全面:解决方法是仔细分析需求和用例,设计更全面的测试用例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3/20
面向对象测试模型
面向对象的开发模型突破了传统的瀑布模型, 面向对象的开发模型突破了传统的瀑布模型,将开发分为面 向对象分析(OOA),面向对象设计(OOD), ),面向对象设计 ),和面向对象编 向对象分析(OOA),面向对象设计(OOD),和面向对象编 OOP) 程(OOP)三个阶段 针对这种开发模型,结合传统的测试步骤的划分, 针对这种开发模型,结合传统的测试步骤的划分,把面向对 象的软件测试分为: 象象分析的测试(续)
OOA直接映射问题空间, OOA直接映射问题空间,全面的将问题空间中实现功能的现实 直接映射问题空间 抽象化
将问题空间中的实例抽象为对象, 将问题空间中的实例抽象为对象,用对象的结构反映问题空间的复杂实 例和复杂关系,用属性和操作表示实例的特性和行为 例和复杂关系, 对一个系统而言,与传统分析方法产生的结果相反,行为是相对稳定的, 对一个系统而言,与传统分析方法产生的结果相反,行为是相对稳定的, 结构是相对不稳定的,这更充分反映了现实的特性 结构是相对不稳定的, OOA的结果是为后面阶段类的选定和实现, OOA的结果是为后面阶段类的选定和实现,类层次结构的组织和实现提 的结果是为后面阶段类的选定和实现 供平台。因此,对OOA的测试,应从以下方面考虑: 供平台。因此, OOA的测试,应从以下方面考虑: 的测试 对认定的对象的测试 对认定的结构的测试 对认定的主题的测试 对定义的属性和实例关联的测试 对定义的服务和消息关联的测试
10/20
面向对象的单元测试—类测试( 面向对象的单元测试—类测试(续)
类的测试按顺序分为三个部分: 类的测试按顺序分为三个部分:
1. 2.
基于服务的测试: 测试类中的每一个方法; 基于服务的测试: 测试类中的每一个方法; 基于状态的测试: 基于状态的测试: 考察类的实例在其生命周期各 个状态下的情况; 个状态下的情况; 基于响应状态的测试: 从类和对象的责任出发, 基于响应状态的测试: 从类和对象的责任出发,以 外界向对象发送特定的消息序列的方法来测试对 象的各个响应状态
2.
13/20
面向对象的系统测试
通过单元测试和集成测试,仅能保证软件开发的功能得以实现。 通过单元测试和集成测试,仅能保证软件开发的功能得以实现。 但不能确认在实际运行时,它是否满足用户的需要。为此, 但不能确认在实际运行时,它是否满足用户的需要。为此,对 完成开发的软件必须经过规范的系统测试 系统测试应尽量搭建与用户实际使用环境相同的测试平台, 系统测试应尽量搭建与用户实际使用环境相同的测试平台,应 该保证被测系统的完整性,对临时没有的系统设备部件, 该保证被测系统的完整性,对临时没有的系统设备部件,也应 有相应的模拟手段 系统测试时,应该参考OOA分析的结果,对应描述的对象、 系统测试时,应该参考OOA分析的结果,对应描述的对象、属 OOA分析的结果 性和各种服务, 性和各种服务,检测软件是否能够完全再现问题空间 系统测试不仅是检测软件的整体行为表现,从另一个侧面看, 系统测试不仅是检测软件的整体行为表现,从另一个侧面看, 也是对软件开发设计的再确认
7/20
面向对象编程的测试
典型的面向对象程序具有继承、封装和多态的新特性, 典型的面向对象程序具有继承、封装和多态的新特性, 这使得传统的测试策略必须有所改变
封装是对数据的隐藏, 封装是对数据的隐藏,外界只能通过被提供的操作来访问或 修改数据,这样降低了数据被任意修改和读写的可能性, 修改数据,这样降低了数据被任意修改和读写的可能性,降 低了传统程序中对数据非法操作的测试 继承是面向对象程序的重要特点, 继承是面向对象程序的重要特点,继承使得代码的重用率提 高,同时也使错误传播的概率提高 多态使得面向对象程序对外呈现出强大的处理能力, 多态使得面向对象程序对外呈现出强大的处理能力,但同时 却使得程序内同一函数的行为复杂化, 却使得程序内同一函数的行为复杂化,测试时必须考虑不同 类型具体执行的代码和产生的行为
8/20
面向对象编程的测试( 面向对象编程的测试(续)
面向对象程序是把功能的实现分布在类中
能正确实现功能的类, 能正确实现功能的类,通过消息传递来协同实现设 计要求的功能
因此,在面向对象编程(OOP)阶段,忽略类功 阶段, 因此,在面向对象编程 阶段 能实现的细则, 能实现的细则,将测试的目光集中在类功能的 实现和相应的面向对象程序风格, 实现和相应的面向对象程序风格,主要体现为 以下两个方面
面向对象分析的测试 面向对象设计的测试 面向对象编程的测试 面向对象单元测试 面向对象集成测试 面向对象系统测试 面向对象的回归测试
4/20
面向对象分析的测试
面向对象分析(OOA):E面向对象分析(OOA):E-R图和语义网络模型 (OOA):E
信息造型中的概念, 信息造型中的概念,与面向对象程序设计语言中 的重要概念结合在一起而形成的分析方法 最后通常是得到问题空间的图表的形式描述
3.
11/20
面向对象的集成测试
传统的集成测试, 传统的集成测试,有两种方式通过集成完成的 功能模块进行测
1.
自顶向下集成: 自顶向下集成:自顶向下集成是构造程序结构的一 种增量式方式,它从主控模块开始,按照软件的控 种增量式方式,它从主控模块开始, 制层次结构,以深度优先或广度优先的策略, 制层次结构,以深度优先或广度优先的策略,逐步 把各个模块集成在一起 自底向上集成:自底向上测试是从“原子” 自底向上集成:自底向上测试是从“原子”模块 即软件结构最低层的模块) (即软件结构最低层的模块)开始组装测试
6/20
面向对象设计的测试
面向对象设计( 面向对象设计(OOD)采用造型的观点,以OOA为 )采用造型的观点, 为 基础归纳出类,并建立类结构或进一步构造成类库, 基础归纳出类,并建立类结构或进一步构造成类库, 实现分析结果对问题空间的抽象
OOD是OOA的进一步细化和更高层的抽象 是 的进一步细化和更高层的抽象 OOD确定类和类结构不仅是满足当前需求分析的要求,更 确定类和类结构不仅是满足当前需求分析的要求, 确定类和类结构不仅是满足当前需求分析的要求 重要的是通过重新组合或加以适当的补充, 重要的是通过重新组合或加以适当的补充,能方便实现功能 的重用和扩增, 的重用和扩增,以不断适应用户的要求 的测试, 对OOD的测试,应从如下三方面考虑: 的测试 应从如下三方面考虑: 对认定的类的测试 对构造的类层次结构的测试 对类库的支持的测试
数据成员是否满足数据封装的要求 类是否实现了要求的功能
9/20
面向对象的单元测试——类测试 类测试 面向对象的单元测试
传统的单元测试的对象是软件设计的最小单位——模块 传统的单元测试的对象是软件设计的最小单位——模块 ——
单元测试的依据是详细设描述, 单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路 径设计测试用例, 径设计测试用例,以便发现模块内部的错误 单元测试多采用白盒测试技术, 单元测试多采用白盒测试技术,系统内多个模块可并行地进行测试
第14讲 14讲 面向对象软件测试
1/20
结构化测试
自底向上的测试策略, 自底向上的测试策略,从“小型测试”开始,逐步走 小型测试”开始, 大型测试” 向“大型测试”
从单元测试开始,然后逐步进入集成测试, 从单元测试开始,然后逐步进入集成测试,最后是有效性 和系统测试 在传统应用中,单元测试集中在最小的可编译程序单位— 在传统应用中,单元测试集中在最小的可编译程序单位— 子程序( 模块、子例程、进程) —子程序(如,模块、子例程、进程) 一旦这些单元均被独立测试后, 一旦这些单元均被独立测试后,它被集成在程序结构中 这时要进行一系列的回归测试以发现由于模块的接口所带 来的错误和新单元加入所导致的副作用 系统被作为一个整体测试以保证发现在需求中的错误
如根据类的继承关系图来纵向检查类, 如根据类的继承关系图来纵向检查类, 根据对象之间方法的相互作 用来横向检查类的关系图
15/20
面向对象的系统测试( 面向对象的系统测试(续)
系统测试: 系统测试:
系统测试是对所有类和主程序构成的整个系统进行整体测试, 系统测试是对所有类和主程序构成的整个系统进行整体测试, 以验证软件系统的正确性和性能指标等满足需求规格说明书 和任务书所指定的要求 它与传统的系统测试一样, 包括功能测试、性能测试、 它与传统的系统测试一样, 包括功能测试、性能测试、余量 测试等, 测试等, 可套用传统的系统测试方法 测试用例可从对象—行为模型和作为面向对象分析的事件流 测试用例可从对象—行为模型和作为面向对象分析的事件流 图中导出
14/20
面向对象的系统测试( 面向对象的系统测试(续)
类簇(是一组相互合作的类) 类簇(是一组相互合作的类)
类簇测试主要考察一组协同操作的类之间的相互作用, 类簇测试主要考察一组协同操作的类之间的相互作用, 是 系统集成测试的一个子阶段 在单个类分别进行测试后, 根据系统中类的层次关系图, 在单个类分别进行测试后, 根据系统中类的层次关系图, 将相互有影响的类作为一个整体, 将相互有影响的类作为一个整体, 检查各相关类之间消息 连接的合法性、子类的继承性与父类的一致性、 连接的合法性、子类的继承性与父类的一致性、动态绑定 执行的正确性、 执行的正确性、类簇协同完成系统功能的正确性等 测试用例可由多种方案结合生成
当考虑面向对象软件时,单元的概念发生了变化 当考虑面向对象软件时,
封装驱动了类和对象的定义,这意味着每个类和类的实例(对象) 封装驱动了类和对象的定义,这意味着每个类和类的实例(对象)包装了 属性(数据)和操纵这些数据的操作, 属性(数据)和操纵这些数据的操作,而不是个体的模块 最小的可测试单位是封装的类或对象,类包含一组不同的操作, 最小的可测试单位是封装的类或对象,类包含一组不同的操作,并且某 特殊操作可能作为一组不同类的一部分存在 一个对象有它自己的状态和依赖于状态的行为, 一个对象有它自己的状态和依赖于状态的行为, 对象操作既与对象的状 态有关, 但也可能改变对象的状态。 态有关, 但也可能改变对象的状态。 单元测试的意义发生了较大变化,我们不再孤立地测试单个操作, 单元测试的意义发生了较大变化,我们不再孤立地测试单个操作,而是 将操作作为类的一部分