西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)
一、简答题(45 分)
1.请列举 5 条软件测试的原则,并简单说明各原则的内容。
(10 分)答:(1)所有的测试都应追溯到用户的需求。
系统中最严重的错误是那些导致程序无法满足用户需求的错误。
(2)尽早地和不断地进行软件测试。
需求和设计时出现的缺陷占很大的比例;缺陷的修改成本随着阶段的推移将急剧上升。
(3)不可能完全的测试,因为输入量太大,执行路径太多。
(4)注意测试中的群集现象。
在所测程序段中,若发现错误数目多,则残存错误数目也比较多。
(5)避免测试自己的程序,程序员的测试思路有局限性,做测试时很容易受到编程思路的影响;(6)设计周密的测试用例。
软件测试的本质就是针对要测试的内容确定一组测试用例。
(至少回答 5 条,每条 2 分)
2.什么是黑盒测试?黑盒测试主要采用哪些测试方法? 什么是白盒测试?白盒测试主
要采用哪些测试方法?(15)
答:黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。
它从用户
观点出发的测试。
用这种方法进行测试时,把被测试程序当作一个黑盒,在不考虑程
序内部结构的内部特性、测试者只知道该程序输入和输出之间的关系或程序功能的情
况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断
测试结果的正确性。
(4 分)
黑盒测试的方法包括:边界值分析、等价类测试、基于决策表的测试和因果图等。
(4 分)
白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试。
它依赖于对程序细
第1页共7页
(4 ( 西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)
节的严密的检验。
针对特定条件和循环集设计测试用例,对软件的逻辑路径进行测试。
在程序的不同点检验程序的状态,来进行判定其实际情况是否和预期的状态相一致。
分)
白盒测试包括:逻辑覆盖、基路径测试、数据流测试、程序插装等。
(3 分) 3.为什么在单元测试之后要进行集成测试?(10 分)
答:实践表明,软件的一些模块能够单独地工作,但并不能保证组装连接之后也肯定 能正常工作。
程序在某些局部反映不出来的问题,在全局情况下有可能暴露出来,影 响软件功能的实现。
(5 分)可能的原因有以下几方面:
(1)模块相互调用时引入了新的问题; (2)几个子功能组合后不能实现预计的主功能; (3)计算的误差累计达到了不能接受的程度; (4)全局数据结构出现错误。
因此,在单元模块完成单元测试后,需要按照设计的程序结构图进行组合、进行 集成测试,检测与接口有关的各种故障。
(5 分)
4.请简述自顶向下和自底向上两种集成测试方法,并比较两者的优点和缺点。
10分)
答:自顶向下集成测试表示逐步集成和逐步测试是按照结构图自上而下进行的, 即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集 成。
(3 分)自底向上集成测试表示逐步集成和逐步测试的工作是按结构图自下而上进 行的,由于是从最底层开始集成,所以也就不再需要使用桩模块进行辅助测试。
(3 分) 自顶向下测试的主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到 系统的框架。
它的主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前, 在桩模块中表示测试数据有一定困难。
(2 分)自底向上的优点在于不需要桩模块,
第 2页共 7页
西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)
需用的驱动模块比较少。
它的主要缺点在于,直到最后一个模块被加进去之后才能看到整个程序(系统)的框架。
(2 分)
二、设计题(55 分)
1.某城市电话号码由三部分组成,分别是:
地区码——空白或 4 位数字;
前后缀——为三位数字,但不能“0”,“1”开头;缀——4 位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
请写出每个输入条件的有效等价类和无效等价类。
(10 分)
答:等价类表如下表所示:
2.某程序规定:“…对功率大于 50 马力的机器、维修记录不全或已运行 10 年以上的机器,应给予优先的维修处理…”。
这里假定:“维修记录不全”和“优先维修处
第3页共7页
西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)
理”均已在别处有更严格的定义。
请建立判定表。
(15 分)
答:根据问题中描述的输入条件和输出结果,列出所有的条件桩和动作桩。
其中 条件桩有三项:1)功率大于 50 马力吗?2)维修记录不全吗?3)运行超过 10 年吗? 动作桩有两项:1)进行优先处理;2)作其他处理;(5 分)
判定表如下表所示:(10 分)
3.简述逻辑覆盖中判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖的含义?下图 为某程序段的流程图(图 1),请用判定覆盖、条件覆盖、判定/条件覆盖、路径覆 盖设计足够的测试用例。
(15 分)
答:判断覆盖:设计用例,使程序中的 每个逻辑判断的取真和取假分支至少经历一
b
次;(1 分)条件覆盖:设计用例,使判断中的 每个条件的可能取值至少满足一次;(1 分)判
断/条件覆盖:设计用例,使得判断中的每个
d
条件的所有可能结果至少出现一次,而且判断本
身所有可能结果也至少出现一次;(2 分)
图 1
第 4页共 7页
西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)路径覆盖:设计足够的测试用例,使程序的每条可能路径至少执行一次。
(1 分)测试用例如下表所示:(10分)
4
2
{
2
3
10 4
7
6
9
8
5
西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)
}
Num--;
}
}
【问题 1】请用三种方法计算上述控制流图的圈复杂度 V(G)(独立线性路径数)。
(3 分)
【问题 2】找出独立路径。
(4)
【问题 3】请使用基本路径测试法设计测试用例。
(8 分)
答:(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,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)导出测试用例
第6页共7页
满足上面例子基本路径集的测试用例如表所示。
参考答案及评分细则
西南科技大学2008——2009学年第1学期
《软件测试技术》期末考试试卷(B 卷)
第7页共7页。