软件质量保证与测试技术习题

  • 第一章 引论
  • 第二章 软件质量与软件缺陷
  • 第三章 软件测试基础
  • 第4章 软件测试的方法
  • 第五章单元测试、第六章集成测试作业
  • 第七章系统测试作业
  • 第八章验收测试作业

第一章 引论

1、软件测试的目的是(ABCD)。
A发现软件错误
B提高软件质量
C便于软件过程改进
D为用户选择与接受软件提供有力的依据

解析:软件测试的目的:

Grenford J.Myers就软件测试目的提出的观点:测试是程序执行的过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。

Bill Hetzel提出了测试目的不仅仅是为了发现错误,而且也是对软件质量进行度量和评估,以提高软件的质量。

测试目的延伸(软件工程):
(1)测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。
(2)通过分析错误产生的原因有助于发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进。同时通过对测试结果的分析整理,还可以修正软件开发规则,并为软件可靠性分析提供依据。
(3)测试是以评价一个程序或者系统属性为目标的一种活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求,为用户选择与接受软件提供有力的依据

2、下列可以作为软件测试对象的是(ABCD)。
A需求规格说明书
B软件设计规格说明书
C源程序
D 用户手册

解析:软件测试的对象 :

软件测试不等于程序测试。
软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序等都是软件测试的对象。
软件测试贯穿于软件定义和开发的整个过程。

软件测试的对象:软件、产品、项目、系统。

软件:程序(源码、模块、部件、软件)、文档(需求规格说明书、概要说明书、详细设计说明书、用户手册(帮助文档)等)、数据(字符、图片、视频、音频等等)

3、为了提高软件测试的效率,应该(D)。
A随机地选取测试数据
B 取一切可能的输入数据作为测试数据
C在完成编码以后制定软件的测试计划
D 选择发现错误可能性最大的数据作为测试用例

解析:对于一个软件,其可能的输入数据数量一般是非常惊人的,所以要想全部将其作为测试用例是不现实的,应当选择发现错误可能性大的数据作为测试用例,不能随机选取测试用例,故D正确,A、B错误。软件测试贯穿于软件开发的各个阶段,C项错误。

4、V模型指出,单元和集成测试对程序设计进行验证,(D)应当追溯到用户需求说明。
A单元测试
B集成测试
C系统测试
D验收测试

解析:V模型:

存在的问题
测试是编码之后的一个阶段。
测试的对象就是程序本身。
实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。

5、下面关于软件测试的说法错误的是(A)。
A软件测试就是程序测试
B软件测试贯穿软件定义和开发的整个期间
C需求规格说明、设计规格说明都是软件测试的对象
D 程序是软件测试的对象

解析:软件测试不等于程序测试。软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序等都是软件测试的对象。软件测试贯穿于软件定义和开发的整个过程。A错,B、C、D正确

6、通常测试用例很难100%覆盖测试需求,因为(全选)。
①输入量太大②输出结果太多③软件实现途径多 ④测试依据没有统一标准

7、关于软件测试与质量保证,正确的理解是(C)。
A软件测试关注的是过程中的活动,软件质量保证关注的是过程的产物
B软件测试不是软件质量保证工作中的内容
C软件测试是软件质量保证的重要手段
D软件质量保证人员就是软件测试人员

解析:软件质量保证(Software Quality Assurance,SQA)的完整定义为:为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。

软件测试的定义:软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有以下几种描述:
定义1:1979年,G.J.Myers对软件测试的定义:软件测试是为了发现错误而执行程序的过程。(逆向思维的代表)

定义2:1983年,B.hetzel对软件测试的定义:以评价一个程序或系统的属性为目标的任何一种活动;测试是对软件质量的度量。(正向思维的代表)
定义3:1983年,IEEE提出的软件工程标准术语中,软件测试被定义为:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”

定义4:软件测试是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体。
“验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性。(生产软件的步骤是否正确)
“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。(生产的软件是否正确)

SQA活动:对软件开发各个阶段的进展、完成质量及出现的问题进行评审、跟踪。
审查和验证软件产品是否遵守适用的标准、规程和要求,并最终确保符合标准、满足要求。
建立软件质量要素的度量机制,了解各种指标的量化信息,向管理者提供可视信息。

SQA与软件测试有什么关系和区别

SQA指导、监督软件测试的计划和执行,督促测试工作的结果客观、准确和有效,并协助测试流程的改进。
软件测试是SQA重要手段之一,为SQA提供所需的数据,作为质量评价的客观依据。

软件质量保证(SQA)是一项管理工作,侧重于对流程的评审和监控
软件测试是一项技术性的工作,侧重对产品进行评估和验证

8、关于软件测试与软件开发的认识,不正确的是(A)。
A软件测试是独立于软件开发的一个工作
B软件测试过程和软件开发过程都贯穿软件过程的整个生命周期
C软件开发的需求分析和设计阶段就应该开始测试工作
D 软件测试活动和项目同时启动

解析:软件测试与软件开发的关系:测试过程和开发过程都贯穿整个软件生命周期;
测试过程和开发过程同步;
测试过程和开发过程相互依赖。

9、典型的软件测试过程模型有V模型、W模型、H模型等,在这些模型中,©对软件测试流程予以了说明。
AV模型
BW模型
CH模型
D增量模型

解析:H模型:

测试流程:
测试准备活动:测试计划、测试设计、测试开发。
测试执行活动:测试运行、测试评估。


H模型的完善之处:
测试是一个独立流程,贯穿产品整个周期,与其它流程并发进行;
测试不仅仅是测试执行,还包括其他活动;
测试要尽早准备,尽早执行。
H模型的意义:
测试准备和测试执行分离,有利于资源调配。降低成本,提高效率;
充分体现测试过程(不是技术)的复杂性;
有组织、结构化的独立流程,有助于跟踪测试投入的流向。

10、典型的软件测试过程模型有V模型、W模型、H模型等,在这些模型中,(B)强调了测试计划等工作的先行和对系统需求和系统设计
的测试。
A V模型
B W模型
C渐进模型
D 螺旋模型

解析:W模型:

W模型的完善之处:
测试伴随整个软件生命周期;
测试对象不仅是程序,还包括需求和设计;
相应开发活动完成,即可执行测试(例如:需求分析完成,即可对需求进行测试) 。
W模型未解决V模型中的部分问题:
需求、设计、编码串行进行,无法并行工作;
未将测试流程的完整性表示出来。

11、下面有关测试原则的说法正确的是(A)
A测试用例应由测试的输入数据和预期的结果组成
B测试用例只需选取合理的输入数据
C程序最好由编写该程序的程序员自己来测试
D 使用测试用例进行测试是为了检查程序是否做了它该做的事

解析:软件测试的原则:
所有的软件测试都应追溯到用户需求;
尽早地和及时地测试;
完全测试是不可能的,测试需要终止;
测试用例应当由测试数据和与之对应的预期结果这两部分组成;A
测试用例应包括有效输入和无效输入;B
在程序提交测试后,应当由专门的测试人员进行测试;C

严格执行测试计划,排除测试的随意性;
充分注意测试当中的群集现象;
应对每一个测试结果做全面的检查;
保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。D

第二章 软件质量与软件缺陷

1.软件质量的定义是( D)。

A、软件的功能性、可靠性、易用性、效率、可维护性、可移植性

B、满足规定用户需求的能力

C、最大限度达到用户满意

D、软件特性的总和,以及满足规定和潜在用户需求的能力

解析:软件质量(ANSI/IEEE Std 729-1983 ):软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。包括:
软件产品满足使用要求的程度、软件各种属性的组合程度、用户对软件产品的综合反映程度、软件在使用过程中满足用户要求的程度。

概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。从管理角度对软件质量进行度量, 可将影响软件质量的主要因素划分为六个部分特性(根据GB/T16260.1)功能性,可靠性,易用性,效率,维护性与可移植性。其中功能性包括适合性,准确性,互用性,依从性,安全性;可靠性包括容错性,易恢复性,成熟性;易用性包括易学性,易理解性,易操作性;效率包括资源特性和时间特性;维护性包括可测试性,可修改性,稳定性和易分析性;可移植性包括适应性,易安装性,一致性和可替换性的六个特征及若干子特征。

