《软件测试技术》试题库答案
一、填空题(每空2分,共15空,分数为30分)
1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支______被执行一次。 至少
2、黑盒测试的具体技术方法 ____________、 __________、 __________、____________。
等价类划分法,边界值分析法,决策表法,因果图法 3、黑盒测试又称之为___________测试。 功能
4、等价类划分有两种不同的情况:____________和____________。 有效等价类,无效等价类
5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。 语句覆盖,判定覆盖,条件覆盖,路径覆盖
6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,____________和____________。 白盒测试工具、黑盒测试工具、测试管理工具
7、软件测试是为发现程序中的______________而执行程序的______________。 错误,过程
8、测试用例是由______________和预期的______________两部分组成。 测试输入数据 ,输出数据
1
9、白盒测试又称为______________,可以分为______________和______________两大类。 结构测试,静态测试,动态测试
10、软件是包括____________﹑____________﹑____________的完整集合。 程序,数据,相关文档
11、边界值分析法属于____________。 黑盒测试
12、单元测试是以____________说明书为指导,测试源程序代码。 详细设计
13、集成测试以____________说明书指导,测试软件结构。 概要设计
14、确认测试以____________说明书为指导。 需求分析
15、软件开发的基本过程____________,_____________,_______________,_____________,_____________,______________。 需求分析、概要设计、详细设计,编码,测试、维护 16、代码复审属于____________,不实际运行程序。 静态测试
17、集成测试把模块组成成系统的测试方式:_____________和______________。
一次性集成测试,增量式集成测试
18、黑盒测试有两种基本方法,即:_____________和______________。 通过测试,失败测试
19、Junit中的所有的Assert方法全部放在____________类,用于对比_______和实际值是否相同。
2
Assert,期望值
20、Junit是一个开放源代码的______测试框架,用于编写和运行可重复的测试。 java
21、在Junit中3.8中testXXX()测试方法必须满足几个条件:______,______和无方法参数。 public ,void
二、选择题(每题3分,共10题,分数为30分)
1. 下列哪一项不是白盒测试?(C)
A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法?(C)
A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 3.在Assert类中断言对象为NULL是_____。(C)
A.assertEquals B.assertTrue C.assertNull D.fail 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)
A.系统测试 B.集成测试 C.单元测试 D.功能测试
5.在Assert类中断言两个对象相等是_____。(A)
A.assertEquals B.assertTrue C.assertSame D.fail 6.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B)
A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖 7. 在Assert类中断言测试失败是_____。(D)
A.assertEquals B.assertTrue C.assertSame D.fail
3
8.软件测试的目的是___________。(C)
A.表明软件的正确性 B.评价软件质量 C.尽可能发现软件中的错误 D.判定软件是否合格
9.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A) A.白盒测试侧重于程序结构,黑盒测试侧重于功能 B.白盒测试可以使用测试工具,黑盒测试不能使用工具 C.白盒测试需要程序参与,黑盒测试不需要 D.黑盒测试比白盒测试应用更广泛
10.软件测试类型按开发阶段划分___________。(B) A.需要测试﹑ 单元测试﹑集成测试
B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试 C.单元测试 ﹑集成测试﹑确认测试 D.调试﹑单元测试﹑功能测试
11.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B) A. private void testXXX() B.public void testXXX() C. public float testXXX() D.public int testXXX()
12.在下面所列举中的逻辑测试覆盖中,测试覆盖最强的是__________。(B) A.条件覆盖 B.条件组合覆盖 C.语句覆盖 D.判定覆盖
13.在下面所列举中的逻辑测试覆盖中,测试覆盖最弱的是__________。(C) A.条件覆盖 B.条件组合覆盖 C.语句覆盖 D.判定覆盖
4
14.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B)
A.集成测试 B.单元测试 C.目的测试 D.确认测试
15.增量式集成测试有3种方式:自顶向下增量测试方法, 和混合增量测试方式。(B)
A.自中向下增量测试方法 B.自底向上增量测试方法 C.多次性测试 D.维护
16.Junit的TestCase类提供 和tearDown()方法,分别完成对测试环境的建立和拆除。(A) A.setUp() B.set() C.setap() D.setDown()
17. ___________方法根据输出对输入的依赖关系设计测试用例。(C) A.路径测试 B.等价类 C.因果图 D.归纳测试
18.Junit测试在单元测试阶段测试,主要用于________。(A) A. 白盒测试 B.灰盒测试 C. 黑盒测试 D.确认测试
19.不属于白盒测试的技术是___________。(C) A.路径覆盖 B.判定覆盖 C.边界值分析 D.条件覆盖
5
20.软件测试过程中的集成测试主要是为了发现___________阶段的错误码。(B)
A.需求分析 B.概要设计 C.编码 D.维护
21.增量式集成测试有3种方式: ,自底向上增量测试方法和混合增量测试方式。(A)
A.自顶向下增量测试方法 B.一次性集成测试 C.多次性测试 D.维护
22.Junit适用于java开发人员在______阶段,进行单个方法实现功能或者类本身的测试,主要用于白盒测试。(C)
A.集成测试 B.验收测试 C.单元测试 D.确认测试
23.软件测试是按照特定的规程,___________的过程。(A) A.发现软件错误 B. 说明程序正确 C.证明程序没有错误 D.设计并运行测试用例 24.一个成功的测试是___________。(B)
A.发现错误码 B. 发现了至今尚未发现的错误 C.没有发现错误码 D.证明发现不了错误
25.按照测试组织划分,软件测试可分为:开发方测试,第三方测试, ___________。(C)
A.集成测试 B.确认测试 C.用户测试 D.灰盒测试
26.下列模型哪个软件测试过程模型 ___________。(A) A.W模型 B.漠布模型
6
C.L模 型 D.G模型
27.Junit有两个包:__________和Junit.extensions。(B) A.Junit.frametest B. Junit.framework C.Junit.amework D.Junit.assert 28.单元测试一般以__________为主。(A) A.白盒测试 B. 黑盒测试 C.系统测试 D.分析测试
29.编码阶段产生的错误由__________检查出来的。(A) A.单元测试 B. 集成测试 C.系统测试 D.有效性测试
30.代码检查法有桌面检查法,走查和__________。(B) A.静态测试 B. 代码审查 C.动态测试 D.白盒测试
三﹑简答题(每题10分,共4题,分数为40分)
1.计算环路复杂度方法有哪三种? 答:(1)V(G)=判定节点数+ 1 ;
(2)V(G) = E-N+2 ; (3)V(G)=区域数+ 1
2.白盒测试有几种方法?
答:白盒测试方法分为两大类:静态测试方法和动态测试方法。
静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
7
3.什么是软件测试,软件测试分为哪几个阶段。
答:软件测试是为了发现程序中的错误而执行程序的过程。
软件测试一般分为单元测试、集成测试和系统测试。
4.比较白盒测试和黑盒测试?
答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准;
黑盒测试法是通过分析程序的接口功能设计测试用例的。
5.为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
int test(int A,int B) {
if((A>1) AND (B<10)) then X=A-B;
if((A=2) OR (B>20)) then X=A+B; return x;
}
答:语句覆盖测试用例:A=2,B=0;
判定覆盖测试用例:A=3,B=0;A=2,B=20;
条件覆盖测试用例:A=2,B=0;A=0,B=21;
6. 为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
void DoWork (int x,int y,int z) {
int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k);
} //语句块1 if ( (x==4)||(y>5) )
{ j=x*y+10; } //语句块2 j=j%3; //语句块3
8
}
答:语句覆盖测试用例:x=4、y=5、z=5;
判定覆盖测试用例::x=4、y=5、z=5;x=2、y=5、z=5; 条件覆盖测试用例:x=4、y=6、z=5 ;x=2、y=5、 z=15 ;
7.某公司人事软件的工资计算模块的需求规格说明书中描述:
(1)年薪制员工:严重过失,扣当月薪资的4%;过失,扣年终奖的2%. (2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%. 根据题目内容列出条件和结果,给出决策表。 答:条件:C1:年薪制 C2:严重过失 结果:e1:扣月4% e2: 扣月8%
e3: 扣年2% C2 动作 e1 e2 e3 8.看代码程序:
void Sort ( int iRecordNum, int iType ) 1 {
2 int x=0; 3 int y=0;
4 while ( iRecordNum> 0 ) 5 { 6
If ( iType==0 ) 7 x=y+2; 8 else 9
If ( iType==1 ) 10 x=y+10; 11 else
12 x=y+20;
13 }
9
1 1 1 √ 2 1 0 √ 3 0 1 4 0 0 √ 条件: C1 √ 14 }
要求(1)给以上代码画出控制流图(2)控制流图的环复杂度V(G),写出独立路径。
答:
(1) 控制流图:
(2)V(G)= 4 路径1:4→14
路径2:4→6→7→13 → 4 → 14 路径3:4→6→9→10→13→4→14
路径4:4→6→9→12→13→4→14
10
因篇幅问题不能全部显示,请点此查看更多更全内容