第10章面向对象测试
《软件工程导论》课后习题答案
作业及解答(第3章)
• 数据结构的描述 符 号
= +
含 义
x = a+b
举
例
被定义为 与 或
[...,...] 或 [...|...] { ... }或 m{...}n (...) “...” ..
23:59:38
x = [a , b],x = [a | b] 重复 x = {a}, x = 3{a}8 可选 x = (a) 基本数据元素 x = “a” 连结符 x = 1..9
P1 记录存款信息
P2 打印存单 F5存款信息 F3存单 E1 储户 F4利息
F5存款信息 D1存款信息 F7密码 F2取款单
F5存款信息 P3 核算密码
F4利息 F4利息 F6取款信息 P6 设置利率 P4 计算利息
P5 打印利息清单 F8储蓄利率
E2 业务员
23:59:38
F8储蓄利率
F8储蓄利率
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
• 3-6 复印机的工作过程大致如下:未接到复印 命令时处于闲置状态,一旦接到复印命令则进 入复印状态,完成一个复印命令规定的工作后 又回到闲置状态,等待下一个复印命令;如果 执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态, 准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排 除故障,故障排除后回到闲置状态。 • 请用状态转换图描绘复印机的行为。
郑大远程面向对象程序设计试题
《面向对象程序设计》第12章在线测试第一题、单项选择题(每题1分,5道题共5分)1、面向对象软件开发中使用的OOD表示()A、面向对象分析B、面向对象设计C、面向对象语言D、面向对象方法2、在面向对象方法中,对象执行它的操作是通过()A、自动执行B、接受消息请求C、由外部强制执行D、外界直接访问其成员3、对象的两大要素是()A、数据和数据结构B、名字和函数C、属性和操作D、操作和方法4、关于对象模型的说法正确的事()A、对象模型是类、对象、类或对象之B、对象模型表示系统静态的数据性质间关系的定义集C、对象模型表示类/对象之间的结构D、对象模型是客观对象的物理模型关系5、面向对象分析的任务是()A、需求分析B、建立用例模型C、定义问题领域类D、定义角色第二题、多项选择题(每题2分,5道题共10分)1、下面那些是面向对象的特征?()A、结构B、类C、重用D、继承2、下面哪些属于UML的图( )A、用例图B、类图C、结构图D、流程图3、关于封装的说法正确的是()A、封装实现了信息隐藏B、封装使对象与外界隔绝C、封装使类不可见D、封装将对象的属性和操作结合在一起4、对象之间存在的关系包括()A、部分与整体B、一般与特殊C、实例连接D、消息连接5、下面的说法正确的是()A、软件就是程序,程序就是软件B、软件开发的过程就是程序设计的过程C、软件是程序、支持程序运行的数据以及与程序有关的文档资料的集合。
D、程序设计仅仅是软件开发过程的一个阶段。
第三题、判断题(每题1分,5道题共5分)1、面向对象设计过程一般仍分为结构设计和详细设计。
正确错误2、UML 是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。
正确错误3、UML不是一种可视化的程序设计语言而是一种可视化的建模语言.正确错误用若干个视图构造系统的模型,每个视图描述系统的一个方面。
正确错误、类的关联关系通常采用函数设计方式。
正确错误《面向对象程序设计》第11章在线测试A BC D、允许程序员以相同的方式处理不同的数据结构的是()A BC Dlist属于(A BC Dmap)属于A BC D、多重映射(multimapA BC DC、排序算法D、数值计算算法2、下面属于容器的头文件是()A、vectorB、listC、queneD、set3、下面的说法正确的是()A、STL中有sort函数,所以程序员不能定义名字叫sort的函数B、STL中的sort函数在名字空间之外C、程序员可以在自定义的名字空间内定义sort函数D、使用STL的sort函数可以在源程序的开头加入using namespace std4、下面属于顺序容器的是()A、向量B、双队列C、堆栈D、列表5、如果char str[]=“China!Great Wall”,生成string类型s并且s的字符串内容也是“China!Gr eat Wall”的语句是()A、string s(str);B、string s(str,1);C、string s(str, 1,11);D、string s=str;第三题、判断题(每题1分,5道题共5分)1、迭代器是算法访问容器的中介。
第10章 面向对象分析
第10章 面向对象分析
第10章 面向对象分析
• 面向对象软件开发技术
– 面向对象分析(OOA) – 面向对象设计(OOD) – 面向对象实现(OOP)
面向对象技术是一个有全新概念 的开发模式,其特点是:
(1)方法是对软件开发过程所有阶段进 行综合考虑而得到的; (2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;
取消交易
顾客可在按下选择键前任何一个时刻,拉动退币杆取 消交易收回硬币。
自动售货系统系统
-端1 * -端2
自动售货系统::售货
*
顾客
-端2
-端1 *
自动售货系统::供货
*
供货人
-端1 * -端2
自动售货系统::取货款
*
收银员
自动售货系统系统
-端1 *
-端2
售货
*
<<extends>>
售散装饮料
顾客
• 业务中的执行者扮演什么角色?这些角色可以 看作类,如客户、操作员等。
(2)筛选对象类,确定最终对象类 我们可以用以下选择特征来确定最终的对象: 1) 保留的信息:仅当必须记住有关潜在对象的 信息,系统才能运作时,则该潜在对象在分 析阶段是有用的; 2) 需要的服务:潜在对象必须拥有一组可标识 的操作,它们可以按某种方式修改对象属性 的值; 3) 多个属性:在分析阶段,关注点应该是“较 大的”信息(仅具有单个属性的对象在设计 时可能有用,但在分析阶段,最好把它表示 为另一对象的属性);
定义服务
• 对象=属性+操作(服务) • 因为在动态模型和功能模型中更明确地描 述了每个类中应该提供哪些服务,所以在 建立了这两个模型后才能最终确定类中应 有的服务。 • 事实上,在确定类中应有的服务时,既要 考虑该类实体的常规行为,又要考虑在本 系统中特殊需要的服务。
Web前端开发基础之JavaScript程序设计知到章节答案智慧树2023年浙江工业职业技术学院
Web前端开发基础之JavaScript程序设计知到章节测试答案智慧树2023年最新浙江工业职业技术学院第一章测试1.下面不属于<script>标签属性的是()。
参考答案:href2.下列选项中,可以接收用户输入的信息的是()。
参考答案:prompt()3.下面关于JavaScript的概述不正确的是()。
参考答案:依赖于操作系统4.下列选项中,可以实现警告框的是()。
参考答案:alert()5.下面()标签可在页面中直接嵌入JavaScript。
参考答案:<script>6.下面关于字符串的描述错误的是()。
参考答案:单引号中使用单引号不需要转义7.下列选项中与++(后置)具有相同优先级的是运算符是()。
参考答案:--(后置)8.表达式Math.PI.toFixed(2)的运行结果为()。
参考答案:3.149.函数Object.prototype.toString.call('undefined')的返回值是()。
参考答案:"[object String]"10.下列选项中,不属于赋值运算符的是()。
参考答案:==11.下列选项中,在操作9和15时,结果为负数的是()。
参考答案:“~”12.下面关于逻辑运算符的说法错误的是()。
参考答案:逻辑运算的返回值是布尔型13.下列语句中可以重复执行一段代码的是()。
参考答案:while14.下面关于运算符的说法错误的是()。
参考答案:表达式中赋值运算符总是最后执行的15.以下选项中不属于选择结构语句的是()。
参考答案:while语句16.以下选项中不属于基本数据类型的是()。
参考答案:Object17.以下选项中可以保留2位小数的是()。
参考答案:toFixed()18.下面关于变量的说法错误的是()。
参考答案:保留字能够作为变量名称使用19.下面关于for语句描述错误的是()。
参考答案:for循环语句小括号内的分号分割符可以省略20.下列选项中可以将null转换成字符型的是()。
张海藩《软件工程导论》(第6版,清华大学出版社)(考研用)辅导书 第(10-13)章【圣才出品】
十万种考研考证电子书、题库视频学习平台
第 10 章 面向对象分析
10.1 复习笔记
一、面向对象分析的基本过程 1.概述 (1)定义 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 (2)过程 ①分析陈述用户需求的文件; ②深入理解用户需求,抽象出目标系统的本质属性; ③用模型准确地表示。 (3)目的 全面深入地理解问题域和用户的真实需求,建立问题域的精确模型。
2.信息来源 需求陈述、应用领域的专业知识、客观世界的常识是建立对象模型时的主要信息来源。
3.建立对象模型的步骤 (1)确定类与对象。 ①找出候选的类与对象; ②筛选出正确的类与对象。 (2)确定关联。 【注意】在分析确定关联的过程中,不必花过多的精力去区分关联和聚集,聚集是一种 特殊的关联。 (3)划分主题。 (4)确定属性。 (5)识别继承关系。 (6)反复修改。
5.画状态图 (1)定义 状态图描绘事件与对象状态的关系,它确定了由事件序列引出的状态序列。 (2)方法 ①仅考虑事件跟踪图中指向某条竖线的那些箭头线。把这些事件作为状态图中的有向 边,边上标以事件名。 ②给每个状态取个有意义的名字。 ③根据一张事件跟踪图画出状态图后,再把其他脚本的事件跟踪图合并到该图中。 ④考虑完正常事件后再考虑边界情况和特殊情况,包括在不适当时候发生的事件。
十万种考研考证电子书、题库视频学习平台
复杂问题的对象模型由 5 个层次组成,如图 10-1 所示。
图 10-1 复杂问题的对象模型的 5 个层次
二、需求陈述 1.内容 (1)阐明“做什么”而不是“怎样做”。 (2)描述用户的需求而不是提出解决问题的方法。 (3)指出哪些是系统必要的性质,哪些是任选的性质。 (4)避免对设计策略施加过多的约束,不描述系统的内部结构。
第10章-C++面向对象程序设计(Visual C++ 2010版)-温秀梅-清华大学出版社
基本控件的共同属性
(1) ID属性 用于指定控件的标识符,Windows依靠ID来区分不同 的控件。
(2) Caption(标题)属性 对控件将要实现的功能进行文字说明。如果控件标题 中包含字符&,则紧跟其后的字符在显示时会有一条下划 线,通过这样的设置,按(Alt+带下划线的字符)组合键, 将触发控件被单击的事件或切换到相应的控件。
单击“下一步”按钮,弹出如图10.3所示的“MFC 应用 程序向导-ch10_1”之“应用程序类型”对话框,在该 对话框中选择“基于对话框”的应用程序类型。应用程 序有以下四种类型:单个文档(Single document)、 多个文档(Multiple documents)、基于对话框( Dialog based)和多个顶级文档。选择不同的应用程序 类型时,对话框左上角会显示不同风格的应用程序窗口 图标,不同类型应用程序的具体说明如表10.2所示。
图10.8 ch10_1应用程序的运行结果
使用AppWizard 工具生成的 程序和改变了的复选框
组合框 分组框 静态文本框
命令按钮 编辑框 列表框 单选按钮 图片框
10.3 基本控件
水平滚动条 滑块
进度条
列表框
选项卡控件
垂直滚动条 微调器 热键
树型列表框
IP地址
允许用户产生一个多文档界面(MDI)结构的应用程序。该项为默认选项。在 多文档界面应用程序中允许同时操作多个文档。在界面中可以同时打开多个文 件(同时也就为每个文件打开一个窗口),并通过切换窗口激活相应的文档进 行编辑
允许用户产生一个基于对话框的应用程序。基于对话框结构的应用程序,主要 用于人机对话,为用户传送一些消息给计算机
图10.3 “MFC 应用程序向导-ch10_1”之“应 用程序类型”对话框
第10章 C++语言的输入与输出-面向对象程序设计(C++语言)(第二版)-程磊-清华大学出版社
设置状态标志flags 清楚状态标志,并返回前状态标志 测试状态标志 设置标志flags, 并返回前状态标志 返回当前的宽度设置值 设置域宽w,返回以前的设置 设置小数位数p,返回以前的小数位数 返回当前的填充字符 设置填充字符ch,返回当前的填充字符
13
下面分别介绍这些成员函数的使用方法;
(1)设置状态标志:
cout<<”x_width=”<<cout.width( )<<endl; cout<<”x_fill=”<<cout.fill ( )<<endl; cout<<”x_precision=”<<cout.precision( )<<endl; cout<<123<<” ”<<123.45678<<endl; cout<<”______________________________\n”; cout<<”*** x_width=10,x_fill=, x_precision=4 ***\n”; cout.width(10); cout.precision(4); cout<<123<<” ”<<123.45678<<” ”<<234.567<<endl;
1. C++的流概述 ❖ 在C++中,输入输出流被定义为类,称为流类。 ❖ I/O 系 统 仍 然 是 以 字 节 流 的 形 式 实 现 的 , 流
(Stream)实际上就是一个字节序列,流总是 与某一设备相联系的,它既可以从输入设备 (如键盘、磁盘等)流向计算机内存,亦可以 从计算机内存流向输出设备(如显示器、打印 机、磁盘等)。 ❖ 输入输出的字节可以是ASCII字符、内部格式 的原始数据、图形图像、数字音频、视频等。
郑州大学《面向对象程序设计》1-12章在线测试题库
《面向对象程序设计》第02章在线测剩余时间:59:56试答题须知:1、本卷满分20分.2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、在关键字public后面定义的成员为类的()成员。
A、私有B、公用C、保护D、任何2、当一个类对象结束它的生存期的时侯,系统自动调用该类的( )。
A、无参构造函数B、带参构造函数C、拷贝构造函数D、析构函数3、类的构造函数被自动调用执行的情况是在定义该类的 ( )A、成员函数时B、数据成员时C、对象时D、友元函数时4、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
A、0B、1C、2D、35、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;"语句时共调用该类析构函数的次数为( )。
A、0B、1C、nD、n+1第二题、多项选择题(每题2分,5道题共10分)1、下面有关类说法正确的是(A,B,D )A、一个类可以有多个构造函数B、一个类只有一个析构函数C、析构函数需要指定参数D、在一个类中可以说明具有类类型的数据成员2、关于封装,下列说法中正确的是()。
A、通过封装,对象的全部属性和操作结合在一起,形成一个整体B、通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C、通过封装,每个对象都成为相对独立的实体D、通过封装,对象的属性都是不可见的3、定义析构函数时,错误的说法是()。
A、其名与类名完全相同B、返回类型是 void 类型C、无形参,也不可重载D、函数体中必须有 delete 语句4、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是()。
零基础学习小提琴智慧树知到课后章节答案2023年下浙江大学
零基础学习小提琴智慧树知到课后章节答案2023年下浙江大学浙江大学第一章测试1.小提琴音色优美,接近人声,具有丰富的表现力,被誉为“乐器之后”。
A:错 B:对答案:对2.小提琴擅长表现()。
A:快速的乐句 B:高难度技巧 C:优美的和声 D:歌唱性旋律答案:快速的乐句;高难度技巧;优美的和声;歌唱性旋律3.本课程的面向对象主要是()。
A:从未接触过音乐的“音乐小白” B:已有很好的小提琴演奏基础的学习者 C:已有其他乐器演奏基础的学习者 D:有一些音乐基础的学习者答案:从未接触过音乐的“音乐小白”;已有其他乐器演奏基础的学习者;有一些音乐基础的学习者4.下列小提琴规格中属于成人用琴的是()。
A:1/4 B:3/4 C:4/4 D:2/4答案:4/45.小提琴的档次由低到高排列为()。
①演奏琴②普及琴③名琴④练习琴A:②④③① B:①③②④ C:②④①③ D:③①②④答案:②④①③6.下列属于小提琴配件的是()。
A:指甲 B:肩托 C:腰托 D:松香答案:肩托;松香7.小提琴由()、()、()三大部分组成。
A:琴马 B:琴身 C:琴弓 D:琴弦系统答案:琴身;琴弓;琴弦系统8.小提琴琴弓的弓毛是由()制成的。
A:马尾毛 B:木头 C:金属 D:尼龙答案:马尾毛9.小提琴的品质要从()来辨别。
A:背板 B:琴头 C:声音 D:面板答案:背板;琴头;声音;面板10.新的琴马要经人工修削才能使用。
A:错 B:对答案:对第二章测试1.学习持弓时,要做到()。
A:会动脑 B:会动手 C:会聆听 D:会观察答案:会动脑;会动手;会聆听;会观察2.持笔是持弓的预备训练,持弓的手型类似日常放松时的手型。
A:对 B:错答案:对3.持笔垂直练习“下弓”时,最先向下沉的部位是()。
A:大臂 B:手腕 C:手指 D:小臂答案:大臂4.持笔垂直练习“上弓”时,最先向上提起的部位是()。
A:大臂 B:手腕 C:肩关节 D:小臂答案:手腕5.持弓时,中指和无名指放在()的位置。
面向对象的系统分析与设计(山东联盟)智慧树知到答案章节测试2023年山东财经大学
第一章测试1.下面关于功能分解法的优点描述错误的是A:与模块化编程结合使用后,使开发效率有很大提高B:以系统需要提供的功能为中心组织系统C:删除了GoTo语句,使软件能得到有效维护D:具有较强的应对需求变化的能力答案:D2.下面的开发方法能够兼顾功能和数据的是A:面向对象方法B:信息建模法C:结构化方法D:功能分解法答案:A3.结构化方法采用数据流、加工进行建模,需求变化极易引起两者的变动,进而引起其他数据流和加工的变化A:错B:对答案:B4.功能分解法以功能作为系统的构造块,数据组织能力强。
A:错B:对答案:A5.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
A:强调需求分析重要性B:把对象划分成类,每个对象类都定义一组数据和方法C:对既存类进行调整D:开发过程基于功能分析和功能分解答案:B第二章测试1.下列关于UML叙述正确的是()。
A: UML仅是一组图形的集合B: UML仅适用于系统的分析与设计阶段C: UML是一种语言,也是系统设计的方法D:在信息系统开发过程方面,UML是一种建模语言,不是对开发过程的细节进行描述的工具答案:D2.UML的最终产物就是最后提交的可执行的软件系统和()。
A: 类图B: 动态图C: 用户手册D: 相应的软件文档资料答案:D3.UML提供了4种静态图用于对系统的静态方面进行可视化、详述、构造和文档化。
其中()是面向对象系统建模中最常用的图,用于说明系统的静态设计视图。
A: 部署图B: 组件图C: 对象图D: 类图答案:D4.UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。
其当需要显示代码物理结构,并用于实际的编程时,应该选择()。
张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。
第10章---面向对象分析
(2) 与问题无关的或应在实现阶段考虑的关联
• 如: “系统处理并发的访问”
(3) 瞬时事件
• 关联应该描述问题域的静态结构,而不应该是一个瞬时事 件。 • 如: “ATM读现金兑换卡”
确定关联
(4) 三元关联
三个或三个以上对象之间的关联,大多可以 分解为二元关联或用词组描述成限定的关联。
• “柜员输入针对账户的事务”可以分解成“柜员 输入事务”和“事务修改账户”这样两个二元关 联。 • “ATM与中央计算机交换关于事务的信息” , 隐含了“ATM与中央计算机通信”和“在ATM上 输入事务”这两个二元关联。
一个事务包含对账户的若干次更新, 如(取 款、存款或查询)。
3. 把“分行”与“分行计算机”合并 参见图10.6(见书238页)
第十章面向对象分析
10.1 10.2 10.3 10.4 10.5 10.6 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务
建立动态模型
确定类与对象
(3) 笼统
如“银行”、“网络”、“系统”、“软件”、 “信息”、“访问”等
(4) 属性
如:“现金”、“支票”、“取款额”、“账单”、 “余额”、“分行代码”、“卡号”、“密码”、 “类型”等
(5) 操作
本身具有属性需独立存在的操作,应该作为类与对 象。
(6) 实现
如:“事务日志”, “通信链路”
确定类与对象
2. 筛选出正确的类与对象
筛选标准
• (1) 冗余-----两个类表达了同样的信息 • (2) 无关--仅需要把与本问题密切相关的类与 对象放进目标系统中。 • (3) 笼统 • (4) 属性--有些名词实际上描述的是其他对象 的属性。 • (5) 操作--有时可能使用一些既可作为名词, 又可作为动词的词 • (6) 实现--不应该过早地考虑怎样实现目标系 统
软件工程智慧树知到课后章节答案2023年下山东财经大学
软件工程智慧树知到课后章节答案2023年下山东财经大学山东财经大学第一章测试1.软件没有相应的文档,且最终不能满足用户要求是软件危机的一种表现。
()答案:对2.软件本身的不可见性和复杂性随规模的增加呈指数上升是产生软件危机的主要原因。
()答案:错3.开发软件就是写程序。
()答案:错4.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称()。
答案:软件危机5.以下对软件工程描述正确地是()。
答案:采用经过时间考验而证明正确的管理技术。
;一门工程学科。
;经济地开发出高质量的软件并有效地维护它。
;结合最好的技术方法。
6.软件生命周期中所花费费用最多的阶段是()。
答案:软件维护。
7.软件是()。
答案:程序、数据及其文档的集合。
8.同螺旋模型相比,原型模型主要缺少()。
答案:风险分析9.在软件生存周期模型中,不适应变化需求的软件开发模型是()。
答案:瀑布模型10.针对高质量软件的生产的软件过程模型()。
答案:净室模型第二章测试1.可行性研究的技术可行性是指现有技术是否可行。
()答案:对2.可行性研究的成本效益分析是从经济方面讨论是否可行。
()答案:对3.可行性分析研究的目的是()。
答案:项目值得开发否4.描绘物理系统的传统工具是()。
答案:系统流程图5.数据字典的基本功能是()。
答案:数据定义。
6.使用数据流图对工资系统进行需求分析建模,外部实体是()。
答案:接受工资单的银行7.数据流图的作用包括()。
答案:可以逻辑模型考虑系统的物理实现;作为交流信息的工具;作为分析和设计的工具8.典型环境下各个开发阶段需要使用的人力的百分比最多的是()。
答案:综合测试第三章测试1.需求分析阶段的产品是()。
答案:需求规格说明书。
2.进行需求分析可使用多种工具,但是()不适用。
答案:PAD图3.软件需求规格说明的内容不应该包括()。
答案:算法的描述。
4.在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
软件测试完整ppt课件
目录 首页 上页 下页 末页
第10章 软件测试
7
有关软件测试的错误观点
“软件测试是为了证明程序是正确的,即测 试能发现程序中所有的错误”。事实上这是不可 能的。要通过测试发现程序中的所有错误,就要 穷举所有可能的输入数据。
例:程序P有两个整型输入量 X、Y,输出量为Z,
在32位机上运行。所有的测试数据组(Xi,Yi)的 数目为:232×232= 264,1毫秒执行1次,共需5亿
目录 首页 上页 下页 末页
第10章 软件测试
6
10.1 软件测试基础
一、软件测试的目的
➢ 测试是一个为了发现错误而执行程序的过程 ➢ 一个好的测试用例是指很可能找到迄今为至尚未发
现的错误的测试用例 ➢ 一个成功的测试是指揭示了迄今为至尚未发现的错
误的测试 根据这个测试目的,应该排除对测试的错误观点,设 计合适的测试用例,用尽可能少的测试用例,来发现 尽可能多的软件错误。
12
评审(Review)
评审是由若干开发人员、项目经理、测试人员、用 户或领域专家等组成一个会审小组,通过阅读、讨论和争 议,对工作制品进行静态分析的过程。
类型:需求评审、设计评审和代码评审。
•评审过程
–小组负责人先把需求规格说明、设计说明或程序代 码及有关要求、规范等分发给小组成员,作评审依据;
–在充分阅读有关材料后召开评审会议,主要开发人 员进行讲解,其他成员提出问题并展开讨论,审查是否存 在错误;
d — 定义 r — 引用 u — 未引用
R:duuuuu 只定义不用 S:uruuur 未定义引用 Y:uuddru 连续定义
目录 首页 上页 下页 末页
第10章 软件测试
16
审查(Inspection)
张海藩《软件工程导论》(第6版)(章节题库 第10章 面向对象分析)【圣才出品】
第10章面向对象分析一、选择题1._____是系统一个特定执行期间所发生的事件序列。
【答案】脚本2.功能模型描述系统内的计算,它和_____、_____共同构成系统模型结构的三大支柱。
【答案】对象模型;动态模型3.状态是对象的_____、_____的一种抽象。
【答案】属性值;链接4.在对象模型中,访问操作是直接从类的_____和_____中导出的。
【答案】属性;关联5.对象模型为建立_____和_____,提供了实质性框架。
【答案】动态模型;功能模型6.功能模型由多个_____组成,每个_____说明了操作和结束的含义。
【答案】数据流图;数据流图7.功能模型由多张数据流图组成。
数据流图中包含_____、_____、_____对象和_____对象。
【答案】处理;数据流;动作;数据存储8.事件跟踪图用来表示_____、_____对象和_____对象。
_____和_____可用一条垂直线表示,各_____用水平箭头表示,箭头方向是从_____对象指向_____对象。
【答案】事件;事件的接收;发送;接收对象;发送对象;事件;发送;接收9.状态转换图是_____的重要工具。
【答案】启发分析员认识对象服务10.说明一个状态可采用_____、_____、_____、_____、_____等内容描述。
【答案】状态名;状态目的描述;产生该状态的事件序列;表示状态特征的事件;在状态中接收的条件二、填空题1.一个()能用不同的方法表示它的特征。
A.事件B.抽象C.状态D.脚本【答案】C【解析】状态是对象的属性值和链接的一种抽象。
根据影响对象总的行为的性质,一系列组合在一起是一个状态。
它能用不同的方法表示它的特征。
2.在对象模型中,访问操作是直接从类的属性和关联中导出的。
下列不是对象模型的访问操作的是()。
A.查询B.动作C.抽象D.活动【答案】C【解析】对象模型的访问操作主要包括三大类:查询、活动和动作。
3.()对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
第10章 面向对象的方法
第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的______组成。
2.对象具有状态,描述对象的状态用它的______。
3.对象的抽象是______。
4.类之间有两种结构关系,它们是分类关系和______关系。
5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有______。
6.动态模型描述了系统的______。
二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( )关系。
A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( )模型。
A.功能B.动态C.对象D.分析3.对象模型的描述工具是( )。
A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是( )层次结构。
A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( )。
A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( )是候选的属性。
A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。
问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。
2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。
答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了______的结合。
xcl第10章 面向对象分析
解决运算量很大的问题(例如,高级语言编译、 科学与工程计算等),则涉及重要的功能模型; 动态模型和功能模型中都包含了对象模型中的 操作(即服务或方法)。 复杂问题(大型系统)的对象模型由下述五个层 次组成:主题层(也称为范畴层)、类-&-对象层、 结构层、属性层和服务层。 主题是指导读者(包括系统分析员、软件设计 人员、领域专家、管理人员、用户等,总之, “读者” 指所有需要读懂系统模型的人)理解大型、 复杂模型的一种机制。
b. 人或组织的角色,例如,医生、计算机系、 财务处等等。 c. 应该记忆的事件,例如,飞行、演出、访问、 交通事故等等。
17
d. 两个或多个对象的相互作用,通常具有交易或 接触的性质,例如,购买、纳税等等。
e. 需要说明的概念,例如,政策、保险政策、版 权法等等。 非正式分析方法:用自然语言书写的需求陈述 为依据,把陈述中的名词作为类-&-对象的候 选者,用形容词作为确定属性,把动词作为服务 (操作)的候选者。这种方法确定的候选者是非常 不准确的。
第十章 面向对象分析
一、面向对象分析的基本过程 二、需求陈述 三、建立对象模式型 四、建立动态模型 五、建立功能模型 六、定义服务
1
面向对象分析(OOA)的关键,是识别出问题 域内的对象,并分析它们相互间的关系,最终建立 起问题域的简洁、精确、可理解的正确模型。 对象模型是最基本、最重要、最核心的。
一、面向对象分析的基本过程
1、基本过程的概述
面向对象分析,就是抽取和整理用户需求 并建立问题域精确模型的过程。
2
面向对象分析过程: (1) 用户需求陈述。可能由 用户单方面写出需求陈述,也可能由系统分析员配 合用户,共同写出需求陈述。需求陈述通常是不完 整、不准确的,而且往往是非正式的。
精品文档-软件技术基础(鲍有文)-第10章
第10章 面向对象软件工程
2) 建立对象之间的联系 各个对象在系统中并非独立存在,只有定义和描述了对象 类之间的关系,各个对象类才能构成一个完整的系统模型。 对象模型图中,对象及类间的关系主要有4种:一般/特殊 关系、整体/部分关系、实例关联和消息连接。
第10章 面向对象软件工程 (1) 一般/特殊关系。识别类之间的一般/特殊关系要考虑
第10章 面向对象软件工程
把众多的事物归纳并划分为不同的类是人类在认识客观世 界时经常采用的思维方法,分类的原则是抽象,从那些与当前 目标有关的本质特征中找出事物的共性,并将具有共同性质的 事物划分成一类,得出一个抽象的概念。例如,学生、教师、 学校等都是一些抽象的概念。类的概念使我们能对属于该类的 全部个体事物进行统一的描述,“学生具有学号、姓名、性别、 年龄,能够入学注册、选课等”,这个描述适合所有学生,而 不必对每一个具体的学生进行描述。
在一般/特殊关系中,可以将共同的属性放在上层,将特 有的属性放在下层,将共同的方法放在上层,而将特有的方法 放到下层,如图10-4所示。
第10章 面向对象软件工程 图 10-4 一般/特殊关系举例
第10章 面向对象软件工程
第10章 面向对象软件工程 2) 类 类(Class)是具有相同属性和服务的一组对象的集合,它
为属于该类的全部对象提供了统一的抽象描述,其内部包括属 性和服务两个主要部分。类好比是一个对象模板,用它可以产 生多个对象。类所代表的是一个抽象的概念或事物,在客观世 界中实际存在的是类的实例,即对象。例如,在学校教学管理 系统中,“学生”是一个类,其属性具有学号、姓名、 性别 等,可以完成的操作有“入学注册”、“ 选课”等。学生 “王平”是一个具体的对象, 也是“学生”类的一个实例。
第十章习题
习题第十章面向对象的程序设计一、选择题1.以下关于visual foxpro类的说法,不正确的是()。
A.类具有继承性和封装性B.用户必须给基类定义属性,否则出错C.子类一定具有父类的全部属性D.用户可以按照已有的类派生出多个子类2.下面关于“类”的描述,错误的是()。
A.一个类包含了相似的有关对象的特征和行为方法B.类只是实例对象的抽象C.类可以按所定义的属性、事件和方法进行实际的行为操作D.类并不进行任何行为操作,它仅仅表明该怎样做3.类是一组具有相同属性和相同操作的对象的集合,类之间共享属性和操作的机制称为()。
A.多态性B.动态绑定C.静态绑定D.继承4.命令按钮组是()。
A.控件B.容器C.控件类对象D.容器类对象5.下列关于面向对象程序设计(OOP)的叙述,错误的是()。
A. OOP的中心工作是程序代码的编写B. OOP以对象及其数据结构为中心展开工作C. OOP以“方法”表现处理事物的过程。
D. OOP以“对象”表示各种事物,以“类”表示对象的抽象。
6.下列基类中是容器类的是()。
A.表单B.命令按钮C.列表框D.单选按钮7.在VISUAL FOXPRO系统中,以下关于事件的叙述错误的是()。
A.事件是每个对象可以识别和相应的某些行为和动作B.事件不能适用于多种控件C.事件是通过用户的操作性为引发的D.当事件发生时,将执行包含在事件过程中的全部代码8.下面关于属性、方法和事件的叙述中,错误的是()。
A.属性用于描述对象的状态,方法用于表示对象的行为B.基于同一个类产生的两个对象可以分别设置自己的属性值C.在新建一个表但是,可以添加新的属性、方法和事件D.事件代码也可以像方法一样被显示调用9.任何对象都有自己的属性,下列关于属性的叙述中,正确的是()。
A.属性是对象所具有的固有特征,通常用各种类型的数据来表示B.属性是对象所具有的内部特征,通常用各种类型的数据来表示C.属性是对象所具有的外部特征,通常用各种类型的数据来表示D.属性是对象所具有的固有方法,通常用各种程序代码来表示10.下列说法中错误的是()。
《面向对象程序设计》第10章在线测试
《面向对象程序设计》第10章在线测试剩余时间:59:51答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、throw后面的表达式不可以是()A、常量B、变量C、对象D、数组2、关于异常的说法,正确的是()A、异常就是错误B、有了异常处理机制,出现错误也没有关系C、异常在C++中以消息的形式传递D、程序中出现的错误都可以用catch块来捕捉处理3、关于catch(。
)的说法错误的是()A、catch(。
)可以捕捉所有类型的异常B、catch(。
)必须放在所有catch块的后面C、catch(。
)可以避免出现没有被捕捉的异常D、catch(。
)不能单独使用4、C++中异常处理的默认模式是()A、终止模式B、恢复模式C、挂起模式D、暂停模式5、关于重新抛出错误的说法是()A、重新抛出是指抛出原来的异常B、用throw语句再次抛出原来的异常C、只能在catch块中抛出D、重新抛出时不能改变异常信号的值第二题、多项选择题(每题2分,5道题共10分)1、关于异常处理的说法正确的是()A、将异常的检测与处理分离B、异常就是错误C、异常由函数调用引起D、在上层调用函数中使用try检测函数调用是否引发异常2、try子句的作用是()A、代码的保护段B、如果预料某段程序代码可能发生异常,就将该段代码放在try子句之后C、try子句产生异常D、try子句中的throw表达式产生异常3、catch子句的说法正确的是()A、catch子句后的复合语句是异常处理程序B、catch子句捕获throw表达式抛出的异常C、catch子句的异常类型说明只能是类型,不能是数值D、catch子句的异常类型不能是自定义类4、异常处理的执行过程是()A、程序执行try语句块内的保护段,如果发现异常则退出B、如果在try语句内的程序段抛出异常,程序控制转入try块后的catch块C、throw抛出的异常对象如果与catch子句异常类型的值一致,则执行对应的异常处理程序D、如果没有匹配的catch子句,自动调用terminate终止程序5、关于catch(…)语句的说法正确的是()A、catch(…)语句可以捕获任何异常B、catch(…)语句可以放在catch子句的任何位置C、catch(…)语句必须放在catch子句的最后D、catch(…)语句捕获空的异常第三题、判断题(每题1分,5道题共5分)1、异常(Exception)是程序运行过程中,由于环境变化、用户操作失误以及其它方面的原因而产生的运行时不正常的情况.正确错误2、抛出异常的模块只是报告某个地方存在错误,这个报告可以帮助异常处理器解决这个错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单元测试主要使用的图模型是:类图、类的状态图、活 动图。 2、集成测试(大簇、构件、子系统) 、集成测试(大簇、构件、子系统) 这里的构件或子系统应该与系统的体系结构相对应。集 成测试主要以检查这些构件、子系统的接口为目的。对于类 对于类 之间的集成,Roger S. Pressman认为传统的自顶向下和自底 之间的集成 向上集成的测试策略没有意义。他提出了两种集成测试策略: (1)基于线程的测试(thread-based testing) 集成一组相互协作的对某个输入或事件作出响应的类, 每个线程被分别测试,并使用回归测试以保证没有副作用产 生。 (2)基于使用的测试(use-based testing) 按层次测试系统。先测试不依赖服务器的独立类,如管 理和显示数据的类,然后测试依赖独立类的其他类。逐步增 加依赖类,直到测试完整个系统。
西安交通大学 刘海岩 2
3、面向对象软件的开发是渐进、演化的开发,从分析、 设计到实现使用相同的语义结构(如类、属性、操作、 消息)。因此要扩大测试的视角,对分析模型、设计模 型进行测试。例如,在分析模型中定义了一个无用的属 无用的属 性,围绕着这个属性可能会带来以下错误: 在 分析模型中: • 定义了一个与该属性有关的操作: • 导致了不正确的类关系: • 为共享属性和操作创建了不必要的子类: • 为适应该属性和操作刻画了其类和系统的行为。 如果问题在分析阶段未被发现,再将错误继续传播, 使得设计模型可能存在: • 与该类有关的不合适的子系统或任务的划分: • 与该无用属性有关操作的算法设计: • 与该无用属性有关操作的接口及消息模式。
集成测试
Test B Test B、C 、 Test C Test B、D 、 Test D Test A、B、C、D 、 、 、
测试过程(UML活动图) 集成测试使用的图模型是:顺序图、协作图、活动图(概念层)
西安交通大学 刘海岩 10
3、确认测试 、 在确认和系统测试层次,和传统的一样。测试的内 容主要集中于用户可见的动作和用户可识别的系统输出 (用户可见的功能),以及系统性能等其他需求。测试 人员应该根据需求说明和用例模型设计测试用例。 确认测试使用的图模型主要是用例图。
西安交通大学 刘海岩 14
• 基于属性的划分 根据操作使用的属性来划分类操作,即使用相同属 性的操作划分在一个等价类中。如account类中,以 creditLimit来定义划分,操作被定义成3个类别: ① 使用creditLimit 的操作, ② 修改creditLimit 的操作, ③ 不使用或不修改creditLimit的操作。 creditLimit 然后对每个划分设计测试序列。 • 基于操作类别的划分 如在account类中的操作可被分类为: 初始化操作(open、setup)、计算操作( deposit, withdraw)、查询操作( balance,summarize, creditLimit)和终止操作( close)。
西安交通大学 刘海岩 4
10.2 面向对象的测试策略
传统的测试策略是从小型测试开始,逐步走向大型测试, 即从单元测试开始,逐步进入集成测试,最后进行系统测试。 在传统测试中,单元测试集中在最小的可编译程序单位(子 程序、过程、函数),一旦这些单元都被独立测试后,被集 成到程序结构中进行一系列的回归测试,以发现由于模块的 接口和新单元加入所导致的副作用而带来的错误。最后,对 系统整体进行测试以发现需求中的错误。 1、单元测试(类或对象或组成的小簇) 、单元测试(类或对象或组成的小簇) OO语境中,单元的概念发生了变化。封装驱动了类或对 象的定义,即每个类或对象封装了属性和操作这些属性的服 务,最小的可测试单位不是个体模块,而是封装的类或对象。 类包含一组不同的操作,并且某个特殊操作可能作为类的一 部分存在(如子类中继承的操作),因此,单元实际上是类 或若干相关的类组成的小簇。
西安交通大学 刘海岩 8
自顶向下
UI层 层 桩 桩
自底向上
驱动 驱动
三明治式
UI层 层 桩 桩
数据库层 网络层
UI层 层 应用层 桩 桩
驱动
驱动 驱动 驱动
数据库 网 络 应用层 UI层 层 应用层 数据库 网络
西安交通大学 刘海岩
数据库层 网络层
9
单元测试
Test A
集成测试
Test A、B 、
西安交通大学 刘海岩 16
• 对每个消息,确定下一层被调用的操作并结合这些操 作到测试序列中。 如,某一个应用问题的类协作图如下: A E
x1,x2,… , ,
B
x4
x3
C
D
对B的随机测试序列可能是x1,x2,…,为了考虑涉及 到该测试的协作者,要考虑上述序列中每个操作相关联的消 息。设B必须与C协作(需执行x3)以执行x1,B与D协作 (需执行x4)以执行x2。因此,对B的测试序列应该是: x1,[ x3] ,x2,[x4],… 测试序列跟踪跨越类协作的操作流。基于用例的实现是 17 西安交通大学 产生随机测试序列的基础。 刘海岩
2、类级别测试用例设计(单元测试) 、类级别测试用例设计(单元测试)
着重于单个类及封装的操作。可按照以下方法设计用 例:
西安交通大学 刘海岩 12
(1)随机测试 考虑一个银行应用程序,其中account类有下列操作: open,setup,deposit,withdraw,balance,summarize, creditLimit和close,但问题的性质隐含了一些限制(例如, 账号必须在其它操作可应用前被打开,在所有操作完成 后被关闭)。一个account实例的最小行为生命历史包括 下面操作: open,setup,deposit,withdraw,close,表示了 account的最小测试序列。然而大量的其它行为可能在下 面序列中发生: open,setup,deposit, [deposit | withdraw | balance | summarize | creditLimit]n ,withdraw ,close 一系列操作序列可以随机产生,例如: 测试用例1: open,setup,deposit, deposit, balance, summarize, withFra bibliotekraw,close
西安交通大学 刘海岩 15
3、类协作测试用例的设计(集成测试) 、类协作测试用例的设计(集成测试)
测试类或构件被组装后相互之间能否正常交互完成指定 的功能。使用use-case作为测试的主要驱动,顺序图、协作 图为测试提供帮助。 和单个类一样,可通过应用随机和划分方法以及基于 use-case场景和行为模型导出测试用例。 (1)随机测试 Kirani等人建议用下面的步骤生成多个随机测试序列: • 对每个客户类,用类操作列表生成随机测试序列,这些 操作将发送消息给其他服务器。 • 对生成的每个消息,确定在服务器对象中的协作者类及 对应的操作。 • 对服务器对象中的已经被来自客户对象的消息调用的每 个操作,确定该操作向协作者发送的消息。
第10章 面向对象测试 10章
面向对象测试的特点 面向对象的测试策略 面向对象软件的测试用例设计 RUP的测试活动
西安交通大学 刘海岩
1
10.1 面向对象测试的特点
面向对象测试的整体目标(以最小的工作量发现最 大数量的错误)与传统软件测试的目标是一致的。但是 OO程序的性质改变了测试策略与战术。 1、传统测试主要是基于程序运行过程的,即选择一组 、 输入数据运行被测程序,通过比较实际结果与预期结果 从而判断程序是否有错。而OO程序中的对象通过发送消 息启动相应的操作,并且通过修改对象的状态达到转化 系统运行状态的目的,同时,在系统中还可能存在并发 活动的对象。应此传统的测试方法不再适应。 2、传统程序的复用以调用公共模块为主,运行环境是 、 连续的。而面向对象复用很多是用继承实现的,子类继 承过来的同名操作有新的语境,必须要重新测试。随着 继承层次的加深,测试的工作量和难度也随之增加。由 继承支持的多态的特性同样给测试带来了难度。
(2)划分测试 类似于单个类划分测试方法,但需扩展测试序列以 包括那些通过发送给协作类的消息而激活的操作。另一 种方法是基于特殊类的接口来划分测试。如上图,B接收 来自类A和类E的消息,可以通过将B中的方法划分为服 务于A和服务于E的操作来测试。 (3)从行为模型导出的测试 类的STD可用于帮助导出测试类(和那些与其协作 的类)的动态行为的测试序列。下图是银行应用系统 account类的STD。 所涉及的测试应覆盖所有的状态,即操作序列应该 导致account类的转换穿越所有允许的状态。
单元测试若用于测试不发生请求的类(如“栈”类,其 中操作有:pop(),push(),empty())时,同样要设计驱动程 序,封装在一个测试类(包)中,测试类负责运行测试用例 并给出结果,每个测试用例用一个操作名表示;单元测试如 果测试发生请求的类,则需要设计桩程序,封装在桩类中。
西安交通大学 刘海岩 6
西安交通大学 刘海岩 13
测试用例2:open,setup,deposit, withdraw,deposit, balance, creditLimit,withdraw,close 可随机选取其它的测试序列以测试该类对象不同的生 命历史。 (2)划分测试(partition testing) 可以减少测试类所需的测试用例的数量,采用与传统 测试的等价划分相同的方式,即输入、输出被分类,为 处理每个类别设计测试用例。划分类别的具体方法是: • 基于状态的划分 基于类操作改变类状态的能力来对类操作分类。类中 有的操作改变类的状态(如account类中的deposit和 withdraw ),有的操作不改变类的状态(如balance, summarize和creditLimit )。因此分别独立测试改变状态 的操作和不改变状态的操作。
西安交通大学 刘海岩
11
10.3 面向对象软件的测试用例设计