2.软件内部/外部质量模型中,可移植性不包括(C )子特性。

A、适应性

B、共存性

C、兼容性

D、易替换性

解析:

可移植性包括:适应性、易安装性、共存性、易替换性。没有兼容性。

3.软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性(B )是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。

A、易恢复性

B、容错性

C、成熟性

D、可靠性依从性

解析:软件产品质量可以归纳为以下属性:

1)功能性(functionlity):在指定条件下,软件产品满足明确和隐含要求功能的能力
匹配性:软件为指定的任务和用户目标提供一组合适功能的能力
精确性:软件提供所需精确度的正确或相符结果及效果的能力
互用性:软件产品与一个或更多规定系统进行交互的能力
安全性:软件产品保护信息和数据的能力

2)可靠性(reliability):在指定条件使用时,软件产品维持规定的性能级别的能力
成熟性:软件产品为避免由软件中错误而导致失效的能力
容错能力:在软件失效或者违反规定的接口的情况下,软件产品维持规定的性能级别的能力
可恢复性:在发生故障的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力

3)可用性(usability):在指定条件使用时,软件产品被理解、学习、使用和吸引用户的能力
可理解性:完成特定任务的功能明显性和适用性
可学习性:软件产品使用户能学习它的应用的能力
可操作性:软件产品使用户能操作和控制它的能力
吸引性:软件产品吸引用户的能力

4)效率(efficiency):在规定条件下,相对于所用资源数量,软件产品提供适当性能的能力
时间表现:在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力
资源表现:在规定条件下,软件产品执行其功能时,使用合适的数量和类型的资源的能力

5)可维护性( maintainability):软件产品可被修改的能力,包括修正、改进或软件适应环境、需求和功能规格说明中的变化
可分析性:软件诊断缺陷或失效原因以及判定修改部分的能力
可变化性:软件产品使指定的修改可以被实现的能力
稳定性:软件产品避免由于软件修改而造成意外结果的能力
可测试性:软件产品使已修改软件能被确认的能力

6)可移植性(portability):软件产品从一种环境迁移到另外一种环境的能力
适应性:软件产品无需采用手段就可能适应不同的指定环境的能力
易安装性:软件产品在指定环境中被安装的能力
一致性:软件在公共环境中分享资源与其它独立软件共存的能力
可替换性:在环境、目的相同的情况下替代另一个指定软件的能力

4.下列关于缺陷产生原因的叙述中,不属于技术问题的是( A)。

A、文档错误,内容不正确或拼写错误

B、系统结构不合理

C、语法错误

D、接口传递不匹配,导致模块集成出现问题

解析:软件缺陷的产生:

1.技术问题:算法错误,语法错误,计算和精度问题,接口参数传递不匹配,系统结构不合理、算法选择不科学,造成系统性能低下。
2.团队工作:沟通不充分,误解
3.软件本身:文档错误、用户使用场合(user scenario),;时间上不协调、或不一致性所带来的问题;系统的自我恢复或数据的异地备份、灾难性恢复等问题

5.下列有关软件缺陷生命周期状态定义的说法中,错误的是( D)。

A、“新建”表示测试中发现并报告了新的软件缺陷

B、“打开”表示软件缺陷已被确认并分配给相关开发人员处理

C、“解决”表示软件缺陷已被确认修复

D、“关闭”表示软件缺陷已被开发人员修复等待测试人员验证

解析:软件缺陷生命周期指的是一个软件缺陷被发现、报告到这个缺陷被修复、验证直至最后关闭的完整过程。

缺陷生命周期是各类人员一起参与、协同测试的过程。

发现-打开:测试人员找到软件缺陷并将软件缺陷提交给开发人员。
打开-修复:开发人员再现、修复缺陷,然后提交给测试人员去验证。
修复-关闭:测试人员验证修复过的软件,关闭已不存在的缺陷。

6.在系统测试阶段,在运行一个测试用例后,测试人员发现了一个缺陷,经过分析和确认,他填写和提交了一份缺陷报告。开发方承认了这个缺陷,并修复了它。经过回归测试,测试人员确认这个缺陷得到了修复。这时,测试人员应重新标识上面这个测试用例和缺陷报告的状态。应该分别标识为( C )。

A、失败,通过

B、通过,关闭

C、解决,关闭

D、未运行,解决

解析:

7.软件界面中出现了个别错别字或文字排列不整齐,这属于软件缺陷级别中的( D)。

A、致命缺陷

B、严重缺陷

C、一般缺陷

D、微小缺陷

解析:严重性(severity)衡量缺陷对客户满意度的影响程度:致命的(fatal)、严重的(critical)、一般的(major)、微小的(minor)、建议性的

8.严重级别高的Bug必须优先解决,优先级高的Bug其严重级别也一定高。错误

解析:优先级(Priority):指缺陷被修复的紧急程度。

缺陷优先级 描述
立即解决(P1级) 缺陷导致系统几乎不能使用或测试不能继续,需立即修复
高优先级(P2级) 缺陷严重,影响测试,需要优先考虑
正常排队(P3级) 缺陷需要正常排队等待修复
低优先级(P4级) 缺陷可以在开发人员有时间的时候被纠正。

分类 项目 描述
可跟踪信息 缺陷ID 唯一的、自动产生的缺陷ID,用于识别、跟踪、查询
软件缺陷基本信息 缺陷状态 可分为“打开或激活的”、“已修正”、“关闭”等
缺陷标题 描述缺陷的最主要信息
缺陷的严重程度 一般分为“致命”、“严重”、“一般”、“较小”等四种程度
缺陷的优先级 描述处理缺陷的紧急程度, 1是优先级最高的等级,2是正常的,3是优先级最低的
缺陷的产生频率 描述缺陷发生的可能性1%-100%
缺陷提交人 缺陷提交人的名字(会和邮件地址联系起来),一般就是发现缺陷的测试人员或其他人员
缺陷提交时间 缺陷提交的时间
软件缺陷基本信息 缺陷所属项目/模块 缺陷所属的项目和模块,最好能较精确的定位至模块
缺陷指定解决人 估计修复这个缺陷的开发人员,在缺陷状态下由开发组长指定相关的开发人员;也会自动和该开发人员的邮件地址联系起来,并自动发出邮件
缺陷指定解决时间 开发管理员指定的开发人员修改此缺陷的时间
缺陷验证人 验证缺陷是否真正被修复的测试人员;也会和邮件地址联系起来
缺陷验证结果描述 对验证结果的描述(通过、不通过)
缺陷验证时间 对缺陷验证的时间
缺陷的详细描述 步骤 对缺陷的操作过程,按照步骤,一步一步地描述
期望的结果 按照设计规格说明书或用户需求,在上述步骤之后,所期望的结果,即正确的结果
实际发生的结果 程序或系统实际发生的结果,即错误的结果
测试环境说明 测试环境 对测试环境描述,包括操作系统、浏览器、网络带宽、通讯协议等
必要的附件 图片、Log文件 对于某些文字很难表达清楚的缺陷,使用图片等附件是必要的;对于软件崩溃现象,需要使用Soft_ICE工具去捕捉日志文件作为附件提供给开发人员。

