软件工程(第五版)--习题及答案---第九章
电信局-美国哈佛大学地址
一、判断题
1、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题
1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组
成。
A、测试输入数据
B、预期的测试输出数据
C、测试输入与预期的输出数据
D、按照测试用例设计方法设计出的数据
2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同 B、它们的行为取向不同
C、使用的工具不同
D、运用的方法不同
3、一个成功的测试是(B)。
A、发现错误
B、发现至今尚未发现的错误
C、没有发现错误 D、证明发现不了错误
4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同
B、测试的任务不同
C、应用的测试阶段不同 D、基于的知识集不同
5、单元测试阶段主要涉及(D)的文档。
A、需求设计 B、编码和详细设计
C、详细设计 D、概要设计
6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试
B、集成测试
C、验证测试 D、验收测试
7、软件调试的目的是(B)。
A、发现错误 B、改正错误
C、改善软件的性能 D、挖掘软件的潜能
8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误
B、缩短软件的开发时间
C、减少软件的维护成本 D、证明程序没有缺陷
9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、
B、
A B
1
False
C、
A
False
True
True
B
False
True
D、
A B
False True
True False
A B
False True
True False
True True
A
OR B
False
语句
True
10、在进行单元测试时,常用的方法是(A)。
A、采用白盒测试,辅之以黑盒测试
B、采用黑盒测试,辅之以白盒测试
C、只使用白盒测试
D、只使用黑盒测试
11、白盒测试方法一般适合于(A)测试。
A、单元 B、系统 C、集成
D、确认
12、为了提高测试的效率,应该(D)。
A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据
C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性大的数据作为测试数据
13、不属于白盒测试的技术是(D)。
A、语句覆盖 B、判定覆盖
C、条件覆盖 D、边界值分析
14、下列逻辑覆盖标准中,差错能力最强的是(D)。
A、语句覆盖
B、判定覆盖
C、条件覆盖 D、条件组合覆盖
15、在黑盒法中,着重检查输入条件组合的测试方法是(D)。
A、等价类划分法
B、边界值分析法
C、错误推测法 D、因果图法
三、简答题
1、 为什么要进行软件测试?软件测试要以什么目标和原则?
答:软件测试的目的是为了发
现软件产品中存在的软件缺陷,进而保证软件产品的质量。
软件测试是软件开发过程中的一个重要阶段,
是软件产品正式投入运行前,对软件需求分析、
设计规格说明和编码的最终复审,是软件质量保证的关键
步骤。软件测试的结果也是分析软
件可靠性的重要依据。
2
在软件测试中,应注意以下指导原则:
(1)所有测试都应追溯到需求
(2)坚持“尽早地和不断地进行软件测试”。
(3)测试用例应由输入数据和预期的输出结果两部分组成。
(4)程序员应避免测试自己的程序。
(5)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
(6)充分注意测试中的群集现象。
(7)严格执行测试计划,排除测试的随意性。
(8)应当对每个测试结果做全面检查。
(9)在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该
做的事。
(10)应长期保留所有测试用例。保留测试用例有助于以后修改程序后的回归测试。
2、
软件测试包括哪几个过程?测试过程中包括哪些数据源?
答:测试过程分为4个步骤,即单元测试、组装测试、确认测试和系统测试。
数据源有:
(1)软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。
(2)测试配置:包括测试计划、测试用例、测试驱动程序等。
(3)测试工具:测试工具为
测试的实施提供某种服务,以减轻测试过程中的手工劳动,
提高测试效率。
3、
黑盒测试法与白盒测试法的本质区别是什么?它们的使用场合有何不同。
答:黑盒测试法与白盒测试法的根本区别是设计测试用例的方法不同。前者是测试产品
的功能,后者是
测试产品的内部结构和处理过程。
通过黑盒测试主要发现以下错误:
(1)是否有不正确或遗漏了的功能。
(2)界面是否有错,能否正确地接受输入数据,能否产生正确的输出信息。
(3)是否有数据结构或外部数据库访问错误。
(4)性能是否满足要求。
(5)是否有初始化或终止性错误。
白盒测试法是一种程序级的微观上的测试,不适合于大单
元、大系统的测试,主要用于
很小单元的测试,以及从事软件底层工作、生产构件的测试人员使用。
4、试比较测试与调试的异同。
答:软件测试的目的是尽可能多地发现程序中的错误,而调试
的目的是根据测试时发现
的错误,找出错误的原因和具体位置,并改正错误。测试与调试的不同如下表所
示。
测试与调试的不同
测试 (test)
目的是发现错误
有计划
以已知条件开始,使用预先定义的程序,有预知的结
果
由独立的测试组,在不了解软件设计的条件下完成
被动的
以不可知内部条件开始,结果一般不可预见
由程序作者进行,谁开发的程序就由谁来调
试
调试 (debug)
目的是找出错误位置并排除
5、试叙述面向对象的单元测试、组装测试、确定测试的内涵。
(1)面向对象的单元测试
面向对象的单元测试是进行面向对象集成测试的基础。面向对象的单元测试以类或对
象为单位。由于类包
含一组不同的操作,并且某些特殊的操作可能被多个类共享,因此,单
3
元测试不能孤立地测试某个操作,而是将操作作为类的一部分来测试。
(2)面向对象的集成测试
因为在面向对象的软件中没有层次的控制结构,并且构成类的成分
彼此之间存在着直
接或间接的交互作用,所以,传统意义上的自顶向下和自底向上的集成策略将不再适用
。
(3)面向对象的确认测试
在确认测试层次,不需要再考虑类的实现和交互的具体细节,
只要验证交互过程及功
能,包括提供的用户界面,用户可见的操作,软件的反应和输出的结果等情况,其
中测试用
例的选择主要是依据动态模型和系统的脚本描述。
四、应用题
1、使用等价类划分方法,为一元二次方程求解程序设计足够的测试用例。该程
序要求分别打印出:不是
一元二次方程,有实数根和有复数根三种信息。
测试用例表
测试内容
是一元二次方程且有实根
是一元二次方程且有复根
不是一元二次方程
测试数据
a=1 b=-5 c=6
a=1 b=1 c=2.5
a=0 b=1 c=1
期望结果
x1=2 x2=3
x1=-0.5+1.5i
x2=-0.5-1.5i
x=-1
2、早
期DOS操作系统对文件名的命名要求如下:文件名由基本文件名和扩展名
组成,扩展名可以省略,两部
分文件名以小数点分隔。基本文件名至少为1位,
至多为8位长度,且首字符必须为非数字字符(如字母
或部分特殊符号,文件名
中不能包括空格、+号、?号、*号、圆点符号。大小写字母无区别);扩展名
最
多为3位长度。
请用等价类划分法设计对文件名命名要求的测试用例。
等价类划分表
输入条件
基本文件名
长度
基本文件名
首字符
其他字符
扩展名长度
合理等价类
(1)1-8个字符
(2)字母或部分特殊字符
(3)字母、数字、部分特殊字符
(4)0-3个字符
测试用例表
测试数据
abcd1234.123
.abc
abcd12345.123
1234abcd.123
a b
a*b
a?b
a+b
不合理等价类
(5)少于1个字符
(6)多于8个字符
(7)不是字母也不是部分特殊字符
(8)包含空格,+,?,*,.
(9)多于3个字符
期望结果
有效
无效
无效
无效
无效
无效
4
测试范围
(1)(2)(3) (4)
(5)
(6)
(7)
(8)
(8)
(8)
(8)
abc.1234
无效
(9)
3、对于例9
-2,仿照表9-5,请重新设计六种逻辑覆盖的测试用例,并重新填写
表格内容,要求测试数据要尽量
少。
逻辑覆盖测试用例
输入数据
覆盖类型
A
语句覆盖
判定覆盖
条件覆盖
判定条件
覆盖
条件组合
覆盖
3
3
3
0
2
2
1
2
2
1
1
2
3
0
4
B
0
0
1
0
2
0
2
0
2
0
1
0
1
1
0
X
3
0
3
3
1
3
0
3
0
2
1
2
2
1
1
2
0
4
0
2
4
1
2
1
3
1
3
3
1
0
预期
结果
X
测试
路径
①②④
①②⑤
①③④
① ④
①③④
①②④
①③⑤
① ④
① ④
① ④
① ⑤
① ②③
④⑤
①③④
①③⑤
①②⑤
判定
A>1且
B=0
T
T
F
F
F
T
F
T
F
F
F
T
F
F
T
判定
A=2或X>1
T
F
T
F
T
T
F
T
T
T
F
T
T
F
F
条件
A>1
F
T
T
F
T
T
F
F
条件
B=0
T
F
T
F
T
F
T
F
条件
A=2
F
T
T
F
T
T
F
F
条件
X>1
T
F
T
F
T
F
T
F
路径覆盖
5
一、判断题
1、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题
1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组
成。
A、测试输入数据
B、预期的测试输出数据
C、测试输入与预期的输出数据
D、按照测试用例设计方法设计出的数据
2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同 B、它们的行为取向不同
C、使用的工具不同
D、运用的方法不同
3、一个成功的测试是(B)。
A、发现错误
B、发现至今尚未发现的错误
C、没有发现错误 D、证明发现不了错误
4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同
B、测试的任务不同
C、应用的测试阶段不同 D、基于的知识集不同
5、单元测试阶段主要涉及(D)的文档。
A、需求设计 B、编码和详细设计
C、详细设计 D、概要设计
6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试
B、集成测试
C、验证测试 D、验收测试
7、软件调试的目的是(B)。
A、发现错误 B、改正错误
C、改善软件的性能 D、挖掘软件的潜能
8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误
B、缩短软件的开发时间
C、减少软件的维护成本 D、证明程序没有缺陷
9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、
B、
A B
1
False
C、
A
False
True
True
B
False
True
D、
A B
False True
True False
A B
False True
True False
True True
A
OR B
False
语句
True
10、在进行单元测试时,常用的方法是(A)。
A、采用白盒测试,辅之以黑盒测试
B、采用黑盒测试,辅之以白盒测试
C、只使用白盒测试
D、只使用黑盒测试
11、白盒测试方法一般适合于(A)测试。
A、单元 B、系统 C、集成
D、确认
12、为了提高测试的效率,应该(D)。
A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据
C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性大的数据作为测试数据
13、不属于白盒测试的技术是(D)。
A、语句覆盖 B、判定覆盖
C、条件覆盖 D、边界值分析
14、下列逻辑覆盖标准中,差错能力最强的是(D)。
A、语句覆盖
B、判定覆盖
C、条件覆盖 D、条件组合覆盖
15、在黑盒法中,着重检查输入条件组合的测试方法是(D)。
A、等价类划分法
B、边界值分析法
C、错误推测法 D、因果图法
三、简答题
1、 为什么要进行软件测试?软件测试要以什么目标和原则?
答:软件测试的目的是为了发
现软件产品中存在的软件缺陷,进而保证软件产品的质量。
软件测试是软件开发过程中的一个重要阶段,
是软件产品正式投入运行前,对软件需求分析、
设计规格说明和编码的最终复审,是软件质量保证的关键
步骤。软件测试的结果也是分析软
件可靠性的重要依据。
2
在软件测试中,应注意以下指导原则:
(1)所有测试都应追溯到需求
(2)坚持“尽早地和不断地进行软件测试”。
(3)测试用例应由输入数据和预期的输出结果两部分组成。
(4)程序员应避免测试自己的程序。
(5)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
(6)充分注意测试中的群集现象。
(7)严格执行测试计划,排除测试的随意性。
(8)应当对每个测试结果做全面检查。
(9)在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该
做的事。
(10)应长期保留所有测试用例。保留测试用例有助于以后修改程序后的回归测试。
2、
软件测试包括哪几个过程?测试过程中包括哪些数据源?
答:测试过程分为4个步骤,即单元测试、组装测试、确认测试和系统测试。
数据源有:
(1)软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。
(2)测试配置:包括测试计划、测试用例、测试驱动程序等。
(3)测试工具:测试工具为
测试的实施提供某种服务,以减轻测试过程中的手工劳动,
提高测试效率。
3、
黑盒测试法与白盒测试法的本质区别是什么?它们的使用场合有何不同。
答:黑盒测试法与白盒测试法的根本区别是设计测试用例的方法不同。前者是测试产品
的功能,后者是
测试产品的内部结构和处理过程。
通过黑盒测试主要发现以下错误:
(1)是否有不正确或遗漏了的功能。
(2)界面是否有错,能否正确地接受输入数据,能否产生正确的输出信息。
(3)是否有数据结构或外部数据库访问错误。
(4)性能是否满足要求。
(5)是否有初始化或终止性错误。
白盒测试法是一种程序级的微观上的测试,不适合于大单
元、大系统的测试,主要用于
很小单元的测试,以及从事软件底层工作、生产构件的测试人员使用。
4、试比较测试与调试的异同。
答:软件测试的目的是尽可能多地发现程序中的错误,而调试
的目的是根据测试时发现
的错误,找出错误的原因和具体位置,并改正错误。测试与调试的不同如下表所
示。
测试与调试的不同
测试 (test)
目的是发现错误
有计划
以已知条件开始,使用预先定义的程序,有预知的结
果
由独立的测试组,在不了解软件设计的条件下完成
被动的
以不可知内部条件开始,结果一般不可预见
由程序作者进行,谁开发的程序就由谁来调
试
调试 (debug)
目的是找出错误位置并排除
5、试叙述面向对象的单元测试、组装测试、确定测试的内涵。
(1)面向对象的单元测试
面向对象的单元测试是进行面向对象集成测试的基础。面向对象的单元测试以类或对
象为单位。由于类包
含一组不同的操作,并且某些特殊的操作可能被多个类共享,因此,单
3
元测试不能孤立地测试某个操作,而是将操作作为类的一部分来测试。
(2)面向对象的集成测试
因为在面向对象的软件中没有层次的控制结构,并且构成类的成分
彼此之间存在着直
接或间接的交互作用,所以,传统意义上的自顶向下和自底向上的集成策略将不再适用
。
(3)面向对象的确认测试
在确认测试层次,不需要再考虑类的实现和交互的具体细节,
只要验证交互过程及功
能,包括提供的用户界面,用户可见的操作,软件的反应和输出的结果等情况,其
中测试用
例的选择主要是依据动态模型和系统的脚本描述。
四、应用题
1、使用等价类划分方法,为一元二次方程求解程序设计足够的测试用例。该程
序要求分别打印出:不是
一元二次方程,有实数根和有复数根三种信息。
测试用例表
测试内容
是一元二次方程且有实根
是一元二次方程且有复根
不是一元二次方程
测试数据
a=1 b=-5 c=6
a=1 b=1 c=2.5
a=0 b=1 c=1
期望结果
x1=2 x2=3
x1=-0.5+1.5i
x2=-0.5-1.5i
x=-1
2、早
期DOS操作系统对文件名的命名要求如下:文件名由基本文件名和扩展名
组成,扩展名可以省略,两部
分文件名以小数点分隔。基本文件名至少为1位,
至多为8位长度,且首字符必须为非数字字符(如字母
或部分特殊符号,文件名
中不能包括空格、+号、?号、*号、圆点符号。大小写字母无区别);扩展名
最
多为3位长度。
请用等价类划分法设计对文件名命名要求的测试用例。
等价类划分表
输入条件
基本文件名
长度
基本文件名
首字符
其他字符
扩展名长度
合理等价类
(1)1-8个字符
(2)字母或部分特殊字符
(3)字母、数字、部分特殊字符
(4)0-3个字符
测试用例表
测试数据
abcd1234.123
.abc
abcd12345.123
1234abcd.123
a b
a*b
a?b
a+b
不合理等价类
(5)少于1个字符
(6)多于8个字符
(7)不是字母也不是部分特殊字符
(8)包含空格,+,?,*,.
(9)多于3个字符
期望结果
有效
无效
无效
无效
无效
无效
4
测试范围
(1)(2)(3) (4)
(5)
(6)
(7)
(8)
(8)
(8)
(8)
abc.1234
无效
(9)
3、对于例9
-2,仿照表9-5,请重新设计六种逻辑覆盖的测试用例,并重新填写
表格内容,要求测试数据要尽量
少。
逻辑覆盖测试用例
输入数据
覆盖类型
A
语句覆盖
判定覆盖
条件覆盖
判定条件
覆盖
条件组合
覆盖
3
3
3
0
2
2
1
2
2
1
1
2
3
0
4
B
0
0
1
0
2
0
2
0
2
0
1
0
1
1
0
X
3
0
3
3
1
3
0
3
0
2
1
2
2
1
1
2
0
4
0
2
4
1
2
1
3
1
3
3
1
0
预期
结果
X
测试
路径
①②④
①②⑤
①③④
① ④
①③④
①②④
①③⑤
① ④
① ④
① ④
① ⑤
① ②③
④⑤
①③④
①③⑤
①②⑤
判定
A>1且
B=0
T
T
F
F
F
T
F
T
F
F
F
T
F
F
T
判定
A=2或X>1
T
F
T
F
T
T
F
T
T
T
F
T
T
F
F
条件
A>1
F
T
T
F
T
T
F
F
条件
B=0
T
F
T
F
T
F
T
F
条件
A=2
F
T
T
F
T
T
F
F
条件
X>1
T
F
T
F
T
F
T
F
路径覆盖
5