面向对象的软件测试

合集下载

面向对象软件的测试Web应用软件测试(一)_真题-无答案

面向对象软件的测试Web应用软件测试(一)_真题-无答案

面向对象软件的测试、Web应用软件测试(一)(总分100,考试时间90分钟)选择题1. 以类为单元进行单元测试时,以下说法中正确的是______。

A.一个测试用例可以调用该类的多个方法,但每个方法只能调用一次 B.一个测试用例只能调用在该类中定义的方法,不能调用在该类的父类中定义的方法 C.由该类方法组成的任何一个序列都是一个合理的测试用例 D.针对一个类的多个实例间协作的测试仍然属于面向对象单元测试的范畴2. 以下关于面向对象程序测试的说法中,正确的是______。

A.面向对象程序与传统程序的黑盒测试方法完全相同 B.面向对象程序与传统程序的白盒测试方法有明显区别 C.单个类树的测试不属于面向对象程序单元测试关注的范畴 D.对一个类的每个成员方法都进行充分的测试就完成了对该类充分的测试3. 以下关于面向对象程序测试的说法中,错误的是______。

A.方法名的重载是面向对象软件测试区别于传统程序测试的一个根本因素 B.展平测试是测试一棵继承树叶结点类的一种策略 C.基于判定表的测试可以用于面向对象程序的单元测试 D.等价类划分测试能用于方法层次的测试4. 以下关于面向对象软件测试的说法中,正确的是______。

A.不需要对抽象类进行单元测试 B.等价类划分测试是一种类层次的测试技术 C.不变式边界测试是一种类层次的测试技术 D.测试动态绑定是类树测试的唯一目标5. 以下关于面向对象软件测试的说法中,错误的是______。

A.测试动态绑定是类树测试的一个重要目标 B.面向对象软件协作集成测试是指对一个类的多个实例间协作进行的测试 C.面向对象软件的自底向上集成测试需要为集成测试开发相应代码 D.面向对象软件的单元测试需要考虑对一个类中单个方法的测试6. 下列关于面向对象程序的测试组织问题的说法中,正确的是______。

A.在面向对象程序测试中,通过执行程序代码完成的测试通常包括单元测试、集成测试和系统测试3个主要方面 B.在面向对象程序中的一个类可以作为被独立测试的单元 C.在面向对象程序测试中,很容易对一个类中的单个成员方法进行充分的单元测试 D.由于集成测试目标相同,结构化程序的集成测试技术都适用于对类的测试7. 下列关于面向对象测试问题的说法中,不正确的是______。

软件测试中的面向对象和接口测试

软件测试中的面向对象和接口测试

软件测试中的面向对象和接口测试在软件测试中,面向对象和接口测试是两个非常重要的测试方法。

本文将详细介绍这两个测试方法的概念、原理和实践技巧,以及它们在软件测试中的应用。

一、面向对象测试面向对象测试是一种基于对象的软件测试方法。

它的主要目标是测试对象的行为和状态是否满足预期。

在面向对象测试中,我们需要关注对象的属性、方法和关系,以及它们之间的交互和依赖关系。

1. 面向对象测试的基本原理面向对象测试的基本原理包括封装性、继承性和多态性。

封装性要求测试人员只关注对象的外部行为,而不需要了解对象的内部实现细节;继承性要求测试人员测试子类对象时,同时也测试了父类对象的行为;多态性要求测试人员测试对象的各种可能的行为。

2. 面向对象测试的实践技巧在面向对象测试中,我们可以运用以下实践技巧来有效地进行测试:- 边界条件测试:测试对象属性和方法的边界情况,以确保它们在边界条件下的正确性。

- 继承关系测试:测试对象的继承关系是否正确,包括子类是否正确继承父类的行为和属性。

- 交互测试:测试对象之间的交互是否符合预期,包括消息传递、方法调用等。

- 异常处理测试:测试对象在异常情况下的行为和状态是否正确,以确保异常情况下的可靠性和稳定性。

二、接口测试接口测试是一种测试软件组件之间接口的方法。

它的主要目标是测试接口的正确性、稳定性和可靠性。