优先级是从公司运营角度(人力配置、资金投入等)出发,而严重程度是从纯技术角度出发。
(1)在项目或产品会上,团队会根据公司运营角度设置优先级。他们会考虑“我们修复这个缺陷对公司运营有多么重要?”。一般高严重级别的缺陷优先级别也高,但并不是一直都是这样。有时会出现的高严重级别缺陷有低优先级,低严重级别缺陷有一个高的优先级。
(2)在大多数项目中,如果项目截至日期临近,即时有从技术层面看严重级别高的缺陷,但是优先级却不高,这是由于这个缺陷表明的功能问题对整个项目运作不是最关键的。
(3)优先级和严重级别是两个很重要的指标对于项目整个开展过程来说。严重级别是从客户角度考虑,而优先级别是从项目运作考虑。设置严重级别很简单。根据一些指导文档测试人员就可以给出严重级别,而在给出优先级别时却要做更多的考量。另外需要注意是“项目周期所剩多少时间?”,“谁还有空能修复缺陷?”,“修复这个缺陷到底对于项目来说有多么重要?”,“这个缺陷会导致什么结果?","出现的频率如何?“,和”修复这个缺陷可能带来的其他问题”这些都是需要考虑的。

9.缺陷发现或解决得越迟,修复成本就越高。正确

解析:

10.以下(D )不属于软件缺陷。

A、软件没有实现产品规格说明书所要求的功能。

B、软件中出现了产品规格说明书中规定不应出现的功能。

C、软件实现了产品规格说明书没有提到的功能。

D、软件实现了产品规格说明书所要求的功能,但因受第三方软件限制而未考虑可移植性问题。

解析:软件缺陷一个:产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

功能、特性没有实现或部分实现
设计不合理,存在缺陷
实际结果和预期结果不一致
运行出错,包括界面混乱、运行中断、系统崩溃
数据结果不正确、精度不够
用户不能接受的其他问题,如存取时间过长、界面不美观

所谓“缺陷(bug)”,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误或者隐藏的功能缺陷。软件缺陷的主要类型有:①软件没有实现产品规格说明要求的功能;②软件出现了不该出现的错误;③软件实现了说明没提到的功能;④软件没实现虽然规格说明中未明确提及但应实现的目标;⑤软件难理解,不易使用。

和第三方没关系。

11.致软件缺陷的原因很多,①——④是可能的原因,其中最主要的原因包括( AD )。

A、软件需求说明书编写的不全面,不完整,不准确,而且经常更改

B、软件设计说明书

C、软件操作人员的水平

D、开发人员不能很好的理解需求说明书和沟通不足

解析:1.技术问题
开发人员技术的限制,系统设计不能够全面考虑功能、性能和安全性的平衡。
刚开始采用新技术,解决和处理问题时不够成熟。
由于逻辑过于复杂,很难在第一次就将问题全部处理好。
系统结构设计不合理或算法不科学,造成系统性能低下。
接口参数太多,导致参数传递不匹配。
需求规格说明书中有些功能在技术上无法实现。
没有考虑系统崩溃后的自我恢复或数据的异地备份,灾难性恢复等需求,导致系统存在安全性、可靠性的隐患。
一般情况下,对应的编程语言编译器可以发现这类问题;对于解释性语言,只能在测 试运行的时候发现。
2.软件本身
不完善的软件开发标准或开发流程。
文档错误、内容不正确或拼写错误。
没有考虑大量数据使用场合,从而可能会引起强度或负载问题。
对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某几个边界条件造成的问题。
对一些实时应用系统,缺乏整体考虑和精心设计,忽视了时间同步的要求,从而引起系 统各单元之间不协调、不一致性的问题。
与硬件、第三方系统软件之间存在接口或依赖性。
3.团队工作
团队文化,如对软件质量不够重视。
系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难,从而造成对用户需求的误解或理解不够全面。
不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。
设计或编程上的一些假定或依赖性,没有得到充分的沟通。

第三章 软件测试基础

1.对于软件的β测试,下列描述正确的是( D ) 。

A、β 测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试

B、β 测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试

C、β测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试

D、β测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试

解析:用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己的预期要求。β测试通常被看成一种“用户测试”。

α测试:指软件开发公司组织内部人员开始使用新产品(称为α版本),在实际运行环境和真实应用过程中发现测试阶段所没有发现的缺陷。
经过α测试调整的软件产品称为β版本。
β测试 :指公司外部的典型用户试用,并要求用户报告异常情况、提出批评意见,然后再对β版本进行修正和完善,最终得到正式发布的版本。(常见的试用版本)

由此可见,β测试由用户最终执行,所以可以是非专业的人员进行测试。

β测试的概念如下。 β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。与α。测试不同的是,开发者通常不在测试现场。β测试的目的是衡量软件产品的功能和性能,尤其注重产品的支持性,包括文档、客户培训和支持产品生产能力。

α、β、入常用来表示软件测试过程中的三个阶段,α是第一阶段,一般只供内部测试使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺,一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。
Beta测试是一种验收测试。所谓验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段。验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求确保所开发的软件产品符合用户的各项要求。通过综合测试之后,软件已完全组装起来,接口方面的错误也已排除,软件测试的最后一步——验收测试即可开始。验收测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。
Beta测试由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想象的),并定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。

2.关于白盒测试与黑盒测试的最主要区别,正确的是( A )。

A、白盒测试侧重于程序结构,黑盒测试侧重于功能

B、白盒测试可以使用测试工具,黑盒测试不能使用工具

C、白盒测试需要程序员参与,黑盒测试不需要

D、黑盒测试比白盒测试应用更广泛

解析:

由此可见,白盒测试更多是结构方面,黑盒测试则是功能方面。白盒测试方法也称结构测试或逻辑驱动的测试,黑盒测试也叫功能测试,数据驱动测试。

白盒测试:白盒测试的前提是可以把程序看成装在一个透明的白盒子里,测试人员应完全了解程序结构和处理过程。·白盒测试按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。·白盒测试又称结构测试。
黑盒测试:黑盒测试法是把程序看成一个黑盒子,测试人员可以完全不考虑程序内部结构和处理过程。·黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。黑盒测试又称功能
测试。
以此为依据,可以判断:白盒测试可以使用测试工具,黑盒测试也可以使用测试工具。白盒测试也需要测试人员来执行。·不同的测试需求,会采用不同的黑盒测试与白盒测试方法。

3.软件测试按实施组织分,测试应该包括以下的( A )。

①开发方测试②用户方测试③第三方测试④验收测试⑤确认测试(50)

A、①、②、③

B、③、④、⑤

C、①、②、④

D、①、②、③、④、⑤

解析:软件测试的分类:

(1)按照是否运行程序划分为:
静态测试、动态测试
(2)按照测试的方法划分为:
主动测试、被动测试
(3)按照测试用例设计方法划分为:
白盒测试、黑盒测试、灰盒测试
(4)按照开发阶段划分为:
单元测试、集成测试、系统测试、验收测试
(5)按照测试中是否使用工具划分
手工测试、自动化测试
(6)按照实施测试的组织划分为:
开发方测试、用户测试、第三方测试

开发方测试:也叫“验证测试”或α测试。是开发方在软件开发环境下,对将要提交的软件进行全面检测和验证,证实软件的实现是满足规定需求的。
用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己的预期要求。β测试通常被看成一种“用户测试”。
第三方测试:介于开发方和用户方之间的测试组织进行的测试。

4.关于对第三方测试的描述,正确的观点是( B )。

A、既不是用户,也不是开发人员所进行的测试就是第三方测试

B、第三方测试也称为独立测试,是由相对独立的组织进行的测试

C、第三方测试是在开发方与用户方的测试基础上进行的验证测试

D、第三方测试又被称为β测试

解析:第三方测试:介于开发方和用户方之间的测试组织进行的测试。第三方测试也称为独立测试。软件质量工程强调开展独立验证和确认(IV&V)活动。软件第三方测试是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。 一般情况下是在模拟用户真实应用环境下,进行软件测试。第三方测试有别于开发人员或用户进行的测试,其目的是为了保证测试工作的客观性。从国外的经验来看,测试逐渐由专业的第三方承担。同时第三方测试还可适当兼顾初级监理的功能,其自身具有明显的工程特性,为发展软件工程监理制奠定坚实的基础。第三方测试工程主要包括需求分析、设计审查、代码审查、单元测试、功能测试、性能测试、可恢复性测试、资源消耗测试、并发测试、健壮性测试、安全测试、安装配置测试、可移植性测试、文档测试以及最终的验收测试等十余项。

