软件质量保证与测试作业册Word格式文档下载.docx
《软件质量保证与测试作业册Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件质量保证与测试作业册Word格式文档下载.docx(37页珍藏版)》请在冰豆网上搜索。
6、为了提高测试的效率,应该()
A、随机地选取测试数据;
B、取一切可能的输入数据作为测试数据;
C、在完成编码以后制定软件的测试计划;
D、选择发现错误可能性大的数据作为测试数据。
7、下列说法不正确的是()
A、测试不能证明软件的正确性;
B、测试员需要良好的沟通技巧;
C、QA与testing属于一个层次的概念;
D、成功的测试是发现了错误的测试。
8、下列()不属于软件缺陷。
A、测试人员主观认为不合理的地方
B、软件未达到产品说明书标明的功能
C、软件出现了产品说明书指明不会出现的错误
D、软件功能超出产品说明书指明范围
9、产品发布后修复软件缺陷比项目开发早期这样做的费用要高()。
A、1~2倍B、10~20倍C、50倍D、100倍或更高
10、软件测试的目的是()
A、发现程序中的所有错误B、尽可能多地发现程序中的错误
C、证明程序是正确的D、调试程序
11、经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该()。
A、较少B、较多C、相似D、不确定
12、导致软件缺陷的最大原因是()
A、需求分析B、设计C、编码D、测试
13、下列中不属于测试原则的是()。
A、软件测试是有风险的行为B、完全测试程序是不可能的
C、测试无法显示潜伏的软件缺陷D、找到的缺陷越多软件的缺陷就越少
14、一个成功的测试是()。
A.发现错误码B.发现了至今尚未发现的错误
C.没有发现错误码D.证明发现不了错误
15、权衡多个因素,较实用的软件测试停止标准是()。
A、测试超过了预定时间,则停止测试。
B、根据查出的缺陷总数量决定是否停止测试。
C、测试成本超过了预期计划,则停止测试。
D、分析发现的缺陷数量和测试投入成本曲线图,确定应继续测试还是停止测试。
16、第一类测试方法与第二类测试方法的本质区别体现在()。
A.执行测试的人员不同
B.执行测试的时间不同
C.执行测试的目的不同
D.执行测试的效果不同
17、下列那种不属于软件缺陷()。
A.银行POS机在用户取款时翻倍吐钱,取100,吐200
B.计算机病毒发作,屏幕出现熊猫烧香画面
C.网上售票软件反应迟钝,用户难以正常买票
D.某软件在进行修改升级之后,原来正常的功能现在出错了
2、填空题
1、软件测试是使用人工或自动的手段来_________或_________某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
2、软件质量成本包括所有由质量工作或者进行与质量有关的活动所导致的成本。
包括:
_______________、_______________、_______________。
3、软件缺陷产生的原因包括_________________、____________________、_______________________以及______________等。
4、_________是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。
它的存在会导致软件产品在某种程度上不能_____________________。
3、判断题
1、没有可运行的程序,就无法进行任何测试工作。
()
2、软件测试针对的是初级程序员编写的程序,资深程序员编写的程序无需测试。
()
3、测试就是为了验证软件已正确地实现了用户的要求。
4、测试一个程序,只需按程序的预期工作方式运行它就行了。
5、好的测试员不懈追求完美。
6、软件测试工具可以代替软件测试员。
7、在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。
8、程序员与测试工作无关。
9、我是个很棒的程序员,我无需进行单元测试。
10、软件缺陷是导致软件失效的必要,而非充分要素。
11、在软件产品计划阶段,不必进行SQA活动。
()
4、解答题
1.试分析应如何降低软件质量成本。
2.什么是PIE模型,试分析PIE模型对软件测试设计有何指导意义?
3.第一类测试方法与第二类测试方法的各自的优缺点是什么?
4.针对以下代码,请分析代码中存在的问题和缺陷。
publicclassgetScoreAverage
{publicfloatgetAverage(int[]scores)
{if(scores==null||scores.length==0)
{thrownewNullPointerException();
}
floatsum=0.0F;
intj=scores.length;
for(inti=1;
i<
j;
i++)
{sum+=scores[i];
returnsum/j;
}}
5.有程序段如下:
publicintget_max(intx,inty,intz){
intmax;
if(x>
=y)
{max=x;
else
{max=y;
if(z>
=x)
{max=z;
}
returnmax;
(1)试分析该程序段有何逻辑错误;
(2)设计1个测试数据,使得执行该测试时会执行到fault但不会触发error;
(3)设计1个测试数据,使得执行该测试时会执行到fault并触发error,但不会引起Failure;
(4)设计1个测试数据,使得执行该测试时会执行到fault,触发error,并引起Failure。
习题二
1、软件测试技术可以分为静态测试和动态测试,下列说法中错误的是()。
A、静态测试是指不运行程序,通过检查和阅读等手段来发现程序中的错误。
B、动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。
C、动态测试包括黑盒测试和白盒测试。
D、白盒测试是静态测试,黑盒测试是动态测试。
2、划分软件测试属于白盒测试还是黑盒测试的依据是()
A、是否执行程序代码B、是否能看到软件设计文档
C、是否能看到被测源程序D、运行结果是否确定
3、()把黑盒测试和白盒测试的界限打乱了。
A、灰盒测试B、动态测试C、静态测试D、失败测试
4、在软件测试用例设计的方法中,最常用的方法是黑盒测试和白盒测试,其中不属于白盒测试所关注的是()
A、程序结构B、软件外部功能C、程序正确性D、程序内部逻辑
5、下列哪项不属于黑盒测试的优点()。
A.不需要源代码
B.测试简单易行
C.可以对代码进行有针对性的测试
D.可以发现软件功能上的问题
1、动态测试的两个基本要素是_______________、__________________。
2、软件测试的W模型由两个V字组成,分别代表_________与_________过程。
3、按照是否需要知道被测试程序的内部结构,测试方法可以分为:
____________和____________。
1.黑盒测试的测试用例是根据程序内部逻辑设计的。
2.软件测试是有效的发现软件缺陷的手段。
3.集成测试计划在需求分析阶段末提交。
1.请分析黑盒测试、白盒测试、静态测试、动态测试之间的关系。
2.试对比分析黑盒测试、白盒测试各自的优缺点。
3.你认为应如何对一个软件实施测试,试结合你所参与过的软件项目,阐述软件测试工作的一般过程。
4.黑盒测试是动态测试,请分析动态白盒测试与黑盒测试的区别。
习题三
1、凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例的测试方法叫()。
A、等价类划分B、边界值分析C、错误推测法D、逻辑覆盖测试
2、黑盒测试技术中不包括()。
A、等价类划分B、边界值分析C、错误推测法D、逻辑覆盖
3、黑盒测试技术,使用最广的用例设计技术是()
A、等价类划分B、边界值分析C、错误推测法D、逻辑覆盖
4、在某大学学籍管理信息系统中,假设学生年龄的输入范围为16-40,则根据黑盒测试中的等价类划分技术,下面划分正确的是()。
A、可划分为2个有效等价类,2个无效等价类
B、可划分为1个有效等价类,2个无效等价类
C、可划分为2个有效等价类,1个无效等价类
D、可划分为1个有效等价类,1个无效等价类
5、有一组测试用例使得被测程序的每一个分支至少被执行一次,它满足的覆盖标准是()。
A、语句覆盖B、判定覆盖C、条件覆盖D、路径覆盖
6、在确定黑盒测试策略时,优先选用的方法是()
A、边界值分析法B、等价类划分C、错误推断法D、决策表方法
7、()方法根据输出对输入的依赖关系设计测试用例。
A.路径测试B.等价类C.因果图D.归纳测试
8、对于参数配置类的软件,要用()选择较少的组合方式达到最佳效果。
A、等价类划分 B、因果图法 C、正交试验法 D、场景法
9、对于业务流清晰的系统可以利用()贯穿整个测试用例设计过程并在用例中综合使用各种测试方法。
10、下列不属于黑盒测试方法的是()。
A、等价类划分B、因果图C、边界值分析D、变异测试
11、用边界值分析法,假定1<
X<
100,那么整数X在测试中应取的边界值不包括()。
A、X=1,X=100;
B、X=0,X=101;
C、X=2,X=99;
D、X=3,X=98;
1、等价类划分有两种不同的情况:
2、如果有多个输入条件,并且各个条件之间存在关联,那么仅仅只是覆盖所有的等价类还不够,还需要考虑等价类之间的____________。
3、各个被测变量的等价类总数等于其____________加上____________。
1.一个测试用例可覆盖多个有效等价类和无效等价类。
2.不同的等价类划分得到的测试用例的质量不同。
3.强健壮等价类测试中测试用例个数为各个被测变量的等价类总数的和。
1.某种信息加密代码由三部分组成,这三部分的名称和内容分别是
加密类型码:
空白或三位数字;
前缀码:
非’0’或’1’开头的三位数;
后缀码:
四位数字。
假定被测试的程序能接受一切符合上述规定的信息加密代码,拒绝所有不符合规定的信息加密代码,试用等价类划分法,分析它所有的等价类,并设计测试用例。
2.某“银行网站系统”登录界面如下图所示,试采用错误推测法,举出10种常见问题或错误,并设计10个测试用例。
3.有一个在线购物网站系统,主要功能包括登录、商品选购、在线支付完成购物等。
用户在使用这些功能时可能会出现各种情况,如账号不存在、密码错误、账户余额不足等。
设目前该系统中仅有一个账号abc;
密码为123;
账户余额200;
仅有商品A,售价均为50元,库存为15,商品B售价为50元,库存为0。
试采用场景法:
分析画出事件流图,标注出基本流和备选流;
分析生成测试场景。
对每一个场景设计相应的测试用例。
4.有一个“用户信息输入”界面如下图,输入项有3个:
姓名、昵称、手机号码,状态有两个:
填与不填。
请采用正交实验法对其进行测试。
(1)请选择一个合适的正交表
(2)根据选定的正交表进行变量映射
(3)写出测试用例
5.有一个处理单价为5角钱的饮料自动售货机软件,其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;
若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
(1)分析软件规格说明,列出原因和结果。
(2)画出因果图。
(3)列出简化后的判定表
6.某程序功能为输出某个输入日期明天的日期,例如输入2020年2月2日,则该程序的输出为2020年2月3日。
该程序有三个输入变量year、month、day,分别表示输入日期的年、月、日。
(1)请根据程序规格,分别为输入变量year、month、day划分有效等价类。
(2)分析程序的规格说明,并结合以上等价类划分的情况,给出程序所有可能采取的操作。
(3)根据
(1)和
(2),画出简化后的决策表,并为每条规则设计测试用例。
习题四
1、下列不属于白盒测试的技术是()。
A、语句覆盖B、判定覆盖C、边界值分析D、基本路径测试
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、边界值覆盖
7、调试是()
A、发现与预先定义的规格和标准不符合的问题B、发现软件错误征兆的过程
C、有计划的、可重复的过程D、消除软件错误的过程
8、使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和()
A、程序的注释B、程序的内部逻辑
C、用户使用说明书D、程序的需求说明
9、数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种()。
A、语句覆盖B、控制覆盖C、分支覆盖D、路径覆盖
10、如果一个判定中的复合条件表达式为(A>
1)or(B<
=3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例()。
A、1B、2C、3D、4
11、一个程序中所含有的路径数与()有着直接的关系。
A、程序的复杂程度B、程序语句行数
C、程序模块数D、程序指令执行时间
12、条件覆盖的目的是()
A、使每个判定中的每个条件的可能取值至少满足一次
B、使程序中的每个判定至少都获得一次"
真"
值和"
假"
值。
C、使每个判定中的所有条件的所有可能取值组合至少出现一次。
D、使程序中的每个可执行语句至少执行一次。
13、软件调试的目的是()
A、发现软件中隐藏的错误B、解决测试中发现的错误
C、尽量不发现错误以便早日提交软件D、证明软件的正确性
14、针对下面一个程序段:
If((M>
0)&
&
(N==0))
FUCTION1;
If((M==10)||(P>
10))
FUCTION2;
其中,FUCTION1、FUCTION2均为语句块。
现在选取测试用例:
M=10N=0P=3,该测试用例满足了( )。
A、路径覆盖B、条件组合覆盖C、判定覆盖D、语句覆盖
15、对下面的计算个人所得税程序中,满足判定覆盖的测试用例是()。
if(income<
800)taxrate=0;
elseif(income<
=1500)taxrate=0.05;
2000)taxrate=0.08;
elsetaxrate=0.1;
A、income=(799,1500,1999,2000)B、income=(799,1501,2000,2001)
C、income=(800,1500,2000,2001)D、income=(800,1499,2000,2001)
16、设有一段程序如下:
if(a==bandc==dore==f)doS1
elseif(p==qors==t)doS2
elsedoS3
若要达到“判定—条件覆盖”的要求,最少的测试用例数目是()
A、6B、8C、3D、4
1、代码检查的方式有三种:
_____________、_____________、_____________。
2、数据流分析就是对程序中数据的__________、__________及其之间的__________等进行分析的过程。
3、____________是逻辑覆盖标准的一种,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
1.所有满足条件组合覆盖标准的测试用例集,也满足分支覆盖标准。
2.软件测试的目的在于发现错误、改正错误。
3.条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖。
4.在白盒测试中,如果某种覆盖率达到100%,就可以保证把所有隐藏的程序缺陷都已经揭露出来了。
5.白盒测试的条件覆盖标准强于判定覆盖。
6.判定覆盖包含了语句覆盖,但它不能保证每个错误条件都能检查出来。
1.请为以下程序段设计测试用例集,要求分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖。
publicintdo_work(intA,intB){
intx=0;
if((A>
4)&
(B<
9))
{x=A-B;
}
if(A==5&
B>
28)
{x=A+B;
returnx;
}
3.请为以下程序段设计测试用例集,要求满足条件组合覆盖
publicclassTriangle{
protectedlonglborderA=0;
protectedlonglborderB=0;
protectedlonglborderC=0;
//Constructor
publicTriangle(longlborderA,longlborderB,longlborderC){
this.lborderA=lborderA;
this.lborderB=lborderB;
this.lborderC=lborderC;
}
publicbooleanisTriangle(Triangletriangle){
booleanisTriangle=false;
//checkboundary
if(triangle.lborderA>
0&
triangle.lborderB>
triangle.lborderC>
0)
//checkifsubtractionoftwoborderlargerthanthethird
if((triangle.lborderA-triangle.lborderB)<
triangle.lborderC
&
(triangle.lborderB-triangle.lborderC)<
triangle.lborderA
&
(triangle.lborderC-triangle.lborderA)<
triangle.lborderB)
{isTriangle=true;
returnisTriangle;
4.请为程序模块Function1
(1)画出程序控制流图,计算控制流图的环路复杂度
(2)导出基本路径
(3)设计基本路径覆盖测试用例
程序模块Function1代码如下:
1publicintFunction1(intnum,intcycle,booleanflag)
2{
3intret=0;
4while(cycle>
5{
6if(flag==true)
7{
8ret=num-10;
9break;
10}
11else
12{
13if(num%2==0)
14{
15ret=ret*10;
16}
17else
18{
19ret=ret+1;
20}
21}
22cycle--;
23}
24returnret;
25}
5.请对以下程序进行插桩,显示循环执行的次数
publicclassGCD{
publicintgetGCD(intx,inty){
if(x<
1||x>
100)
{
System.out.println("
参数不正确!
"
);
return-1;
if(y<
1||y>