在接口测试中,我们需要关注接口的输入、输出和接口之间的协议和规范。

1. 接口测试的基本原理接口测试的基本原理包括输入输出测试、协议测试和兼容性测试。

输入输出测试要求测试人员测试接口的输入和输出是否符合预期;协议测试要求测试人员检查接口之间的通信协议和规范是否正确;兼容性测试要求测试人员测试接口在不同环境和配置下的兼容性。

2. 接口测试的实践技巧在接口测试中,我们可以运用以下实践技巧来有效地进行测试:- 输入输出测试:测试接口的输入是否正确,并检查输出是否符合预期。

- 通信协议测试:测试接口之间的通信协议和规范是否符合标准要求。

面向对象的软件测试综述

面向对象的软件测试综述

JMeter
开源组织 压力测试、性能测试 开源免费
TestDirector Mercury公司
测试管理
收费昂贵
Bugzilla
开源组织
缺陷跟踪管理
开源免费
面向对象的特点对软件测试的影响
信息隐蔽和封装对测试的影响 类的重要作用之一是信息隐蔽。它对类中所封装的信 息的存取进行控制,从而避免类中有关实现细节的信 息被错误地使用。该隐蔽机制给测试带来了困难。
继承对测试的影响 若一个类得到了充分的测试,当其被子类继承后,
继承的方法在子类的环境中的行为特征需要重新测试 。 多态性对测试的影响 传统软件测试中经常使用静态分析技术对代码进行分 析;面向对象软件中,由于动态绑定和多态性的存在 所带来的不确定性,给测试覆盖率的满足增大了难度 。
JMeter
JMeter是Apache组织开发的基于Java的压力 测试工具。 Meter 可以用于对服务器、网络或对 象模拟巨大的负载,来在不同压力类别下测试它 们的强度和分析整体性能。另外,JMeter能够对 应用程序做功能/回归测试,通过创建带有断言的 脚本来验证你的程序返回了你期望的结果。
面向对象的软件测 试的综述
软件测试的方法
黑盒测试
黑盒测试又称为功能测试,是一种面向设计的测试 。这种测试在完全不考虑测试对象内部结构的情况下 ,把被测程序当作一个黑盒,根据程序的功能和外部 特性得到测试数据。进行黑盒测试所必须具备的文档 有产品描述、用户文档及安装指令。黑盒测试方法主 要用于软件确认测试。
面向对象的测试与传统测试的比较
测试单元的不同 传统软件的基本构成单元为功能模块,每个功能
模块一般能独立地完成一个特定的功能。而在面向 对象的软件中,基本单元是封装了数据和方法的类 和对象。 系统构成不同 传统的软件系统是由一个个功能模块通过过程调用关 系组合而成的。而在面向对象的系统中,系统的功 能体现在对象间的协作上,相同的功能可能驻留在 不同的对象中,操作序列是由对象间的消息传递决 定的。

面向对象的软件测试方法及实践

面向对象的软件测试方法及实践

面向对象的软件测试方法及实践面向对象编程是一种重要的编程方法。

在面向对象的软件开发中,测试也是一个至关重要的环节,它可以有效地发现程序的缺陷,并确保程序的正确性和稳定性。

然而,面向对象的软件测试方法与传统的测试方法有着很大的不同。

本文将就面向对象的软件测试方法及实践的相关问题进行探讨。

一、面向对象的软件测试方法在面向对象的软件测试中,测试重点是对象的行为。

这与传统的测试方法不同,传统的测试方法重点是函数和子程序。

因此,在面向对象的软件测试中,测试的粒度更加细致,测试的内容更加全面。

面向对象的软件测试方法通常包括以下几个方面:1. 单元测试单元测试是指对系统中最小的可测试单元进行测试。

在面向对象的软件测试中,单元测试是对对象的方法进行测试。

单元测试是测试的第一步,它可以有效地发现程序的错误,还可以帮助开发人员快速地发现错误并修正它们。

单元测试通常由开发人员进行,他们会编写测试用例并运行单元测试,以确保代码的正确性。