在测试的过程中,用户、开发方与测试方形成了一个三角关系,从最终目标来讲,三方是完全一致的,都是希望保证系统稳定运行。但在测试过程中,三方的关系却是既对立又合作。对立是指各自坚持自己的职责,合作是指每一方的工作都需要其它两方的支持和帮助。

5.从测试阶段角度,正确的测试顺序是( A )。

①单元测试 ②集成测试 ③系统测试 ④验收测试

A、①②③④

B、②①③④

C、③②①④

D、③①②④

解析:软件测试级别:

由下而上。

**单元测试:**针对程序系统中的最小单元—模块或组件进行测试,一般和编码同步进行。主要采用白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。通常要编写驱动模块和桩模块。
单元测试一般由编程人员和测试人员共同完成,而以开发人员为主。
单元测试包括代码评审,代码评审可以发现程序50%~70%代码的缺陷。

**集成测试:**也称组装测试、联合测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。两种集成方式:一次性集成方式和增殖式集成方式。

**系统功能测试:**一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用
系统非功能性测试:是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括:负载测试、灾难恢复性测试、可靠性测试、性能测试、安全测试等

**验收测试:**目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样

6.关于软件测试与软件质量保证,正确的理解是( C )。

A、软件测试关注的是过程中的活动,软件质量保证关注的是过程的产物。

B、软件测试不是软件质量保证工作中的内容。

C、软件测试是软件质量保证的重要手段。

D、软件质量保证人员就是软件测试人员。

解析:见第一章第七题,软件测试是SQA重要手段之一

7.关于BUG管理流程,下列做法正确的是( C )。

A、开发人员提交新的BUG入库,设置状态为“New”

B、开发人员确认是BUG,设置状态为“Fixed”

C、测试人员确认问题解决了,设置状态为“Closed”

D、测试人员确认不是BUG,设置状态为“Reopen”

解析:见第二章第六题

A:应该是open,B:Fixed是修复,D:是重新打开

8.软件测试计划的内容包括( 全选 )。

A、测试目的

B、测试范围、测试策略

C、测试方法、测试安排

D、评价标准

E、测试风险和规避措施

解析:测试计划主要包括:测试目标、测试对象、测试范围、通过/失败标准、挂起标准和恢复条件、测试人员时间安排(资源安排)、风险及规避措施等。

测试计划以测试计划书形式呈现,其主要内容包括:
目标和范围
项目估算
风险计划
进度安排
资源配置
跟踪和控制机制

9.通过功能测试,一般可以确认系统的功能缺陷,主要类型包括(ABC )。

A、功能实现不正确。

B、功能不满足隐含需求。

C、功能不符合相关的法律法规。

D、功能易用性不好。

解析:据《ISO 9126软件工程产品质量》的规定,产品的外部质量和内部质量中描述的功能质量特性包括5个子特性,分别是适合性、准确性、互操作性、保密安全性以及功能依从性。所以适合性与功能类型的缺陷中功能不满足隐性需求有关,准确性与功能类型的缺陷中功能实现不正确有关,功能依从性与功能类型的缺陷中功能不符合相关的法律法规有关。
10.测试用例(Test case )是为了实现某个特定测试目标而设计的,它是测试操作条件、测试环境、测试数据、测试步骤及期望结果等的一个特定的集合。 正确

解析:测试用例是为了特定的测试目的(如考察特定程序路径或验证某个产品特性)而设计的测试条件、测试数据及与之相关的测试规程的一个特定的使用实例或场景。
测试用例的主要作用包括:
测试用例是测试人员在测试过程中的重要参考依据
测试用例将有助于节约测试时间,提高测试效率。
良好的测试用例不断地被重复使用,使得测试过程事半功倍
测试用例是一个知识积累的过程

11.白盒测试方法也称结构测试或逻辑驱动的测试。白盒测试方法是根据对模块内部结构的了解,基于内部逻辑结构,针对程序语句、路径、变量状态等,检验程序中的每条路径是否都能按预定要求正确工作,检验程序内部运行是否符合设计规格要求。正确

解析:见第二题。

12.对需求规格说明书的审查和对一些非技术性文档的的测试可以用静态黑盒测试方法。正确

解析:

13.静态测试可以采用人工检测和计算机辅助静态分析两种手段进行。正确

解析:静态测试:不运行被测软件本身,仅通过分析或检查源程序的语法、结构等来检查程序的正确性。包括对软件产品的需求和设计规格说明书的评审、对程序代码的复审等。
动态测试是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统信息,对系统行为进行验证。

**产品评审:**定义:评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地满足了以往工作产品中建立的规范。
目的:通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。
包括:需求评审、设计评审、代码评审、文档评审。
形式:互为评审(同行评审)、走查、会议评审。

静态分析是对系统的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。
两种手段:
人工检测:人工检测偏重于编码风格、质量的检验,对设计、代码进行分析,有效地发现逻辑设计和编码错误。
计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。

**验证和确认(V & V) :**Verification:是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性。
Validation:是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求。

主动测试方法:测试人员主动向被测试对象发送请求、或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果。
被动测试方法:测试人员不干预产品的运行,而是被动地监控产品在实际环境中运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据。

第4章 软件测试的方法

1.用边界值分析法,假定1≤x≤100,那么x在测试中应该取的边界值是( B )

A、x=1,x=100

B、x=0,x=1,x=100,x=101

C、x=2,x=99

D、x=0,x=101

解析:边界值分析法:确定边界情况(输入或输出等价类的边界)选取正好等于、刚刚大于或小于边界值作为测试数据

等于边界值:x=1,x=100;刚刚大于或小于边界值:x=0,x=101

2.(C )方法根据输出对输入的依赖关系设计测试用例。

A、路径测试

B、等价类划分法

C、因果图法

D、边界值法

解析:前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。

考虑多种输入条件的组合,产生多种结果设计测试用例,需要利用因果图。

因果图的基本符号

3.在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中等价类划分技术,下面划分正确的是( B)

A、可划分为2个有效等价类,2个无效等价类

B、 可划分为1个有效等价类,2个无效等价类

C、可划分为2个有效等价类,1个无效等价类

D、可划分为1个有效等价类,1个无效等价类

解析:确定等价类的六条原则:

(1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

例如本题:输入值是学生年龄16~40,有效等价类:① 16≤年龄≤40无效等价类:① 成绩<0,② 成绩>40

(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

例:程序的输入条件是x=10 有效等价类:① x=10 无效等价类:① x<>10

(3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

例:程序的输入条件是BOOL x=true 有效等价类:① x=true 无效等价类:① x=false

(4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

例:输入条件说明学历可为:专科、本科、硕士、博士四种之一。有效等价类:①专科、②本科、③硕士、④博士无效等价类:①其它任何学历

(5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

例:校内电话号码拨外线为9开头有效等价类:① 9+外线号码无效等价类:① 非9开头+外线号码② 9+非外线号码 ③ … …

(6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

4.针对下列程序段,对于( a , b , c )的取值,以下(D )测试用例组合能够满足语句覆盖的要求。

if ( (a+10 )==2 || (b-20)❤️ ) c=0;

if ( (a+30 )>10 && (c-30)<0 ) b=30;

A、( 2 , 30 , 1 )

B、( -20 , 0 , 30 )

C、( -30 , 20 , 30 )

D、( 2 , 20 , 3 )

解析:语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。如果是顺序结构,就是让测试从头执行到尾。如果有分支、条件和循环,需要利用下面的方法,执行足够的测试覆盖全部语句。

ABC都不足以覆盖

5.针对下列程序段,对于( a , b )的取值,以下( )测试用例组合能够满足条件覆盖的要求。1,4

if ( (a-10 )==20 && (b+20)>10 ) c=0;

if ( (a-30 )<10 && (b-30)<0 ) b=30;

①a=50 b=-10 ②a=40 b=40 ③a=30 b=-10 ④a=30 b=30

解析:条件覆盖的基本思想是设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。

测试用例 覆盖条件
a=50,b=-10 F1,F2,F3,T4
a=40 b=40 F1,T2,F3,F4
a=30 b=-10 T1,F2,T3,T4
a=30 b=30 T1,T2,T3,F4

很明显1,4组合可以全部覆盖

6.假设在程序控制流图中,有14条边,10个结点,则控制流程图的环路复杂性V(G)等于( C)。

A、12

B、8

C、6

D、4

解析:V(G)=edge-node+2=14-10+2=6,其中edge为控制流图的边数,node为控制流图的结点数

7.关于白盒测试与黑盒测试的最主要区别,正确的是( A)

A、白盒测试侧重于程序结构,黑盒测试侧重于功能

B、白盒测试可以使用测试工具,黑盒测试不能使用工具

C、白盒测试需要程序员参与黑盒测试不需要

D、 黑盒测试比白盒测试应用更广泛

8.( A)测试用例设计方法既可以用于黑盒测试,也可以用于白盒测试。

A、边界值法

B、基本路径法

C、正交试验设计法

D、逻辑覆盖法

边界值法既可以用于黑盒测试用例设计,也可以用于白盒测试用例设计。基本路径法用于白盒测试用例设计。正交试验设计法用于黑盒测试用例设计。逻辑覆盖法用于白盒测试用例设计。

9.白盒测试也称结构测试或逻辑驱动测试,典型的白盒测试方法包括静态测试和动态测试。其中,静态测试除了静态结构分析法、静态质量度量法外,还有( A )。

A、代码检查法

B、逻辑覆盖法

C、基本路径测试法

D、结构覆盖法

解析:白盒测试按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。典型的白盒测试方法包括:静态测试、动态测试。其中静态测试包括:代码检查法、静态结构分析法、静态质量度量法。

10.由因果图转换而来的( A)是确定测试用例的基础。

A、判定表

B、约束条件表

C、输入状态表

D、输出状态表

解析:因果图方法最终生成的就是判定表

11.对参数配置类的软件,要用( C)选择较少的组合方式达到最佳测试效果。

A、等价类划分

B、因果图法

C、 正交试验法

D、场景法

解析:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(条件组合),从而合理地安排实验(测试)的一种科学实验设计方法

12.某软件系统的用户登录界面,包括用户名、密码、校验码。各个元素的取值情况如下:

用户名:不填、填写错误信息、填写正确信息

密码:不填、填写错误信息、填写正确信息

校验码:不填、填写错误信息、填写正确信息

测试人员张三要使用正交试验法对登录功能进行测试,请您帮助他选择一个合适的正交表格C

解析:3因子3水平全面试验法:试验次数为33=27,即取每个因子所有水平的组合。正交试验法:试验次数要求不少于因子数*(水平数-1)+1。*

本例:试验次数要求不少于3(3-1)+1 = 7。利用现有的正交表公式,可选用L9(34),试验次数为4*(3-1)+1 = 9。

所在列 1 2 3 4
因子 用户名 密码 校验码 D
1 不填 不填 不填 -
2 不填 填写错误信息 填写错误信息 -
3 不填 填写正确信息 填写正确信息 -
4 填写错误信息 不填 填写错误信息 -
5 填写错误信息 填写错误信息 填写正确信息 -
6 填写错误信息 填写正确信息 不填 -
7 填写正确信息 不填 填写正确信息 -
8 填写正确信息 填写错误信息 不填 -
9 填写正确信息 填写正确信息 填写错误信息 -

下载正交设计助手百度无脑安装ok

13.计算以下控制流图的环路复杂度V(G),正确答案是( B)。

A、2

B、4

C、9

D、11

解析:V(G)=edge-node+2=11-9+2=4,其中edge为控制流图的边数,node为控制流图的结点数

edge=11,node=9

14.( D )不属于功能测试用例构成元素。

A、测试数据

B、测试步骤

C、预期结果

D、实测结果

解析:测试用例的编制要素

编号、简要说明、优先级、前置条件及运行准备、运行步骤预期运行结果测试数据、与其他测试案例的关系

15.针对下列因素,使用PICT工具完成两两组合(Pair_wise)测试。

(1)驾驶记录:过去5年内没有违规,过去3年内没有违规,过去3年内违规小于3次,过去3年内违规3次或3次以上,过去1年内违规3次或3次以上。

(2)汽车型号:一般国产车,高档国产车(≥20万),进口车,高档进口车(≥100万)。

(3)使用汽车的方式:出租车,商务车,私家车。

(4)所住的地区:城市中心地带市区,郊区,农村。

(5)受保的项目:全保,自由组合,最基本保险。

(6)司机的驾龄:≤1年,≤3年,≤5年,≤10年,>10年。

(7)保险方式:首次参保,第二次参,连续受保(≥3次)。

请按要求作答:

(1)如果要进行完全组合测试,则组合数是( 8100 )个。

(2)如果使用两两组合(Pair_wise)测试,则组合数是(28 )个。(提示:使用PICT工具运行后填写)

解析:完全组合测试则需要把所有的组合列出来

因素(1):5,因素(2):4,因素(3):3,因素(4):3,因素(5):3,因素(6):5,因素(7):3

5 * 4 * 3 * 3 * 3 * 5 * 3=10800

两组合(Pair_wise)测试:首先安装微软的这个软件Pair-wise方法工具软件

工具:PICT下载:http://www.pairwise.org/tools.asp

安装完成以后,

点击pict.exe是无法运行的,我们需要在该目录下进入cmd,我们实验首先在本目录下新建一个txt文本输入信息

Record:过去5年内没有违规,过去3年内没有违规,过去3年内违规小于3次,过去3年内违规3次或3次以上,过去1年内违规3次或3次以上
Type:一般国产车,高档国产车,进口车,高档进口车
Method:出租车,商务车,私家车
Place:市区,郊区,农村
Item:全保,自由组合,最基本保险
Years:小于等于1年,小于等于3年,小于等于5年,小于等于10年,大于10年
Insurance:首次保险,第二次参保,连续受保if[Years]="小于1年" then [Record] in {"3年没有违规","3年内违规小于3次","过去1年内违规3次或3次以上"};
if[Years]="小于3年" then [Record] in {"3年没有违规","3年内违规小于3次","过去3年违规3次或3次以上","过去1年内违规3次或3次以上"};

然后打开cmd输入如下代码

pict model_test.txt >out.txt

其中model_.test.txt是你新建的那个txt文本,out.txt是输出的文本,当然你也可以写成.xls形式

Record   Type    Method  Place   Item    Years   Insurance
过去3年内违规小于3次 一般国产车   商务车 郊区  全保  小于等于5年  首次保险
过去3年内违规3次或3次以上  进口车 私家车 农村  最基本保险   小于等于3年  第二次参保
过去5年内没有违规   高档国产车   出租车 市区  最基本保险   小于等于5年  连续受保
过去3年内违规小于3次 进口车 商务车 市区  自由组合    大于10年   第二次参保
过去3年内违规3次或3次以上  高档国产车   商务车 农村  自由组合    小于等于10年 首次保险
过去3年内违规3次或3次以上  高档进口车   出租车 郊区  全保  大于10年   连续受保
过去1年内违规3次或3次以上  一般国产车   私家车 郊区  全保  小于等于10年 第二次参保
过去5年内没有违规   高档进口车   私家车 市区  全保  小于等于3年  首次保险
过去5年内没有违规   进口车 出租车 郊区  自由组合    小于等于1年  第二次参保
过去1年内违规3次或3次以上  一般国产车   出租车 农村  自由组合    小于等于5年  连续受保
过去3年内没有违规   进口车 商务车 市区  最基本保险   小于等于10年 连续受保
过去1年内违规3次或3次以上  高档国产车   私家车 市区  自由组合    小于等于3年  连续受保
过去1年内违规3次或3次以上  高档进口车   商务车 农村  最基本保险   大于10年   第二次参保
过去3年内没有违规   一般国产车   出租车 农村  全保  小于等于1年  连续受保
过去3年内违规小于3次 高档国产车   私家车 郊区  最基本保险   小于等于1年  第二次参保
过去3年内没有违规   高档进口车   商务车 郊区  自由组合    小于等于3年  首次保险
过去3年内没有违规   一般国产车   出租车 市区  全保  大于10年   首次保险
过去5年内没有违规   高档进口车   商务车 农村  最基本保险   小于等于5年  第二次参保
过去3年内违规3次或3次以上  一般国产车   私家车 市区  全保  小于等于1年  第二次参保
过去3年内违规小于3次 高档国产车   私家车 农村  最基本保险   大于10年   第二次参保
过去1年内违规3次或3次以上  进口车 私家车 市区  最基本保险   小于等于5年  连续受保

结果显而易见

第五章单元测试、第六章集成测试作业

1.单元测试中用来模拟被测模块需要调用的其他功能模块的是( B)

A、驱动模块

B、 桩模块

C、主控模块

D、真实的被调模块

解析:桩模块:
桩模块是模拟被测试模块所调用的模块,而不是软件产品的组成部分。主程序作为驱动模块,与之直接相连的模块是桩模块,也称为“替身模块”。桩模块本身不执行任何功能,只在它作为替身被调用时返回静态值。

驱动模块:
驱动模块是用来模拟被测模块的上一级模块,相当于被测模块的主程序。它接收数据并将相关数据传送给被测模块,启用被测模块并打印出相应结果。驱动模块的目的很单纯,就是访问类库的属性和方法来确定类库是否正确。

2.在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中( C)不是单元测试的主要任务。

A、模块接口测试

B、独立路径测试

C、有效性测试

D、边界测试

解析:单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。

3.在单元测试的基础上,需要将所有模块按照概要设计和详细设计说明书的要求进行组装,模块组装成系统的方式有两种,分别是( A )

A、一次性组装和增殖式组装

B、自顶向下组装和自底向上组装

C、单个模块组装和混合模块组装

D、接口组装和功能组装

解析:

模块组装成系统的方式:一次性组装方式和增殖式组装方式

一、一次性组装方式

先对模块分别进行测试,再把所有模块组装进行测试

缺点:发现错误不容易定位

二、增值式组装测试

先对一个个模块进行模块测试,然后将这些模块逐步组装成系统,分为两种方式:自顶向下的增殖方式和自底向上的增殖方式

1、自顶向下的增殖方式(不需要驱动模块)

将模块铵系统程序结构,严控制层次自顶向下进行组装。

首先以主模块作为被测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块代替,对主模块进行测试。再采用深度优先或广度优先的策略,用实际模块代替桩模块,再用桩模块代替它们的直接下属模块,与已经测试的模块构成新的子系统。然后进行回归测试。

2、自底向上的增殖方式(不需要驱动模块)

由驱动模块控制最底层模块的并行测试。

3、混合增殖式

自顶向下增殖方式:

优点:能够较早的发现主要控制方面的问题

缺点:需要建立桩模块,增加了一些附加的测试,涉及算法和输入输出的模块一般在底层,这些底层模块要到组装和测试的后期才能发现。一旦发现问题就会出现过多的回归测试。

自底向上增殖方式:

优点:不需要建立桩模块,建立驱动模块要比建立桩模块要简单得多,同时涉及到算法已近输入输出的模块要先测试,把最容易出现问题的部分在早期解决。

缺点:程序一直未能作为一个实体存在,直到最后一个模块加上才能形成一个实体,控制方面最后才能接触。
4.LOC是软件规模的一种量度,它表示(B )

A、软件功能数

B、源代码行数

C、每单位成本数

D、工作量

5.在软件设计和编码过程中,采用(C )的做法将使软件更加容易理解和维护。

A、良好的程序结构,有无文档均可

B、使用标准和规定之外的语句

C、编写详细正确的文档,采用良好的程序结构

D、尽量较少程序中的注释

6.对高级语言源程序进行编译时,可发现源程序中的( B)错误。

A、堆栈溢出

B、变量未定义

C、指针异常

D、数组元素下标越界

解析;高级语言源程序进行编译经过六个过程:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成 ①词法分析:从左到右读字符流的源程序、识别单词 ②语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类单位,如“短语”、“句子”、“程序段”和“程序”。通过语法分解,确定整个输入串是否构成一个语法上正确的程序。 ③语义分析:检查源程序是否包含语义错误,并搜集类型,供后面的代码生成阶段使用,只有语法和语义正确的源程序才可被翻译成目标代码。 语义分析程序需要进行频繁的造表和查表工作。语义分析的一个重要内容是类型检查,对表达式及语句中的各语法成分作类型检查和分析 ④中间代码生成:生成一种介于源语言和目标语言之间的中间语言代码 ⑤代码优化:对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和省空间)的目标代码 ⑥目标代码生成:将前阶段产生的中间代码翻译为机器语言或汇编语言形式的目标程序

7.进行软件编码规范评测过程中需要围绕几个方面的内容展开,以下描述中不属于编码规范评测内容的有( D)

A、源程序文档化检查,包括符号名的命名、程序的注释等规范性检查

B、数据说明检查,包括数据说明次序、语句中变量书序检查

C、程序结构检查,程序应采用基本的控制结构、避免不必要的转移控制等

D、程序逻辑检查,阅读源代码,比较实际程序控制流与程序设计控制流的区别

解析:软件编码规范评测也是围绕以下 4 个方面展开:源程序文档化、数据说明的方法、语
句结构和输入/输出方法。

8.关于集成测试的描述中,正确的是(1 4 )

(1)集成测试通常是在单元测试的基础上,将所有单元模块按照概要设计说明书和详细设计说明书的要求进行组装和测试的过程。

(2)自顶向下的增量式集成能较早地验证主要控制和判断点,对于输入输出模块、复杂算法模块中存在的错误能较早地发现。

(3)自底向上的增量式集成需要建立桩模块,并行地对多个模块实施测试,并逐步形成程序实体,完成所有模块的组装和集成测试。

(4)在集成测试时,测试者应当确定关键模块,对这些模块及早进行测试,比如高层控制模块、有明确性能要求和定义的模块等。

解析:集成测试也叫做组装测试或联合测试。通常,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
自顶向下的增值方式是将模块按系统程序结构,沿控制层次自顶向下进行组装。自顶向下的增值方式在测试过程中较早地验证了主要的控制和判断点。在一个功能划分合理的程序模块结构中,判断常常出现在较高的层次里,因而,能够较早地遇到这种问题。如果主要控制有问题,尽早发现它能够减少以后的返工,这是十分必要的。如果选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能,可先对逻辑输入的分支进行组装和测试,检查和克服潜藏的错误和缺陷,验证其功能的正确性,就为其后对主要加工分支的组装和测试提供了保证。
自底向上的增值方式是从程序模块结构的最底层模块开始组装和测试。自底向上增值方式的缺点是“程序一直未能作为一个实体存在,直到最后一个模块加上去后才形成一个实体”。就是说,在自底向上组装和测试的过程中,对主要的控制直到最后才接触到。这种方式的优点是不需要桩模块,而建立驱动模块一般比建立桩模块容易,同时由于涉及到复杂算法和真正输入/输出的模块最先得到组装和测试,可以把最容易出问题的部分在早期解决。此外自底向上增值的方式可以实施多个模块的并行测试,提高测试效率。因此,通常是把以上两种方式结合起来进行组装和测试。
在进行集成测试时,测试者应当确定关键模块,对这些关键模块及早进行测试。关键模块至少应具有特征:满足某些软件需求、在程序的模块结构中位于较高的层次(高层控制模块)、较复杂和较易发生错误、有明确定义的性能要求。

9.下列(C )不属于功能测试用例构成元素。

A、测试步骤

B、测试数据

C、实测结果

D、预期结果

10.单元测试中主要使用白盒测试方法,白盒测试方法包括静态测试和动态测试。其中,静态测试除了静态结构分析法、静态质量度量法外,还有( A )

A、代码检查法

B、逻辑覆盖法

C、基本路径测试法

D、结构覆盖法

11.代码检查主要检查代码和设计的一致性、代码对标准的遵循、可读性、代码逻辑表达正确性、代码结构合理性等方面。下面( ABCD )是代码检查的常用方式。

A、桌面检查

B、代码审查

C、走查

D、互查

请对以下代码进行桌面检查,并指出存在问题的行号有哪些(AD    )。1   public Int getCount(){ //int2            return count;3   }45  public void setCount ( int  count ){6            this.count  = count7  } 89   public String getNumber(){10          returm number;11 }12 13 public void setNumber( String number ){14        that.number = number;//this15 }
A、1B、6C、10D、14

第七章系统测试作业

1.为了对我们所设计的系统进行测试,我们使用测试工具模拟上万个用户从终端同时登 陆,找出因资源不足而导致的错误,你认为现在最有可能进行的测试活动是(A)

A、负载测试

B、安全测试

C、容量测试

D、单元测试

解析:负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。 关注点:how much

压力测试(Stress Test): 压力测试(又叫强度测试)也是一种性能测试,它在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括

Spike testing:短时间的极端负载测试

Extreme testing:在过量用户下的负载测试

Hammer testing:连续执行所有能做的操作

容量测试(Volume Test):确定系统可处理同时在线的最大用户数 关注点:how much(而不是how fast) 容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要关注使用中的实际表现。

安全性测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。

单元测试是一项由开发人员或者测试人员来对程序模块的正确性进行检验测试的工作,用于检查被测试代码的功能是否正确

2.下列(B )问题可以在集成测试的时候被发现 1.独立可接受的误差在组装后可能会超过可接受的误差限度 2.全程数据结构错误 3.单元内部代码问题 4.系统资源竞争问题

A、12

B、124

C、34

D、13

解析:集成测试:集成测试(组装测试) ——将经过单元测试的模块按设计要求组合起来再进行的测试。目的——检查各模块间接口是否存在问题。

集成测试的任务(1)将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失。(2)将各个子功能组合起来,检查能否达到预期要求的各项父功能。(3)一个模块的功能是否会对另一个模块的功能产生不利的影响。(4)全局数据结构是否有问题,会不会被异常修改。(5)单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。

3.以下不属于软件测试按照先后阶段进行划分的是(D)

A、单元测试

B、集成测试

C、系统测试

D、回归测试

解析:软件测试的阶段一般可以根据软件的开发过程分为六个阶段:单元测试,集成测试,功能测试,系统测试,验收测试,安装测试

4.下列关于测试的说法中错误的是(B)

A、单元测试阶段是白盒测试方法为主,黑盒测试方法为辅

B、软件经过单元测试阶段后,可以忽略回归测试工作

C、以一个功能点为基准,通常情况下,单元测试阶段进行测试的成本效率要高于集成测试和系统测试阶段

D、单元测试阶段进行的测试可以由开发人员或白盒测试工程师来完成

解析:在软件测试中回归测试是不能忽略的一部分,回归测试是指修改了旧代码后,重新进行测试及确认修改没有引入新的错误或导致其它代码产生错误。

自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。

单元测试一般采用白盒测试方法,辅以黑盒测试方法,集成测试主要采用黑河测试方法,辅以白盒测试方法。系统测试一般采用黑盒测试方法。

5.以下不用于单机版系统测试的是(B)

A、安装测试

B、压力测试

C、功能测试

D、界面测试

解析:单机版系统测试:功能测试安装测试、容量测试、界面测试、恢复测试

6.下列测试策略中,不是在系统测试的中后期和验收测试阶段进行的是(C)

A、加密测试

B、安装测试

C、数据库测试

D、 裸机测试

解析:

系统测试的内容

功能特性的测试:功能测试、用户界面测试、安装/卸载测试、可使用性测试。

非功能特性的测试:性能测试、负载测试、压力测试、疲劳测试、安全测试、恢复测试、兼容性测试、可靠性测试、强度测试、容量测试、配置测试。

数据库测试 :在系统测试、集成测试都有涉及。

7.下列测试中不属于系统测试的是(B )。

A、性能测试

B、集成测试

C、压力测试

D、可靠性测试

8.下面说法中属于系统测试的目标的是(C)。 1)找出软件中存在的缺陷与错误 2)确认软件所实现的功能是否符合规格说明 3)确认软件的性能是否满足要求

A、1

B、2,3

C、1,2,3

D、1,2

解析:系统测试的目的在于通过与系统的需求定义比较,检查软件是否存在与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能等满足其规约所指定的要求。 最终目的是为了确保软件产品能够被用户或操作者接受。测试的主要目标不再是找出缺陷,而是证明其性能。 系统测试属于黑盒测试范畴,不再对软件的源代码进行分析和测试。

9.下列关于系统测试方法说法不正确的是(D)

A、在线帮助测试主要用于验证系统的实时在线帮助的可操作性和准确性,具体操作中可以与文档测试同时进行

B、用于安装测试的测试用例设计方法有规范导出法和错误猜测法

C、 GUI测试中通常首先把界面元素进行划分,可分为三个层次:界面原子层、界面组合元素层和完整的窗口

D、确认测试中首先要进行的功能测试是在实际使用的环境下进行的测试,目的是验证被测软件是否满足软件需求规格说明中列出的需求

解析:确认测试阶段主要工作就是功能测试和软件配置复审,其中功能测试是在模拟的环境下进行,目的是验证软件是否满足软件需求规格说明书的要
求。

10.关于系统测试方法,说法不正确的是(C)

A、可以使用监视器方法收集系统执行时间和资源使用情况

B、只要有足够的时间,一个好的安全测试就一定可以侵入一个系统

C、容量测试是指系统承受速度方面的超额负载

D、在嵌入式系统中,功能需求与性能需求必须同时考虑

解析:容量测试(Volume Test):确定系统可处理同时在线的最大用户数 关注点:how much(而不是how fast) 容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要关注使用中的实际表现。

第八章验收测试作业

1.下列关于验收测试的说法中正确的是(A)

A、 验收测试是软件产品交付用户正式使用前的最后一道工序。

B、验收测试不可以由测试人员模拟用户进行。

C、验收测试只确认软件的功能和性能

D、验收标准必须在原始的需求规范中或在客户的合同中规定.

解析:验收测试 (Acceptance Test):在软件产品完成了系统功能和非功能测试之后、产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,也称为交付测试。

验收测试是软件产品交付用户正式使用前的最后一道工序,它是以用户为主的测试,软件开发和软件测试人员也应参加。B错

验收测试:验证产品是否满足规范要求是用户的要求。 用户可以是最终用户或外包商。 如果是外包商外包的产品,在验收测试时,外包商主要测试合同是否符合要求,验收后合同的符合性直接决定了后期外包商向客户支付的费用。验证系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求,测试尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。主要包括易用性测试、安装测试、文档(如用户手册)测试等几个方面的内容。 验收测试将重点关注:

(1) 软件是否符合合同规定的所有功能和性能。

(2)文件是否齐全。

(3)人机界面是否准确,是否符合合同约定。

(4)其他方面(如可移植性、兼容性、错误恢复和可维护性等)能否满足用户。

C错

D也可以在验收测试阶段制定测试计划及验收通过准则,通过客户评审

2.软件测试生命周期的顺序是(C )

A、制定测试计划----评审----测试设计和开发-----实施软件测试----版本发布

B、制定测试计划----测试设计和开发-----实施软件测试----版本发布----评审

C、制定测试计划.–测试设计和开发…实施软件测试…评审…–版本发布

D、制定测试计划----实施软件测试----修改----版本发布----评审

3.下列关于验收测试的说法中错误的是(B)

A、验收测试是软件产品在交付用户正式使用前的最后一道测试工序

B、验收测试包括有效性测试和软件配置审查

C、验收测试一般使用生产中的实际数据进行测试

D、验收测试必须由用户或者用户代表参加

解析:在通过了系统的有效性测试及软件配置审查之 后,就应开始系统的验收测试

4.—般来说,在软件测试各阶段,最后进行的是( C)

A、 单元测试

B、集成测试

C、验收测试

D、系统测试

解析:单元测试->集成测试->系统测试->验收测试

5.根据软件测试v模型,下列哪项()是这对设计进行的

A、系统测试、集成测试

B、验收测试

C、确认测试

D、单元测试、集成测试

解析:
6.必须要求用户参与的测试阶段是(D)

A、单元测试

B、集成测试

C、确认测试

D、验收测试

7.下列关于a 测试的描述中正确的是(A)

A、a测试需要用户代表参加

B、测试不需要用户代表参加

C、 α测试是系统测试的一种

D、测试不属于验收测试

解析:a测试需要用户代表参加、α测试是验收测试的一种

α测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。 经过α测试调整的软件产品称为β版本。

8.下列关于软件验收测试的合格通过准则是(D)。 1)软件需求分析说明书中定义的所有功能已全部实现,性能 指标全部达到要求 2)所有测试项没有残余一级、二级和三级错误 3)立项审批表、需求分析文档、设计文档和编码实现一致 4)验收测试工件齐全

