软件测试基础

考试中占的比重相当高。

 

# 质量保证与软件测试

解题关键点知识:

  • 软件质量保证的目标
  • 软件质量保证与软件测试直接的关系

练习

1. 以下软件质量保证的目标中,()是错误的。

A. 通过监控软件开发过程来保证产品质量

B. 保证开发出来的软件和软件开发过程符合相应标准与规程,不存在软件缺陷

C. 保证软件产品,软件过程中存在的问题得到处理,必要时将问题反映给高级管理者

D. 确保项目组制定的计划,标准和规程适合项目组需要,同时满足评审和审计需要

 

解析:B不存在软件缺陷,太绝对。答案B。

 

2. 软件质量保证的主要目标不包括()。

A. 通过预防,检查与改进来保证软件质量

B. 保证开发出来的软件和软件开发过程符合相应的标准与规程

C. 收集软件产品,软件过程中存在的不符合项, 在项目总结时进行分析

D. 确保项目组制定的计划,标准和规程适合项目需要,同时满足评审和审计需要

 

解析:答案C。

 

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

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

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

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

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

 

解析:答案C。

 

4. 以下关于软件质量和软件测试的说法,不正确的是()

A. 软件测试不等于软件质量保证

B. 软件质量并不是完全依靠软件测试来保证的

C. 软件的质量要靠不断的提高技术水平和改进软件开发过程来保证

D. 软件测试不能有效的提高软件质量

 

解析:答案D。

 

# 软件测试概述

解题关键点知识:

  • 软件测试相关概念
  • 软件测试的原则
  • 软件测试的目的
  • 软件测试的对象
  • 测试用例的三个要素
  • 软件测试的三类输入
  • 软件测试结束的标准/依据

练习

1. 以下关于软件测试的概念,正确的是()

A. 软件测试的目的是想证实一个给定的外部环境中软件的逻辑正确性,即保证软件以正确的方式来做这个事件

B. 软件质量保证的基本错误就是对软件进行确认测试

C. 软件测试的对象不仅仅是程序,文档,数据和规程都是软件测试的对象

D. 单元测试可检验程序单元或部件的接口关系,应能发现并排除在模块连接中可能发生的问题

 

 

 

解析:答案C。

2. 关于软件测试,()的叙述是正确的。

➀测试开始越早,越有利发现软件缺陷

➁采用正确的测试用例设计方法,软件测试可以做到穷举测试

➂测试覆盖率和测试用例数量成正比

➃软件测试的时间越长越好

A. ➃                    B. ➀                 C. ➁,➂                              D. ➀ ,➂     

解析: 答案B。

3. 以下关于软件测试的原则叙述中,正确的是()。

➀ 所有软件测试都应追溯到用户需求

➁ 尽早地和不断地进行软件测试

➂ 完全测试是不可能的

➃ 测试无法法修按软件潜在的缺陷

➄ 需要充分注意测试中的群集现象

A. ➀➁➂➃➄                    B. ➁➂➃➄                C. ➀➁➂➄                              D. ➀➁➃➄     

 

 

解析:答案A。

 

4. ()不是正确的软件测试目的。

A. 尽最大的可能找出更多的错误

B. 设计一个好的测试用例对用户需求的覆盖率达到200%

C. 对软件质量进行度量和评估,以提高软件的质量

D. 发现开发所采用的软件过程的缺陷,进行软件过程改进

 

解析:一个测试用例无法达到100%的覆盖。答案B。

 

5. 软件测试的目的是()

A. 试验性运行软件

B. 找出软件中全部错误

C. 整明软件正确

D. 发现软件错误

解析:答案D。

 

6. 软件测试的对象不包括(  )。

A.程序                 B.需求规格说明书

C.数据库中的数据         D.质量改进措施

解析:答案D。

 

7. 软件测试的对象包括()。

➀ 需求规格说明书  ➁ 概要设计文档

➂ 软件测试报告 ➃ 软件代码       ➄   用户手册  ➅ 软件开发人员

A. ➀➁➂➃➄➅                        B. ➀➁➂➃➄

C. ➀➁➃                                D. ➀➁➂➃

 

解析:软件测试的对象包括文档,程序和测试。排除6。答案B。

 

8. 测试用例的三要素不包括()。

A. 输入                   B. 预期输出            C. 执行条件           D. 实际输出

 

解析:答案D。实际输出是实际测试过程中才知晓的。

 

9. 软件测试信息流的输入包括()。

➀ 软件配置(包括软件开发文档,目标执行程序,数据结构) 

➁ 开发工具(开发环境,数据库,中间件等)

➂ 测试配置(包括测试计划,测试用例,测试驱动程序等)

➃ 测试工具(为提高软件测试效率,使用测试工具为测试工作服务)

A. ➀➁➂➃                        B. ➀➁➃

C. ➀➂➃                          D. ➁➂➃

 

 

解析:答案C。

 

10. 以下不能作为测试结束标准的是()

A. 测试超过了预定时间

B. 执行完了所有测试用例但没有发现新的故障

C. 单位时间内查出的故障数目低于预定值

D. 测试人员或者其他资源不足

 

解析:答案D。

 

 

# 软件测试相关文档

解题关键点知识:

  • 与软件测试相关的文档
  • 测试人员编写的相关文档
  • 测试计划的内容和作用

练习

1. 与设计测试用例无关的文档是()

A. 项目开发计划                     B. 需求规格说明书

C. 设计说明书                         D. 源程序

 

解析:答案A。

 

2. ()不属于测试人员编写的文档。

A. 缺陷报告                B. 测试环境配置文档

C. 缺陷修复报告        D. 测试用例说明文档

 

 

解析:缺陷修复是程序员来做。因为缺陷修复报告不属于测试人员编写。答案C。

 

3. 编写测试计划的目的是()。

➀ 使测试工作顺利进行

➁ 使项目参与人员沟通更舒畅

➂ 使测试工作更加系统化

➃ 软件过程规范化的要求

➄ 控制软件质量

A. ➁➂➄                           B. ➀➁➂

C. ➀➁➃                          D. ➀➁➄ 

 

 

解析:答案B。

 

# 软件缺陷管理