2. 集成测试集成测试是指在完成单元测试后,将各个部分集成起来测试整个系统。

在面向对象的软件测试中,集成测试是测试对象之间的交互行为。

集成测试可以发现不同对象之间的复杂关系,以及在集成过程中可能存在的问题。

集成测试通常由测试人员进行,他们会编写和运行测试用例,以确保整个系统的正确性。

3. 系统测试系统测试是指在完成集成测试后,对整个系统进行测试。

在面向对象的软件测试中,系统测试是对系统的交互行为进行测试。

系统测试可以确保整个系统的正确性、稳定性和性能。

系统测试通常由测试人员进行,他们会编写和运行测试用例,以确保整个系统的正确性。

4. 用户验收测试用户验收测试是指在完成系统测试后,由最终用户对系统进行测试。

在面向对象的软件测试中,用户验收测试是测试系统是否满足用户的需求。

用户验收测试可以发现系统与用户的交互是否流畅,并帮助开发人员修正不足。

用户验收测试由最终用户进行。

二、面向对象的软件测试实践1. 编写测试用例编写测试用例是面向对象的软件测试实践的第一步。

面向对象设计与软件测试方法

面向对象设计与软件测试方法

面向对象设计与软件测试方法面向对象设计是一种软件开发方法,旨在提高程序的可复用性、可维护性和可拓展性。

在面向对象设计中,软件系统被抽象为对象和对象之间的关系,通过对这些对象的属性和方法进行封装和继承来实现系统的功能。

与传统的结构化设计相比,面向对象设计更加灵活和易于维护,能够更好地应对软件系统需求的变化。

面向对象设计的核心概念包括封装、继承和多态。

封装是将对象的内部实现细节隐藏起来,只提供有限的接口给外部使用,这样可以保护对象的内部状态不被外部直接访问和修改,从而保证系统的安全性和稳定性。

继承是一种机制,允许一个对象从另一个对象上继承属性和方法,这样可以实现代码的复用,减少重复开发的工作量。

多态则是指同一个方法在不同的对象上有不同的行为,这样可以提高代码的灵活性和扩展性。

在面向对象设计中,类是一个重要的概念。

类是对象的模板,描述了对象的属性和方法。

通过定义类,可以创建多个对象实例来执行相同的操作,这样可以提高代码的复用性和可维护性。

类之间的关系可以通过继承、组合、关联等方式来建立,这样可以帮助开发人员更好地理解系统结构和功能逻辑,从而更好地实现系统需求。

软件测试是保证软件质量的重要手段。

在面向对象设计的软件开发过程中,测试也是不可或缺的一部分。

软件测试主要分为单元测试、集成测试、系统测试和验收测试等不同阶段。

单元测试是针对软件中的最小单元,即方法或函数进行测试,主要用于验证方法的正确性和稳定性。

集成测试是将各个模块进行组合,并测试模块之间的交互操作是否符合设计要求。

系统测试则是对整个软件系统进行测试,验证系统的功能和性能是否符合需求规格。

验收测试则是由用户或客户对系统进行测试,验证系统是否符合用户期望的要求。

在软件测试过程中,常用的测试方法包括黑盒测试和白盒测试。

黑盒测试是一种功能测试方法,测试人员只关注软件的输入和输出,而不关注软件的内部结构。

该测试方法主要用于验证软件的功能是否符合需求。

白盒测试则是一种结构测试方法,测试人员关注软件的内部结构和代码逻辑,通过查看代码的覆盖率和执行路径来验证软件的正确性和稳定性。

面向对象的软件测试技术(转)

面向对象的软件测试技术(转)

面向对象的软件测试技术(转)面向对象的软件测试技术相关知识点-面象对象(=objectoriented)技术1.对象和类l面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息l类就是一种代莱数据类型,就是设计的核心,就是通过抽象数据类型的方法去同时实现的一种数据类型l类是对某一对象的抽象,对象是某一类的实例,两者密切相关2.PCB、承继和多态性(1)封装:把数据和操作结合一体,使程序结构更加紧凑,避免了数据紊乱带来的调试与维护的困难(2)承继:可以从一个类衍生至另一个类,派生类承继了父类和祖先类的数据成员和函数,减少了软件的可扩充性,并为代码器重提供更多了强有力的手段(3)多态性:多种表现形式,可以用‘一个对外接口,多个内在实现方法’表示。