A、1

B、13

C、134

D、1234

解析:验收测试完成标准:完全执行了验收测试计划中的每个测试用例在验收测试中发现的错误已经得到修改并且通过了测试、或经过评估留待下一版本中修改 完成软件验收测试报告

9.除了开发人员之外首先见到软件产品的人是(A)。

A、a测试人员

B、β测试人员

C、验收测试人员

D、回归测试人员

10.验收测试是以(C)为主的测试。

A、QA人员

B、软件开发人员

C、用户

D、软件测试人员

11.关于软件测试,以下(C)说法是错误的。

A、 测试能提高软件的质量,但是提高质量不能依赖测试

B、测试只能证明缺陷存在,不能证明缺陷不存在

C、开发人员测试自己的程序后,可作为该程序已经通过测试的依据

D、80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出现

解析:每个开发人员应当测试自己的程序(份内之事),但是不能作为该程序已经通过测试的依据(所以项目需要独立测试人员)。

12.下列关于软件测试的叙述中错误的是(D)

A、软件测试可以作为度量软件与用户需求间差距的手段

B、软件测试的主要工作内容包括发现软件中存在的错误并解决存在的问题,评估系统的性能

C、软件测试的根本目的是尽可能多地发现软件中存在的问题/错误

D、最终把一个高质量的软件系统交给用户使用d没有发现错误的测试也是有价值的测试