解题关键点知识:

  • 软件缺陷的分类
  • 软件缺陷的特征及相互关系
  • 软件缺陷的主要原因
  • 严重性
  • 优先级
  • BUG管理流程
  • BUG管理原则
  • BUG记录信息的主要内容

练习

1. 软件测试使用各种术语描述软件出现的问题,以下叙述正确的是______。

A.软件错误(error)是指在软件生命周期内的不希望或不可接受的人为错误,其结果是导致软件故障的产生
B.软件缺陷(defect)是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差
C.软件故障(fault)是指软件运行过程中出现的一种不希望或不可接受的外部状态
D.软件失效(failure)是指软件运行时产生的一种不希望或不可接受的内部行为结果

 

 

解析:A是导致缺陷产生,不是故障产生。C是内部状态,不是外部状态。D是外部状态,不是内部状态。答案B。

2. 软件缺陷通常是指存在于软件之中的那些不希望或不可接受的偏差,以下关于软件缺陷的理解不正确的是________。
A.软件缺陷的存在会导致软件运行在特定条件时出现软件故障,这时称软件缺陷被激活
B.同一个软件缺陷在软件运行的不同条件下被激活,可能会产生不同类型的软件故障
C.软件错误是软件生存期内不希望或不可接受的人为错误,这些人为错误导致了软件缺陷的产生
D.实践中,绝大多数的软件缺陷的产生都来自于编码错误

 

 

解析:主要错误来自于产品说明书和产品方案设计,不是编码错误。答案D。

 

3. 测试所报告的软件缺陷与错误中通常包含其严重性和优先级的说明,以下理解不正确的是________。
A.测试员通过严重性和优先级对软件缺陷进行分类,以指出其影响及修改的优先次序
B.严重性划分应体现出所发现的软件缺陷所造成危害的恶劣程度
C.优先级划分应体现出修复缺陷的重要程序与次序
D.在软件的不同部分,同样的错误或缺陷的严重性和优先级必须相同

 

解析:答案D。

 

4. 关于bug管理流程,______是正确的做法。

A.开发人员提交新的bug入库,设置状态为“New”
B.开发人员确认是bug,设置状态为“Fixed”
C.测试人员确认问题解决了,设置状态为“Closed”
D.测试人员确认不是bug,设置状态为“Reopen”

 

解析:A应该是测试人员提交。B应该是开发人员修复BUG。D不是bug应该直接关闭。答案C。

5. 一条BUG记录应该包括( )。
①编号
②bug描述
③bug级别
④bug所属模块
⑤发现人

A. ➀➁                                 B. ➀➁➂

C. ➀➁➂➃                          D. ➀➁➂➃➄ 

 

解析:答案D。

 

# 软件测试的分类

解题关键点知识:

  • 黑盒测试的概念
  • 白盒测试的概念
  • 软件测试分类 (按开发阶段分)
  • 软件测试分类 (以谁为主)
  • 确认测试的概念与内容
  • 回归测试

练习

1. 以下关于测试方法的叙述中,不正确的是()

 A.  根据是否需要执行被测试代码可分为静态测试和动态测试 
  
  B.  黑盒测试也叫做结构测试,针对代码本身进行测试 
  
  C.  动态测试主要是对软件的逻辑、功能等方面进行评估 
  
  D.  白盒测试把被测试代码当成透明的盒子,完全可见 

 

解析:答案B。B描述的是白盒测试。

 

2. 软件测试的基本方法包括白盒测试和黑盒测试方法,以下关于二者之间关联的叙述,错误的是 ( ) 。

A.黑盒测试与白盒测试是设计测试用例的两种基本方法
B.在集成测试阶段是采用黑盒测试与白盒测试相结合的方法
C.针对相同的系统模块,执行黑盒测试和白盒测试对代码的覆盖率都能够达到100%
D.应用系统负载压力测试一般采用黑盒测试方法

 

 

解析:答案C。

 

3. 按照开发阶段划分,软件测试可以分为( )。
①单元测试 ②集成测试③系统测试④确认测试
⑤用户测试 ⑥验收测试⑦第三方测试
A.①②③④⑤
B.①②③④⑥
C.①②③④⑤⑦
D.①②③④⑥⑦

 

解析:排除用户测试和第三方测试。答案B。

 

4. 照测试实施组织,可将测试划分为开发方测试、用户测试、第三方测试。下面关于开发方测试的描述正确的是______。
①开发方测试通常也叫“验证测试”或“Alpha测试”
②开发方测试又称“Beta测试”
③开发方测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始
④开发方测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件

A.②③
B.①③
C.②④
D.①②③
 

解析:

本题答案选B,考查对软件测试分类的理解。
开发方测试通常也叫“验证测试”或“Alpha测试”,不叫“Beta测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。主要是指在软件开发完成以后,开发方对要提交的软件进行全面的自我检查与验证,可以和软件的“系统测试”一并进行。Beta测试通常被看成是一种“用户测试”。
Beta测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。
 

 

5. 以下关于确认测试的叙述中,不正确的是( )。 
  
  A.  确认测试的任务是验证软件的功能和性能是否与用户要求一致 
  
  B.  确认测试一般由开发方进行 
  
  C.  确认测试需要进行有效性测试 
  
  D.  确认测试需要进行软件配置复查 

解析:确认测试一般由第三方权威机构来进行。答案B。

 

6. 以下关于回归测试的叙述中,不正确的是()。 
  
  A.  回归测试是为了确保改动不会带来不可预料的后果或错误 
  
  B.  回归测试需要针对修改过的软件成分进行测试 
  
  C.  回归测试需要能够测试软件的所有功能的代表性测试用例 
  
  D.  回归测试不容易实现自动化

 

解析: 答案D。

 

# 单元测试

解题关键点知识:

  • 单元测试的内容

 

练习

1. 以下不属于单元测试测试内容的()。

A. 模块接口测试                         B. 局部数据测试

C. 边界条件测试                         D. 系统性能测试

解析:答案D。

 

# 集成测试

解题关键点知识

  • 集成测试概念
  • 集成测试需要考虑的问题
  • 集成测试的内容
  • 集成测试与软件生命周期的对应关系

练习

