软件测试复习大题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V(G)=P+1=3+1=4。
(2)找出独立路径
独立路径必须包含一条的定义之前不曾用到的边。根据上面计算的圈复杂度,可得出四个独立的
路径:
路径 1:1-2-3-4-5-9-3-10
路径 2:1-2-3-4-6-7-9-3-10;
路径 3:1-2-3-4-6-8-9-3-10;
路径 4:1-2-3-10。
3、你认为一个优秀的测试工程师应该具备哪些基本素质和专业素质?并说明理由。 答:一个优秀的测试工程师应该具备的基本素质有:责任心、沟通能力、团队精神、自信心、耐
心、怀疑精神、洞察力、幽默感等。 应具备的专业素质有:有竞争力的测试人员要具有三方面的技 能:计算机专业技能、测试专业技能、软件编程技能。
4、简述白盒测试中覆盖测试的种类及其之间的关系 1、语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至 少执行一次。 2、判定覆盖:设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支 至少执行一次。 3、条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能 取值至少执行一次。 4、判定/条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个 可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。 5、条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组 合至少执行一次。 6、路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。
自顶向下测试的主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的 框架。它的主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示 测试数据有一定困难。
自底向上的优点在于不需要桩模块,需用的驱动模块比较少。它的主要缺点在于,直到最后 一个模块被加进去之后才能看到整个程序(系统)的框架。
件和循环集设计测试用例,对软件的逻辑路径进行测试。在程序的不同点检验程序的状态,来进行判 定其实际情况是否和预期的状态相一致。
白盒测试包括:逻辑覆盖、基路径测试、数据流测试、程序插装等。
9、请简述自顶向下和自底向上两种集成测试方法,并比较两者的优点和缺点。 答:自顶向下集成测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺 序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集成。 自底向上集成测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,由于是从最 底层开始集成,所以也就不再需要使用桩模块进行辅助测试。
while (Num > 0)
③
{
if( Type = = 0)
④
x = y + 2;
⑤
else
{
if( Type = = 1 ) ⑥
x =y+ 5;
⑦
else
x = y+ 10;
⑧
}
Num--;
⑨
}
}
⑩
(1)请用三种方法计算控制流图的圈复杂度V(G)
(2)找出独立路径。
(3)请使用基本路径测试法设计测试用例。
测试用例如下表所示:
判定覆盖 条件覆盖 判定/条件覆盖
路径覆盖
测试用例
X=3、A=2、B=0 X=1、A=1、B=0 X=3、A=1、B=0 X=1、A=2、B=1 X=3、A=2、B=0 X=1、A=1、B=1 X=3、A=2、B=0 X=1、A=1、B=0 X=1、A=2、B=1 X=1、A=3、B=0
5、什么是软件测试?并简述软件测试原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件
开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试过程中应注意和遵循的原则: (1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。 (2)测试应当有重点。 (3)事先定义好产品的质量标准。 (4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。 (5)穷举测试是不可能的。 (6)第三方进行测试会更客观,更有效。 (7)软件测试计划是做好软件测试工作的前提。 (8)测试用例是设计出来的,不是写出来的。 (9)对发现错误较多的程序段,应进行更深入的测试。 (10)重视文档,妥善保存一切测试过程文档。
编号
5
6 7 8 9 10 11 12 13 14 15
3
3、分析程序:
void DoWork (int x,int y,int z) {
int k=0,j=0; if ( (x>6)&&(z<12) ) { k=x*y+11;
j= k-z+9; } if ( (x==11)||(y>8) ) { j=x/y+10; } j=j*3; } 该程序的流程图控制图如下: (1) 写出语句覆盖的测试用例
覆盖全部条件
4、某程序规定:“…对功率大于 50 马力的机器、维修记录不全或已运行 10 年以上的机器,应给予 优先的维修处理…”。这里假定:“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。请 建立判定表。
答:根据问题中描述的输入条件和输出结果,列出所有的条件桩和动作桩。其中 条件桩有三项:1)功率大于50 马力吗? 2)维修记录不全吗? 3)运行超过10 年吗? 动作桩有两项:1)进行优先处理;2)作其他处理; 判定表如下表所示:
时,把被测试程序当作一个黑盒,在不考虑程序内部结构的内部特性、测试者只知道该程序输入和输 出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测 试用例和推断测试结果的正确性。
黑盒测试的方法包括:边界值分析、等价类测试、基于决策表的测试和因果图等。
8、什么是白盒测试?白盒测试主要采用哪些测试方法? 答:白盒测试又称为结构测试、逻辑驱动测试。它依赖于对程序细节的严密的检验。针对特定条
(2) 写出判定覆盖的测试用例
(3) 写出条件覆盖的测试用例
(4) 写出条件/判定覆盖的测试用例
(5) 写出组合覆盖的测试用例
a
F X>6 && z<12
Tb
c
执行语句块1
F X==11 || y>8
Td
e
执行语句块2
执行语句块3
覆盖类型
测试用例
经过 路径
说明
语句覆盖 X=11,Y=9,Z=5 abd
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。请写出 每个输入条件的有效等价类和无效等价类。
输入条件 地区码 前缀 后缀
有效等价类 空白 四位数
200-999
4 位数字
编号 1 2
3
4
无效等价类
有非数字字符
少于四位数字
多于 4 位数字 有非数字字符 起始位为’0’ 起始位为’1’ 少于 3 位数字 多于 3 位数字 有非数字字符 少于 4 位数字 多于 4 位数字
12345678
功率大于 50 马力吗?
YYYYNNN
条件 维修记录不全吗?
YYNNYYNN
运行超过 10 年吗?
YNYNYNYN
进行优先处理 动作
作其他处理
√√√
√
√
√
√
√
4
5、简述逻辑覆盖中判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖的含义?下图为某程序段的流 程图(图 1),请用判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖设计足够的测试用例。
Test10 Test11 Test12 Test13
1
15 2001 2001.1.16
2
15 2001 2001.2.16
11
15 2001 2001.11.16
12
15 2001 2001.12.16
2、某城市电话号码由三部分组成,分别是:地区码——空白或 4 位数字;前 缀——为三位数字, 但不能 “0”,“1”开头; 后 缀——4 位数字。
(3)导出测试用例
用例编号路径 1 2 3
4
输入数据 路径1:1-2-3-4-5-9-3-10
执行路径
a,c,e a,b,d a,b,e a,b,e a,c,e a,b,d a,c,e a,b,d a,b,e a,c,d
5
6、以下代码由 C 语言书写,其控制流图如图所示。请按要求回答问题。
void sort( int Num, int Type ){
int x =0;
①
int y =0;
②
判定覆盖
X=11,Y=9,Z=5 X=5,Y=5,Z=10
abd ace
条件覆盖
X=11,Y=10,Z=5 X=2,Y=5,Z=15
abd ace
条件判定 X=11,Y=9,Z=5 abd 组合覆盖 X=2,Y=5,Z=15 ace
X=11,Y=9,Z=5 abd 条件组合 X=2,Y=5,Z=15 ace
2
二、软件测试案例题 1、有函数 f(x,y,z),其中 x∈[1950,2050],y∈[1,12],z∈[1,31],请写出该函数采用边界值分析法设 计的测试用例。
测试用例 mouth day year 预期输出
Test1 Test2 Test3 Test4 Test5
6
15 1950 1950.6.16
1
6、请列举 5 条软件测试的原则,并简单说明各原则的内容。 答:(1)可追溯性.所有的测试都应追溯到用户需求。
(2)尽早开展预防性测试.测试工作进行得越早,越有利于提高软件质量和降低软件的质量成本。 (3)投入/产出原则。在满足软件预期的质量标准时,应确定质量的投入/产出比。 (4)回归测试.修改缺陷后,应集中对软件的可能受影响的模块/子系统进行回归测试,以确保修
覆盖 X=11,Y=9,Z=15 acd X=10,Y=6,Z=5 abe
每条可执行语句至少都执行一次
总共四个分支,至少各执行了一次
每个判断的每个条件的每个可能取值至少执行一 次。 共四个条件:X>6 X=11 Y>8 Z<12 每个判断的每个条件的所有可能取值至少执行一 次,并且每个可能的判断结果也至少执行一次
答:(1)下面用三种方法计算圈复杂度:
流图中区域的数量对应于圈复杂度;从控制流图中可以很直观的看出,其区域数为 4。因此其圈
复杂度为 4。
通过公式:V(G)=E-N+2 来计算。E 是流图中边的数量,在本例中 E=11,N 是流图中结点的数量,
在本例中,N=9,V(G)=11-9+2=4。
通过判定结点数计算 V(G)=P+1,P 是流图 G 中判定结点的数量。本例中判定节点有 3 个,即 P=3,
图1
答: 判断覆盖:设计用例,使程序中的每个逻 辑判断的取真和取假分支至少经历一次;
条件覆盖:设计用例,使判断中的每个条 件的可能取值至少满足一次;
判断/条件覆盖:设计用例,使得判断中 的每个条件的所有可能结果至少出现一次,而 且判断本身所有可能结果也至少出现一次;
路径覆盖:设计足够的测试用例,使程序 的每条可能路径至少执行一次。
一、简答题 1、简要回答软件测试的目的和原则
答:软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。 测试 是为了证明程序有错,而不是证明程序无错。 一个成功的测试是发现了至今未发现的错误的测试。 软 件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全 的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密 的测试用例,等等。
6
15 1951 1951.6.16
6
15 2000 2000.16
6
15 2049 2049.6.16
6
15 2050 2050.6.16
Test6 Test7 Test8 Test9
6
1
源自文库2000 2000.6.2
6
2
2000 2000.6.3
6
30 2000 输入日期超界
6
31 2000 day 超出[1.31]
改缺陷后不引入新的软件缺陷。 (5)80/20 原则.80%左右的缺陷主要来自 20%左右的模块/子系统,因此要花较多的时间和代价
测试那些具有更多缺陷数目的程序模块/子系统。 (6)设立独立的测试机构或委托第三方测试。
7、什么是黑盒测试?黑盒测试主要采用哪些测试方法? 答:黑盒测试又称为功能测试、数据驱动测试。它从用户观点出发的测试。用这种方法进行测试
2、软件测试分哪两种方法?分别适合什么情况? 答:软件测试方法一般分为两种:白盒测试与黑盒测试。白盒测试又称为结构测试、逻辑驱动测
试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;黑盒测试 又被称为功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输 入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。