解析:没有发现错误的测试没有价值

13.即使对程序的所有路径都进行了测试,程序也可能存在没能检查出来的缺陷,其原因可 能是(D)

A、程序可能会因为缺少某些路径而存在问题

B、即使是穷举路径测试也决不能保证程序符合其设计规格说明

C、穷举路径测试也可能不会暴露数据敏感错误

D、以上全部

14.某软件公司在招聘软件测试工程师时,应聘者甲向公司做如下保证: (1)经过自己测试的软件今后不会再出现问题 (2)在工作中对所有程序员一视同仁,不会因为某个程序编写的程序发现的问题多,就 重点审查该程序,以免不利于团结 (3)承诺不需要其他人员,自己就可以独立进行测试工作 (4))发扬咬定青山不放松的精神,不把所有问题都找出来,绝不罢休根据自己所学的软件测试知识,应聘者甲的保证(D)

A、(1)(4)是正确的

B、(2)是正确的

C、都是正确的

D、都是错误的

软件质量保证与测试技术习题相关推荐

  1. 山东大学软件质量保证与测试技术复习纲要

    考纲 目录:https://blog.csdn.net/dkbnull/article/details/87933295 软件质量保证与测试技术复习提纲 1.3  1.5   2.1 2.3 2.5 ...

  2. 软件质量保证与测试技术实验报告(三)静态测试

    1.实验名称--静态测试 2.实验目的 掌握单元测试中的静态测试技术. 3.实验内容 题目:对学生宿舍管理系统(代码见附录B)完成静态测试中的代码测试. 4.实验过程 汇总表: 5.实验心得 通过本次 ...

  3. 软件质量保证与测试技术实验报告(一)白盒测试用例设计

    1.实验名称--白盒测试用例设计 2.实验目的 (1)能够利用白盒测试方法对程序进行测试. (2)会用各种逻辑覆盖法设计测试用例. (3)会用基本路径测试法设计测试用例. 3.实验内容 题目1:使用语 ...

  4. 慕课软件质量保证与测试(第五章.课后作业)

    慕课金陵科技学院.软件质量保证与测试.第五章.软件测试过程.课后作业 0 目录 5 软件测试过程 5.7 课后作业 5.7.1 课堂重点 5.7.2 测试与作业 6 下一章 0 目录 5 软件测试过程 ...

  5. 软件质量保证与测试笔记——江湖救急版

    软件质量保证与测试笔记--江湖救急版 Powered by DZY 以下部分图片来源于老师课件,仅供学习交流使用,侵权致删! Ch1 软件质量与测试概念 软件质量的定义 软件质量是"反映实体 ...

  6. 软件质量保证与测试文档怎么写,软件质量保证与测试整理版.pdf

    软件质量保证与测试整理版.pdf 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 把不可能变成可能才 ...

  7. 慕课软件质量保证与测试(第三章.课后作业)

    慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.课后作业 0 目录 3 黑盒测试 3.10 课后作业 3.10.1课堂重点 3.10.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.10 ...

  8. 慕课软件质量保证与测试(第三章.单元测试)

    慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.单元测试 0 目录 3 黑盒测试 3.9 单元测试 3.9.1课堂重点 3.9.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.9 单元测 ...

  9. 复习资料:软件质量保证与测试

    复习资料:软件质量保证与测试 第一章 绪论 解答题 第二章 软件测试策略 解答题 第三章 黑盒测试 解答题 第四章 白盒测试 解答题 第五章 软件测试过程 第六章 面向对象测试 解答题: 第七章 自动 ...

