软件测试技术基础教程第版习题答案.docx
《软件测试技术基础教程第版习题答案.docx》由会员分享,可在线阅读,更多相关《软件测试技术基础教程第版习题答案.docx(19页珍藏版)》请在冰豆网上搜索。
软件测试技术基础教程第版习题答案
第一章软件测试理论
一、选择题
1、C2、A3、D4、B5、D6、D7、B8、B
二、简答题
1.
参考答案:
软件测试是伴随着软件的产生而产生的。
在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。
到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。
在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA或者SQA部门。
后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。
到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。
软件测试已有了行业标准(IEEE/ANSI)。
在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。
但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。
总之,国内软件测试行业与一些发达国家相比还存在一定的差距。
2.
参考答案:
软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。
3.
参考答案:
软件测试的复杂性体现在:
Ø不可能对程序实现完全测试。
Ø杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有免疫力而使软件缺陷不被发现。
Ø软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好测试工作量是至关重要的。
Ø在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要被修复。
4.
参考答案:
软件测试是软件生命期中费用消耗最大的环节。
测试费用除了测试的直接消耗外,还包括其他的相关费用。
影响测试费用的主要因素有:
(1)软件的功能,软件产品需要达到的标准决定了测试的数量。
对于那些至关重要的系统必须进行更多的测试。
(2)目标用户的数量,一个系统的目标用户数量的多少也在很大程度上影响了测试必要性的程度。
(3)潜在缺陷造成的影响
在考虑测试的必要性时,还需要将系统中所包含的信息价值考虑在内。
因此我们应该从经济方面考虑,投入与经济价值相对应的时间和金钱去进行测试。
(4)开发机构的业务能力
一个没有标准和缺少经验的开发机构很可能会开发出充满错误的软件系统。
而一个建立了标准和有很多经验的开发机构开发出来的软件系统中的错误将会少很多。
(5)测试的时机
测试量会随时间的推移发生改变,在一个竞争很激烈的市场里,争取时间可能是制胜的关键。
测试量应该针对合适的目标进行调整。
5.
参考答案:
软件测试是贯穿于整个软件开发的过程。
在软件开发的各个阶段,测试人员必须制订本阶段的测试方案,把软件开发和测试活动集成到一起,如下图所示。
6.
参考答案:
软件测试从测试计划编写到测试实施,需要经过一系列的过程。
这些测试按软件从编写到交付的各个阶段的先后顺序可分为:
单元测试、集成测试、确认(有效性)测试、系统测试和验收(用户)测试5个阶段,如下图所示。
7.
参考答案:
通常软件人员应具备如下素质:
(1)良好的沟通能力
(2)掌握比较全面的技术
(3)充分的自信心
(4)足够的耐心和责任感
(5)要具备怀疑精神和学习能力
(6)超强的记忆力和良好的洞察力
第2章白盒测试技术
一、选择题
1、B2、C3、A4、D5、B
6、B7、C8、C9、A10、A
三、简答题
1.
参考答案:
白盒测试方法可以分为两大类:
静态测试方法和动态测试方法,动态测试方法是设计一系列的测试用例,通过输入预先设定好的数据来动态地运行程序,从而达到发现程序错误的目的。
静态测试方法则不在计算机上实际执行程序,而是以一些人工的模拟技术或使用测试软件对软件进行分析和测试。
动态测试方法主要有逻辑覆盖、独立路径测试等。
静态测试方法主要有静态结构分析、静态质量度量、代码检查方法等。
2.
参考答案:
根据不同的测试要求,覆盖测试可以分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
语句覆盖就是设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。
判定覆盖又称分支覆盖,就是设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。
条件覆盖是指设计足够多的测试用例,使得被测试程序中的每个判断语句中的每个逻辑条件的可能值至少被满足一次。
或者说设计足够多的测试用例,使得被测试程序中的每个逻辑条件的可能值至少被满足一次。
判定/条件覆盖是指设计足够多的测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。
即同时满足100%判定覆盖和100%条件覆盖的标准。
在保证完成要求的情况下,测试用例的数目越少越好。
条件组合覆盖是指设计足够多的测试用例,使得被测试程序中的每个判断的所有可能条件取值的组合至少被满足一次。
路径覆盖就是设计足够多的测试用例,使得被测试程序中的每条路径至少被覆盖一次。
3.
参考答案:
独立路径测试的基本步骤是:
步骤1:
根据源程序导出程序控制流图。
步骤2:
根据程序环形复杂度的计算公式,求出程序环形复杂度。
步骤3:
根据上面环形复杂度的计算结果,设计测试用例。
4.
参考答案:
(1)请画出以上代码的控制流图。
注意:
需要将复合条件分开单独画成节点。
例如:
month>=1&&month<=12分别用节点2-1,2-2表示
month==4||month==6||month==9||month==11分别用节点21-1,21-2,21-3,21-4表示
(2)请计算上述控制流图的环复杂度V(G)(独立线性路径数)
区域法:
V(G)=11
边与节点的关系:
V(G)=27-18+2=11
判定节点的关系:
V(G)=10+1=11
(3)假设输入的取值范围是1000测试用例编号
year
month
maxday
覆盖的路径
1
1500
0
0
2-1,26
2
1500
16
0
2-2,26
3
1500
4
30
2-1,2-2,4,21-1,22,25,26
4
1500
6
30
2-1,2-2,4,21-1,21-2,22,25,26
5
1500
9
30
2-1,2-2,4,21-1,21-2,21-3,22,25,26
6
1500
11
30
2-1,2-2,4,21-1,21-2,21-3,21-4,22,25,26
7
1500
7
31
2-1,2-2,4,21-1,21-2,21-3,21-4,24,25,26
8
1201
2
28
2-1,2-2,4,6,20,25,26
9
1240
2
29
2-1,2-2,4,6,8,17,20,25,26
10
1300
2
28
2-1,2-2,4,6,8,10,14,17,20,25,26
11
2000
2
29
2-1,2-2,4,6,8,10,11,14,17,20,25,26
第3章黑盒测试技术
一、选择题
1、B2、B3、A4、C5、B6、C
二、填空题
1.测试程序时,不可能遍历所有可能的输入数据,而只能是选择一个子集进行测试,那么最好的方法是等价类划分法。
2.边界值分析法的测试用例来自于等价类划分的边界。
3.决策表由_条件桩__、_动作桩__、_条件项__、_动作项__4个部分构成。
4.因果图分析法适用于输入条件之间有多种组合情况。
三、简答题
1.
参考答案:
黑盒测试又称功能测试或数据驱动的测试,主要从用户的观点出发,以软件规格说明书为依据,着重测试软件的功能需求,对程序功能和程序接口进行测试。
白盒测试是按照程序内部的结构测试程序检测产品内部动作是否按照软件设计说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
2.
参考答案:
黑盒测试有两种基本方法,即通过测试和失败测试。
在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何,软件测试人员只是运用最简单、最直观的测试案例。
在设计和执行测试案例时,总是要先进行通过测试,验证软件的基本功能是否都已实现。
在确信软件能正确运行之后,就可以采取各种手段通过搞垮软件来找出缺陷。
这种纯粹为了破坏软件而设计和执行的测试案例,称为失败测试或迫使出错测试。
3.
参考答案:
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
在黑盒测试中,由于采用穷举法不可行,一般可以采用等级类划分法进行初步的测试用例设计,然后再根据边界情况采用边界值分析法补充相应的测试用例。
4.
参考答案:
(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。
v年龄:
一位或两位非零整数,值的有效范围为1~99
v性别:
一位英文字符,只能取值‘M’或’F’
v婚姻:
字符,只能取值‘已婚’或‘未婚’
v抚养人数:
空白或一位非零整数(1~9)
v点数:
一位或两位非零整数,值的范围为1~99
输入条件
有效等价类
编号
无效等价类
编号
年龄
20~39岁
1
40~59岁
2
1~19岁
60~99岁
3
小于1
12
大于99
13
性别
单个英文字符
4
非英文字符
14
非单个英文字符
15
‘M’
5
除‘M’和‘F’之外的
其它单个字符
16
‘F’
6
婚姻
已婚
7
除’已婚’和’未婚’之外的其它字符
17
未婚
8
抚养人数
空白
9
除空白和数字之外
的其它字符
18
1~6人
10
小于1
19
6~9人
11
大于9
20
(2)根据
(1)中的等价类表,设计能覆盖所有等价类的测试用例
测试用例
编号
输入数据
预期输出
年龄
性别
婚姻
抚养人数
保险费率
1
27
F
未婚
空白
0.6%
2
50
M
已婚
2
0.6%
3
70
F
已婚
7
0.1%
4
0
M
未婚
空白
无法推算
5
100
F
已婚
3
无法推算
6
99
男
已婚
4
无法推算
7
1
Child
未婚
空白
无法推算
8
45
N
已婚
5
无法推算
9
38
F
离婚
1
无法推算
10
62
M
已婚
没有
无法推算
11
18
F
未婚
0
无法推算
12
40
M
未婚
10
无法推算