1. 正确的集成测试描述包括 ( ) 。
①集成测试也叫做组装测试,通常是在单元测试的基础上,将模块按照设计说明书要求进行组装和测试的过程
②自顶向下的增殖方式是集成测试的一种组装方式,它能较早地验证主要的控制和判断点,对于输入输出模块、复杂算法模块中存在的错误能够较早地发现
③集成测试的目的在于检查被测模块能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求
④集成测试需要重点关注各个模块之间的相互影响,发现并排除全局数据结构问题

A.①②
B.②⑧
C.①④
D.②④

 

解析:答案C。

 

2. ________主要对与设计相关的软件体系结构的构造进行测试。

A.单元测试
B.集成测试
C.确认测试
D.系统测试

 

 

解析:答案B。

 

3. 集成测试关注的问题不包括 (   )  。
A.模块间的数据传递是否正确
 B.一个模块的功能是否会对另一个模块的功能产生影响
C.所有模块组合起来的性能是否能满足要求
 D.函数内局部数据结构是否有问题,会不会被异常修改

 

解析:局部数据结构属于单元测试的内容。答案D。

 

4. 以下不属于集成测试的是______。
A.各个子功能组合起来,能否达到预期要求
B.一个模块的功能是否会对另一个模块的功能产生不利的影响
C.全局数据结构是否有问题
D.函数内局部变量的值是否为预期值

 

解析:答案D。

 

# 系统测试

解题关键点知识:

  • 系统测试的内容

练习

1. 以下不属于系统测试的是( )。
①单元测试
②集成测试
③安全性测试
④可靠性测试
⑤确认测试
⑥验证测试
A.①②③④⑤⑥
B.①②③④
C.①②⑤⑥
D.①②④⑤⑥

 

解析:答案C。

 

2. 下不属于系统测试范畴的是()。

A.单元测试 B.安全测试 C.强度测试 D.性能测试

 

 

解析:答案A。

 

# 验收测试

解题关键点知识:

  • 验收测试概述

练习

1. 以下关于验收测试的叙述中,不正确的是___________。

A.验收测试由开发方主导,用户参与

B.验收测试也需要制定测试计划

C.验收测试之前需要先明确验收方法

D.验收测试需要给出验收通过或者不通过的结论

 

解析:验收测试是以用户为主。答案A。

 

 

# 功能测试用例

解题关键点知识:

  • 功能测试用例概念

 

练习

1. 系统功能测试过程中,验证需求可以正确实现的测试用例称为( ) 。
A.业务流程测试用例
B.功能点测试用例
C.通过测试用例
D.失败测试用例

解析:答案C。

 

# 软件测试与软件开发

解题关键点知识:

  • 软件测试在软件生命周期中的作用
  • 软件测试与软件开发的关系

 

练习

1. 以下关于测试工作在软件开发各阶段作用的叙述中,不正确的是 ( )。

A.在需求分析阶段确定测试的需求分析

B.在概要设计和详细设计阶段制定集成测试计划和单元测试计划

C.在程序编写阶段制定系统测试计划

D.在测试阶段实施测试并提交测试报告

 

解析:答案C。

 

2. 关于软件测试与软件开发的认识,不正确的是______。

A.软件生命周期各个阶段都可能产生错误

B.软件测试是独立于软件开发的一个工作

C.软件开发的需求分析和设计阶段就应开始测试工作

D.测试越早进行,越有助于提高被测软件的质量

 

 

解析:答案B。软件开发和软件测试是结合在一起的,不是独立的工作。

 

# 软件测试策略

解题关键点知识:

  • 软软件测试的策略

练习

1. 测试过程中,正确的测试顺序应该是()。
①单元测试②集成测试③系统测试

A.①②③
B.③①②
C.②③①
D.③②①

解析:答案A。

 

2. 测试执行过程的阶段不包括( )。

A.初测期           B.系统测试期          C.细测期            D.回归测试期

 

 

解析:答案B。

 

# 软件测试模型

解题关键点知识:

  • W模型的特点
  • V模型的特点
  • 软件测试与开发阶段的对应关系(V模型)
  • H模型的特点

练习

1. 以下关于基于V&V原理的W模型的叙述中, ( ) 是错误的。
A.W模型指出当需求被提交后,就需要确定高级别的测试用例来测试这些需求,当详细设计编写完成后,即可执行单元测试
B.根据w模型要求,一旦有文档提供,就要及时确定测试条件、编写测试用例
C.软件测试贯串于软件定义和开发的整个期间
D.程序、需求规格说明、设计规格说明都是软件测试的对象

解析:答案A。单元测试在程序编码后才能进行。

 

2. V模型是具有代表意义的测试模型,以下理解正确的是______。
A.V模型认为测试阶段是与开发阶段并行的
B.V模型是软件开发螺旋模型的变种,它反映了测试活动与分析和设计的关系
C.V模型造成需求分析阶段隐藏的问题一直到后期的验收测试才被发现
D.V模型是对W模型的改进

解析:V模型的测试在最后阶段,所以前期错误到最后才发现。答案C。

 

3. V模型描述了软件基本的开发过程和测试行为,描述了不同测试阶段与开发过程各阶段的对应关系。其中,集成测试阶段对应的开发阶段是______。
A.需求分析阶段
B.概要设计阶段
C.详细设计阶段
D.编码阶段

 

解析:答案B。

 

4. 以下说法不正确的选项包括 ( ) 。
①软件测试不仅仅指测试的执行,还包括很多其他的活动
②软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行
③应用H模型有利于资源调配,有助于跟踪测试投入的流向
④H模型指出,单元测试、集成测试、系统测试不存在严格的次序关系,各层次之间的测试存在反复触发、迭代和增量关系等

A.①③
B.②③
C.①④
D.无

 

解析:答案D。

 

# 验证与确认

解题关键点知识:

  • 验证与确认的区别

练习

1. 广义的软件测试由“确认”、“验证”、“测试”三个方面组成,其中“确认”是______。
A.想证实在一个给定的外部环境中软件的逻辑正确性,检查软件在最终的运行环境上是否达到预期的目标
B.检测软件开发的每个阶段、每个步骤的结果是否正确无误,是否与软件开发各阶段的要求或期望的结果相一致
C.检查某样东西是否符合事先已定好的标准
D.试图证明软件在软件生命周期各个阶段以及阶段间的逻辑协调性、完备性和正确性