最新文章

  1. 覆盖与重载与隐藏——SAP电面(3)
  2. 西安python培训班多少钱-西安python培训多少钱?
  3. 12.2 全局CSS样式
  4. 查看mysql是否启用安全审计_如何查看oracle是否开启了审计功能?
  5. 网管,请别随意关闭默认共享
  6. [HNOI2008]水平可见直线 半平面交
  7. Python:random库使用方法
  8. android 混淆字符串,android 代码混淆
  9. 别再用PS啦!用Excel轻松实现更换证件照背景颜色!
  10. JPEG文件二进制格式分析
  11. low memory killer
  12. 移动开发平台WorkPlus | 快速实现企业移动应用集成化
  13. 雷锋网特约专访易科成志创始人、CEO潘真
  14. 毛桃pe系统 linux,老毛桃U盘PE重装教程
  15. 庆祝EDA夺冠之余,我们来讨论讨论程序员一般想要new一个什么样的对象
  16. mysql配置kodi16.1_kodi中文包|kodi 16.1中文语言包下载 附插件使用教程 - 121下载站...
  17. 从一线城市回家工作的体验
  18. Docker 入门(二)常用命令纯手敲带测试结果
  19. 串口监听工具listen_串口命令解析
  20. 科技也会成为一种文化

热门文章

  1. 无人机驾驶员培训学习记录(十五)
  2. vue保留一位小数+“%“
  3. 服务器迁移部署PosEdi
  4. 变电二次安装工实训考核装置QY-PGD22
  5. Ardupilot遥控器输入数据分析
  6. 二进制、八进制、十进制、十六进制英文表示
  7. 凹语言版本 yacc 简介 - 以表达式解析为例
  8. Debian 11 安装缺失的固件
  9. mfc创建excel如何另存为_MFC实现excel的读写操作
  10. 汇编语言实验八-《汇编语言-王爽老师》