一.面向对象测试模型1.面向对象测试的分类依据面向对象研发模型(面向对象分析、面向对象设计、面向对向编程),分成:(1)面向对象分析的测试(ooatest)、面向对象设计的测试(oodtest):是对分析结果和设计结果的测试,主要对分析设计产生的文本进行的,是软件开发前期的关键性测试(2)面向对象编程的测试(ooptest):对编程风格和程序代码同时实现展开测试,主要的测试内容在oounittest和oointegratetest中彰显(3)面向对象单元测试(oounittest):对程序内部具体单一的功能模块的测试,主要对类成员函数的测试,是oointegratetest的基础(4)面向对象内置测试(oointergratetest):对系统内部的相互服务展开测试,例如成员函数间的相互作用,类间的消息传递。

不仅必须基于oounittest,还要参照ood、oodtest的结果(5)面向对象确认测试(oosystemtest)、面向对象系统测试(oosystemtest):最后阶段的测试,以用户需求为测试标准,借鉴ooa、ooatest的结果二.面向对象软件的测试策略1.面向对象分析的测试(1)面向对象分析是把e-r图和语义网络模型,即信息造型中的概念,与面向对象程序设计语方中的重要概念结合在一起而形成的分析方法。

面向对象的软件测试技术综述

面向对象的软件测试技术综述

面向对象的软件测试技术综述随着软件应用范围的不断扩大,软件测试的技术手段也不断进步。

面向对象的软件开发思想逐渐被广泛采用,因此,面向对象的软件测试技术也应运而生。

本文将综述面向对象的软件测试技术。

一、面向对象软件测试的概念面向对象的软件测试是针对采用面向对象开发思想的软件进行的测试。

与传统的结构化软件测试相比,面向对象软件测试更加注重对软件内部各个部分之间的关系的测试,并且更加关注软件的继承、重载、多态等特性的测试。

二、面向对象软件测试的方法1. 黑盒测试方法对于面向对象的软件测试中的黑盒测试方法,测试人员仅考虑输入与输出,而不关心系统内部的具体实现。

黑盒测试方法可以通过参照生成测试用例的过程,来完成对程序的测试覆盖。

2. 白盒测试方法白盒测试方法则针对系统内部的具体实现进行测试。

它主要通过静态和动态两种方式进行测试,其中静态分析主要是通过代码分析或模型检查等方式,而动态分析则通过运行测试用例,观察程序执行流程和变量变化等方式进行测试。

3. 增量式测试方法对于大型的面向对象软件开发,其测试过程可能需要相当长的时间,增量式测试方法就可以有效缩短测试时间。

增量式测试方法是指将整个系统分成几个部分,然后逐渐增加到完整的系统环境。

这不仅能够逐步发现bug,还能够及时修复,并能逐步提高测试用例的质量。

三、面向对象软件测试的技术手段1. 测试驱动开发(TDD)测试驱动开发是一种基于测试驱动的软件开发方法,它强调在实现代码之前,先编写测试程序,以确保所编写的代码能够满足测试需要。

TDD可以提高测试的自动化程度,逐步提高测试用例的品质,并减少未发现的bug出现次数。

2. 自动化测试自动化测试是一种通过编写脚本和使用自动化测试工具来执行测试用例和比较结果的测试方法。

自动化测试可以将部分测试自动化,减轻测试压力,消除人为测试误差,并且提高测试的效率和准确度。

3. 模拟测试人工模拟测试是一种指人员通过编制人工操作流程,在应用程序的界面进行手动测试的方法,而计算机模拟测试是一种通过编写程序模拟系统功能和用户操作的测试方法,在这种测试方法中,测试人员可以对系统进行多次重复测试,大大提高了测试的效率。

面向对象测试技术