解析:答案A。

 

# 自动化测试工具

解题关键点知识:

  • 自动化测试工具的目的
  • 自动化测试工具缺陷
  • 典型的测试工具

练习

1. 使用软件测试工具的目的不包括()。

A.帮助测试寻找问题
B.协助问题的诊断
C.节省测试时间
D.替代手工测试

解析:答案D。

2. ______是当前自动化测试技术不能解决的问题。

A.保证测试质量
B.提高测试效率
C.排除手工操作错误
D.降低测试用例设计的难度

解析:答案D。自动化测试还是需要测试人员来设计测试用例。

 

3. 以下属于软件测试工具的是( )。
①JTest ②LoadRunner
③Visual Studio④JBuilder

 A.①②③④
B.①②③
C.①②
D.①

解析:答案C。

 

4. 以下不属于软件测试工具的是()。
A.JMeter
B.LoadRunner
C.JTest
D.JBuilder

 

解析:答案D。JBulder是开发工具。

 

# 软件评价过程的特性

解题关键点知识:

  • 软件评价过程的四个特性

练习

1. 软件评价过程的特性不包括________。
A.正确性
B.可重复性
C.可再现性
D.客观性

 

解析:答案A。

 

# 配置管理

解题关键点知识:

  • 软件配置管理的基本活动
  • 配置项状态
  • 基线的种类

练习

1. 确定测试基线属于( )活动。

A.配置项标识

B.配置项控制

C.配置状态报告

D.配置审计

 

解析:答案B。

 

2. 关于软件测试过程中的配置管理,()是不正确的表述。
A.测试活动的配置管理属于整个软件项目配置管理的一部分
B.软件测试配置管理包括4个基本的活动:配置项变更控制、配置状态报告、配置审计、配置管理委员会建立
C.配置项变更控制要规定测试基线,对每个基线进行描述
D.配置状态报告要确认过程记录、跟踪问题报告、更改请求以及更改次序等

解析:软件测试配置管理包括4个基本活动:配置项标识,配置项控制(变更控制),配置状态报告,配置审计。答案B。

 

3. 软件开发中经常利用配置库实现变更控制,主要是控制软件配置项的状态变化,不受配置管理控制的是________。
A.自由状态
B.工作状态
C.评审状态
D.受控状态

解析:软件配置管理配置项控制有两个状态:自由状态和受控状态。答案A。

 

4. 软件配置管理中,基线的种类不包括_________。
A.功能基线
B.分配基线
C.产品基线
D.模块基线

 

 

解析:软件配置管理配置项控规定的测试基线有:分配基线,功能基线,产品基线。答案D。

 

# DDP

解题关键点知识:

  • DDP

练习

1. 以下关于缺陷探测率(DDP)的表述,不正确的是______。
A.DDP是一个衡量测试工作效率的软件质量成本指标
B.缺陷探测率越高,也就是测试者发现的错误越多,发布后客户发现的错误才可能越少
C.DDP是衡量测试投资回报的一个重要指标
D.测试周期越长,缺陷探测率就会越高

解析:测试到一定阶段,发现错误的几率越低,发现的错误越少。D选项不一定。答案D。

 

# 测试成本控制

解题关键点知识:

  • 测试成本控制

练习

1. 测试成本控制的目标是使测试开发成本、测试实施成本和测试维护成本最小化,以下理解正确的是______。
A.测试准备成本属于测试实施成本
B.可以通过加强软件测试的配置管理来降低测试维护成本
C.测试设计成本控制的目标是尽可能地减少测试总执行时间和所需的测试专用设备
D.回归测试将测试案例全部重新执行一遍,可以将测试维护成本降至最低

解析:答案B。

 

# 应用题

解题关键点知识:

  • 软件测试的原则
  • 缺陷/错误管理流程
  • 开发库/受控库/产品库
  • 软件测试质量管理/控制

练习

--------------------------1--------------------------

[说明]
某软件公司在研发一个城镇居民保险系统时,为了加快进度,测试工作在系统开发初步完成之后开始并直接进行系统测试。测试工程师针对界面进行了功能测试。测试工程师和开发工程师借助缺陷管理工具,交互进行测试与缺陷修复工作。测试期间发现系统的“文档审批”功能出现严重缺陷,开发工程师认为修改难度大,经测试工程师认可后决定暂停修复该缺陷,直到产品发布前,该缺陷在开发环境下被修复。随后,测试工程师在开发环境下针对该缺陷执行了有关的用例,进行了回归测试。回归测试结束后,开发工程师在开发环境下对产品直接打包发布。
1.测试开展的时间是过早、过晚还是合适 说明理由。

2. 测试工程师功能测试的方法是否正确?若不正确,请陈述正确的方法;若正确,请说明理由。

3. 该案例对缺陷的管理有哪些不妥之处?

4. 开发工程师产品发布的做法是否正确?

 

 

解析:

【问题1】

测试工作开展得太晚。

测试工作应该覆盖需求分析,概要设计,详细设计,编码等前期阶段,而不应该在系统开发初步完成后才开始。

【问题2】

测试人员功能测试的方法不正确。

系统功能测试应该追溯到用户需求,针对界面进行功能测试是错误的。

【问题3】

开发工程师无权决定是否延期或者暂停修改某一缺陷。

测试工程师认可暂停修复缺陷的决定是不合理的。

测试工程师应该跟踪缺陷状态,直至确定修改后关闭缺陷,才是完成测试任务。

回归测试应该执行所有的案例,不是仅仅执行与该缺陷有关的用例;

产品发布前,应该对发现的缺陷进行评审。

应该分析缺陷修复情况之后,才可以发布产品。

【问题4】

产品最后由开发人员直接发布不合理。

(基线库中的产品应该是最后经过测试的)实际最后发布的产品应该从产品库中提取。

 

--------------------------2--------------------------

软件测试的质量决定着被测产品的质量,是企业关注的重点。 
  
问题:1.1   请简要叙述软件测试质量包括哪些管理要素。 
  
问题:1.2  请简要论述软件测试质量控制的主要方法。 
  
问题:1.3   企业衡量软件测试的质量经常采用两个指标:测试用例覆盖率和缺陷修复率,请简述这两个指标的概念。 
  
