面向对象软件的测试
面向对象的软件测试策略

面向对象的软件测试策略软件测试是保证软件质量的重要手段之一,而面向对象的软件测试策略则是针对基于面向对象编程模式开发的软件产品进行测试的一种方法。
本文将介绍面向对象的软件测试策略,并探讨其在软件开发过程中的应用。
一、引言面向对象编程(Object-Oriented Programming,简称OOP)是一种基于对象概念的编程范式,它将现实世界中的事物抽象为对象,通过对象之间的交互和信息传递来完成程序的设计和实现。
在面向对象的软件开发过程中,为了保证软件的质量和可靠性,需要采用相应的测试策略。
二、面向对象的软件测试特点1. 封装性测试:针对对象的封装性进行测试,验证对象对外部的接口是否正确封装,以及属性和方法的访问权限是否符合要求。
常用的测试方法有黑盒测试和白盒测试。
2. 继承性测试:测试继承关系是否正确,验证子类是否继承了父类的属性和方法,并且可以正常使用。
重点关注继承方式、重载和重写等特性的正确性。
3. 多态性测试:测试多态的正确性,验证同一个方法在不同对象上的行为是否符合预期。
主要包括参数类型、返回值和异常处理等方面的测试。
4. 接口测试:测试接口的正确性和一致性,尤其是在多模块或多团队协作开发的情况下,确保接口参数和返回值满足约定,并且实现类符合接口规范。
三、面向对象的软件测试策略1. 单元测试:针对类或方法进行测试,确保其功能的正确性。
可以使用各种单元测试框架,如JUnit、TestNG等来编写和执行测试用例。
2. 集成测试:测试多个对象之间的交互和协作,验证对象的集成是否正确。
可以使用自顶向下或自底向上的测试方法进行集成测试。
3. 系统测试:测试整个软件系统的功能和性能,验证系统的行为是否符合用户需求。
可以采用功能测试、性能测试、压力测试等方法。
4. 验收测试:由用户或客户进行的测试,验证软件是否满足用户需求,并按照预定的标准进行测试评估。
常用的方法包括 Alpha 测试和Beta 测试等。
软件测试第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. 编写测试用例编写测试用例是面向对象的软件测试实践的第一步。
面向对象的软件测试技术分析

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

面向对象软件测试要点与技巧面向对象的软件开发方法已经成为现代软件开发的主流,在这种开发方法中,软件系统被分解为对象,而对象之间通过消息传递进行交互。
面向对象软件测试是为了验证系统的正确性和可靠性而进行的一项重要工作。
本文将介绍面向对象软件测试的要点和技巧,帮助开发人员更好地进行软件测试。
一、了解软件测试的基本概念在进行面向对象软件测试之前,首先需要了解软件测试的基本概念。
软件测试是指通过运行和评估软件,以验证软件是否满足预定义的需求和预期的性能。
软件测试可以帮助发现和纠正软件中的错误,并确保软件的质量和可靠性。
二、理解面向对象软件测试的特点1. 封装性:面向对象软件测试需要关注对象之间的交互和信息传递,而不仅仅是测试单个函数或方法。
2. 继承性:在进行面向对象软件测试时,需要考虑继承关系对测试的影响,确保子类的测试能够覆盖到父类的功能。
3. 多态性:多态性使得同一个方法在不同的对象上有不同的实现,因此在进行面向对象软件测试时,需要考虑不同对象的测试用例设计。
三、设计有效的面向对象软件测试用例1. 根据需求和用例进行测试用例设计:根据软件需求和用例设计相应的测试用例,确保测试能够覆盖到系统的各个功能。
2. 考虑特殊情况:在进行面向对象软件测试时,需要考虑到各种特殊情况,例如边界条件、异常处理等。
3. 设计可重复性的测试用例:设计可重复性的测试用例可以提高测试效率,同时能够对软件系统进行多次验证。
四、选择合适的面向对象软件测试技术和工具1. 单元测试:通过对单个类或方法进行测试,验证其功能的正确性。
2. 集成测试:将多个对象组合起来进行测试,验证对象之间的交互是否正常。
3. 系统测试:对整个软件系统进行测试,验证系统的功能和性能是否满足需求。
4. 自动化测试工具:选择合适的自动化测试工具可以提高测试效率和准确性。
五、进行面向对象软件测试的常见问题及解决方法1. 测试用例设计不全面:解决方法是仔细分析需求和用例,设计更全面的测试用例。
面向对象软件开发中的测试与维护

