第07章面向对象的软件测试技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

漳州职业技术学院计算机工程系以考带学,始于证书,止于无限计算机工程系软件技术013806906866zjq6866@qq.com第1页第7章面向对象的软件测试技术1、面向对象的软件测试分为面向对象分析(OOA)的测试、面向对象设计(OOD)的测试、面向对象编程(OOP)的测试、面向对象单元测试、面向对象集成测试、面向对象确认和系统测试。OOATest:对分析结果进行测试OODTest:对设计结果进行测试OOPTest:针对编程风格和程序代码实现进行测试面向对象单元测试:对程序内部具体单一的功能模块的测试,主是对类成员函数的测试。面向对象集成测试:主要对系统内部的相互服务进行测试,如成员函数间相互作用,类间的消息传递等。面向对象确认、系统测试:是基于面向对象集成测试的最后阶段的测试,主要以用户需求为测试目标2、面向对象分析(OOA)的测试对OOA阶段的测试划分为五个方面1)、对认定的对象的测试2)、对认定的结构的测试3)、对认定的主题的测试4)、对定义的属性和实例关联的测试5)、对定义的服务和消息关联的测试3、面向对象设计(OOD)的测试对OOD阶段测试划分为三个方面1)、对认定的类的测试2)、对构造的类层次结构的测试3)、对类库的支持的测试4、面向对象编程(OOP)的测试对OOP阶段测试划分为二个方面1)、数据成员是否满足数据封装的要求2)、类是否实现了要求的功能5、面向对象的软件单元测试一些传统的单元测试方法在面向对象的软件单元测试也可以使用。6、面向对象的软件集成测试1)、面向对象的软件集成测试通常需要在整个程序编译完成后进行2)、两种测试策略第一种基于线程序的测试集成对回应系统的一个输入或事件所需的一组类,每个线程集成并分别测试,应用回归测试以保证没有产生副作用。第二种基于使用的测试通过测试那些几乎不使用服务器类的类(称为独立类)而开始构造系统,在独立类测试完成后,下一层中使用独立类的类(称为依赖类)被测试。3)、可以先进行静态测试,再进行动态测试。7、面向对象的软件确认、系统测试传统的黑盒测试方法可被用于驱动有效性测试。8、面向对象的软件测试策略漳州职业技术学院计算机工程系以考带学,始于证书,止于无限计算机工程系软件技术013806906866zjq6866@qq.com第2页1)、基于故障的测试具有较高的发现可能故障的能力2)、基于场景的测试两种错,一是不正确的规格说明;二是没有考虑子系统间的交互作用3)、OO类的随机测试如果一个类有多个操作(功能),这些操作(功能)序列有多种排列。而这种不变化的操作序列可随机产生,用这种可随机排列的序列来检查不同类实例的生存史,就叫随机测试。4)、类层次的分割测试基于状态的分割、基于属生的分割、基于型的分割5)、由行为模型(状态、活劝、顺序和合作图)导出的测试有关面向对象的考题:一、简答题1、简述面向对象软件测试和传统软件测试的不同。答:面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同于传统软件测试的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因为:①测试的对象不同:传统软件测试的对象是面向过程的软件,一般用结构化方法构建;面向对象测试的对象是面向对象软件,采用面向对象的概念和原则,用面向对象的方法构建。②测试的基本单位不同:前者是模块;面向对象测试的基本单元是类和对象。③测试的方法和策略不同:传统软件测试采用白盒测试,黑盒测试,路径覆盖等方法;面向对象测试不仅吸纳了传统测试方法,也采用各种类测试等方法,而且集成测试和系统测试的方法和策略也很不相同。2、简述面向对象软件测试的策略。答:(1)分片测试:分片测试测试某种规约片,测试所有状态、所有事件或者所有动作的规约的测试方法。这种测试策略因为其控制行为的状态机的结构不直接相关,所以只能偶然地发现行为的错误,但是测试代价比较少。(2)所有转换测试:所有转换测试就是在一个面向对象的系统的交互过程中,对状态、事件,以及状态转换约束条件,三者构成的一个笛卡儿集合状态,事件,约束中的每个元素都进行测试,即测试所有的转换。在测试过程中,没有执行顺序的要求。(3)所有往返路径测试往返路径指的是程序从某一个状态开始,经过一系列的转换回到开始的状态,所有的转换的序列构成了一个往返路径。最短的往返路径只需要经过一个转换回到原来的状态,即该状态是闭包的。往返路径的长度决定于状态机的结构。对所有往返路径的测试,将测试每个状态的所有往返路径,于是就得到一个往返路径覆盖。(4)状态标识测试:在一个不透明的系统中,无法直接观察到程序的状态。虽然可以检测事件和动作的错误,但当一个错误的状态产生时往往很难检测出来,因为从控制的角度来看,当错误的状态多于系统正确的状态时,一个错误的状态很容易隐藏起来。状态标识就是用来确定被测软件的当前状态的。一个状态标记是由输出动作的序列组成。通过对被测软件的状态进行规约,可以选择能够产生标记的事件序列来标识一个状态。判断系统是否处于一个正确的状态,就可漳州职业技术学院计算机工程系以考带学,始于证书,止于无限计算机工程系软件技术013806906866zjq6866@qq.com第3页以通过事件序列来判断,看这一过程中是否产生了期望的标记。(5)N+测试:测试基于展平的状态(正则表达式)设计模型,每个状态有一个转换。N+的测试把被测软件从初态带到一个叶子状态,达到路径覆盖。N+测试会发现更多的错误状态和不正确转换。3、简述面向对象的集成测试中由继承导出数据流的方法。答:考虑定义了数据项值的继承树,在这种树中,考虑定义了值的数据地点开始,到树“尾”结束的链。这种链将是一种替代数据地点序列,并退化方法执行路径,方法执行路径在链中实现面向对象语言的继承机制。这时描述继承的EMDPN仅由数据地点和方法执行路径组成。4、简述面向对象软件的系统测试中基于UML的测试方法。答:将表示设计的协作图作为测试模型,并从中提取相关信息生成用于测试所描述的行为的集成测试用例。首先通过遍历每条消息的直接后继识别协作图中的表示用例实现的所有可能的场景路径,然后在遍历每条场景路径的过程中获取相应协作执行的路径条件、参数变量和预期方法调用序列,最后使用范畴-划分方法确定场景路径上的输入、输出、环境条件的合理组合作为覆盖该场景路径的测试用例,用于测试一个协作场景路径上的交互行为。另外,通过有限状态机导出测试用例。还可以通过基于状态的事件表也可导出测试用例。二、选择题(2006年)●___(18)___是面向对象程序设计语言不同于其它语言的主要特点,是否建立了丰富的___(19)___是衡量一个面向对象程序设计语言成熟与否的重要标志之一。(18)A.继承性B.消息传递C.多态性D.静态联编(19)A.函数库B.类库C.类型库D.方法库●在面向对象软件开发过程中,采用设计模式___(34)___。(34)A.允许在非面向对象程序设计语言中使用面向对象的概念B.以复用成功的设计和体系结构C.以减少设计过程创建的类的个数D.以保证程序的运行速度达到最优值(2007)●在面向对象的语言中,(7)。(7)A.类的实例化是指对类的实例分配存储空间B、每个类都必须创建一个实例C、每个类只能创建一个实例D、类的实例化是指对类进行初始化●在统一建模语言(UML)中,描述系统与外部系统及用户之间交互的图是(8)。(8)A.类B.用例C.对象D.协作●面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,(25)不属于面向对象分析阶段。(25)A.构建分析模型B.识别分析类C.确定接口规格D.评估分析模●面向对象分析需要找出软件需求中客观存在的所有实体对象(概念),然后归纳、抽象出实体类。(26)是寻找实体对象的有效方法之一。(26)A.会议调查B.问卷调查C.电话调查D.名词分析漳州职业技术学院计算机工程系以考带学,始于证书,止于无限计算机工程系软件技术013806906866zjq6866@qq.com第4页●在进行面向对象设计时,采用设计模式能够(29)。(29)A.复用相似问题的相同解决方案B.改善代码的平台可移植性C.改善代码的可理解性D.增强软件的易安装性●(12)是指把数据以及操作数据的相关方法组合在同一个单元中,使我们可以把类作为软件中的基本复用单元,提高其内聚度,降低其耦合度。面向对象中的(13)机制是对现实世界中遗传现象的模拟,通过该机制,基类的属性和方法被遗传给派生类。(12)A.封装B.多态C.继承D.变异(13)A.封装B.多态C.继承D.变异●(14)以静态或动态的连接方式,为应用程序提供一组可使用的类。(15)除了提供可被应用程序调用的类以外,还基本实现了一个可执行的架构。(14)A.函数库B.类库C.框架D.类属(15)A.函数库B.类库C.框架D.类属●(16)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。A.结构化开发方法B.Jackson系统开发方法C.Booch方法D.UML(统一建模语言)●采用UML进行软件设计时,可用(17)关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部分关系。A.依赖B.聚集C.泛化D.实现●风险分析在软件项目开发中具有重要作用,包括风险识别、风险预测、风险评估和风险控制等。“建立风险条目检查表”是(18)时的活动,“描述风险的结果”是(19)时的活动。(18)A.风险识别B.风险预测C.风险评估D.风险控制(19)A.风险识别B.风险预测C.风险评估D.风险控制(2009)●软件风险一般包含(14)两个特性。(14)A.救火和危机管理B.已知风险和未知风险C.不确定性和损失D.员工和预算●在采用面向对象技术构建软件系统时,很多敏捷方法都建议的一种重要的设计活动是(15),它是一种重新组织的技术,可以简化构件的设计而无需改变其功能或行为。(15)A.精化B.设计类C.重构D.抽象●一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用(16)来表述“谁做”。(16)A.角色B.活动C.制品D.工作流●瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是(17)。(17)A.瀑布模型能够非常快速地开发大规模软件项目漳州职业技术学院计算机工程系以考带学,始于证书,止于无限计算机工程系软件技术013806906866zjq6866@qq.com第5页B.只有很大的开发团队才使用瀑布模型C.瀑布模型已不再适合于现今的软件开发环境D.瀑布模型适用于软件需求确定,开发过程能够采用线性方式完成的项目●软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为5级。目前,达到CMM第3级(已定义级)是许多组织努力的目标,该级的核心是(29)。(29)A.建立基本的项目管理和实践来跟踪项目费用、进度和功能特性B.使用标准开发过程(或方法论)构建(或集成)系统C.管理层寻求更主动地应对系统的开发问题D.连续地监督和改进标准化的系统开发过程●RUP在每个阶段都有主要目标,并在结束时产生一些制品。在(30)结束时产生“在适当的平台上集成的软件产品”。(30)A.初期阶段B.精化阶段C.构建阶段D.移交阶段●关于软件测试,(31)的叙述是正确的。①测试开始越早,越有利于发现软件缺陷②采用正确的测试用例设计方法,软件测试可以做到穷举测试③测试覆盖度和测试用例数量成正比④软件测试的时间越长越好(31)A.④B.①C.②、③D.①、③(2005)●在UML提供的图中,_____(36)____用于描述系统与外部系统及用户之间的交互;_____(37)____用于按时间顺序描述对象间的交互。(36)A.用例图B.类图C.对象图D.部署图(37)A.网络图B.状态图C.协作图D.序列图(2006)●在网络应用测试中,网络延迟是一个重要指标。以下关于网络延迟的理解,正确的是___(64)___(64)A.指响应时间B.指报文从客户端发出到客户端接收到服务器响应的间隔时间C.指报文在网络上的传

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功