软件测试类型及其在软件开发过程中的地位.docx
《软件测试类型及其在软件开发过程中的地位.docx》由会员分享,可在线阅读,更多相关《软件测试类型及其在软件开发过程中的地位.docx(13页珍藏版)》请在冰豆网上搜索。
软件测试类型及其在软件开发过程中的地位
[模拟]软件测试类型及其在软件开发过程中的地位
选择题
第1题:
对程序中已发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档,称为______。
A.测试
B.调试
C.错误分析
D.验证
参考答案:
B
在测试信息流中,测试过程需要三类输入:
-软件配置(包括需求规格说明、软件设计规格说明、源代码等)。
-测试配置(包括表明测试工作如何进行的测试计划、给出测试数据的测试用例、控制测试进行的测试程序等)。
-测试工具(为提高软件测试效率,测试工作要有测试工具的支持.其主要工作是为测试的实施提供各种服务,以减轻人们完成测试任务的手工劳动)。
在测试完成之后,要对所有测试结果进行分析,即将实际测试的结果与预期的结果进行比较。
若发现出错的数据,就意味着软件有错误,然后就需要开始排错(也称为调试),即对已发现的错误进行定位和确定出错性质,并改正这些错误,同时修改相关的文档。
修正后的文档一般都要经过两次测试,直到通过测试为止。
第2题:
把经过评审通过的各项需求转换为一个相应的体系结构,包括数据的体系结构、系统和软件的体系结构,这是软件生命周期哪一阶段做的事情______。
A.系统和需求定义
B.编程和单元测试
C.软件设计
D.运行和维护
参考答案:
C
软件设计是软件工程的技术核心,在设计阶段中,设计人员把经评审通过的各项需求转换为一个相应的体系结构,包括数据的体系结构、系统和软件的体系结构。
结构中每一组成部分都是一个模块,每个模块都是和某种需求相对应,即所谓概要设计和高层设计。
进而对每个模块要完成的任务进行具体描述,为后面的编程打基础,即所谓详细设计。
第3题:
之所以要对已交付使用的软件进行维护,原因是______。
(Ⅰ)为了增强软件的功能,满足功能上的变更
(Ⅱ)运行中发现了软件中的错误需要更正
(Ⅲ)为了适应软件工作环境变化而引起的相应改变
A.(Ⅰ)
B.(Ⅰ)和(Ⅲ)
C.(Ⅱ)和(Ⅲ)
D.(Ⅰ)和(Ⅱ)和(Ⅲ)
参考答案:
D
对于已交付的软件投入正常使用,就进入运行阶段,这一阶段可能持续若干年甚至几十年。
但软件在运行过程中往往可能会因为多方面的原因导致需要对该软件进行修改,这一修改过程便是软件的维护。
其主要原因可能为以下几点:
软件在运行中发现了软件本身存在的错误需要修正;为了适应变化了的软件工作环境;为了满足用户需求要增强软件的功能而需做变更。
第4题:
根据软件需求规格说明,在开发环境下对已经集成的软件系统进行的测试是______。
A.系统测试
B.单元测试
C.集成测试
D.验收测试
参考答案:
A
软件测试生存周期模型描述了软件测试的全过程:
单元测试、集成测试、系统测试、验收测试和回归测试等。
当一个程序单元编写出来之后,首先要做的就是及时对其进行单元测试,检查该程序单元中的各种缺陷,并通过调试改正它们,然后进行回归测试,检查这些缺陷是否确实得到修正。
集成测试根据软件体系结构的设计,按照一定顺序将经过单元测试的程序单元逐步组装为子系统或系统,该过程可以与单元测试穿插进行。
系统测试是根据软件需求规格说明,在开发环境下对已经集成的软件系统进行测试,确认各项规定的需求是否在系统中实现,以及各种质量要求在系统中是否达到预期的标准。
验收测试是对已经确认的软件系统进行的测试,在实际使用环境中,与计算机系统的其他系统元素进行一系列系统级的集成测试和测试。
第5题:
下列可以做为软件测试对象的是______。
A.需求规格说明
B.软件设计规格说明
C.源程序
D.以上全部
参考答案:
D
软件测试不仅仅限于程序编码之后,而应该贯穿于软件开发的全过程。
软件测试并不等于程序测试,因此,需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档资料,包括需求规格说明、软件概要设计规格说明、软件详细设计规格说明以及源程序.都应做为软件测试的对象。
第6题:
测试过程需要输入软件配置、测试配置和测试工具。
其中不属于测试配置的是______。
A.测试计划
B.测试用例
C.测试报告
D.测试程序
参考答案:
C
软件测试信息流中,测试过程需要三类输入,分别是:
测试汁划、测试配置和测试工具。
其中测试计划包括软件需求规格说明、软件设汁规格说明、源代码等;测试配置包括表明测试工作如何进行的测试计划、给m测试数据的测试用例、控制测试进行的测试程序等;测试工具主要是为测试的实施提供某种服务,以减轻人们完成测试任务中的手工劳动。
第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.上一层
参考答案:
A
自底向上测试与自顶向下测试策略都是增量式的测试,软件是分层设计的,主模块调用子模块,子模块又依次调用更低层次的模块,依此类推。
在自底向上单元测试的策略中,应首先测试最底层的模块,利用辅助的测试驱动模块调用它们并传递测试数据,然后再测试更高层次的模块,在较高层次的模块测试中可以直接调用已测试过的较低层次的模块。
第18题:
下列关于测试方法的叙述中不正确的是______。
A.从某种角度上讲,白盒测试与黑盒测试都属于动态测试
B.功能测试属于黑盒测试
C.对功能的测试通常是要考虑程序的内部结构的
D.结构测试属于白盒测试
参考答案:
C
白盒测试是程序员十分了解程序的前提下,对程序的逻辑结构进行的测试。
而黑盒测试则将程序视为一个黑盒子,仅仅是测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的,结构测试属于白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。
功能测试则属于黑盒测试,对功能的测试通常通过提供输入数据,检查实际输出的结果,很少考虑程序的内部结构。
第19题:
不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试的是______。
A.性能测试
B.黑盒测试
C.白盒测试
D.静态分析
参考答案:
D
软件测试的分类方法比较多,针对测试时是否要运行程序分为静态测试和动态测试,其中静态测试也称静态分析,它不必运行程序,目的仅仅是收集程序代码的结构信息而不用查错;相反,动态测试则是要执行程序,目的是查出程序的错误而非单纯收集代码结构信息。
针对测试人员是否要清楚程序的内部逻辑,将测试分为白盒测试和黑盒测试,同时这两种测试方法都是要对程序进行查错,从这一角度看,白盒测试和黑盒测试都应属于动态测试。
由此本题D选项最恰当。
第20题:
在白盒测试中,程序员要运用自己的智力和理解力,深入到源程序中以开发测试,这样的好处是______。
A.重点测试
B.数据完整性和内部边界
C.测试覆盖和控制流
D.以上全部
参考答案:
D
白盒测试与黑盒测试的区别:
黑盒测试将程序视为一个黑盒子,测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的。
而白盒测试是程序员十分了解程序的前提下,对程序的逻辑结构进行的测试。
在白盒测试中,程序员要运用自己的智力和理解力,深入到源程序中以开发测试,这样的好处在于以下几点:
重点测试、测试覆盖、控制流、数据完整性、内部边界以及特定算法测试。
第21题:
关注在一连串的测试中如何选择合适的程序或子程序路径来执行有效的检查,这种测试极有可能是______。
A.结构测试
B.黑盒测试
C.功能测试
D.静态测试
参考答案:
A
白盒测试是对程序的逻辑结构进行的测试,而黑盒测试将程序视为一个黑盒子,仅仅是测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的。
结构测试属于白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。
功能测试则属于黑盒测试,对功能的测试通常通过提供输入数据,检查实际输出的结果,很少考虑程序的内部结构。
静态测试不必执行程序,仅收集有关程序代码的结构信息。
第22题:
在覆盖准则中,最常用的是______。
A.语句覆盖
B.条件覆盖
C.分支覆盖
D.以上全部
参考答案:
D
在路径测试中,覆盖准则中规定了测试的每一组路径,覆盖准则又称为逻辑覆盖准则或安全性准则,其中最常用的覆盖准则是语句覆盖、分支覆盖和条件覆盖。
第23题:
认为自底向上测试的方法要优于自顶向下测试方法的是______。
A.Yourdon
B.Myers
C.Dunn
D.Fisher
参考答案:
B
自底向上测试和自顶向下测试都是增量式的测试方法,在自底向上测试中,首先测试最底层的模块,利用辅助的驱动模块调用,然后测试高层次的模块。
而自顶向下测试则刚好相反,它是首先测试顶层模块.无须编写驱动模块,但要使用桩模块,然后测试下一层模块。
Yourdon认为自顶向下测试是个较好的策略;Myers认为两者各有优缺点,权衡来看,自底向上测试的方法要优于自顶向下测试方法;Dunn认为两种不可缺少。
第24题:
大多数实际情况下,性能测试的实现方法是______。
A.黑盒测试
B.白盒测试
C.静态分析
D.可靠性测试
参考答案:
A
性能测试的目标是为了提高软件性能。
对性能测试要判断出哪些模块执行得最多或者占用的机器时间最多,这些模块就将被重新检查、重新编写以便运行得更快。
性能测试可以通过白盒或黑盒测试方法来测试.但在大多数实际情况下,人们都是使用黑盒测试方法来实现性能测试。
第25题:
在软件生存周期中占据时间最长的是______。
A.运行和维护阶段
B.软件开发阶段
C.需求分析阶段
D.软件设计阶段
参考答案:
A
由于很多复杂因素的影响,软件开发组织投入到软件产品上的费用以及大多数时间都花在了软件完成并交付使用后对它的维护上,软件的运行和维护阶段可以说是软件生存周期中占据时间最长的阶段,在这段时间内,需要在运行环境中对软件产品进行性能监视,若有必要,为了纠正错误或满足新的需求,还需要对软件产品进行修改。
第26题:
在理想情况下,只要软件发生了变更,就要对其进行______。
A.验证测试
B.回归测试
C.确认测试
D.验收测试
参考答案:
B
回归测试是测试人员常做的事情,一经发现并改正程序中隐藏的缺陷,然后在重新执行以前发现这个缺陷的测试,看这个缺陷是否会重现,这是一种回归测试。
另外,当对发现的缺陷进行修改后,执行一系列基准测试,以确认程序的修改没有对程序的其他部分产生干扰,这也称为是回归测试。
在理想情况下,只要软件发生了变更,就要对其进行回归测试。