面向对象软件开发中的测试与维护一、引言面向对象编程是当前最为主流的一种程序设计范式,其核心思想是将现实世界的东西抽象化成一个个对象,并通过对象之间的交互来实现程序功能。
然而,面向对象编程并不仅仅只是简单地将现实世界映射到程序中,同样也需要严谨的测试与维护工作来保证程序的运行稳定与质量。
本文将从测试与维护两个方面来分享面向对象软件开发的经验和技巧。
二、面向对象软件开发中的测试测试是保证软件质量的重要手段之一,面向对象软件开发亦不例外。
具体而言,面向对象编程中最为重要的是单元测试和集成测试。
1. 单元测试单元测试是对单个代码模块进行测试的方式,目的在于验证该模块的功能是否符合预期。
对于面向对象编程而言,单元测试应该对一个类的所有方法进行测试,并且相互独立,不会影响到其他模块的测试结果。
在编写单元测试时,需要特别注意以下几个方面:- 测试应该覆盖到类中的所有方法,包括边界条件与异常处理。
- 测试用例需要想尽办法去模拟所有可能的输入情况,并验证输出结果是否正确。
- 为确保每次测试的独立性,需要在每个测试用例中先进行数据初始化,以免前后测试用例互相影响。
- 测试结果必须是可重现的,不能因为环境的变化而导致结果不一致。
2. 集成测试集成测试是对不同模块之间的交互进行测试的方式,主要目的是检查这些模块是否可以协同工作。
在面向对象编程中,集成测试的重点在于测试类之间的协同工作情况,而不是对单个类进行测试。
在编写集成测试时,需要特别注意以下几个方面:- 要形成完整的业务场景,将多个类拼接成流程进行测试。
- 测试用例需要想尽办法去模拟所有可能的情况,并检查程序是否能够正常处理。
- 需要对所有数据输入进行检查,确保程序的正确性。
- 在测试过程中,需要时刻关注类之间的调用关系,以便发现并解决相关问题。
三、面向对象软件开发中的维护面向对象编程的一个主要优点就是可以很方便地进行维护,这主要得益于该编程范式下的封装性和可扩展性。
面向对象的软件测试设计

