白盒测试。(C)
A.集成测试 B.验收测试 C.单元测试 D.确认测试
23.软件测试是按照特定的规程,___________的过程。(A) A.发现软件错误 B. 说明程序正确 C.证明程序没有错误 D.设计并运行测试用例 24.一个成功的测试是___________。(B)
A.发现错误码 B. 发现了至今尚未发现的错误 C.没有发现错误码 D.证明发现不了错误
25.按照测试组织划分,软件测试可分为:开发方测试,第三方测试,A.集成测试 B.确认测试 C.用户测试 D.灰盒测试
26.下列模型哪个软件测试过程模型 ___________。(A) A.W模型 B.漠布模型 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 ;
-6-
___________。(C)
(2)V(G) = E-N+2 ; (3)V(G)=区域数+ 1
2.白盒测试有几种方法?
答:白盒测试方法分为两大类:静态测试方法和动态测试方法。
静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
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
-7-
j=j%3; //语句块3 }
答:语句覆盖测试用例: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% 1 2 3 4 条件: C1 1 1 0 0 C2 1 0 1 0 动作 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 } 14 }
要求(1)给以上代码画出控制流图(2)控制流图的环复杂度V(G),写出独立路径。
答:
-8-
(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
1.从供选择的答案中选出应填入下列( )中的字句。
软件测试的目的是( A )。为了提高测试的效率,应该( B )。使用白盒测试方法时,确定测试数据应根据( C )和指定的覆盖标准。与设计测试数据无关的文档是( D )。 软件的集成测试工作最好由( E )承担,以提高集成测试的效果。 供选择的答案:
A. ① 评价软件的质量 ② 发现软件的错误
③ 找出软件中的所有错误 ④ 证明软件是正确的
B. ① 随机地选取测试数据
② 取一切可能的输入数据作为测试数据 ③ 在完成编码以后制定软件的测试计划
④ 选择发现错误的可能性大的数据作为测试数据
C. ① 程序的内部逻辑 ② 程序的复杂程度
③ 使用说明书 ④ 程序的功能
D. ① 该软件的设计人员 ② 程序的复杂程度
③ 源程序 ④ 项目开发计划
E. ① 该软件的设计人员 ② 该软件开发组的负责人
③ 该软件的编程人员 ④ 不属于该软件开发组的软件设计人
员
2.请从供选择的答案中选出应填入下列( )中的字句。
程序的三种基本控制结构是( A )。它们的共同点是( B )。结构化程序设计的一种基本方法是( C )。软件测试的目的是( D )。软件调试的目的是( E )。
-9-
供选择的答案:
A. ① 过程,子程序,分程序 ② 顺序,条件,循环
③ 递归,堆栈,队列 ④ 调用,返回,转移
B. ① 不能嵌套使用 ② 只能用来写简单的程序
③ 已经用硬件实现 ④ 只有一个入口和
一个出口
C. ① 筛选法 ② 递归法 ③ 归纳法 ④ 逐步求精法
D. ① 证明程序中没有错误 ② 发现程序中的错误
③ 测量程序的动态特性 ④ 检查程序中的语法错误
E. ① 找出错误所在并改正之 ② 排除存在错误的可能性
③ 对错误性质进行分类 ④ 统计出错的次数
3.从下列关于软件测试的叙述中,选出5条正确的叙述。 (1) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 (2) 尽量用公共过程或子程序去代替重复的代码段。 (3) 测试是为了验证该软件已正确地实现了用户的要求。 (4) 对于连锁型分支结构,若有n个判定语句,则有2n条路径。 (5) 尽量采用复合的条件测试,以避免嵌套的分支结构。
(6) GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。 (7) 发现错误多的程序模块,残留在模块中的错误也多。 (8) 黑盒测试方法中最有效的是因果图法。
(9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。 (10) 程序效率的提高主要应通过选择高效的算法来实现。
4.从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。 A.对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。○2
B.已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。○10
C.在意识到被测试模块的内部结构或算法的情况下进行测试。○9 D.为了确认用户的需求,先做出系统的主要部分,提交给用户试用。○8
E.在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。○4 供选择的答案:
-10-