面向对象测试技术
2010-7-2 Institute of Computer Software Nanjing University 13
摘要
软件测试 面向对象软件测试 测试驱动的开发
2010-7-2
Institute of Computer Software Nanjing University
14
OO技术 技术
系统测试需要对被测的软件结合需求分析做仔 细的测试分析,建立测试用例
2010-7-2
Institute of Computer Software Nanjing University
27
OO System Test
具体测试内容
功能测试:最常用和必须的测试 强度测试:测试系统的能力最高实际限度 性能测试:测试软件的运行性能 安全测试:测试是否确实能对系统进行保护,是否 有安全保密漏洞 恢复测试:采用人工的干扰使软件出错,中断使用, 检测系统的恢复能力,特别是通信系统 可用性测试:测试用户是否能够满意使用
2010-7-2
Institute of Computer Software Nanjing University
22
OOD Test
对类库支持的测试:强调的重点是再次软件开 发的重用
一组子类中关于某种含义相同或基本相同的操作, 是否有相同的接口(包括名字和参数表) 类中方法的功能是否较单纯,相应的代码行是否较 少 类的层次结构是否是深度大,宽度小
OOA:把E-R图和语义网络模型,即信息造型 中的概念,与OOP中的重要概念结合在一起 而形成的设计方法.
问题空间的图表的形式描述 OOA直接映射问题空间,全面的将问题空间中实现 功能的现实抽象化.将问题空间中的实例抽象为对 象,用对象的结构反映问题空间的复杂实例和复杂 关系,用属性和操作表示实例的特性和行为.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象的软件测试作者:王容来源:《电脑知识与技术》2013年第05期摘要:软件的测试时软件开发的重要部分,是保证软件质量提高软件性能的关键。

面向对象的软件测试具有它自己的特点,需要与传统的软件测试相区别,因此面向对象的软件测试则被分成不同的阶段,本文将面向对象软件测试层次划分为六个个层次,主要介绍了面向对象软件测试的以下三个层次:类测试、集成测试和系统测试。

关键词:面向对象;单元测试;集成测试;系统测试中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)05-1200-02面向对象的方法在现在的软件开发的运用中是越来越广泛,但是相应的测试方法并没有做出相应的改变,仍然有很多使用的还是传统软件使用的测试方法,出现这样的结果不是单方面的原因,既有在采用面向对象方法开发软件的时候在设计和分析阶段保留的文档不够全面或者并没有按照面向对象的方法进行保存,造成了在设计测试的时候不能够找到原始文档。

还有可能就是现在并没有有效的方法是针对面向对象方法的。

这样就会使得工作变得更加的复杂,就会增加工作量。

但是测试的结果也可能并不理想,使得最后得到的软件并不能够达到用户的期望。

因此,如何使用面向对象的方法来测试软件是非常必要的。

1 面向对象测试与传统测试技术的异同首先,这两种技术的测试过程是相同的。

都要对整个测试进行计划,设计出测试用例,运行测试用例,根据结果进行测试分析,最后是用户验收。

其次,这两种技术的测试目标也是相同的。

测试的目的都是为了使得设计出来的软件能够达到期望的功能。

再次,测试也是为了用尽可能少的工作量测试出软件尽可能多的错误,虽然在这三个方面这两种技术都是相同的,但是在测试计划和设计测试用例的时候是有很大的区别的,这主要是归结于面向对象软件和传统的软件的设计思路不同。

传统的软件是由各个功能模块组成的,那么在测试计划和设计测试用例的时候就要注意的就是这些功能模块之间的关系。

他们之间的关系,它们之间是调用的关系。

而面向对象的软件,它更加注重的是对象之间的相互交流。

它们是通过对象来传递它们之间的消息。

这也是在测试计划和设计测试用例的时候需要考虑的,怎样的测试用例才能够更好使得软件的功能的优缺点体现出来。

2 面向对象测试的意义与现状类是面向对象软件中最重要的概念,也是面向对象程序的最基本的组成要素。

传统的软件是面向过程的,软件的推进必须是一个过程完结的输出作为下一个过程的输入,必须这样按部就班的进行下去。

计算机的功能就是模拟人的行为的。

这样的一种软件的方法是不能达到前面讲的效果的。