面向对象的软件测试设计在软件开发领域,测试是必不可少的环节,最终的软件品质要靠测试保证。
面向对象的软件测试设计可以让测试更加有效和高效,本文将从概念、设计思路和案例等几个方面进行探讨。
一、什么是面向对象的软件测试设计?面向对象的软件测试设计是基于面向对象的设计思想,将测试与面向对象的设计方案相结合,通过分析系统架构、类图、时序图等模型,确定测试用例及其执行顺序,从而对软件进行全面的测试。
二、设计思路1.分析系统架构在进行面向对象的软件测试设计时,首先应对系统架构进行分析。
通过分析系统的模块、函数、依赖关系以及对象等,可以确定测试用例的覆盖范围和测试的方向。
2.绘制类图类图是面向对象设计的重要部分,通过绘制类图可以清晰地反映出系统的结构和设计思路。
在进行面向对象的软件测试设计时,类图是一个不可或缺的工具。
通过分析类之间的关系,可以确定各个类的测试用例及其执行顺序。
3.时序图的绘制时序图可以清楚地反映出对象之间的交互关系。
通过时序图的绘制,可以明确测试用例的执行流程,确定测试用例的输入输出及其实际执行效果。
三、案例分析以一个简单的图书管理系统为例,介绍如何进行面向对象的软件测试设计。
1.分析系统架构首先进行的是分析系统架构。
图书管理系统主要包含两个模块:读者管理和图书管理。
其中,读者管理模块包括读者的借阅、归还、查询等功能;图书管理模块包括图书的借出、归还、查询等功能。
2.绘制类图根据系统架构的分析,可以绘制出类图。
类图如图1所示。
图1.图书管理系统的类图通过类图可以明确各个类之间的关系,一个类与其他类的关系与依赖。
在进行测试设计时,可以根据类之间的依赖关系,确定测试用例及其实现顺序。
3.时序图的绘制以图书借阅为例,绘制时序图如图2所示。
图2.图书借阅时序图通过时序图,可以清楚地反映出对象之间的交互关系。
在进行测试设计时,可以根据时序图,确定测试用例及其执行流程。
四、总结面向对象的软件测试设计可以提高测试的运用效率和准确度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三 面向对象分析的测试
1 对认定的对象的测试: OOA中认定的对象是对问题空间中的结构,其他系统,
设备,被记忆的事件,系统涉及的人员等实际实例的抽象。 对它的测试可以从如下方面考虑:
1.1 认定的对象是否全面,是否问题空间中所有涉及到的实 例都反映在认定的抽象对象中。
1.2 认定的对象是否具有多个属性。只有一个属性的对象通 常应看成其他对象的属性,而不是抽象为独立的对象。
三 面向对象分析的测试
5 对定义的服务和消息关联的测试 定义的服务,就是定义的每一种对象和结构在问题空
间所要求的行为。由于问题空中实例间必要的通信,在 OOA 中相应需要定义消息关联。对定义的服务和消息关 联的测试从如下方面进行:
5.1 对象和结构在问题空间的不同状态是否定义了相应的服 务。
5.2 对象或结构所需要的服务是否都定义了相应的消息关联。 5.3 定义的消息关联所指引的服务提供是否正确。 5.4 沿着消息关联执行的线程是否合理,是否符合现实过程。 5.5 定义的服务是否重复,是否定义了能够得到的服务。
3.3 类的层次结构是否是深度大,宽度小。
五 面向对象编程的测试
典型的面向对象程序具有继承、封装和多 态的新特性,这使得传统的测试策略必须 有所改变。封装是对数据的隐藏,外界只 能通过被提供的操作来访问或修改数据, 这样降低了数据被任意修改和读写的可能 性,降低了传统程序中对数据非法操作的 测试。继承是面向对象程序的重要特点, 继承使得代码的重用率提高,同时也使错 误传播的概率提高。
四 面向对象设计的测试
面向对象设计(OOD)采用"造型的观点", 以OOA为基础归纳出类,并建立类结构或 进一步构造成类库,实现分析结果对问题 空间的抽象。OOD 归纳的类,可以是对象 简单的延续,可以是不同对象的相同或相 似的服务。由此可见,OOD不是在OOA上 的另一思维方式的大动干戈,而是OOA的 进一步细化和更高层的抽象。
1.3 对认定为同一对象的实例是否有共同的,区别于其他实 例的共同属性。
1.4 对认定为同一对象的实例是否提供或需要相同的服务, 如果服务随着不同的实例而变化,认定的对象就需要分解或利用 继承性来分类表示。
1.5 如果系统没有必要始终保持对象代表的实例的信息,提 供或者得到关于它的服务,认定的对象也无必要。
三 面向对象分析的测试
2.1 对认定的分类结构的测试可从如下方面着手: 2.1.1 对于结构中的一种对象,尤其是处于高层
的对象,是否在问题空间中含有不同于下一层对象的特殊 可能性,即是否能派生出下一层对象。
2.1.2 对于结构中的一种对象,尤其是处于同一 低层的对象,是否能抽象出在现实中有意义的更一般的上 层对象。
三 面向对象分析的测试
OOA对问题空间分析抽象的不完整,最终 会影响软件的功能实现,导致软件开发后 期大量可避免的修补工作;而一些冗余的 对象或结构会影响类的选定、程序的整体 结构或增加程序员不必要的工作量。
三 面向对象分析的测试
对OOA阶段的测试划分为以下五个方面: ☆ 对认定的对象的测试 ☆ 对认定的结构的测试 ☆ 对认定的主题的测试 ☆ 对定义的属性和实例关联的测试 ☆ 对定义的服务和消息关联的测试
五 面向对象编程的测试
继承使得传统测试遇见了这样一个难题: 对继承的代码究竟应该怎样测试?多态使 得面向对象程序对外呈现出强大的处理能 力,但同时却使得程序内"同一"函数的行为 复杂化,测试时不得不考虑不同类型具体 执行的代码和产生的行为。
五 面向对象编程的测试
面向对象程序是把功能的实现分布在类中。能正 确实现功能的类,通过消息传递来协同实现设计 要求的功能。正是这种面向对象程序风格,将出 现的错误能精确的确定在某一具体的类。因此, 在面向对象编程(OOP)阶段,忽略类功能实现 的细则,将测试的目光集中在类功能的实现和相 应的面向对象程序风格,主要体现为以下两个方 面(假设编程使用C++语言): ☆ 数据成员是否满足数据封装的要求 ☆ 类是否实现了要求的功能
组装关系是否符合现实的关系。 2.2.2 整体(对象)的部件(对象)是
否在考虑的问题空间中有实际应用。 2.2.3 整体(对象)中是否遗漏了反映
在问题空间中有用的部件(对象)。 2.2.4 部件(对象)是否能够在问题空
间中组装新的有现实意义的整体(对象)。
三 面向对象分析的测试
3 对认定的主题的测试 主题是在对象和结构的基础上更高一层的抽象,是为
1.6 认定的对象的名称应该尽量准确,适用。
三 面向对象分析的测试
2 对认定的结构的测试 认定的结构指的是多种对象的组织方式,
用来反映问题空间中的复杂实例和复杂关 系。认定的结构分为两种:分类结构和组 装结构。分类结构体现了问题空间中实例 的一般与特殊的关系,组装结构体现了问 题空间中实例整体与局部的关系。
前言
验证:是检测软件开发的每个阶段、每个 步骤的结果是否正确无误,是否与软件开 发各阶段的要求或期望的结果相一致。验 证意味着确保软件是会正确无误的实现软 件的需求,开发过程是沿着正确的方向在 进行。
一 前言
测试:与狭隘的测试概念统一。通常是经 过单元测试、集成测试、系统测试三个环 节。
确认主要体现在计划阶段、需求分析阶段、 也会出现在测试阶段;验证主要体现在设 计阶段和编码阶段;测试主要体现在编码 阶段和测试阶段。
问题,但其强调的重点是再次软件开发的重用。 由于它并不直接影响当前软件的开发和功能实现, 因此,将其单独提出来测试,也可作为对高质量 类层次结构的评估。测试点如下:
3.1 一组子类中关于某种含义相同或基本相同的 操作,是否有相同的接口(包括名字和参数表)。
3.2 类中方法(C++:类的成员函数)功能是否 较单纯,相应的代码行是否较少。
四 面向对象设计的测试
,OOD与OOA 的界限通常是难以严格区分的。 OOD确定类和类结构不仅是满足当前需求分析的 要求,更重要的是通过重新组合或加以适当的补 充,能方便实现功能的重用和扩增,以不断适应 用户的要求。因此,对OOD的测试,针对功能的 实现和重用以及对OOA结果的拓展,从如下三方 面考虑: ☆ 对认定的类的测试 ☆ 对构造的类层次结构的测试 ☆ 对类库的支持的测试
面向对象分析(OOA)是"把E-R图和语义 网络模型,即信息造型中的概念,与面向 对象程序设计语言中的重要概念结合在一 起而形成的分析方法",最后通常是得到问 题空间的图表的形式描述。
三 面向对象分析的测试
OOA直接映射问题空间,全面的将问题空间中实 现功能的现实抽象化。将问题空间中的实例抽象 为对象(不同于C++中的对象概念),用对象的 结构反映问题空间的复杂实例和复杂关系,用属 性和服务表示实例的特性和行为。对一个系统而 言,与传统分析方法产生的结果相反,行为是相 对稳定的,结构是相对不稳定的,这更充分反映 了现实的特性。OOA的结果是为后面阶段类的选 定和实现,类层次结构的组织和实现提供平台
四 面向对象设计的测试
1 对认定的类的测试 OOD认定的类可以是OOA中认定的对象,也
可以是对象所需要的服务的抽象,对象所具有的 属性的抽象。认定的类原则上应该尽量基础性, 这样才便于维护和重用。测试认定的类:
1.1 是否含盖了OOA中所有认定的对象。 1.2 是否能体现OOA中定义的属性。 1.3 是否能实现OOA中定义的服务。 1.4 是否对应着一个含义明确的数据抽象。 1.5 是否尽可能少的依赖其他类。 1.6 类中的方法(C++:类的成员函数)是 否单用途。
2.1 类层次结构是否含盖了所有定义的类。 2.2 是否能体现OOA中所定义的实例关联。 2.3 是否能实现OOA中所定义的消息关联。 2.4 子类是否具有父类没有的新特性。 2.5 子类间的共同特性是否完全在父类中得以体现。
四 面向对象设计的测试
3 对类库支持的测试 对类库的支持虽然也属于类层次结构的组织
2.1.3 对所有认定的对象,是否能在问题空间内 向上层抽象出在现实中有意义的对象
2.1.4 高层的对象的特性是否完全体现下层的共 性
2.1.5 低层的对象是否有高层特性基础上的特殊 性
三 面向对象分析的测试
2.2 对认定的组装结构的测试从如下方面入手: 2.2.1 整体(对象)和部件(对象)的
了提供OOA分析结果的可见性,如同文章对各部分内容的 概要。对主题层的测试应该考虑以下方面:
3.1 贯彻George Miller 的"7+2"原则,如果主题个数超过7 个,就要求对有较密切属性和服务的主题进行归并。
3.2 主题所反映的一组对象和结构是否具有相同和相近的属 性和服务。
3.3 认定的主题是否是对象和结构更高层的抽象,是否便于 理解OOA结果的概貌(尤其是对非技术人员的OOA 结果读者)。
4.2 定义的属性在现实世界是否与这种实例关系密切。 4.3 定义的属性在问题空间是否与这种实例关系密切。 4.4 定义的属性是否能够不依赖于其他属性被独立理解。 4.5 定义的属性在分类结构中的位置是否恰当,低层对象的 共有属性是否在上层对象属性体现。 4.6 在问题空间中每个对象的属性是否定义完整。 4.7 定义的实例关联是否符合现实。 4.8 在问题空间中实例关联是否定义完整,特别需要注意1多和多-多的实例关联。
一 前言
面向对象技术开发出的程序无需进行测试?
面向对象程序的结构不再是传统的功能模 块结构,作为一个整体,原有集成测试所 要求的逐步将开发的模块搭建在一起进行 测试的方法已成为不可能。
二 面向对象测试模型
面向对象的开发模型突破了传统的瀑布模 型,将开发分为面向对象分析(OOA), 面向对象设计(OOD),和面向对象编程 (OOP)三个阶段。分析阶段产生整个问 题空间的抽象描述,在此基础上,进一步 归纳出适用于面向对象编程语言的类和类 结构,最后形成代析的测试 OOD Test:面向对象设计的测试 OOP Test:面向对象编程的测试 OO Unit Test:面向对象单元测试 OO Integrate Test:面向对象集成测试 OO System Test:面向对象系统测试