A.X=1,X=100,X=2,X=99B.X=0,X=1,X=100,X=101
C.X=-1,X=0,X=1D.X=0,X=101
5.在确定黑盒测试策略时,优先选用的方法是B
A.边界值分析法(B)等价类划分(C)错误推断法(D)决策表方法
6.在黑盒测试中,着重检查输入条件组合的方法是(C)。
A)等价类划分法B)边界值分析法C)因果图法D)都不是
二、判断题:
1、用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(X)
2、黑盒测试方法中最有效的是因果图法。
(X)
3、黑盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。
(∨)
4、边界测试中所选择的输入测试数据一定是有效数据。
(×)
三、简答:
1、什么是黑盒测试,有哪些主要方法?
黑盒测试又叫功能测试,它主要关注被测软件功能的实现,而不是其内部逻辑。
在黑盒测试中,被测对象的内部结构、运作情况对测试人员是不可见的,测试人员把被测试的软件系统看成是一个黑盒子,并不需要关心盒子的内部结构和内部特性,而只关注于软件产品的输入数据和输出结果,从而检查软件产品是否符合它的功能说明。
黑盒测试有多种方法,比如场景法、等价类划分、边界值分析、因果图法、决策表法等。
2、等价类划分的原则是什么?
等价类划分法把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。
每一类的代表性数据在测试中的作用等价于这一类中的其他值。
在划分等价类时,有一些规则应该遵循。
●如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类。
例如:
输入值是选课人数,在0到100之间,那么有效等价类是:
①0≤学生人数≤100;无效等价类是:
②学生人数<0;③学生人数>100。
●如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。
例如:
输入值是日期类型的数据。
那么有效等价类是日期类型的数据;无效等价类是非日期类型的数据。
●如果输入是布尔表达式,可以分为一个有效等价类和一个无效等价类,比如要求密码非空,则有效等价类为非空密码,无效等价类为空密码。
●如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类。
例如:
输入条件“职称”的值是初级、中级或高级,那么有效等价类应该有3个:
①初级;②中级;③高级;无效等价类有一个:
④其他任何职称。
●如果规定了输入数据必须遵循的规则,可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的角度违反规则)。
3、边界值选定的原则是什么?
边界值分析法是一种补充等价类划分法的黑盒测试方法,它不是选择等价类中的任意元素,而是选择等价类边界的测试用例。
用边界值分析法设计测试用例时应当遵守几条原则:
●如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例。
如以a和b作为输入条件,测试用例应当包括a和b,以及略大于a和略小于b的值;
●若规定了值的个数,应分别以最大、最小个数和稍小于最小和稍大于最大个数作为测试用例;
●针对每个输出条件,也使用上面的两条原则;
●如果程序规格说明书中提到的输入或输出范围是有序的集合,如顺序文件、表格等,应注意选取有序集的第一个和最后一个元素作为测试用例;
●分析规格说明,找出其他的可能边界条件。
4、因果图包括几个部分,分别是什么?
因果图法是一种黑盒测试方法,它从自然语言书写的程序规格说明书中寻找因果关系,即输入条件与输出和程序状态的改变,通过因果图产生判定表。
●恒等:
若原因出现则结果出现,若原因不出现则结果不出现;
●非(~):
若原因出现则结果不出现,若原因不出现则结果反而出现;
●或(∨):
若几个原因中有一个出现则结果出现,若几个原因都不出现则结果不出现;
●与(∧):
若几个原因都出现结果才出现,若其中一个原因不出现则结果不出现。
原因与原因之间,结果与结果之间可能存在的约束关系:
从输入考虑,有4种约束:
●E约束(互斥):
表示a和b两个原因不会同时成立,最多有一个可以成立;
●I约束(包含):
表示a和b两个原因至少有一个必须成立;
●O约束(唯一):
表示a和b两个条件必须有且仅有一个成立;
●R约束(要求):
表示a出现时,b也必须出现。
从输出考虑,有1种约束:
●M约束(强制):
表示a是1时,b必须为0。
5、如何用场景法进行黑盒测试,如何选定场景?
应用场景法进行黑盒测试的步骤如下:
●根据规格说明,描述出程序的基本流和各个备选流;
●根据基本流和各个备选流生成不同的场景;
●对每一个场景生成相应的测试用例;
●对生成的所有测试用例进行复审,去掉多余的测试用例,对每一个测试用例确定测试数据。
●用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流。
●基本流:
采用黑直线表示,是经过用例的最简单路径,表示无任何差错,程序从开始执行到结束;
●备选流:
采用不同颜色表示,一个备选流可以从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中。
第三套期末考试复习题
一、单项选择题:
1、用黑盒技术设计测试用例的方法之一为(a)
A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试
2、以程序的内部结构为基础的测试用例技术属于(d)。
A)灰盒测试B)数据测试C)黑盒测试D)白盒测试
3、在进行单元测试时,常用的方法是(a)
A)采用白盒测试,辅之以黑盒测试B)采用黑盒测试,辅之以白盒测试
C)只使用白盒测试D)只使用黑盒测试
4、在边界值分析中,下列数据通常不用来做数据测试的是(b)。
A)正好等于边界的值B)等价类中的等价值
C)刚刚大于边界的值D)刚刚小于边界的值
5、通常可分为白盒测试和黑盒测试。
白盒测试是根据程序的(c)来设计测试用例,
黑盒测试是根据软件的规格说明来设计测试用例。
A)功能B)性能C)内部逻辑D)内部数据
6、如果一个判定中的复合条件表达式为(A>1)or(B<=3),则为了达到100%的条件
覆盖率,至少需要设计多少个测试用例(b)。
A)1B)2C)3D)4
7、如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的(A)
(A)判定覆盖(B)条件覆盖
(C)判定/条件覆盖(D)组合覆盖
8、使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和(B)
(A)程序的注释(B)程序的内部逻辑
(C)用户使用说明书(D)程序的需求说明
9、条件覆盖的目的是(A)
(A)使每个判定的所有可能的条件取值组合至少执行一次
(B)使程序中的每个判定至少都获得一次“真”值和“假”值。
(C)使程序中的每个判定中每个条件的可能值至少满足一次。
(D)使程序中的每个可执行语句至少执行一次。
10、一个程序中所含有的路径数与____有着直接的关系。
(A)
(A)程序的复杂程度(B)程序语句行数
(C)程序模块数(D)程序指令执行时间
11、不属于逻辑覆盖方法的是(d)。
A.组合覆盖B.判定覆盖
C.条件覆盖D.接口覆盖
12、(d)是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。
A、条件覆盖B、组合覆盖
C、判定覆盖D、语句覆盖
13、(a)是设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
A、判定-条件覆盖B、组合覆盖
C、判定覆盖D、条件覆盖
14、如下图所示的N-S图,至少需要(b)个测试用例完成逻辑覆盖。
A.12B.48
C.27D.18
15.覆盖准则最强的是(D)。
A)语句覆盖B)判定覆盖
C)条件覆盖D)路径覆盖
16.发现错误能力最弱的是(A)。
A)语句覆盖B)判定覆盖
C)条件覆盖D)路径覆盖
17.实际的逻辑覆盖测试中,一般以(C)为主设计测试用例。
A)条件覆盖B)判定覆盖
C)条件组合覆盖D)路径覆盖
18.下面(D)方法能够有效地检测输入条件的各种组合可能引起的错误。
A)等价类划分B)边界值分析
C)错误推测D)因果图
19.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A)程序内部逻辑B)程序的复杂度C)使用说明书D)程序的功能
二、判断题:
(01)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
对
(02)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。
错
(03)软件测试员可以对产品说明书进行白盒测试。
错
(04)软件测试员无法对产品说明书进行白盒测试。
对
(05)白盒测试的“条件覆盖”标准强于“判定覆盖”。
错
三、简答:
1、什么是白盒测试,包括哪些技术?
白盒测试,有时也称为玻璃盒测试、结构化测试、逻辑驱动测试等,它关注软件产品的内部细节和逻辑结构,即把被测的程序看成是一个透明的盒子。
白盒测试利用构件层设计的一部分而描述的控制结构来生成测试用例,需要对系统内部结构和工作原理有一个清楚的了解。
白盒测试的准备时间较长,如果要完成覆盖全部程序语句、分支的测试,一般要花费比编程更长的时间。
白盒测试对技术的要求较高,测试成本也比较大。
白盒测试也有多种方法,比如代码检查法,静态结构分析法,程序插桩技术,逻辑覆盖法,基本路径法等。
2、代码检查法主要包括哪些主要内容,可以产生哪些基本因素?
代码检查法包括桌面检查、代码审查和走查等。
它主要检查代码和设计的一致性,代码对标准的遵循,可读性,代码逻辑表达正确性,代码结构合理性等方面;发现程序中不安全、不明确和模糊部分,找出程序中不可移植部分;发现违背程序编写风格问题。
其中包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
通过代码检查法可以获得软件组成的重要基本因素,例如变量标识符、过程标识符、常量等,组合这些基本因素就可以得到软件的基本信息,包括:
●标号交叉引用表,列出在各模块出现的全部标号,在表中标出标号的属性,包括已说明、未说明、已使用、未使用,表中还包括在模块以外的全局标号、计算标号等;
●变量交叉引用表,在表中应标明各变量的属性,包括已说明、未说明、隐式说明、类型及使用情况,进一步还可以区分是否出现在赋值语句的右边,是否属于普通变量、全局变量或特权变量等;
●子程序、宏和函数表,在表中列出各个子程序、宏和函数的属性,包括已定义、未定义和定义类型,参数表、输入参数个数、顺序、类型,输出参数个数、顺序、类型,已引用、未引用、引用次数等;
●等价表,列出在等价语句或等值语句中出现的全部变量和符号;
●常数表,列出全部数字常数和字符常数,并指出它们在哪些语句中首先被定义。
3、程序插桩的基本原则是什么?
程序插桩技术是借助往被测程序中插入操作来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。
在程序的特定部位插入记录动态特性的语句,最终是为了把程序执行过程中发生的一些重要历史事件记录下来。
设计插桩程序时需要考虑的问题如下:
●需要探测哪些信息;
●在程序的什么部分设置探测点;
●需要设置多少个探测点;
其中第一个问题需要结合具体情况解决,并不能给出笼统的回答。
关于第二个问题,在实际测试中通常在以下一些部位设置探测点:
●程序块的第一个可执行语句之前;
●for,do,dowhile,dountil等循环语句处;
●if,elseif,else,endif等条件语句各分支处;
●输入或输出语句之后;
●函数、过程、子程序调用语句之后;
●return语句之后;
●goto语句之后。
关于第三个问题,原则是需要考虑如何设置最少探测点的方案。
一般情况下,在没有分支的程序段中只需要一个计数语句,如果出现了多种控制结构,使得整个结构十分复杂,则需要针对程序的控制结构进行具体的分析。
4、逻辑覆盖法包括哪些内容,分别要求达到怎样的代码覆盖率?
逻辑覆盖法是常用的一类白盒动态测试方法,以程序内部逻辑结构为基础,通过对程序逻辑结构遍历实现程序测试的覆盖。
逻辑覆盖法是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。
从覆盖源程序语句的详尽程度,可以分为语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、多条件覆盖和修正条件判定覆盖。
1.语句覆盖
语句覆盖就是使程序中每条语句都能被执行一次
2.判定覆盖
判定覆盖指设计足够的测试用例,使得每一个判定获得每一种可能的结果至少一次。
3.条件覆盖
条件覆盖指设计足够的测试用例,使得程序中每个判定中的每个条件的可能值只是被满足一次。
4.条件判定覆盖
条件判定覆盖是判定覆盖和条件覆盖的组合,指的是设计足够的测试用例,使得判定中每个条件的所有可能的取值至少出现一次,并且每个判定取到的各种可能的结果也至少出现一次。
5.多条件覆盖
多条件覆盖指的是设计足够的测试用例,使得判定条件中每一个条件的可能组合至少出现一次。
6.修正条件判定覆盖
修正条件判定覆盖需要足够的测试用例来确定每个条件能够影响到包含的判定的结果。
每一个程序模块的入口和出口点都要考虑要至少被调用一次,从每个程序的判定到所有可能的结果值要至少转换一次。
5、给出白盒测试与黑盒测试的不同?
白盒测试和黑盒测试是两类软件测试方法,传统的软件测试活动基本上都可以划分到这两类测试方法中。
下表给出了两种方法的一个基本比较。
黑盒测试和白盒测试比较
黑盒测试
白盒测试
不涉及程序结构
考察程序逻辑结构
用软件规格说明书生成测试用例
用程序结构信息生成测试用例
可适用于从单元测试到系统验收测试
主要适用于单元测试和集成测试
某些代码段得不到测试
对所有逻辑路径进行测试
白盒测试和黑盒测试各有侧重点,不能相互取代,在实际测试活动中,这两种测试方法不是截然分开的。
通常在白盒测试中交叉着黑盒测试,黑盒测试中交叉着白盒测试。
相对来说,白盒测试比黑盒测试成本要高得多,它需要测试在可以被计划前产生源代码,并且在确定合适数据和决定软件是否正确方面需要花费更多的工作量。
第四套期末考试复习题
一、单项选择题:
1.单元测试中用来模拟被测模块调用者的模块是(C)
(A)父模块(B)子模块
(C)驱动模块(D)桩模块
2.侧重于观察资源耗尽情况下的软件表现的系统测试被称为(B)
(A)强度测试(B)压力测试
(C)容量测试(D)性能测试
3.不属于单元测试内容的是(A)
(A)模块接口测试(B)局部数据结构测试
(C)路径测试(D)用户界面测试
4.对Web网站进行的测试中,属于功能测试的是(B)
(A)连接速度测试(B)链接测试
(C)平台测试(D)安全性测试
5.在进行单元测试时,常用的方法是(B)
(A)采用黑盒测试,辅之以白盒测试;
(B)采用白盒测试,辅之以黑盒测试;
(C)只使用黑盒测试;
(D)只使用白盒测试。
6、某次程序调试没有出现预计的结果,下列(b)不可能是导致出错的原因。
A.变量没有初始化B.编写的语句书写格式不规范
C.循环控制出错D.代码输入有误
7、单元测试中设计测试用例的依据是(d)。
A)概要设计规格说明书B)用户需求规格说明书
C)项目计划说明书D)详细设计规格说明书
8、集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性(a)
A)正确性B)可靠性C)可使用性D)可维护性
9、不属于集成测试步骤的是(D)
A、制定集成计划B、执行集成测试
C、记录集成测试结果D、回归测试
10、在软件修改之后,再次运行以前为发现错误而执程序曾用过的测试用例称为(c)
A.单元测试B.集