福建师范大学《软件测试技术》作业考核试题.docx
《福建师范大学《软件测试技术》作业考核试题.docx》由会员分享,可在线阅读,更多相关《福建师范大学《软件测试技术》作业考核试题.docx(17页珍藏版)》请在冰豆网上搜索。
福建师范大学《软件测试技术》作业考核试题
软件测试技术期末考试(A卷)
一、单选题(共18题,36分)
1.下列关于软件测试的叙述中(A)是正确的。
A.白盒测试又称为逻辑驱动测试
B.穷举路径测试可以查出程序中因遗漏路径而产生的错误
C.一般而言,黑盒测试对结构的覆盖比白盒测试高
D.必须根据软件需求说明文档生成用于白盒测试的测试用例
2.质量在软件测试中被定义为(B)
A.正确程度
B.适于使用或符合要求
C.人们对软件需求的程度
D.软件的用途和适用范围
3.软件测试类型按开发阶段划分为(B)
A.需求测试、单元测试、集成测试、验证测试
B.单元测试、集成测试、确认测试、系统测试、验收测试
C.单元测试、集成测试、验证测试、确认测试、验收测试
D.调试、单元测试、集成测试、系统测试
4.下面关于软件测试的说法,( A)是错误的。
A.软件测试就是程序测试
B.软件测试贯穿于软件定义和开发的整个期间
C.需求规格说明、设计规格说明都是软件测试的对象
D.程序是软件测试的对象
5.用边界值分析法可以解决软件测试中的边界数值问题,假定X为整数,10≤X≤100,那么X在测试中应该取(C)边界值。
A.X=10,X=100
B.X=10,X=11,X=99,X=100
C.X=9,X=10,X=100,X=101
D.X=9,X=10,X=50,X=100
6.软件测试用例主要由测试输入数据和( C )两部分组成。
A.测试计划
B.测试规则
C.测试的预期结果
D.以往测试记录分析
7.与设计测试用例无关的文档是( A )
A.项目开发计划
B.需求规格说明书
C.软件设计说明书
D.源程序
8.软件测试是软件质量保证的主要手段之一,测试的成本已超过(A)的30%以上。
因此,提高测试的有效性非常重要。
A.软件开发成本
B.软件维护成本
C.软件开发成本和维护成本
D.软件研制成本
9.如果想要进行成功的测试,为其设计测试用例主要依赖于(B)。
A.黑盒测试方法
B.测试人员的经验
C.白盒测试方法
D.错误推测法
10.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A.程序的内部结构
B.程序的复杂性
C.使用说明书
D.程序的功能
11.在用逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等。
其中(D)是最强的覆盖准则。
A.语句覆盖
B.条件覆盖
C.判定-条件覆盖
D.路径覆盖
12.在设计测试用例时,(A)是用得最多的一种黑盒测试方法。
A.等价类划分
B.边界值分析
C.因果图
D.功能图
13.在黑盒测试中,着重检查输入条件的组合的测试用例设计方法是(D)。
A.等价类划分
B.边界值分析
C.错误推测法
D.因果图法
14.(D)是指为查明程序中的错误和缺陷,可能使用的工具和手段。
A.调试技术
B.测试技术
C.跟踪法
D.动态测试
15.黑盒测试方法的优点是(D)。
A.可测试软件的特定部位
B.能站在用户立场测试
C.可按软件内部结构测试
D.可发现实现功能需求中的错误
16.等价类划分完成后,就可得出(D),它是确定测试用例的基础。
A.有效等价类
B.无效等价
C.等价类表
D.测试用例集
17.针对下列程序段,对于(A,B)的取值,以下(C)测试用例组合能够满足条件覆盖的要求。
IF((A-10)==20AND(B+20)>10)C=0;
IF((A-30)<10AND(B-30)<0)B=30;
①A=50,B=-10②A=40,B=40③A=30,B=-10④A=30,B=30
A.①②
B.③④
C.①④
D.②③
18.集成测试中的自顶向下法,是从主控模块开始,沿着软件的控制层次向下移动,逐渐把各个模块结合起来。
在组装过程中,可以使用深度优先或宽度优先的策略,下图采用深度优先策略的集成顺序是(B)
A.M1-M2-M3-M4-M5-M6-M7-M8
B.M1-M2-M5-M8-M3-M6-M7-M4
C.M1-M2-M5-M8-M3-M7-M6-M4
D.M8-M5-M6-M7-M2-M3-M4-M1
二、简答题(共5题,35分)
1、为什么要进行软件测试?
软件测试的目的是什么?
使用人工或者自动手段来运行或测试某个系统的过程。
目的在于检验它是否满足规定的需求或者弄清预期结果和实际结果之间的差别。
2、软件测试分哪两种方法?
分别有哪些常用的技术?
--按照软件特性来划分测试类型有功能测试和性能测试其中功能测试包括:
逻辑功能测试界面测试易用性测试安装测试兼容性测试等性能实际上是功能的另一个指标,主要关注软件中的某一功能在特定的时间、空间条件下,功能是否使用正常;比如负载测试和压力测试都属于性能测试,两者可以结合进行。
--按照测试技术划分测试类型有黑盒测试、白盒测试和灰盒测试黑盒测试只关注输入输出,也就是程序的外在表现;白盒测试是既关注程序的外在表现,又关注程序内部结构是如何实现的;灰盒测试就是介于2者之间的;--按照开发阶段来划分测试类型有单元测试、集成测试、系统测试和验收测试单元测试又称模块测试,是针对软件设计的最小单位,单元测试需要从程序的内部结构出发设计测试用例;集成测试也叫做组装测试,是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统;系统测试是在真实的系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并最终满足用户的所有需求;验收测试是软件产品检验的最后一个环节。
按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。
3、覆盖率测试是白盒测试方法中常用的技术,请简述覆盖率测试当中的语句覆盖、判定覆盖和条件覆盖三种覆盖率测试的含义。
1.测试覆盖率
测试覆盖率是用于确定测试所执行到的覆盖项的百分比。
其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。
测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高,效果越好。
但覆盖率不是目标,而是一种手段。
测试覆盖率包括功能点覆盖率和结构覆盖率。
1)功能点覆盖率主要用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。
2)结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。
2.逻辑覆盖
根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修改条件判定覆盖、组合覆盖和路径覆盖。
(1)语句覆盖
语句覆盖是选择足够多的测试数据,使得程序中的每个可执行语句至少执行一次。
语句覆盖的缺点是对程序执行逻辑的覆盖率很低。
(2)判定覆盖
判定覆盖是通过设计足够多的测试用例,使得程序中的每一个判定至少获得一次真值和假值,或者使得程序中的每一个取真的分支或取假的分支至少经历一次,也称为分支覆盖。
判定覆盖的缺点是主要对整个表达式的最终取值进行度量,忽略了表达式的内部取值。
(3)条件覆盖
条件覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。
条件覆盖的缺点是不能够满足判定覆盖。
(4)条件判定组合覆盖
条件判定组合覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
条件判定组合覆盖的测试用例一定同时满足判定覆盖和条件覆盖。
条件判定组合覆盖的缺点是没有考虑单个判定对整体结果的影响,无法发现逻辑错误。
(5)多条件覆盖
多条件覆盖也称条件组合覆盖,是通过设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。
多条件覆盖的缺点是判定语句较多时,条件组合值比较多。
(6)修正条件判定覆盖
修正条件判定覆盖是对每一个程序模块的入口点和出口点都要考虑至少被调用一次,把每个程序的出口点和入口点作为一个判定点,要把这个判定点的所有可能的结果都执行一次。
(7)组合覆盖
组合覆盖是通过执行足够多的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。
满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和条件判定组合覆盖。
(8)路径覆盖
路径覆盖是设计足够多的测试用例,要求覆盖程序中所有可能的路径。
4、在软件测试中,什么是α测试?
什么是β测试?
它们属于哪类测试?
α测试是在开发机构的监督下,在确认测试阶段后期由个别用户对软件进行测试,目的是评价软件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。
β测试是在进行了α测试的基础上,由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性,是在软件产品正式发布前的测试。
5、如果您是测试组长,您在维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
答:
维持测试人员同开发团队中其他成员良好的人际关系的关键是专业精神和态度,让其他人员感觉到我在项目中的重要性,同时也要让其他人员感觉和我在项目中工作是快乐的!
三、分析题(共1题,29分)
(1)题目:
阅读下列说明,回答问题1至问题3,将解答填入答题处的对应栏内。
在软件测试方法中,因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的测试用例设计方法。
下面是关于使用因果图法处理单价为5角钱的饮料的自动售货机测试用例的设计。
其规格说明如下:
1.若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
2.若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;
3.若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
”
根据说明可以画出因果图,所有原因结点列在左边,所有结果结点列在右边,并加上约束条件(11、12、13、14为中间条件)
[问题1] (9分)
因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。
请列出主要的原因与原因、原因与结果之间的关系。
[问题2] (10分)
详细分析该测试的规格说明,列出原因和结果。
[问题3] (10分)
将因果图转换成判定表设计测试用例,l表示执行该动作,0表示不执行该动作,分别填入判定表中(a)-(j)的数据。
答:
根据该命题,我们可以分析出,自动售货机的业务中一共存在5个条件和5个结果,分别是:
条件:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
1.售货机〖零钱找完〗灯亮 当售货机中没有零钱的时候就有亮红灯
2.退还1元硬币当投入1元,而且售货机中没有零钱可找的时候
3.退还5角硬币 当投入1元,而且售货机中有零钱可找的时候
4.送出橙汁饮料
5.送出啤酒饮料
因果图-画条件和结果
因果图-画简单关系
在画完空白的条件和结果之后,我们可以将题目中最直接和简单的因果条件标出
1、条件“有零钱”和结果“红灯亮”是一个“非”的关系,当“有零钱”的时候,红灯是不亮的,而当售货机中“没有零钱”的时候,红灯必须要亮的。
2、条件“投1元”和条件“投5角”是一个“E”的关系,这两个动作不可能同时发生,即同时投入1元钱和5角钱(不能同时为真);但是我们允许即“不投入1元钱”也“不投入5角钱”(可以同时为假)。
3、条件“选啤酒”和条件“选橙汁”是一个“E”的关系,这两个动作不可能同时发生,即同时“选择啤酒”和“选择橙汁”(不能同时为真);但是我们允许即“不选择啤酒”也“不选择橙汁”(可以同时为假)。
4、条件“选啤酒”和条件“选橙汁”对于程序处理过程是等价的,即二者无论是价格还是系统的处理方法都是相同的,因此这两个条件可以合并为一个中间节点。
而且这两个条件之间使用“或”的关系。
5、注意,条件“投1元”和条件“投5角”不是等价关系,表面上看,他们都是“钱”,好像差不多,但是对于程序的处理过程确实完全不同的,“投5角”后完全不用判断当前售货机中是否有零钱(因为题目中规定所有的商品都是5角钱),而“投1元”就不行了。
因果图-送出商品
现在我们从结果的角度考虑,要想“出啤酒”或者“出橙汁”,从现实买卖中分析必须要有什么先决条件呢?
是的,就是“你的钱要付清”,而且你一定要选择了“啤酒”或者“橙汁”才行。
而在上面的已有因果图中,我们无法找到“钱付清”的因素,因此这时候我们可以试着再加一个中间节点,就叫“钱付清”吧。
要想获得选中的商品,则条件“钱付清”和条件“选啤酒/选橙汁”必须要同时成立,因此是“与”的关系。
因果图-应该找零钱
根据题意,当投入1元钱,而且又选中了某一种商品的时候,系统是需要找零钱的。
而现有条件和结果中并没有涉及到“应该找零钱”这种情况,因此我们还需要增加一个中间节点“应该找零钱”。
条件“投1元”和条件(中间节点)“选商品”与结果(中间)“应该找零钱”是“与”的关系,即这两个条件必须同时满足。
因果图-能够找零钱
上面已经确定了“投入1元钱”并且“选商品”,系统应该找给客户5角钱,那么接下来就要看当前售货机中是否有零钱可找了,庆幸的是,存在“有零钱”的条件;
现在系统“应该找零钱”给客户,而且恰恰又“有零钱”找给客户,那么就可以确定系统“能够找零钱”给客户了,所以这里我们又可以增加一个中间节点“能够找零钱”。
条件“有零钱”和条件(中间节点)“应该找零钱”与结果“能够找零钱”之间是“与”的关系。
因果图-1元钱付清
现在已经确定客户“投入1元钱”并且“选商品”后,系统“有零钱”可找,那么紧接着就可以找钱给客户了。
条件“能够找零钱”和结果“找5角”是“恒等”的关系;
条件“能够找零钱”和结果(中间节点)“钱付清”也是“恒等”的关系;
因果图-5角钱付清
考虑完投入1元钱后系统的处理情况,我们再来看投入5角钱后系统是如何处理的。
因为售货机中的全部商品都是5角钱的,因此就不存在找零的问题了,只要客户“投入5角”并且按下相应的商品选择按钮就好了。
所以,条件“投5角”和结果(中间节点)“钱付清”直接是“恒等”的关系。
另外,条件“投5角”和条件(中间节点)“能够找零钱”都代表金额的计算已经结束,即“钱付清”,因此条件“投5角”和条件(中间节点)“能够找零钱”与结果(中间节点)“钱付清”之间是“或”的关系。
因果图-退还1元
我们考虑完了投入5角钱及投入1元钱并找零后,最后在考虑一下退还1元钱的情况。
毫无疑问,当投入1元钱,并且选择了某种商品的时候,如果当前售货机中没有零钱可找,那么只能退还用户这1元钱了。
因此,条件“没零钱”和条件“应该找零钱”与结果“找1元”之间应该是“与”的关系,而且我们的条件中关于零钱是用了肯定的描述,即“有零钱”,要想表示没有零钱,直接使用一个“非”关就可以了。
判定表
去除无效用例
合并判定表
[问题2] (10分)
详细分析该测试的规格说明,列出原因和结果。
答:
原因:
7a/|+S&Z~0o01、售货机有零钱找
T${W5wJF02、投入1元硬币51Testing软件测试网~'?
*g5meBr7J
3、投入5角硬币51Testing软件测试网
CYO7sV_i"t
4、押下橙汁按钮
NMq#qk4m2z_"|}05、押下啤酒按钮51Testing软件测试网
i9`4h5Pd:
~jqS$d(Ja
@Bz{-c0结果:
51Testing软件测试网2qZo"P#Xm
21、售货机〖零钱找完〗灯亮51Testing软件测试网$}0hn,x%rF5oLT(`5x
22、退还1元硬币51Testing软件测试网5jX%Qr;NR
23、退还5角硬币 51Testing软件测试网.`:
Eh%C%^&P"[%{~(r2C
24、送出橙汁饮料
r9i)h)|r%f025、送出啤酒饮料51Testing软件测试网+Z(QQ\%B9Jk2gL
[问题3] (10分)
将因果图转换成判定表设计测试用例,l表示执行该动作,0表示不执行该动作,分别填入判定表中(a)-(j)的数据。
在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。