人是一种群体动物,必须是在一个团体下才能够使得事情向更好的方向发展。

也就是在团体的作用之下才能使资源更优,而面向对象方法的出现就是应了这样的需求。

类就是实现这种需求的最好方法,它既可以是对象又可以是事件,通过类之间的相互作用也达到了这种消息之间的传递。

这是因为这种软件方法的改变也就造就了软件测试的改变,传统的软件测试方法完全不能达到用小的工作量来测试软件的错误。

针对软件方法面向对象的软件测试也就应运而生了。

而面向对象测试是势在必然的。

3 面向对象测试3.1面向对象的测试模型大家比较熟悉的软件开发模型就是瀑布模型,它包括了需求分析,设计,实现和测试。

面向对象的开发模型变为了面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)3个阶段。

面向对象分析阶段需要做的就是将整个问题总结出来,转换成计算机能够识别的语言,那么在这个阶段就需要选择使用什么样的编程语言。

在面向对象设计阶段则需要的是选择什么样的类结构,也就是需要些什么类,这些类能够完成些什么工作。

最后的面向对象编程阶段,用选定的编程语言来实现设计出来的类结构。

这种方法有个很大的优点就是在用户需求发生变化的时候,能够不改变原有程序。

测试模型如图1所示:从上面的图中可以看出,对面向对象开发模型的各个阶段都进行了测试的,对面向对象分析的测试和面向对象设计的测试是非常必要的。

如果把软件的前期工作做好了,那么后续的工作进行的才有意义,进行完了面向对象编程测试以后,还有三个非常重要的测试,就是面向对象单元测试,面向对象集成测试和面向对象系统测试。

其中面向对象单元测试和面向对象集成测试是两个工作量比较大的地方。

而最后的面向对象系统测试就是要参考前面两个阶段测试结果了,主要是以用户的需求为主的。

六个阶段的测试是相辅相成的,但是在每个阶段又有不同,它们采用的方法也会不尽相同。

下面就分别介绍单元测试,集成测试和系统测试。

3.2 面向对象的单元测试3.2.1 基础类测试什么是基础类,就是我们在面向对象设计时,设计的类,这些类可能是些对象,也可能是些事件,这里并不包括那些需要继承的类,就是一些独立的类,没有任何的消息传递。

软件的测试就是要构造测试用例,构造的这些测试用例必须满足两个条件:前置条件和后置条件。

所谓前置条件就是发生这些测试用例要满足什么样的条件,后置条件就是使用了这些测试用例会产生什么样的后果。

测试用例既要满足前置条件又要满足后置条件。

在设计测试用例的时候需要根据状态转换图,因为状态转换图中的节点代表的是状态,而节点与节点之间的连线则表示的是一个动作,而测试用例就是需要了解如何促使这些动作发生。

满足这些动作的发生应该是在一定的范围进行的,那么对于临界值的设计是至关重要的,在选择测试用例的时候临界值是非常好的一个标志。

设计好了测试用例需要的是怎样来使它运行,那么就还需要一个测试用例驱动程序。

测试用例驱动程序主要的工作就是运行测试用例和得到运行结果。

目前用的最多的测试驱动程序是Tester类。

Tester类是抽象的概念,使用这个类的最大好处就是能够为所有的测试人员提供默认的实现。

测试人员可能会有如下的操作:运行其他所有类的测试驱动程序的公共函数,记录下这些测试用例的结果,必须运行所有要测试的类的测试用例,检查所有类的所有常量。

具体的Tester类主要负责实现测试用例的方法,并将它们作为测试系列不可缺少的一部分来运行。

3.2.2 交互对象测试面向对象的程序顾名思义就是由很多的对象构成的,这些对象相互作用来解决某类问题的。

程序中的这些对象有条不紊的相互工作这是这个程序成功的关键。

完成了上面提到的单元类的测试,那么交互对象测试则是为了这些单元类之间的消息传递能够正常的进行。

交互测试有两种方法:一种是把设计的测试用例嵌入到程序的交互对象中去,另一种方法则是用上面提到的Tester类提供的测试环境,在这个环境下使得对象之间相互作用。

