简答题
1.简述软件生存期由哪些主要阶段组成,每一阶段的任务是什么p>
软件生存期由软件定义、软件开发、和运行维护三个时期组成。
(1)软件定义时期的主要任务是解决“做什么”的问题;
(2)软件开发时期的主要任务是解决“如何做”的问题;
(3)运行维护时期的主要任务是使软件持久地满足用户的需要。
2.软件工程方法包含哪几种最常用两种方法的特点。
软件工程方法包括:传统方法(结构化方法)、面向对象发法、面向服务方法、面向数据方法、形式化方法。最常用的为传统方法和面向对象方法。
(1)传统方法:采用结构化技术来完成软件开发的各项任务;
(2)面向对象方法:面向对象程序设计代表了一种全新的程序设计思路,与传统的面向过程的开发方法不同,面向对象的程序设计和问题求解更符合人们日常的思维习惯。
3.软件生存期模型有哪些各自的特点是什么r> 软件生存期模型包括瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、统一过程、基于构件的软件开发、敏捷过程。
(1)瀑布模型的特点:
1.阶段间具有顺序性和依赖性;
2.推迟实现的观点;
3.质量保证的观点。
(2)原型模型的特点:
1.有助于满足用户的需求。
2.软件产品的开发基本上是按照线性顺序进行的。
3.规格说明书文档正确描述了用户的需求,所以在开发过程中的后续阶段不会因发现规格说明书文档的错误而进行较大的返工。
(3)增量模型的特点:
1.在较短的时间内向用户提交一些有用的工作产品,即从第一个构件交付之日起用户就能做一些有用的工作;
2.逐步增加产品的功能可以使用户有充裕的时间来学习和适应新产品,从而减少全新的软件给用户、组织的冲击;
3.项目失败的风险较低;
4.优先级最高的服务优先交付。
(4)螺旋模型的特点:
1.对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
2.减少了过多的测试或测试不足所带来的风险。
3.在螺旋模型中维护只是模型的另一个周期,因而在维护和开发之间并没有本质的区别。
(5)喷泉模型:
面向对象开发软件时,在分析、设计和编码等项开发活动之间并不存在明显的边界,而各阶段在开发方法的一致性也保证了各项活动之间的无缝过渡。
(6)统一过程:
以用例驱动、以体系结构为核心、迭代及增量的软件过程模型,由UML方法和工具支持,广泛应用于各类面向对象项目。
(7)基于构件的软件开发模型:
①对该问题领域的基于构件的可用产品进行研究和评估。
②考虑构建的集成问题。
③设计软件体系结构以容纳这些软件。
④将构建集成到软件体系结构中。
⑤进行充分的测试以保证功能正常。
(8)敏捷过程:
4.结构化设计方法的 实施要点有哪些p>
5.简述基于数据流方法的设计过程。
(1)复查并精化数据流图;
(2)确定数据流图中数据流的类型,典型的数据流类型有变换型数据流和事务性数据流,数据流类型决定了映射的方法;
(3)导出初始的软件结构图;
(4)逐级分解;
(5)精化软件结构;
(6)导出接口描述和全局数据结构。
6.UML中有哪些图,每种图的作用是什么p>
(1)结构图:
1.类图:类图是描述系统中各个对象的类型以及其间存在的各种关系的图;
2.组合结构图:组合结构图是描述类和构建的内部结构的图,其中包括与系统其他部分的交互点;
3.构件图:是描述构件的组织结构和相互关系的图;
4.部署图:是描述节点、节点间的关系以及构件和节点间部署关系的图;
5.对象图:是描述在某一时刻一组对象以及它们之间的关系的图;
6.包图:描绘模型元素分组(包)以及分组之间依赖的图;
7.造型图:造型图是元模型的一种限制形式,可用于对UML进行扩展。最基本的扩展结构是构造型。
(2)行为图:
1.活动图:是描述活动、活动的执行顺序以及活动的输入与输出的图;
2.用例图:是描述一组用例、参与者以及它们之间关系的图;
3.状态图:是描述一个对象(或其他实体)在其生存期内所经历的各种状态以及状态变迁的图;
4.顺序图:是描述一组角色和由扮演这些角色的实例发送和接收的消息的图;
5.交互概览图:是以一种活动图的变种来描述交互的图:
6.通信图:描述一组角色、这些角色间的连接加件以及由扮演这些角色的实例所收发消息的图;
7.定时图:描述在线性时间上状态或条件变化的图。
7.面向对象模型的三个模型分别是什么模型的功能是什么p>
(1)功能模型(用例模型):用例模型是从用户的角度描述系统的功能,目的是提取和分析足够的需求信息;
(2)静态模型(对象模型):建立问题域的概念模型;
(3)动态模型(交互模型):描述系统的动态行为,显示对象在系统运行期间不同时刻的动态交互,主要是建立系统的交互图和行为图。
8.逻辑覆盖有哪些分别有什么特点r> 逻辑覆盖又可分为以下几种,从弱到强:
(1)语句覆盖(SC):设计足够多的测试用例,确保每条语句都被执行过。
(2)判定覆盖(DC):设计足够多的测试用例,确保每个判定都分别取真值与假值。
(3)条件覆盖(CC):设计足够多的测试用例,确保每个条件都分别取真值与假值。(一个判定里可能包含多个条件)
(4)判定/条件覆盖(DCC):设计足够多的测试用例,确保每个判定和条件分别取真值和假值。
(5)条件组合覆盖(CMC):设计足够多的测试用例,确保覆盖每个判定中的各个条件的所有组合情况。(只考虑同一个判定内的各条件组合情况)
(6)路径覆盖:设计足够多的测试用例,确保每条路径都被执行。如果程序复杂,比如包含循环的情况,路径覆盖的测试用例数将会是个天文数字,无法实现。可以采用简化了的路径覆盖,即将循环看成是一个判定,只考虑循环被执行和未执行两种情况。
9.简述基本路径覆盖的求解步骤。
(1)画出程序控制流图;
(2)计算环路复杂性;
(3)导出测试用例;
(4)准备测试用例;
(5)图形矩阵。
10.软件测试要经过哪些步骤测试与软件开发各阶段有什么关系p>
软件测试要经过的步骤是:单元测试→ 集成测试–> 确认测试–> 系统测试。
(1)单元测试又称为模块测试,是针对软件设计的最小单位—-程序设计模块—–进行正确性检验的测试工作。其目的是在于发现是模块内部可能存在的各种错误,单元测试需要从程序的内部结构触发设计测试用例。多个模块可以。平行的独立的设计测试用例。
(2)集成测试检查概要设计是否合理有效。
(3)确认测试又称为有效性测试。他的任务是验证软件的有效性,即验证软件的功能以其他特性是否与用户的要求一致。
(4)系统测试是将通过确认测试用的软件,作为整个计算机系统的一个元素,与计算机的硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行的环境下,对计算机系统进行一系列的组装测试和确认测试。
11.简述面向对象方法较之结构化方法的先进性。
面向对象方法,得益于三大特点(封装性、继承性、多态性),面对新的需求仅仅需要修改相关类,系统的结构不会有大的改变。在协作开发时,结构化开发往往不利于开发人员之间的交流,因为每一部分之间的逻辑性非常强,但比较抽象,而类是非常具体的,所以开发人员之间的交流也能更加流畅
12.简述结构化程序设计方法的基本要点r> 1、采用自顶向下、逐步求精的程序设计方法
2、使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。
3、主程序员组的组织形式。
13.什么是模块化设计的准则r> 1.模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
2.模块设计的准则:
(1)改进软件结构,提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2)模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3)软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。
(4)尽量降低模块接口的复杂程度。
(5)设计单入口、单出口的模块。
(6)模块的作用域应在控制域之内。
14.用例建模的主要步骤是什么r> 用例建模的主要步骤如下:
(1)确定业务参与者──可以是与系统有交互的外部硬件、软件、组织、人等。
(2)确定业务需求用例──参与者需要系统提供的完整功能。
(3)创建用例图──标识参与者与用例之间、用例与用例之间的关系。
15.良好的编码风格应具备哪些条件r> (1)使用标准的控制结构;
(2)有限制地使用GOTO语句;
(3)源程序文档化;
(4)满足运行工程学的输入输出风格;
数据流图:
1 工资计算系统包含如下功能:
计算工资
根据人事部门给出的出勤表和业绩表计算奖金和缺勤扣款,通过生成的奖金发放表及工资基本信息库的信息计算应发工资,根据应发工资表计算所得税,根据后勤部门给出的水电扣款及缺勤扣款表和所得税款计算出实发工资,生成实发工资表和工资清单。
打印工资清单
根据工资清单完成工资条的打印,给职工
工资转存
根据实发工资表生成职工工资存款清单并将其发送到银行请用数据流图描绘该系统。
顶层数据流图
功能级数据流图
2.请根据以下描述画出某库存管理系统的数据流图。该系统的数据流描述如下:
(1)根据计划部门转来的收货通知单和已存在的物资编码文件,建立物资采购单流水账。
(2) 根据技术部门的物资验收 告和物资采购单流水账,更新物资台账文件。
(3)对物资台账分类汇总,将结果存储于物资总账文件中。
(4)物资出库:物资使用部门填写物资出库单,包括物资编 、物资名称、物资数量、物资使用部分、负责人、经手人。系统根据物资总账文件的库存情况判断是否能够出库,如果能够出库,则记录出库单,并更新物资总账文件。
-
总务办公系统
在某机构的办公自动化信息系统中,包含了本单位购买办公用品和设备的总务管理模块。办公用品的购买申请由各科室提出,由负责总务办公室统一收集。其中,购买申请金额小于或等于500元可以由总务办公室直接审批;高于500元的购买申请由机构主管领导审批,批准的购买申请形成购买清单由采购员负责购买,同时应该纪录每次购买的账目。
在提出购买申请时,要包含如下数据:申请单位,物品名称、物品数量、预计价格、物品用途等。
每次购买完成后应该纪录如下信息:物品名称、物品数量、价格、总金额、购买日期、经办人等。 -
酒店客房管理系统有如下角色和功能:
(1)顾客通过提供相关信息,向酒店申请入住,如果申请通过,则办理入住客房,
否则将遭到拒绝;
(2)顾客在离开酒店前需要退房,退房的同时结算房费;
(3)管理员可以通过输入查询条件,查询酒店里客房的入住情况。.
试根据要求画出该系统的数据流图。 -
某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者的信息,从而快速地提供租赁服务。该系统具有以下功能:
(1)登记房主信息。对于每名房主,系统需登记其姓名、住址和联系电话,并将这些信息写入房主信息文件。
(2)登记房屋信息。所有在系统中登记的房屋都有一个唯一的识别 (对于新增加的房屋,系统会自动为其分配一个识别 )。除此之外,还需登记该房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能够容纳的房客数、租金及房屋状态(待租赁、已出租)。这些信息都保存在房屋信息文件中。一名房主可以在系统中登记多个待租赁的房屋。
(3)登记租赁者信息。所有想通过该系统租赁房屋的租赁者,必须首先在系统中登记个人信息,包括:姓名、住址、电话 码、出生年月和性别。这些信息都保存在租赁者信息文件中。
(4)租赁房屋。已经登记在系统中的租赁者,可以得到一份系统提供的待租赁房屋列表。一旦租赁者从中找到合适的房屋,就可以提出看房请求。系统会安排租赁者与房主见面。对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。
(5)收取手续费。房主登记完房屋后,系统会生成一份费用单,房主根据费用单交纳相应的费用。
(6)变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求。系统将根据房主的请求,修改房屋信息文件。 -
某教务系统具备以下功能,输入用户ID 及口令后,经验证进入教务管理系统,根据请求进行分类处理,可进行如下功能的处理:
(1)查询成绩:查询成绩以及从名次表中得到名次信息。
(2)学籍管理:根据学生总成绩确定名次信息。
(3)成绩处理:处理单科成绩并输入成绩表中。
就以上系统功能画出数据流图。
绘制程序流程图,PAD图和N-S图。(只要能有程序流程图地方,就可以有PAD图和N-S图)
1.输入三个正整数作为边长,判断该三条边是等腰三角形、等边三角形还是一般三角形。
2.输入三个数,按照从小到大排列。
3.在A[1]到A[10]中求得最大值和最小值,
逻辑覆盖法
1.画出程序流程图并用各种逻辑覆盖法设计测试用例。
1.Input(X)
2 If A>1 and B=0 then
3 X=X/A
4 End if
5 If A=2 then
6 X=X+1
7 else
8 X=X-1
9 End if
10 Output(X)
?语句覆盖(使程序中的每个可执行语句都能执行一次的测试用例):
ab(2,0);
ace(2,1)
acd(3,1)
?判定覆盖(在设计用例的时候,要设计判断语句结果为True和False的两种情况):
ab(2,0);
ace(2,1)
acd(3,1)
?条件覆盖(针对判断语句里面每个条件表达式true 和 false各取值一次):
设条件a>1取真为T1,取假为T’1;
设条件b=0取真为T2,取假为T’2;
设条件a=2取真为T3;取假为T’3;
调试用例 通过路径 条件取值 覆盖分支
(2,0) ab T1T2 ac
(2,1) ace T1T’2T3 ce
(0,1) acd T’1T’2T’3 cd
?判定–条件覆盖(判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次):
调试用例 通过路径 条件取值 覆盖分支
(2,0) ab T1T2 ac
(2,1) ace T1T’2T3 ce
(0,1) acd T’1T’2T’3 cd
?条件组合覆盖(每个判断语句中条件结果的所有可能组合至少出现一次):
1)a>1, b=0记做T1T2,第一个判断分支的真分支;
2)a 3)a=2记做T3,第二个判断分支的真分支;
4)a!=2记做T’3,第二个判断分支的假分支;
调试用例 通过路径 条件取值 覆盖组合
(2,0) ab T1T2 1)
(2,1) ace T1T’2T3 2)3)
(0,1) acd T’1T’2T’3 2)4)
?路径覆盖(覆盖程序中所有可能的执行路径):
测试用例 通过路径 覆盖条件
(2,0) ab T1T2
(2,1) ace T1T’2T3
(0,1) acd T’1T’2T’3
2.画出程序流程图并用各种逻辑覆盖法设计测试用例。
- void DoWork(int x,int y,int z)
- {
- {
- }
- j=j%3; //语句块3
答:
程序流程图如下
①语句覆盖:
设计若干测试用例,运行被测程序,使得程序中每个可执行语句至少执行一次。
测试用例的设计格式如下:
【输入的(x,y,z),输出的j】。
为上图所示程序流程图满足语句覆盖的测试用例是:
【(4,4,4),0】覆盖路径abd,执行了语句块1,执行了语句块2,语句块3。
②判定覆盖:
设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次。
事先为程序流程图中所有判断的可能取值加以标记,选择满足要求的测试用例:
对于第一个判断:
当条件x>3取真值且条件z 当条件x>3取假值且条件z 对于第二个判断:
当条件x4取真值或条件y>5取真值时,取真分支,记作T2;
当条件x4取假值或条件y>5取假值时,取假分支,记作F2;
则可选取的测试用例如下:
测试用例 通过路径 判断取值 覆盖分支
【(4,4,4),0】 abd T1T2 bd
【(2,4,11),0】 ace F1F2 ce
③条件覆盖:
设计若干测试用例,运行被测程序,使得程序中每个判断中的每个条件的可能取值至少执行一次。
事先为程序流程图中每个判断中的每一个条件的取真分支和取假分支加以标记。
第一个判断中的条件取值:
当条件x>3取真值时,记作T1,取假值时记作T1’。
当条件z 第二个判断中的条件取值:
当条件x==4取真值时,记作T3,取假值时记作T3’。
当条件y>5取真值时,记作T4,取假值时记作T4’。
则可选取的测试用例如下:
测试用例 通过路径 条件取值 覆盖分支
【(4,6,4),1】 abd T1T2T3T4 bd
【(2,4,11),0】 ace T1’T2’T3’T4’ ce
④判定-条件覆盖:
设计足够多的测试用例,使得判断中每个条件的可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。
由前面的判定覆盖和条件覆盖可得,需要设计一下两个测试用例,便可以覆盖两个判断和四个条件取值:
测试用例 通过路径 条件取值 覆盖分支
【(4,6,4),1】 abd T1T2T3T4 bd
【(2,4,11),0】 ace T1’T2’T3’T4’ ce
⑤条件组合覆盖:
设计足够多的测试用例,运行被测程序,使得每一个判断的所有可能的条件取值组合至少执行一次。
由程序流程图可得,对于每个判断的条件取值组合加以标记可得:
1)x>3,z 2)x>3,z>=10 记作T1T2’属于第一个判断的取假分支;
3)x 4)x=10 记作T1’T2’属于第一个判断的取假分支;
5)x4,y>5 记作T3T4 属于第一个判断的取真分支;
6)x4,y 7)x!=4,y>5 记作T3’T4 属于第一个判断的取真分支;
8)x!=4,y 测试用例 通过路径 覆盖条件 覆盖组合
【(4,6,4),1】 abd T1T2T3T4 1),5)
【(2,4,11),0】 ace T1’T2’T3’T4’ 4),8)
【(4,5,11),0】 acd T1T2’T3T4’ 2),6)
【(2,6,4),1】 acd T1’T2T3’T4 3),7)
⑥路径覆盖:
设计足够多的测试用例,覆盖程序中所有可能的路径。
以程序流程图为依据,可以选用一下的一组测试用例来覆盖该程序全部路径:
测试用例 通过路径 覆盖条件
【(4,6,4),1】 abd T1T2T3T4
【(2,4,11),0】 ace T1’T2’T3’T4’
- 画出程序流程图并用各种逻辑覆盖法设计测试用例。
1 Int func(int a,b,c)
2 {
3 int k=1;
4 if ( (a>0) &&(b0) ) k=k+a;
5 else k=k+b;
6 if (c>0) k=k+c;
7 return k;
8 }
答:
程序流程图:
①语句覆盖:
设计足够多的测试用例,运行被测程序,使得程序中每一条可执行语句都至少执行一次。
测试用例的设计格式:【输入(a,b,c),输出k】
②判定覆盖:
设计足够多的测试用例,运行被测程序,使得程序中的每一个判断的取真分支和取假分支都至少执行一次。
③条件覆盖:
设计足够多的测试用例,运行被测程序,使得程序中每一个判断的每一个条件所有可能取值至少执行一次。
对于第一个判断:
a>0,b0
④判定-条件覆盖:
设计足够多的测试用例,运行被测程序,使得程序中每一个判断的条件所有可能取值至少一次,同时每一个判断的取真分支和取假分支至少执行一次。
⑤条件组合覆盖:
设计足够多的测试用例,运行被测程序,使得每一个判断中的条件取值组合至少执行一次。
⑥路径覆盖:
设计足够多的测试用例,覆盖程序中所有可能的路径。
4.画出程序流程图并用各种逻辑覆盖法设计测试用例。
- int logicExample(int x, int y)
- {
- }
答:
程序流程图:
①语句覆盖
设计足够多的测试用例,运行被测程序,使得程序中每一个可执行语句至少执行一次。
测试用例的输入格式:【(x,y),magic】
②判定覆盖(分支覆盖)
设计足够多的测试用例,运行被测程序,使得程序中每一个判断的取真分支和取假分支至少执行一次。
③条件覆盖
设计足够多的测试用例,运行被测程序,使得程序中每个判断的每一个条件所有可能取值至少执行一次。
Table 1
测试用例 通过路径 条件取值 覆盖分支
④判定-条件覆盖
设计足够多的测试用例,运行被测程序,使得程序判断中每个条件的可能取值至少执行一次。同时满足程序中每个判断本身的取真分支和取假分支至少执行一次。
测试用例 通过路径 条件取值 覆盖分支
⑤条件组合覆盖
设计足够多的测试用例,运行被测程序,使得程序中每个判断的所有可能条件取值组合至少执行一次。
测试用例 通过路径 覆盖条件 覆盖组合
⑥路径覆盖
设计足够多的测试用例,覆盖程序中的每一条路径。
测试用例 通过路径 覆盖条件
- 画出程序流程图并用各种逻辑覆盖法设计测试用例。
1 int result(int x,int y,int z)
2 int k=0,j=0;
3 if (x
5 if (x==10)||(y>3))
6 j=x*y;
7 return k+j;
答:
程序流程图:
①语句覆盖:
使得程序中每一个可执行语句至少执行一次。
测试用例的设计格式【(x,y,z),j】
②判定覆盖(分支覆盖):
使得程序中每一个判断的取真分支和取假分支至少执行一次。
③条件覆盖:
使得程序中每个判断的每个条件所有可能的取值至少执行一次。
④判定-条件覆盖:
使得程序中每个判断的每一个条件所有可能的取值至少执行一次,同时满足每一个判断的取真分支和取假分支也至少执行一次。
⑤条件组合覆盖:
⑦路径覆盖:
基本路径覆盖
CSDN链接:https://blog.csdn.net/xieminyao123/article/details/79133449
1.用基本路径测试方法进行测试。
(1)画出程序的控制流图
(2)计算环路复杂性(三种方法都要用)
方法一:区域数 =
方法二:边数-节点数+2 =
方法三:判定节点数+1 =
(3)确定线性无关的基本路径集(即独立路径集合)
Path1:
Path2:
Path3:
(4)准备测试用例,确保基本路径集中的每一条路径的执行。
Path1 输入数据:
预期结果:
Path2 输入数据:
预期结果:
Path3 输入数据:
预期结果:
(5)图形矩阵
-
下例程序流程图描述了最多输入50个值(以–1作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。
-
用基本路径测试方法进行测试。
①画出程序的控制流程图
②计算程序的环路复杂性
封闭区域数+1 = 3+1 = 4
判定结点数+1 = 3+1 = 4
边数-结点数+2 = 12-10+2 = 5
③确定线性无关的路径集
Path1:3-14
Path2:3-4-5-12-13-3-14
Path3:3-4-7-8-11-12-13-3-14
Path4:3-4-7-10-11-12-13-3-14
④准备测试用例,确保每一条独立路径都别执行到
Path1 输入数据
预期结果
Path2 输入数据
预期结果
Path3 输入数据
预期结果
Path4 输入数据
预期结果
4. 用基本路径测试方法进行测试。
①画出程序控制流图
②计算程序环路复杂性
③确定线性无关基本路径集(独立路径集)
④准备测试用例,确保每一条独立路径都被执行到。
- 针对test函数按照基本路径测试方法设计测试用例。
int Test(int i_count, int i_flag)
{
1 int i_temp=0;
2 while (i_count>0)
{
3 If (0 == i_flag)
{
4 i_temp=i_count+100;
5 break;
}
6 else{
7 If (1==i_flag)
{
8 i_temp=i_temp+10;
}
9 else
{
10 i_temp=i_temp+20;
}
}
11 i_count–;
}
12 return i_temp;
}
答:
6.判定2000-2500年中的每一年是否是闰年,将结果输出。(能被4整除,不能被100整除的年份是闰年;能被100整除,又能被400整除的年份是闰年)
(1)画出该算法的流程图
(2)设计基本路径测试。
(3)画出该算法的N-S图和pad图。
等价类测试用例
1.假定一台ATM机允许提取的增量为50元,且一次提取的金额不超过2000元,运用等价类划分法和边界值的思想写提取金额的测试用例。
等价类表
输入数据 有效等价类 无效等价类
增量大小 50(1) 不是50(2)
金额数量 50-2000之间50的倍数(3) 2000(5)
测试用例表
测试用例编 测试用例 等价类编
1 100 (1)(3)
2 2010 (2)(5)
3 40 (4)
2.有一个 表处理系统,要求用户输入处理 表的日期。假设日期限定在2000年1月至2050年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。用等价类划分法设计测试用例,来测试程序的日期检查功能。
等价类表
输入数据 有效等价类 无效等价类
日期的长度和类型 6位数字字符(1) 非数字字符(2),大于6位数字字符(3),小于6位数字字符(4),小数(5)
年份范围 2000~2050(6) 小于2000(7),大于2050(8)
月份范围 1~12(9) 等于00(10),大于12(11)
有效等价类测试用例表
测试用例 覆盖的有效等价类 预期结果
200101 (1),(6),(9) 有效日期
无效等价类测试用例表
测试用例 覆盖的无效等价类 预期结果
abcdef (2) 无效日期
2001010 (3) 无效日期
20010 (4) 无效日期
20010.1 (5) 无效日期
199901 (7) 无效日期
205101 (8) 无效日期
200100 (10) 无效日期
200113 (11) 无效日期
3.某城市电话 码由三部分组成,分别是:
地区码—— 空白或三位数字;
前缀—— 非‘0’或‘1’开头的三位数字;
后缀—— 4位数字。
假定被测程序能接受一切符合上述规定的电话 码, 拒绝所有不符合规定的电话 码。要求: 使用等价类方法给出步骤,并设计测试用例表。
等价类表
输入数据 有效等价类 无效等价类
地区码 空白或三位数字(1) 大于三位数字(2),小于三位数字(3)
前缀 非0或1开头的三位数字(4) 以0或1开头的数字(5)
后缀 4位数字(6) 大于4位数字(7),小于4位数字(8)
有效等价类测试用例表
测试用例 覆盖的有效等价类 预期结果
无效等价类测试用例表
测试用例 覆盖的无效等价类 预期结果
- 有以下一个统计系统,请用等价类和边界值方法分析,并编写测试用例。(要求写出等价类表,边界值表,测试用例表)
数据要求:
(1)编 :1——500之间的整数,不能为空,不能重复。
(2)姓名:3——100个字符,不能为空。
(3)工资:1.00——3000.00之间的小数(或整数),可以为空,小数点后最多保留2位。
(4)住址:0——300个字符。
等价类表
输入数据 有效等价类 无效等价类
编 1~500整数(1) 小数(2),非数字字符(3),小于1(4),大于500(5),重复(6)
姓名 3~100个字符(7) 小于3个字符(8),大于100个字符(9)
工资 1.00~3000.00小数或整数(10) 小于1.00(11),大于3000.00(12),保留小数点后三位(13)
住址 0~300个字符(14) 大于300个字符(15)
有效等价类的测试用例
测试用例
(编 、姓名、工资、住址) 覆盖的有效等价类 预期结果
无效等价类的测试用类
测试用例(编 、姓名、住址、工资) 覆盖的无效等价类 预期结果
- 某保险公司的人寿保险的保费计算方式为:投保额×保险费率
其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表1所示。
表1 保险公司计算保费费率的规则
年龄(1-99) 性别 婚姻
20~39 40~59 其它 M F 已婚 未婚
6点 4点 2点 5点 3点 3点 5点
分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)和测试用例表。
答:
等价类表
输入数据 有效等价类 无效等价类
年龄 1~99(1) 0(2),大于99(3),小数(4),非数字字符(5)
性别 男性或女性(6) 除F、M字符之外(7)
婚姻 已婚或未婚(8) 除T、F字符之外(9)
有效等价类的测试用例
测试用例 覆盖的等价类 预期结果
45,男性,已婚 (1),(6),(8) 有效
无效等价类的测试用例
测试用例 覆盖的等价类 预期结果
0,男性,已婚 (2) 无效
100,男性,已婚 (3) 无效
13.4,男性,已婚 (4) 无效
Ab,男性,已婚 (5) 无效
34,P,已婚 (7) 无效
34,男性,k (9) 无效
-
假设汽车的车牌 可由车主人在规定范围内自选,若其规定为:
(1) 车牌上应有7个字符;
(2) 为首的字符限定为汉字“京”;
(3) 第2个字符可任选一字母(A~Z);
(4) 第3~7个字符可选任意数字。
请为相关的处理程序采用等价类划分方法设计等价类表及相应的测试用例。 -
某用户的输入密码设定有如下规则:密码共6位,第一位必须由字母组成;假定设计的程序可接受所有符合规定的密码,请使用等价类划分法为其设计测试用例,并给出预期结果是有效还是无效。
-
变量的命名规则一般规定如下:变量名的长度不多于30个字符(不考虑长度为0),第一个字符必须为英文字母,其他字母可以是英文字母、数字以及下划线的任意组合。请用等价类划分方法设计等价类表及相应的测试用例。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!