软件测试类型及其在软件开发过程中的地位代码检查走查与评审有答案.docx
- 文档编号:25963474
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:28
- 大小:27.47KB
软件测试类型及其在软件开发过程中的地位代码检查走查与评审有答案.docx
《软件测试类型及其在软件开发过程中的地位代码检查走查与评审有答案.docx》由会员分享,可在线阅读,更多相关《软件测试类型及其在软件开发过程中的地位代码检查走查与评审有答案.docx(28页珍藏版)》请在冰豆网上搜索。
软件测试类型及其在软件开发过程中的地位代码检查走查与评审有答案
软件测试类型及其在软件开发过程中的地位、代码检查、走查与评审
选择题
1.把经过评审通过的各项需求转换为一个相应的体系结构,包括数据的体系结构、系统和软件的体系结构,这是软件生命周期哪一阶段做的事情______。
A.系统和需求定义
B.编程和单元测试
C.软件设计
D.运行和维护
答案:
C
[解答]软件设计是软件工程的技术核心,在设计阶段中,设计人员把经评审通过的各项需求转换为一个相应的体系结构,包括数据的体系结构、系统和软件的体系结构。
结构中每一组成部分都是一个模块,每个模块都是和某种需求相对应,即所谓概要设计和高层设计。
进而对每个模块要完成的任务进行具体描述,为后面的编程打基础,即所谓详细设计。
2.之所以要对已交付使用的软件进行维护,原因是______。
Ⅰ.为了增强软件的功能,满足功能上的变更
Ⅱ.运行中发现了软件中的错误需要更正
Ⅲ.为了适应软件工作环境变化而引起的相应改变
A.Ⅰ
B.Ⅰ和Ⅲ
C.Ⅱ和Ⅲ
D.Ⅰ和Ⅱ和Ⅲ
答案:
D
[解答]对于已交付的软件投入正常使用,就进入运行阶段,这一阶段可能持续若干年甚至几十年。
但软件在运行过程中往往可能会因为多方面的原因导致需要对该软件进行修改,这一修改过程便是软件的维护。
其主要原因可能为以下几点:
软件在运行中发现了软件本身存在的错误需要修正;为了适应变化了的软件工作环境;为了满足用户需求要增强软件的功能而需做变更。
3.以下不属于软件需求分析阶段测试的内容是______。
A.通过场景走查和与用户沟通,看需求是否是用户“真”的需求
B.通过对开发进度、开发费用、产品性能、可靠性和内存使用等各方面需求的分析,看综合起来是否合理,是否有对需求的一个优先级安排
C.通过领域分析和与用户沟通,看需求是否是完备的
D.通过检查需求与实现环境的不相容之处,看需求是否可兼容
答案:
B
[解答]软件需求分析阶段测试的内容有:
真正的需求,需求是否完备,是否兼容。
4.下列可以做为软件测试对象的是______。
A.需求规格说明
B.软件设计规格说明
C.源程序
D.以上全部
答案:
D
[解答]软件测试不仅仅限于程序编码之后,而应该贯穿于软件开发的全过程。
软件测试并不等于程序测试,因此,需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档资料,包括需求规格说明、软件概要设计规格说明、软件详细设计规格说明以及源程序,都应做为软件测试的对象。
5.MM-路径集成是一种基于消息的路径集成方法,其中MM-路径是指______。
A.对应调用图的每一个边建立并执行的一个集成测试会话序列
B.针对模块的每一个程序剖面执行的语句序列
C.按照广度优先策略逐层集成与测试的序列
D.穿插出现在各模块中执行的方法和消息的序列
答案:
D
[解答]MM-路径是指穿插出现在模块执行方法和消息的序列。
6.测试过程需要输入软件配置、测试配置和测试工具。
其中不属于测试配置的是______。
A.测试计划
B.测试用例
C.测试报告
D.测试程序
答案:
C
[解答]软件测试信息流中,测试过程需要三类输入,分别是:
测试计划、测试配置和测试工具。
其中测试计划包括软件需求规格说明、软件设计规格说明、源代码等;测试配置包括表明测试工作如何进行的测试计划、给出测试数据的测试用例、控制测试进行的测试程序等;测试工具主要是为测试的实施提供某种服务,以减轻人们完成测试任务中的手工劳动。
7.面向对象的软件设计要首先考虑问题中的数据实体,通过实体提供的服务和实体之间的消息的传递来实现某种计算,这种体系结构的好处体系在______。
A.稳定性
B.一致性
C.可靠性
D.效率
答案:
A
[解答]面向对象的软件设计要首先考虑问题中所涉及的数据实体,功能分散到各个实体中,通过实体提供的服务和实体之间的消息的传递来实现某种计算,如果功能发生变化(这也是最常出现的),整个系统结构不会变化,只是相应调整系统中各个实体的服务即可,因此这种体系结构的好处就是具有很好的稳定性。
8.规划阶段实际上指的是______。
A.需求获取和定义阶段
B.数据获取和定义阶段
C.测试用例设计规划阶段
D.产品实施规划
答案:
A
[解答]规划阶段的测试实际上就是对需求获取和定义阶段进行的测试,产品规划小组应由系统分析员、销售人员和市场营销人员以及产品经理等组成,他们对产品进行定义,制作演示模型,以阐明他们的构想。
规划目的是编写文档来知道将来的开发工作。
9.软件设计阶段的测试主要采取的方式是______。
A.评审
B.白盒测试
C.黑盒测试
D.动态测试
答案:
A
[解答]软件设计测试的对象是设计文档,其测试主要采用的是评审的方式进行。
10.下列不属于内部设计的是______。
A.数据设计
B.逻辑设计
C.界面设计
D.结构设计
答案:
C
[解答]软件设计分为内部设计和外部设计,而外部设计主要是从用户的角度对产品进行描述,主要是设计用户界面,最后会产生文档形式的外部设计规格说明;内部设计则主要描述产品的内部工作机制,具体又可以细分为结构设计、数据设计和逻辑设计。
11.需求规格说明中应该能为后面的设计和实现提供质量和数量两方面的约束,通常需求分为______。
A.功能类和性能类
B.外部接口类
C.设计约束类和质量特性类
D.以上全部
答案:
D
[解答]在需求规格说明中要求准确地描述软件的任务,应当可以正向跟踪、反向跟踪,与软件、硬件的可操作环境相适应。
需求规格说明中应该还能为后面的设计和实现提供质量和数量两方面的约束,通常需求分为以下五类:
功能类、性能类、外部接口类、设计约束类和质量特性类。
12.在需求获取与定义阶段就开始建立,以后要不断细化和完善的文档是______。
A.用户手册
B.外部设计规格说明
C.内部设计规格说明
D.测试计划手册
答案:
A
[解答]软件的外部设计是从用户的角度对产品进行描述的,外部设计规格说明是在外部设计期间产生的文档,用户手册是另一种文档,与外部设计规格说明不同的是,它是在需求获取与定义阶段就开始建立,以后要不断细化和完善的文档。
13.设计阶段的测试对象来自设计文档,下列不属于这一阶段设计文档的是______。
A.逻辑设计规格说明
B.物理设计规格说明
C.内部设计规格说明
D.外部设计规格说明
答案:
B
[解答]设计阶段的测试对象设计文档,这里的设计文档包括:
外部设计(用户界面设计,与其他元素的接口设计,系统构件部署设计)规格说明、内部设计(功能设计,系统体系结构设计,数据设计)规格说明和逻辑设计(模块算法与数据结构设计)规格说明。
14.以下有关回归测试的说法中错误的是______。
A.严格来说,回归测试不是一个测试阶段,只是一种可以用于各个测试阶段的测试技术
B.回归测试的目标是保证被测应用在系统被修改和扩充后,各项功能依然正确
C.回归测试可以在系统和验收测试环境下进行
D.回归测试适合采用传统手工方法来完成,而不适合使用自动化测试工具来完成
答案:
D
[解答]自动化测试可以记录之前发现缺陷的测试过程,而回归测试就是要再重新执行以前发现这个缺陷的测试,查看此缺陷是否重现,所以应当鼓励对所有的回归测试用例进行自动化测试。
15.单元测试时,调用被测模块的是______。
A.桩模块
B.通信模块
C.驱动模块
D.代理模块
答案:
C
[解答]增量测试策略首先要对程序的每个程序单元或程序部件单独进行测试,这种测试便是单元测试或模块测试或部件测试。
在单元测试时,程序员必须编写一个驱动模块,用来调用被测模块并向其传送测试数据,若该模块调用了其他模块,程序员必须编写一个桩模块,用来代替被调用的模块。
16.大突击测试把所有的模块一次性集成为一个完整的系统后进行测试,很容易______。
A.通过测试
B.整体测试
C.快速查错
D.快速排错
答案:
B
[解答]大突击测试与增量测试不同,它是把所有的模块一次性集成为一个完整的系统后进行完全测试,所有东西都集成到一起测试,很容易整体测试,也容易导致整个崩溃。
大突击测试的优点是无须编写桩模块和驱动模块代码。
不足有两点:
一是要找出导致失效的原因很困难;二是一个模块中存在的缺陷还可能妨碍其他模块的测试。
17.测试方法不包括______。
A.数据流测试
B.控制流测试
C.随机测试
D.符号求值
答案:
C
[解答]随机测试属于黑盒测试方法。
18.下列有关白盒测试的叙述中,错误的是______。
A.白盒测试是在同时拥有源代码和可执行代码的情形下才可以进行的一种软件测试方法
B.白盒测试应该由开发人员实施,因为只有他们才能够访问测试执行所涉及的代码
C.即使对所有的源代码都进行了100%的逻辑覆盖测试,也不能保证程序中没有错误
D.软件测试人员制定测试计划的目的是想尽可能多地对源代码进行测试
答案:
A
[解答]白盒测试是程序员在编程阶段对每个程序单元进行测试的最有效的测试类型,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
A项错误。
19.下列有关黑盒测试的叙述中,错误的是______。
A.黑盒测试是在不考虑源代码的情形下进行的一种软件测试方法
B.最好由测试人员、最终用户和开发人员组成的团队来实施黑盒测试
C.黑盒测试主要是通过对比和分析实测结果和预期结果来发现它们之间的差异,所以黑盒测试又称为“数据驱动”测试
D.数据流测试是一种黑盒测试方法
答案:
D
[解答]数据流可看作是一种路径测试,它主要关注在一条路径上变量在何处定义,在何处使用,它是一种白盒测试方法。
20.以下关于覆盖测试的说法中,错误的是______。
A.语句覆盖要求每行代码至少执行一次
B.在路径测试中必须用不同的数据重复测试同一条路径
C.路径测试不是完全测试,即使每条路径都执行了一次,程序还是可能存在缺陷
D.分支覆盖应使程序中每个判定的真假分支至少执行一次
答案:
B
[解答]在软件测试中必须用不同的数据测试每一条路径。
21.在白盒测试中,程序员要运用自己的智力和理解力,深入到源程序中以开发测试,这样的好处是______。
A.重点测试
B.数据完整性和内部边界
C.测试覆盖和控制流
D.以上全部
答案:
D
[解答]白盒测试与黑盒测试的区别:
黑盒测试将程序视为一个黑盒子,测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的。
而白盒测试是在程序员十分了解程序的前提下,对程序的逻辑结构进行的测试。
在白盒测试中,程序员要运用自己的智力和理解力,深入到源程序中以开发测试,这样的好处在于以下几点:
重点测试、测试覆盖、控制流、数据完整性、内部边界以及特定算法测试。
22.关注在一连串的测试中如何选择合适的程序或子程序路径来执行有效的检查,这种测试极有可能是______。
A.结构测试
B.黑盒测试
C.功能测试
D.静态测试
答案:
A
[解答]白盒测试是对程序的逻辑结构进行的测试,而黑盒测试将程序视为一个黑盒子,仅仅是测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的。
结构测试属于白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。
功能测试则祸于黑盒测试,对功能的测试通常通过提供输入数据,检查实际输出的结果,很少考虑程序的内部结构。
静态测试不必执行程序,仅收集有关程序代码的结构信息。
23.在覆盖准则中,最常用的是______。
A.语句覆盖
B.条件覆盖
C.分支覆盖
D.以上全部
答案:
D
[解答]在路径测试中,覆盖准则中规定了测试的每一组路径,覆盖准则又称为逻辑覆盖准则或安全性准则.其中最常用的覆盖准则是语句覆盖、分支覆盖和条件覆盖。
24.认为自底向上测试的方法要优于自顶向下测试方法的是______。
A.Yourdon
B.Myers
C.Dunn
D.Fisher
答案:
B
[解答]自底向上测试和自顶向下测试都是增量式的测试方法,在自底向上测试中,首先测试最底层的模块,利用辅助的驱动模块调用,然后测试高层次的模块。
而自顶向下测试则刚好相反,它是首先测试顶层模块,无须编写驱动模块。
但要使用桩模块,然后测试下一层模块。
Yourdon认为自顶向下测试是个较好的策略;Myers认为两者各有优缺点,权衡来看,自底向上测试的方法要优于自顶向下测试方法;Dunn认为两种不可缺少。
25.大多数实际情况下,性能测试的实现方法是______。
A.黑盒测试
B.白盒测试
C.静态分析
D.可靠性测试
答案:
A
[解答]性能测试的目标是为了提高软件性能。
对性能测试要判断出哪些模块执行得最多或者占用的机器时间最多,这些模块就将被重新检查、重新编写以便运行得更快。
性能测试可以通过白盒或黑盒测试方法来测试,但在大多数实际情况下,人们都是使用黑盒测试方法来实现性能测试。
26.在软件生存周期中占据时间最长的是______。
A.运行和维护阶段
B.软件开发阶段
C.需求分析阶段
D.软件设计阶段
答案:
A
[解答]由于很多复杂因素的影响,软件开发组织投入到软件产品上的费用以及大多数时间都花在了软件完成并交付使用后对它的维护上,软件的运行和维护阶段可以说是软件生存周期中占据时间最长的阶段,在这段时间内,需要在运行环境中对软件产品进行性能监视,若有必要,为了纠正错误或满足新的需求,还需要对软件产品进行修改。
27.在理想情况下,只要软件发生了变更,就要对其进行______。
A.验证测试
B.回归测试
C.确认测试
D.验收测试
答案:
B
[解答]回归测试是测试人员常做的事情,一经发现并改正程序中隐藏的缺陷,然后再重新执行以前发现这个缺陷的测试,看这个缺陷是否会重现,这是一种回归测试。
另外,当对发现的缺陷进行修改后,执行一系列基准测试,以确认程序的修改没有对程序的其他部分产生干扰,这也称为是回归测试。
在理想情况下,只要软件发生了变更,就要对其进行回归测试。
28.下列有关软件回归测试的说法中,错误的是______。
A.回归测试的对象包括:
在软件单元测试、集成测试、软件配置项测试和系统测试中未通过的软件
B.回归测试首先应对原来未变更的软件单元进行测试,然后再对变更的软件单元进行测试
C.回归测试的内容包括原软件测试做过的测试内容、修改原软件测试做过的测试内容以及在此基础上新增的测试内容
D.回归测试可根据被测软件的具体情况对软件的测试内容进行剪裁
答案:
B
[解答]回归测试有两种:
①一经发现并改正了程序中隐藏的缺陷,然后再重新执行以前发现这个缺陷的测试,看这个缺陷是否重现。
②当对发现的缺陷进行修改之后,执行一系列基准测试,以确认程序的修改没有对程序的其他部分产生干扰。
故B错。
29.检查是否存在“已定义但未使用”的变量引用异常应属于______。
A.静态分析
B.动态分析
C.代码执行
D.调试
答案:
A
[解答]静态错误分析有以下几种:
类型和单位分析、引用分析、表达式分析和接口分析等,其中在静态错误分析中,最广泛使用的技术就是发现引用异常。
30.在程序测试中,用于检查程序模块或子程序之间的调用是否正确的静态分析方法是______。
A.操作性分析
B.可靠性分析
C.引用分析
D.接口分析
答案:
D
[解答]静态错误分析主要用于确定在源程序中是否有某类错误或者危险结构,包括:
类型和单位分析——为了强化对源程序中数据类型的检查,在程序设计语言中扩充一些新的数据类型。
引用分析——在静态错误分析中,最广泛使用的技术就是发现引用异常。
表达式分析——对表达式进行分析,以发现和纠正在表达式中出现的错误。
接口分析——接口的一致性是程序的静态错误分析和设计分析共同研究的题目。
接口一致性的设计分析主要检查模块之间接口的一致性和模块与外部数据库之间接口的一致性。
31.在代码检查过程中发现大部分错误的人通常是______。
A.程序员
B.测试员
C.审查者
D.架构师
答案:
A
[解答]在代码检查进行时,主要进行两项活动。
①由程序编码人员逐条语句讲述程序的逻辑结构。
在讲述中,很可能是程序编码人员本人而不是其他小组成员发现了大部分错误,换句话说,对着大家大声朗读程序,这种简单的做法看来是一个非常有效的错误检查方法。
②对照常见编码错误列表分析程序。
协调人负责确保检查会议的讨论高效地进行,每个参与者都将注意力集中于查找错误而不是修正错误。
32.下面不属于桌上检查的项目是______。
A.检查小组对程序进行模拟执行,以展示系统的不同构件如何相互作用,暴露程序被忽略的细节
B.检查变量的交叉引用表,重点是检查未说明的变量和违反了类型规定的变量
C.选择、激活路径,检查程序的语句代码
D.比较由程序员设计的控制流图和由实际程序生成的控制流图,寻找和解释每个差异,修改文档和校正错误
答案:
A
[解答]桌上检查的项目包括:
交差引用表、检查程序的语句代码和比较控制流图,不包括A项。
33.下列选项中不属于桌上检查的检查项目的是______。
A.等价性检查
B.检查子程序、宏、函数
C.功能检查
D.风格检查
答案:
C
[解答]程序员进行桌上检查的目的是进行代码检查,主要检查项目包括:
检查变量的交叉引用表、检查标号的交叉引用表,检查子函数、宏、函数,等价性检查,常量检查,标准检查,风格检查,比较控制流,选择、激活路径,补充文档等。
由此可以看出只有选项C不在桌上检查的检查项目之中。
34.下列选项中不属于静态错误分析的是______。
A.类型和单位分析
B.功能分析
C.引用分析
D.表达式分析
答案:
B
[解答]静态错误分析主要用于确定在源程序中是否有某类错误或“危险”结构,它通常包括4种:
类型和单位分析、引用分析、表达式分析、接口分析。
35.在代码检查的准备阶段和检查会议阶段都具有发现产品错误责任的是______。
A.检查人员
B.开发人员
C.协调人
D.讲解员
答案:
A
[解答]检查小组的每个成员都可认为是一个检查人员,检查人员在代码检查的准备阶段和检查会议阶段都具有发现产品错误的责任;协调人主持引导代码检查的执行过程,全而辅助代码检查的效果;开发人员是检查项目的生产者,主要负责提供检查资料和回答检查人员的问题;讲解员在代码检查会议期间讲解检查项目,引导检查小组对产品进行彻底检查。
36.下列检查项目中不属于风格检查的是______。
A.编程标准
B.变量说明
C.结构化程序设计
D.命名规则
答案:
A
[解答]桌上检查的主要检查项目包括:
检查变量的交叉引用表,检查标号的交叉引用表,检查子函数、宏、函数,等价性检查,常量检查,标准检查,风格检查,比较控制流,选择、激活路径,补充文档。
其中风格检查主要是检查在程序设计风格方面发现的问题,包括命名规则、变量说明、程序格式、注释的使用、结构化程序设计、基本控制结构的使用。
选项A中编程标准是属于标准检查的。
37.下列叙述中,说法正确的是______。
A.桌上检查的文档是最后要公开的正式文档
B.桌上检查是一个完全没有约束的过程,所以通常效率会比较低
C.代码检查是程序员自己检查自己编写的程序
D.桌上检查最好由程序的编写人员来完成
答案:
B
[解答]桌上检查是一种传统检查方法,由程序员自己检查自己编写的程序。
对大多数人而言,桌上检查效率会相当低,其中一个原因是它是一个完全没有约束的过程,另一个原因是它违反了软件测试的原则,即人们一般不能有效地测试自己编写的程序。
所以桌上检查最好由其他人而非程序的编写人员来完成,桌上检查的文档是一种过渡性的文档,不是公开的正式文档。
代码检查是以小组为单位阅读代码,应用一系列规程和错误检查技术,检查实际的产品(包括文档和程序代码),发现存在错误和缺陷的过程。
38.在对程序代码进行静态分析时,要生成各种引用表,这些引用表按功能可以分为______。
A.为用户提供辅助信息的
B.直接从表中查出说明/使用错误的
C.用来做错误预测和程序复杂性计算的
D.以上全部
答案:
D
[解答]对程序代码进行静态分析时,要做两件事:
生成各种引用表和进行静态错误分析。
其中在源代码编制完成后生成各种引用表是为了支持对源程序进行静态检查。
引用表按功能可以分为:
·可直接从表中查出说明/使用错误。
如循环层次表、变量交叉引用表、标号交叉引用表等。
·为用户提供辅助信息。
如子函数(宏、函数)引用表、等价(变量)表、常数表等。
·用来做错误预测和程序复杂度计算。
如操作符和操作数的统计表。
39.下列引用表是为用户提供辅助信息的是______。
A.函数引用表
B.变量交叉引用表
C.循环层次表
D.操作符统计表
答案:
A
[解答]在源代码编制完成后,为了支持对源程序进行静态检查要生成各种引用表。
为用户提供辅助信息的主要有:
子函数(宏、函数)引用表、等价(变量)表、常数表。
选项D的操作符统计表是用来做错误预测和程序复杂度计算的;选项B和C可以直接从表中查出说明/使用错误。
40.在代码检查中,负责提供关于检查项目的资料并回答检查人员问题的角色是______。
A.协调人
B.开发人员
C.检查人员
D.讲解员
答案:
B
[解答]代码检查小组通常规模很小,是由设计、开发、质量等不同部门中工作性质相关的人员中与产品关系密切的那些人组成,一般人数为4~7人不等。
小组人员的角色分配通常有:
协调人员、开发人员、检查人员、讲解员、记录员。
其中开发人员是检查项目的生产者,主要负责提供检查项目资料和回答检查人员问题;协调人员主持、引导代码检查的执行过程,全面负责代码检查的效果;讲解员负责在检查会议中讲解检查项目,引导小组对产品进行彻底检查;记录员负责会议期间在检查表上记录发现的每一个错误,同时也承担作为一般检查人员的任务。
41.走查是对软件进行静态测试的一种方法,以下不属于走查活动的是______。
A.计划走查会议
B.准备测试用例
C.执行走查以发现和改正错误
D.在走查过程中程序员逐渐讲解自己的程序
答案:
B
[解答]走查的步骤如下:
①计划走查会议;②走查产品;③执行走查;④解决缺陷;⑤走查记录;⑥产品返工。
准备测试用例是走查之前要进行的活动。
42.走查的最主要目标有_____
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 类型 及其 开发 过程 中的 地位 代码 检查 评审 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)