这种测试的前提条件就是发送对象能不能够满足接受对象的要求。

单位类测试的时候采用了临界值的方法,这里是一些动作的发发生,临界值的方法不并不适用。

如果采用穷举的方法,那么工作量将会变得很大,也有可能出现无穷的情况,交互对象的测试采用的是正交阵列的方法,这种方法就是从影响交互对象的所有因素中选出那些对所有交互对象都有影响的子集中来确定测试用例。

如何选出这个子集是正交阵列提供的一种特殊方法,该方法首先要设计出交互对象配对的方法,选择的组合方式必须要限制组合数量的急剧递增。

正交阵列就如下表1所示是一个数值矩阵。

表中的每一行都是一个变量,这个变量在测试的软件中就是表示的那些具有相同特性的类群。

变量则会有一定的取值,每一个取值则代表了某一个特定的类。

把每个变量的所有取值都列举出来就成为了一个矩阵,也列举出了所有可能的情况。

3.2.3 层次结构类测试面向对象程序有一个很重要的特征就是继承,继承的好处可以减少工作量,不会使得工作变得冗余,大大的提高程序的性能,这是因为这些特点也使得继承具有一定的缺点,那就是错误的传播率提高。

继承是面向对象软件新出的概念,那么在测试的时候对这一部分怎样设计测试用例是新的问题。

如果对某个类的父类已经做了完整的测试,那么对它的子类如何进行测试呢,为了达到测试的目标就是用尽可能少的工作量来完成测试,那么就需要复制对父类的某些测试部分,又因为子类不仅仅继承了父类还有自己一些新的动作或者规范,因此除去复制的部分再添加一些对新的动作或规范起作用的测试部分即可。

这样就会大大的提供工作效率。

3.3 面向对象的集成测试面向对象的集成测试即涉及到面向对象的结构集成又涉及到面向对象的功能集成。

要实现结构和功能的集成则会有类之间的关联、聚合、多态、继承。

那么在测试的时候可以分成以下几种情况:1)关联和聚合关系的测试:将所有具有关联和聚合关系的类放到一起,这里不需要涉及新的测试用例,只需要找到这些类中哪个类是最开始发出动作的,最先发出动作类的测试用例作为这种关系的测试用例,应用驱动程序来运行这个测试用例,观察类之间的消息传递情况。

2)继承关系的测试:在前面的层次结构类中提到了继承关系的测试,参照前面的方法即可。

3)多态/动态绑定的测试:面向对象中的多态增加了程序的运行路径的多样性,那么在设计测试用例的时候就要考虑到这个因素,由于运行的轨迹不同那么测试用例的设计可能就会出现变化。

那么测试用例的数量就会发生变化,应该包括所有的执行路径。

3.4 面向对象的系统测试面向对象的系统测试和传统的系统测试是一样的,都是为了验证设计出来的软件有没有达到用户的需求,在满足了用户需求的前提下再考虑软件的性能是不是满足了最开始面向对象分析时提出的要求。

系统测试的时候可以采用传统的系统测试的方法,但是在设计测试用例的时候还是会有不同的,测试用例的设计还是需要考虑从对象入手。

4 总结通过对面向对象测试过程方法的分析,根据本文中的图1就可以了解到测试并不是和开发过程分开的,它们之间是密不可分的。

在整个开发过程要随时都做到随时测试,这样做的好处就是能够尽早的发现问题,这样就会及时作出修改。

该文中提到了很多解决不同阶段的测试方法,但是这些都是在理论层次的探讨,在实施的过程中仍然会遇到这样或那样的问题,因此后面的研究就着重在如何使理论和实际达到高度的统一。

参考文献:[1] 武海丽.面向对象的软件测试[J].中国高新技术企业,2008(12).[2] 李伟龙.面向对象的软件测试[J].科技资讯,2008(26).[3]刘维光.面向对象软件测试的方法研究[J].电脑知识与技术,2006(29).[4] 刘颖,姜永涛.面向对象软件测试技术与方法的管理[J].信息技术,2005(6).。

相关文档
最新文档