问题:1.4   企业内部测试组在测试某办公自动化系统的过程中,使用60个测试用例进行测试,共发现了20个问题。
开发组对软件修改后,向测试组提交问题修改报告及修改后的软件。问题修改报告中提出:所发现问题中的5个问题是用户所要求的,无需修改,其余15个问题已修改完成。
测试组使用针对上轮测试中发现的15个问题的36个测试用例进行了回归测试,确认问题已得到修改,因此测试组做出结论:当前版本可以进入配置管理库,进行后续集成工作。
请简要分析测试组的做法是否存在问题并简述理由。
此办公自动化系统提交给用户之后,用户在使用过程中发现了5个问题,测试项目经理打算采用缺陷探测率来对测试人员进行绩效评估。请计算此测试项目的缺陷探测率。 

 

解析:

 

【问题1】

软件测试质量管理要素包括:

测试过程,例如技术过程,管理过程,支持过程。

测试人员及组织。

测试工作文档,例如测试计划,测试说明,测试用例,测试报告,问题报告。

【问题2】

软件测试质量控制的主要方法包括:

测试文档评审。

测试活动评审。

制定质量保证计划。

采用背靠背测试。

【问题3】

测试用例覆盖率=测试需求对应数目/测试需求数目

缺陷修复率=累计关闭的缺陷数/累计打开的缺陷数

【问题4】

测试组做法存在以下问题,理由如下:

不对开发组提出取消的5个属用户需求问题进行回归测试是错误的。

测试组应将开发组所述的用户需求作为补充说明由用户确认,测试组在回归测试中应对这5个问题与开发组进行沟通,并由用户或项目经理确认这5个问题是否可以取消,对于不能取消的问题仍需开发组进行修改并进行回归测试。

针对测试的15个问题:

只使用发现问题的36个用例进行回归测试是错误的,在修改36个测试用例发现的15个问题的过程中,可能引入新的问题。

因此应使用全部60个用例进行回归测试,或者准确判断这15个问题的修改波及到多少个用例,然后用这些用例来执行回归测试。

缺陷探测率=测试人员发现的缺陷数/(测试人员发现的缺陷数+用户发现的缺陷数)=20/(20+5)=80%。

 

 

# 黑盒测试案例设计技术

解题关键点知识:

  • 测试用例的构成
  • 黑盒测试的概述
  • 黑盒测试能发现的问题

练习

1. ( ) 不属于功能测试用例构成元素。
A.测试数据
B.测试步骤
C.预期结果
D.实测结果

解析:答案D。

 

2. 黑盒测试法是根据产品的( )来设计测试用例的。
A.功能
B.输入数据
C.应用范围
D.内部逻辑

 

解析:答案A。

 

3. 以下关于黑盒测试的叙述中,不正确的是()。

A.不需要了解程序内部的代码及实现

B.容易知道用户会用到哪些功能,会遇到哪些问题

C.基于软件开发文档,所以也能知道软件实现了文档中的哪些功能

D.可以覆盖所有的代码

解析:答案D。

 

4. 以下叙述中,不正确的是 () 。

A.黑盒测试可以检测软件行为、性能等特性是否满足要求

B.黑盒测试可以检测软件是否有人机交互上的错误

C.黑盒测试依赖于软件内部的具体实现,如果实现发生了变化,则需要重新设计用例

D.黑盒测试用例设计可以和软件实现同步进行

 

 

解析:答案C。

 

5. 执行功能测试后一般可以确认系统的功能缺陷,缺陷的类型包括______。
①功能不满足隐性需求 ②功能实现不正确
③功能不符合相关的法律法规 ④功能易用性不好
A.①
B.①②③
C.②③④
D.②

 

解析:答案B

 

6. 黑盒测试不能发现()。
A.功能错误或者遗漏
B.输入输出错误
C.执行不到的代码
D.初始化和终止错误

解析:答案C。

 

# 黑盒测试的方法

解题关键点知识:

  • 黑盒测试的方法
  • 等价类划分法的原则
  • 边界值分析法的特点
  • 因果图法应用场景
  • 判定表驱动法的概述
  • 各种黑盒测试方法的特点

练习

1. 以下不属于黑盒测试方法的是______。
A.等价划分类
B.边界值分析
C.错误推测法
D.静态结构分析法

解析:答案D。D选项属于白盒测试。

 

2. 以下关于黑盒测试的测试方法选择策略的叙述中,不正确的是( )。 
  A.  首先进行等价类划分,因为这是提高测试效率最有效的方法 
  B.  任何情况下都必须使用边界值分析,因为这种方法发现错误能力最强 
  C.  如果程序功能说明含有输入条件组合,则一开始就需要错误推测法 
  D.  如果没有达到要求的覆盖准则,则应该补充一些测试用例 

 

解析:答案C。包含有输入条件组合应该使用因果图。

 

3. 以下关于黑盒测试的测试方法选择的叙述中,不正确的是__________。

A.在任何情况下都要采用边界值分析法

B.必要时用等价类划分法补充测试用例

C.可以用错误推测法追加测试用例

D.如果输入条件之间不存在组合情况,则应采用因果图法

 

解析:答案D。有制约关系才是因果图法。

 

4. 以下关于边界值测试法的叙述中,不正确的是()。

A.边界值分析法不仅重视输入域边界,而且也必须考虑输出域边界
B.边界值分析法是对等价类划分方法的补充

C. 错误更容易发生在输入输出边界上而不是输入输出范围的内部

D. 测试数据应尽可能选取边界上的值

 

 

解析:答案A。

 

 

5.  以下关于等价划分法的叙述中不正确的是 ( )
 A.如果规定输入值string1必须是‘\0’结束,那么得到两个等价类,即有效等价类{string1|string1以‘\0’结束},无效等价类{string1|string1不以‘\0’结束}
B.如果规定输入值int1取值为1、-1两个数之一,那么得到3个等价类,即有效等价类{int1|int1=1}、{int1|int1=-1},无效等价类{int1|int1≠1并且int1≠-1}
C.如果规定输入值int2取值范围为-10~9,那么得到两个等价类,即有效等价类{int2|-10<=int2<=9},无效等价类{int2|int2<-10 或者int2>9}
D.如果规定输入值int3为质数,那么得到两个等价类,即有效等价类{int3|int3是质数},无效等价类{int3|int3不是质数}

