1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假” 分支至少被执行一次。
2、黑盒测试的具体技术方法 ___等价类划分法_________、 ______边界值分析法____、 _____决策表法_____、____因果图法________。 3、黑盒测试又称之为___功能 ________测试。
4、等价类划分有两种不同的情况:_有效等价类_和无效等价类。
5、根据覆盖目标的不同,逻辑覆盖又可分为:_条件组合覆盖_,_判断/条件覆盖__,__语句覆盖__,__条件覆盖_,判定覆盖,路径覆盖。
6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类_白盒测试工具_,__黑盒测试工具__和__测试管理工具_。
7、软件测试是为发现程序中的__错误__而执行程序的___过程____。 8、测试用例是由__测试输入数据_和预期的___输出数据___两部分组成。 9、白盒测试又称为__结构测试____________,可以分为_____静态测试_________和___动态测试___两大类。
10、软件是包括__程序_,__数据__,__相关文档__的完整集合。 11、边界值分析法属于 黑盒测试 。
12、单元测试是以 详细设计 说明书为指导,测试源程序代码。 13、集成测试以__概要设计__说明书指导,测试软件结构。 14、确认测试以___需求分析__说明书为指导。
15、软件开发的基本过程__需求分析___,___概要设计__,__详细设计__,___编码___,___测试__,___维护 __。
16、代码复审属于__静态测试__,不实际运行程序。
17、集成测试把模块组成成系统的测试方式:__一次性集成测试___和_____增量式集成测试__。
18.黑盒测试有两种基本方法,即:__通过测试__和___失败测试__。
二、选择题(每题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 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.判定覆盖
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.条件覆盖
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.集成测试 C.确认测试 C.用户测试 D.灰盒测试
26.下列模型哪个软件测试过程模型 ___________。(A) A.W模型 B.漠布模型 C.模 型 D.模型
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 ; (E为节点数,N为边数) (3)V(G)=区域数+ 1
2.白盒测试有几种方法?
答:白盒测试方法分为两大类:静态测试方法和动态测试方法。
静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆 盖、路径覆盖。
3.什么是软件测试,软件测试分为哪几个阶段。
答:软件测试是为了发现程序中的错误而执行程序的过程。
软件测试一般分为单元测试、集成测试,系统测试,确认测试,验收测试。
4.比较白盒测试和黑盒测试?
答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准; 黑盒测试法是通过分析程序的接口功能设计测试用例的。
四.综合题
1.为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
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;
2. 为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
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 }
答:语句覆盖测试用例: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 ;
3.某公司人事软件的工资计算模块的需求规格说明书中描述:
(1)年薪制员工:
严重过失,扣当月薪资的4%; 过失,扣年终奖的2%. (2)非年薪制员工:
严重过失,扣当月薪资的8%; 过失,扣当月薪资的4%.
根据题目内容列出条件和结果,给出决策表。 答:
条件: C1.年薪制 C2:严重过失
结果: e1:扣月4% e2: 扣月8% e3: 扣年2%
C1 C2 动作 e1 e2 e3 1 1 1 2 1 0 3 0 1 4 0 0 条件 4.看代码程序:
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),并写出独立路径。 4 6 解: (1) 控制流图:
7 9
10 12
14
13 (2)V(G)=P+1=3+1= 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
5.如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。
覆盖种类 需满足的条件 A>1,B=0 A>1,B≠0或 测试数据 A=2,B=0 A=2,B=1或 期望结果 执行S1 判定覆盖 A≤1,B=0或 A=1,B=0或 执行S2 A≤1,B≠0 A=1,B=1 A=2,B=0 A=1,B=1 执行S1 执行S2 以下四种情况各出现一次 条件覆盖 A>1 A≤1 A>1,B=0 A>1,B≠0 条件组合覆盖 A≤1,B=0 A≤1,B≠0 A=1,B=0 A=1,B=1 B=0 B≠0 A=2,B=0 A=2,B=1 执行S1 执行S2 执行S2 执行S2
6.设有一个档案管理系统,要求用户输入以年月表示的日期,假设日期限定在1999年1月--2029年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。 划分等价类并编号,下表为等价类划分的结果 输入事件 编号 有效等价类 无效等价类 日期的类型及长度 1 6位数字字符 2 有非数字字符 3 少于6位数字字符 4 多于6位数字字符 年份范围 5 在 1999--2029之间 6 小于1999 7 大于2029 月份范围 8 在01--12之 间 9 等于00 10 大于12 7.分析程序规格说明中的原因和结果 原因 C1:第一个字符是# C2:第一个字符是* C3:第二个字符是一个数字 (1)画出因果图 (2)将因果图转换成决策表
结果 e1:给出信息N e2:修改文件 e3:给出信息M
因篇幅问题不能全部显示,请点此查看更多更全内容