第六章面向对象测试
- 格式:ppt
- 大小:814.00 KB
- 文档页数:35
绪论单元测试1【判断题】(20分)UML是面向对象的软件建模语言,可应用到软件开发全过程。
A.对B.错2【判断题】(20分)面向对象是当今主流的软件开发思想。
()A.对B.错3【多选题】(20分)下列哪些工具可以用来进行UML建模?()A.MicrosoftOfficeVisioB.EnterpriseArchitect(EA)C.RationalRoseD.StarUML4【多选题】(20分)我们要从本课程中学到哪些知识?()A.面向对象的基础知识B.UML软件建模C.面向对象的设计原则D.面向对象编程语言5【多选题】(3分)平时分析问题,总要获取哪些方面的信息?()A.事物之间的关系是什么?B.事物的特征和行为是什么?C.问题中涉及哪些事物?D.事物之间如何协作完成任务?第一章测试1【多选题】(20分)以下对软件建模描述正确的是()A.每个模型可以有多种表达方式,从不同角度来刻画系统。
B.描述同一个系统的多个模型只能相对孤立,不能完全孤立,完全孤立的模型是不完整的C.要正确建模,模型必须准确反映软件系统的真实情况。
D.越庞大复杂的系统,建模的重要性越大。
E.模型是对现实世界的简化,但不能掩盖重要的细节。
2【单选题】(20分)模型的实质是什么?()A.对现实的复杂化B.对现实的简化C.便于交流D.可视化3【单选题】(20分)对软件模型而言,下面说法的是()A.是软件的标准文档B.是软件的中间形态C.是人员交流的媒介D.是软件升级和维护的依据4【单选题】(20分)以下关于模型的说法的是()A.一个好的模型包括那些有广泛影响的主要元素,而忽略那些与给定的抽象水平不相关的次要元素。
B.模型必须是可视化的。
C.通过建模可以帮助人们理解复杂的问题。
D.模型是对现实的简化。
5【单选题】(20分)以下哪一个选项不能当做模型?()A.交通地图B.地球仪C.电路设计图D.灭火器第二章测试1【单选题】(20分)在下面所述中,关于UML的说法不正确的是()A.UML不是过程也不是方法,但允许每一种过程和方法使用它。
面向对象的软件测试一、引言随着软件领域的迅猛发展,面向对象编程成为主流的开发范式。
在面向对象的软件开发过程中,软件测试是不可或缺的一环。
本文将重点讨论面向对象的软件测试方法和技术。
二、面向对象的软件测试概述面向对象的软件测试是基于面向对象编程范式的软件测试过程。
它的核心思想是将软件抽象为对象,通过对对象的测试来确保软件的质量和可靠性。
与传统的结构化软件测试相比,面向对象的软件测试更加灵活、可复用,并能够更好地应对软件变更和维护的需求。
三、面向对象的软件测试原则1. 固化测试用例:面向对象的软件测试需要建立一组完整的测试用例,覆盖各个对象的各种状态和行为。
这样可以确保对对象的测试的全面性和准确性。
2. 封装测试逻辑:对于面向对象的软件,应该封装测试逻辑,将测试代码与被测试的对象分离开来,从而提高代码的可维护性和可测试性。
3. 高内聚低耦合:在进行面向对象的软件测试时,应该尽量保持对象之间的高内聚性和低耦合性。
这样可以使得测试更加独立,减少测试之间的相互影响。
4. 多态性测试:面向对象的软件中,多态性是非常关键的特性。
在进行测试时,需要充分考虑对象在不同状态下的不同行为,以及对象之间的相互作用。
四、面向对象的软件测试方法1. 单元测试:单元测试是面向对象的软件测试的基石。
通过针对各个对象进行独立的测试,可以确保对象的功能和逻辑正确性。
2. 集成测试:集成测试是对多个对象间相互作用的测试。
可以通过模拟对象之间的协作和通信,来检验对象间的接口和交互是否符合预期。
3. 系统测试:系统测试是对整个软件系统的测试,包括功能测试、性能测试、安全性测试等。
通过系统测试可以全面评估软件的质量和性能。
4. 面向对象的覆盖率分析:面向对象的覆盖率分析能够精确评估测试用例对对象的覆盖程度。
通过该分析,可以发现测试用例中的不足和重复,从而优化测试策略和用例设计。
五、面向对象的软件测试工具1. JUnit:JUnit是Java语言中最常用的单元测试框架,支持面向对象的测试方法和断言。
面向对象练习题及答案一、用例图1.请就以下需求建立用例图:一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。
该音像商店将存有大约1000 盘录像带和500 张光碟,这些订购涉及多家订购商。
所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。
客户可以预定录像带并在指定日期来取。
系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。
评分标准:画图格式标准3 分,用例全面正确4 分,角色与用例之间的关系正确3 分2.试用用例图描述小型图书资料管理系统。
某学院打算开发一个小型图书资料管理系统MiniLibrary,该系统基于Internet实现教师和学生对各种图书资料的借阅、查询和管理。
图书管理员负责管理各种图书资料,查询图书资料信息,并进行图书的借阅管理。
注册用户可以通过Internet 随时查询图书资料信息和个人借阅情况,预订目前借不到的图书资料,并可以快捷地查找和浏览所需要的电子资料。
系统可以提供适当的浏览器供用户阅读电子文献资料。
3.试用用例图描述系统简介:航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。
各个旅行社把预定机票的旅客信息输入到系统中,系统为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单到航空公司交款取票,系统核对无误即打印出机票给旅客。
此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。
技术要求和限制条件(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。
(2)对于本系统还应补充一下功能:1)旅客延误了取票时间的处理2)航班取消后的处理4 .请就此需求建立功能模型:某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。
面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。
2. 解释什么是多态,并给出一个Java中多态的例子。
3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。
面向对象的软件测试过程随着信息化的发展,软件行业也越来越成熟,软件测试作为软件开发的重要环节,更是受到了广泛关注。
面向对象的软件测试作为最新的软件测试方式,越来越受到软件工程师们的关注和研究。
本文从面向对象的软件测试概述、面向对象的软件测试流程、面向对象的软件测试技术等多个方面进行论述,希望能够对读者有所帮助。
一、面向对象的软件测试概述面向对象的软件测试主要是针对面向对象的软件技术而言的。
它强调基于对象、面向对象和基于类的软件开发思想。
在软件测试中,面向对象的设计和实现越来越得到重视,主要是因为它与传统的数据驱动的测试方法不同。
传统的测试方法主要是将测试用例和程序输入进行匹配测试,很难完全覆盖整个软件的各个方面。
而面向对象的软件测试则不同,由于它更具有适应性,可以更好的应对软件的不同需求和不同制约条件。
二、面向对象的软件测试流程1.需求分析阶段需求分析是整个软件测试流程中的第一阶段。
在这个阶段,软件测试工程师需要仔细分析用户需求等,从而确定软件测试的目标和方法。
2.测试计划阶段在测试计划阶段,软件测试工程师需要进一步细化测试目标,并制定出具体的测试计划。
3.测试设计阶段在测试设计阶段,软件测试工程师主要是根据需求规格说明书,制定测试用例和测试场景等。
4.测试执行阶段在测试执行阶段,软件测试工程师需要执行测试用例,记录测试结果,同时进行错误跟踪和统计分析工作。
5.测试评价阶段在测试评价阶段,软件测试工程师需要将测试结果进行汇总和分析,并提供给开发人员和测试负责人。
三、面向对象的软件测试技术1.基于模型的测试基于模型的测试是面向对象的软件测试中应用最广泛的一种测试技术。
这种测试技术主要是基于系统模型和产生的测试数据对系统进行测试,从而发现系统中潜在的错误和缺陷。
2.基于模拟的测试基于模拟的测试是利用模拟的方式来测试系统的技术。
这种测试技术主要是利用模拟的方式来模拟系统的输入和输出,从而对系统进行测试,并发现其中存在的问题和缺陷。
先测试程序的性能,人们常常发现,事实上大部分程序代码所消耗的运行时间并不多。
应该认真研究应用程序的特点,以确定哪些部分需要着重测试。
经过测试,合理地确定为提高性能应该着重优化的关键部分。
如果实现某个操作的算法有许多种,则应该综合考虑内存需求、速度及实现的难易程度等因素,经合理折衷选定适当的算法。
6.4.3 面向对象软件测试面向对象的测试是对于用面向对象技术开发的软件,在测试过程中继续运用面向对象方法,进行以对象为中心的软件测试。
在面向对象的实现中,对象的封装性使对象成为一个独立的程序单位,只通过有限的接口与外部发生联系,从而大大减少了错误的影响范围。
面向对象测试的基本目标仍然是以最小成本发现最多错误,这与传统软件测试的目标是一致的。
然而,传统软件是基于模块的,面向对象软件是基于类、对象的。
它们之间的这种差异,给面向对象软件的测试策略和测试技术等带来了不小的影响。
此外,面向对象程序中特有的封装、继承、多态等机制,给面向对象测试也带来了一些新特点。
1.面向对象的单元测试由于“封装”导致了类和对象的定义,类和类的实例(对象)包装了属性和处理这些数据的操作,因此,最小的可测试单元是封装起来的类和对象。
(1)类层测试。
一个类可以包含一组不同的操作,而一个特定的操作也可能存在于一组不同的类中。
因此,类测试并不是孤立测试单个操作,而是把所有操作都看成是类的一部分,全面地测试类、对象所封装的属性,以及操纵这些属性的整体操作。
面向对象的类测试,不仅要发现类的所有操作存在的问题,还要考查一个类与其他类协同工作时可能出现的错误。
例如,假设有一个类层次,操作X在超类中定义并被一组继承,每个子类都使用操作X,但是,X调用子类中定义的操作并处理子类的私有属性。
由于在不同的子类中使用操作X的环境有微妙的差别,因此,有必要在每个子类的语境中测试操作类X。
这说明当测试面向对象软件时,类测试与传统的单元测试是不同的。
(2)对象集群层测试。