解析:C选项应该是得到3个等价类。有效等价类 -10<=int 2<=9,无效等价类int2>9, int2<-10。答案C。

 

6. 以下关于等价类划分法的叙述中,不正确的是 ( ) 。

A.如果规定输入值a的范围为1~99,那么得到两个等价类,即有效等价类{a|1<=a<=99|,无效等价类{a|a<1或者a >99}

B.如果规定输入值s的第一个字符必须为数字,那么得到两个等价类,即有效等价类{s|s的第一个字符是数字},无效 等价类{s|s的第一个字符不是数字}

C.如果规定输入值x取值为1,2,3三个数之一,那么得到4个等价类,即有效等价类{x|x=1}、{x|x=2}、{x|x=3},无 效等价类{x|x≠1,2,3)

D.如果规定输入值i为奇数,那么得到两个等价类,即有效等价类{i|i是奇数},无效等价类{i|i不是奇数)

解析:答案A。

 

7. ( ) 测试用例设计方法既可以用于黑盒测试,也可以用于白盒测试。
A.边界值法
B.基本路径法
C.正交试验设计法
D.逻辑覆盖法

解析:答案A。

 

8. 针对电子政务类应用系统的功能测试,为设计有效的测试用例,应 ( ) 。
A.使业务需求的覆盖率达到100%
B.利用等价类法模拟核心业务流程的正确执行
C.对一个业务流程的测试用例设计一条验证数据
D.经常使用边界值法验证界面输入值

 

解析:A选项应该尽可能多的覆盖,不一定是达到90%。B选项模拟核心业务流程应该是场景法,不是等价类。C选项一个业务流程不应该只设计一条验证数据,应该设计多的用例尽可能的覆盖。答案D。

 

9. 黑盒测试中, ( ) 是根据输出对输入的依赖关系设计测试用例。
A.基本路径法
B.等价类
C.因果图
D.功能图法

解析:答案C。

10. 根据输出对输入的依赖关系设计测试用例的黑盒测试方法是( )

A.等价类划分法
B.因果图法
C.边界值分析法
D.场景法

解析:答案C。

11. 以下关于判定表测试法的叙述中,不正确的是( )。
 A.判定表由条件桩、动作桩、条件项和动作项组成
B.判定表依据软件规格说明建立
C.判定表需要合并相似规则
D.n 个条件可以得到最多 n 2个规则的判定表

解析:n个条件可以得到最多2^n个规则的判定表。答案D。

 

 

# 应用题

解题关键点知识:

  • 等价类划分的原则
  • 等价类测试用例设计的原则
  • 边界值分析的原则
  • 场景法基本概念
  • 枚举可能的场景
  • 设计场景法的测试用例
  • 黑盒测试的方法

练习

————————————————1————————————————

阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。 【说明】 某航空公司的会员卡分为普卡、银卡、金卡和白金卡4个级别,会员每次搭乘该航空公司航班均可能获得积分,积分规则如表2-1所示。此外,银卡及以上级别会员有额外积分奖励,奖励规则如表2-2所示。

公司开发了一个程序来计算会员每次搭乘航班历累积的积分,程序的输入包括会员级别B、舱位代码C和飞行公里数K,程序的输出为本次积分S 。其中,B和C三字母且大小写不敏感,K为正整数,S为整数(小数部分四舍五入)。

【问题1】

采用等价类型划分法对该程序进行测试,等价类表如2-3所示,请补充空(1)-(7)

表2-3等价类表

输入条件 有效等价类 编号 无效等价类 编号 会员等级B F 1 非字母 12 S 2 非单个字母 13 G 3 (5) 14 ( 1 ) 4     舱位代码C F 5 非字母 15 (2) 6 (6) 16 (3) 7     R/B/H/K/L/M/W 8     Q/X/U/E 9     P/S/G/O/J/V/N/T 10     飞行公里数K (4) 11 非整数 17       (7) 18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【问题2】根据以上等价类表设计的测试用例如表2-4所示。请补充空(1)-(13)

表2-4
编号 输入

覆盖等价类

(编号)

预期输出S
B C K
1 F F 500 1,5,11 (1)
2 S Z (2) 2,6,11 825
3 G A 500 (3) 781
4 P (4) 500 4,8,11 750
5 (5) Q 500 1,9,11 250
6 F P 500 1,10,11 (6)
7 (7) P 500 12,10,11 n/a
8 (8) F 500 13, 5, 11 n/a
9 A Z 500 14,6,11 n/a
10 S (9) 500 2,15,11 n/a
11 S (10) 500 2,16,11 n/a
12 S Q (11) 2,9,17 (12)
13 S P (13) 2,10,18 n/a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解析:

【问题1】

(1)P (2)Z/C    (3)A/D/I/Y  (4)正整数   (5)非FFGP的字母  (6)非规定仓位的字母 (7)非正整数

【问题2】

(1)1000 (2)500 (3)3,7,11    (4) R/B/H/K/L/M/W   (5)F   (6)0  

(7)9(非字母)   (8)GG(非单个字母)   (9)3(非字母)  

(10)GG(非单个字母)    (11)300.3(非整数) (12)N/A    (13)-200/0(非正整数)

 

————————————————2————————————————

[说明]某商店为购买不同数量商品的顾客报出不同的价格,其报价规则如表1所示。



如买11件需要支付10×30+1×27=327元,买35件需要支付10×30+10×27+10×25+5×22=930元。

现为该商家开发一个软件,输入为商品数C(1<=C<=100),输出为应付的价钱P。


3.1、请采用等价类划分法为该软件设计测试用例(不考虑C为非整数的情况)。

3.2、请采用边界值分析法为该软件设计测试用例(不考虑健壮性测试,即不考虑C不在1到100之间或者是非整数的情况)。

3.3、列举除了等价类划分法和边界值分析法以外的三种常见的黑盒测试用例设计方法。

 

解析

【问题1】

测试用例1:31~100中的任意一个数

测试用例2:101

测试用例3:0

测试用例4:1~10中任意一个数

测试用例5:

测试用例6:

【问题2】

1,5,10,11,15,20,21,25,30,31,35,100

【问题3】

错误推测法,因果图法,判断表法,正交试验法,功能图法,场景法

 

————————————————3————————————————
【说明】
某银行 B 和某公司 C 发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表 2-1 所示。此外,公司 C 的 会员分为普通会员、超级会员和 PASS 会员三个级别,超级会员和 PASS 会员在刷卡时有额外积分奖励,奖励规则如表 2-2 所示。

表 2-1 积分规则

表 2-2 额外积分奖励规则

银行 B 开发了一个程序来计算用户每次刷卡所累积的积分,程序的输入包括会员级别 L、刷卡日期D 和刷卡金额 A,程序的输出为本次积分 S。其中,L 为单个字母且大小写不敏感,D 由程序直接获取系统日期,A 为正浮点数最多保留两位小数,S 为整数。


【问题1】
采用等价类划分法对该程序进行测试,等价类表如下表所示,请补充表2-3中空(1)~(5)

                                              表2-3 等价表

    

【问题2】
根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空(1)~(9)

                                          表 2-4测试用例



【问题3】(
如果规定了单次刷卡的积分上限为 20000( 即 S 取值大于等于 0 且小于等于 20000), 则还需要针对 S 的取值补充一些测试用例。假设采用等价类划分法和边界值分析法来补充用例,请补充表 2-5、表2-6中的空(1)~(6)。

      表 2-5补充等价类

    表 2-6边界值

 

 

解析:

【问题3】

(1)S<0

(2)S>20000

(3)S=19999

(4)S=-1

(5)S=20001

(6)S=1

 

————————————————4————————————————

【说明】场景法是黑盒测试中重要的测试用例设计方法,通过场景描述业务流程(包括基本流(基本业务流程)和备选流(分支业务流程)),设计测试用例遍历软件系统功能,验证其正确性。

下面是对电子不停车收费系统(ETC)的基本流和备选流的描述。 

【问题1】使用场景法设计测试用例,指出所涉及到的基本流和备选流。基本流用A字母编号表示,备选流用表1-2中对应的字母编号表示。

例如:

T01: A

T02: A. B

【问题2】针对问题1设计的测试用例,依次将初次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等信息填入下述测试用例表中。表中行代表各个测试用例,列代表测试用例的输入值,用V表示有效数据元素,用I表示无效数据元素,n/a表示不适用,例如T01表示“成功通过”用例。

 

解析:

【问题1】

T01:A(收费停车)

T02:A,B(停车时,读取车辆信息出错)

T03:A,C(停车时,账户不存在)

T04:A,D(停车时,账户余额不足)

T05:A,E(停车时,账户状态异常)

T06:A,B,C(重复读取才取得正确的车辆信息,但出现账户不存在异常)

T07:A,B,D(重复读取才取得正确的车辆信息,但出现账户余额不足)

T08:A,B,E(重复读取才取得正确的车辆信息,但出现账户状态异常)

【问题2】

测试用例 初次读取车辆信息 最终读取车辆信息 账户号码 账户余额 账户状态 预期结果
T01 V N/A V V V 扣除通行费,车辆顺利通过,用例结束
T02 I I N/A N/A N/A 连续5次读取失败,显示警告信息,用例结束
T03 V N/A I N/A N/A 账户不存在,显示警告信息,用例结束
T04 V N/A V I N/A 账户余额不足,显示警告信息,用例结束
T05 V N/A V V I 账户状态异常,显示警告信息,用例结束
T06 I V I N/A N/A 多次读取车辆信息,最终成功;但是账户不存在,显示警告信息,用例结束
T07 I V V I N/A 多次读取车辆信息,最终成功;但是账户余额不足,显示警告信息,用例结束
T08 I V V V I

多次读取车辆信息,最终成功;但是账户状态异常,显示警告信息,用例结束

 # 白盒测试技术

非常常见的考点!!!

解题关键点知识:

  • 白盒测试的概述
  • 白盒测试的定义

练习

1. 以下关于白盒测试的叙述中,不正确的是______。
A.白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求
B.逻辑覆盖法是一种常用的白盒测试方法
C.程序中存在很多判定和条件,不可能实现100%的条件覆盖
D.测试基于代码,无法确定设计正确与否

解析:答案C。

 

2. 白盒测试不能发现()。

A.代码路径中的错误

B.死循环

C.逻辑错误

D.功能错误

 

解析:白盒测试就是检查代码,无法确认功能是否有问题。答案D。

 

# 代码检查法

解题关键点知识:

  • 代码检查法

练习

1. 以下属于静态测试方法的是( )

A. 代码审查             B. 判定覆盖            C. 路径覆盖            D. 语句覆盖

解析:答案A。

 

2. 白盒测试也称结构测试或逻辑驱动测试,典型的白盒测试方法包括静态测试和动态测试。其中,静态测试除了静态结构分析法、静态质量度量法外,还有______。
A.代码检查法
B.逻辑覆盖法
C.基本路径测试法
D.结构覆盖法

 

解析:答案A。

 

# 白盒测试的方法

解题关键点知识:

  • 理解基本的C程序
  • 逻辑覆盖法
  • 各种逻辑覆盖法的定义及要求
  • 语句,判定,条件,判决条件组合,多条件,修正的判定条件组合
  • 各种逻辑覆盖法的覆盖强度
  • 基本路径法
  • V(g)的计算
  • V(g)的含义

练习

1. 对于逻辑表达式(((a>0)&&(b>0))||c<5),需要( )个测试用例才能完成条件组合覆盖。    

A.  2   B.  4   C.  8   D.  16

 

解析:一共3个条件,因此2^3=8。答案C。

 

2. 对于逻辑表达式((a||(b&c))||(c&&d)),需要 ( ) 个测试用例才能完成条件组合覆盖。

A.  4   B.  8   C.  16   D.  32

 

解析:一个4个条件,因此2^4=16,答案C。

 

3. 针对下列程序段,需要 ( ) 个测试用例可以满足分支覆盖的要求。

int IsLeap(int year)
{
    if (year % 4==0)
    {
        if ( (year % 100==0)
        {
            if (year % 400==0)
                leap=1;
            else
                leap=0;
        }
        else
            leap=l;
    }
    else
        leap=0;
    return leap;
}

 

 

A.  3   B.  4   C.  6   D.  7

 

解析:分支覆盖就是条件覆盖。条件覆盖是构造一组测试用例,使得每一判定语句中的每个逻辑条件的可能值至少满足一次。

题目中有3个条件:year % 4==0, year % 100==0,year % 400==0。第一个测试用例是3个条件全部为真,第二个测试用例是第一个为假,其他为真。第三个测试用例是第二个为假,其他为真。第四个测试用例是第三个为假,其他为真。共4个测试用例。答案B。

 

4. 针对程序段:IF( A||B||C )THEN W=W/X,对于(A,B,C)的取值,(57)测试用例能够满足MCDC(修正条件逻辑判判定)的要求.
A.(F,T,T) (T,F,T) (T,F,F) (T,T,F)
B.(T,F,F) (T,T,F) (F,T,T) (F,F,F)
C.(T,F,F) (T,T,F) (F,T,T) (F,F,T)
D.(T,F,F) (F,T,F) (F,F,T) (F,F,F)

 

解析:MCDC修正判定条件覆盖:每个程序模块的入口和出口都要考虑至少被调用一次,每个程序的判定到所有可能的结果值至少转换一次;程序的盘点被分解为通过逻辑操作符(and , or)连接的bool连接,每个条件对于判定的结果值是独立的。

题目中的条件(A||B||C)是逻辑或。(FFF)会使得条件不满足,不执行then。任意其中一个值为真就会执行then。答案D。

 

5. 假设A、B为布尔变量,对于逻辑表达式(A&&B||C),需要______个测试用例才能完成判定覆盖(DC)。
A.2
B.3
C.4
D.5

 

解析: 判定覆盖DC:设计足够的测试用例,使得程序中每个判定至少都获得一次真或者假。因此只需要2个测试用例即可。答案A。

 

6. 逻辑覆盖法不包括()。
A.分支覆盖
B.语句覆盖
C.需求覆盖
D.修正条件判定覆盖

解析:答案C。

 

7. 逻辑覆盖标准包括________。 ①判定覆盖 ②语句覆盖 ③条件判定覆盖 ④修正条件判定覆盖
A.①②
B.①②③
C.①②④
D.①②③④

解析:答案D。

 

 

8. 以下几种白盒覆盖测试中,覆盖准则最强的是 ( ) 。    

A.  语句覆盖   B.  判定覆盖   C.  条件覆盖   D.  条件组合覆盖

解析:答案D。

 

9. 以下关于白盒测试的叙述中,不正确的是( )。    

A.  满足判定覆盖一定满足语句覆盖   B.  满足条件覆盖一定满足判定覆盖   C.  满足判定条件覆盖一定满足条件覆盖   D.  满足条件组合覆盖一定满足判定条件覆盖

 

解析:答案B。

 

10. 一个程序的控制流图中有5个节点、9条边,在测试用例数最少的情况下,确保程序中每个可执行语句至少执行一次所需测试用例数的上限是( )。    

A.  2   B.  4   C.  6   D.  8

 

解析:解题思路:边-节点+2=9-5+2=6。答案C。

 

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

A.V(G)=2

B.V(G)=4

C.V(G)=9

D.V(G)=11

 

 

解析:解题思路:可以数一共有多少个区域。答案B。也可以用题一的解题思路。

 

12. 假设在程序控制流图中,有12条边,8个节点,则确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上限是 ( ) 。
A.12
B.8
C.6
D.4

 

解析:答案C。

 

# 应用题

解题关键点知识:

  • 基本的C语句
  • 各种逻辑覆盖的定义
  • 控制流图的绘制
  • V(g)的计算
  • 独立路径
  • return语句/break语句
  • 二次计算
  • 各种逻辑覆盖法测试用例的设计

 

练习

----------------------------------1----------------------------------

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。

【C程序】

int count(int x,int z)
{ 
    inty=0; 
    while(x>0){               //l 
        if(x==1)              //2 
             y=7;             //3 
        else{                 //4 
            y=x+z+4; 
            if(y=7||y=21)   //5,6 
                x=1;         //7 
            } x--;           //8 
    } 
    return y;                //9 
}

【问题1】 请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2】 请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3】 请给出问题2中控制流图的线性无关路径。

 

 

解析:

【问题1】

x>0; x<=0

x==1; x!=1;

y==7或者y==21; y!=7且y!=21

【问题2】

V(g)=边-节点+2=12-9+2=5

【问题3】

1: 1,9

2:1,2,3,8,1,9

3:1,2,4,5,7,8,1,9

4:1,2,4,5,6,7,8,1,9

5:1,2,4,5,6,8,1,9

 

----------------------------------2----------------------------------

逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

 

【问题1】 请给出满足100%DC(判定覆盖)所需的逻辑条件。
 
【问题2】请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
 
【问题3】请给出问题2中控制流图的线性无关路径。

 

 

 

 

解析:

【问题1】

问题考查白盒测试用例设计方法:判定覆盖法。

判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序有6个判定,所以满足判定覆盖一共需要12个逻辑条件。

【问题2】

本问题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据代码绘制控制流图、计算环路复杂度。

控制流图是描述程序控制的一种图示方式,它由节点和定向边构成。控制流图的节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,if((filename[len-2]=='.')&&(filename[]len-1]=='c'))这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为7,所以V(G)=8
 

【问题3】

本题考查白盒测试用例涉及方法:基本路径法。涉及的知识点包括:根据控制流图和环路复杂度给出线性无关路径。

线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中应该有8条线性无关路径。

1、1 2 3 4 6 7

2、1 2 3 5 6 7

3、1 2 5 6 7

4、1 2 5 6 8 9

5、1 2 5 6 8 10

6、1 2 5 6 8 10 11 12 13

7、1 2 5 6 8 10 11 14

8、1 2 5 6 8 10 11 12

或者其他符合要求的等价的路径组合。

----------------------------------3----------------------------------

 

解析:

【问题1】

(1)4

(2)2

(3)4。如下表所示。需要每个判定,每个条件都包括真和假。

1   2   3   4  
B/L E/L B/L E/R B/R E/L B/R E/R
T T T F F T F F
F T F F T T T F
T F T T F F F T
F TF F T T F T T

 

 

 

 

 

 

 

【问题2】

【问题3】

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