软件测试与质量保证 - 复习与面试题库(from hitwh)

软件测试与质量保证

互评题

  1. 简述软件开发人员和质量保证人员的区别。

    • 软件开发人员负责技术工作,质量保证人员负责质量保证的计划、监督、记录、分析及报告工作。
    • 软件开发人员通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来保证软件产品的质量。软件质量保证人员则辅助软件开发组得到高质量的最终产品。
  2. 简述三种SQA的组织结构以及各自的优缺点。

    • 独立的SQA部门:在整个企业的组织结构中设立一个独立的职能和行政部门—SQA部门,该部门和其他职能部门平级。 优点:保护SQA工程师的独立性和客观性;有利于资源的共享。 缺点:SQA对流程的跟踪和控制难于深入,往往流于形式,难于发现流程中存在的关键问题;由于和项目组的相互独立,SQA工程师发现的问题不能得到及时有效的解决。

    • 独立的SQA工程师:在这种组织结构中,SQA工程师属于项目成员,向项目经理汇报。 优点:SQA工程师能够深入项目,较容易发现实质性问题;对于SQA工程师发现的问题,能够得到较快短的解决。 缺点:项目之间相互独立, SQA工程师之间的沟通和交流有所缺乏,不利于经验的共享和SQA整体的培养和发展;由于SQA工程师隶属于项目组,独立性和客观性有所欠缺。

    • 独立的SQA小组:该组织结构是前面两种组织结构的综合结果。 特点:SQA组虽然不算一个行政部门,但具有相对的独立性。同时,SQA工程师有隶属于不同的项目组,在工作上向项目经理汇报。该结构综合了上面两种结构的优点,既便于QA融入项目组,又便于部门之间经验的分享,还利于QA能力的提高。

  3. 简述什么是软件缺陷

    • 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
    • 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
  4. 请指出走查、审查这两种同行评审方法的不同?

    • 走查和审查的区别是其正式性的等级。其中,审查是两者之中更为正式。
    • 走查的发现限于被评审文档的意见,而审查的发现还同改进开发方法自身的工作相结合。
    • 所以和走查相比,审查对一般的SQA做出了更大贡献。
  5. 简述为什么要评审

    • 从成本上来衡量:缺陷发现得越晚纠正费用越高,而软件评审的重要目的就是通过软件评审尽早的产品中的缺陷,减少大量的后期返工。
    • 从技术上来衡量:前一阶段的错误自然会导致后一阶段的工作结果中有相应的错误,而且错误会逐渐累积,越来越多。
    • 从效率上来衡量: 开发工程师:减少修订缺陷的时间,提高编程效率;减少测试和调试时间 项目负责人:缩短开发周期;减少维护费用;项目风险和质量问题得到很好控制 测试工程师:可以将更多精力放到测试用例的设计上,提高测试效率 维护人员:维护工作减少;产品的可维护性增强
  6. 简述基本的测量原则。

    • 测量应该基于该应用领域正确的理论之上,并在测量的定义中确定测度的目标;
    • 每一个技术测量的定义应该具有一致性和客观性、无二义性;
    • 测量在经验和直觉上也应该有说服力;
    • 测量的方法力求简单、可计算性;
    • 测量应该被剪裁以最适应特定的产品和过程,而且任何时候应尽可能使得收集和分析自动化;
    • 应该用正确的统计技术来建立内部产品属性和外部待测量特征的关系;
    • 测量结果应该是可靠的,不会因为一些技术问题导致测量结果很大的偏离;
    • 测量应该建立反馈机制。
  7. 什么是质量管理体系

    • 质量管理体系是在质量方面指挥和控制组织的管理体系。
    • 组织为了实现所确定的质量方针和质量目标,经过质量策划将管理职责、资源管理、产品实现、测量、分析和改进等相互关联或相互作用的过程有机的组成一个整体,构成质量管理体系。
  8. 如何辨证的看待质量和客户的关系?

    • 客户与质量的基本关系是相互依赖的关系。
    • 客户是质量的接受者,可以直接观察或感觉到质量的存在。
    • 质量相对于客户存在,服务于客户,而且由客户判定。
  9. 简单评价ISO模型、McCall模型和Boehm模型3种软件质量模型。

    • 存在差别:软件质量特性、影响因素或质量指标的定义不完全一致;总体上要表达的思想非常接近;
    • 目的相同:构造软件质量因素-准则-度量,3者综合的软件质量结构模型;
    • ISO模型第一层(质量特性)和第二层(准则)的关系非常清楚,不像McCall模型和Boehm模型那样存在交叉关系。
  10. 请详细描述软件质量费用的经典模型?

    • 在经典软件质量费用模型中,软件质量费用可以划分为控制费用、控制失效费用。
    • 其中,控制费用被进一步细化为预防费用和评价费用;
    • 控制失效费用进一步细化为内部失效费用、外部失效费用。
    • (1)预防费用包括建立软件质量基础设施、更新并改进基础设施以及完成其运行所需的常规活动的投资。
    • (2)评价费用花在特定项目或软件系统中软件错误的检测上。
    • (3)内部失效费用是指改正在顾客现场安装软件之前实施设计评审、软件测试及验收测试时检测到的错误而产生的费用。
    • (4)外部失效费用限定为改正由顾客或维护组在顾客现场安装软件系统之后检测到的失效的费用。
  11. 软件测试与调试有什么区别?

    • 软件测试与调试在目的、技术和方法等方面存在很大的区别
    • 测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。
    • 测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的
    • 测试是有计划的,需要进行测试设计;调试是不受时间约束的。
    • 测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程。
    • 测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。
    • 测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。
    • 大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。
  12. 什么是回归测试?回归测试的目的是什么?

    • 回归测试是指在修改了源代码后,用原有的测试用例进行重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
    • 回归测试的目的是所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等,不影响软件原有功能的正确性。
  13. 什么是测试用例

    • 测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。
    • 测试用例是执行的最小实体。
  14. 什么是桩模块,什么是驱动模块?

    • 桩模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块工作过程中所调用的模块。
    • 桩模块由被测模块调用,它们一般只进行很少的数据处理,以便检验被测模块与其下级模块的接口。
    • 驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测模块的主程序。
    • 驱动模块在单元测试中接收数据,把相关的数据传送给被测试的模块,启动被测模块,并给出相应的结果。
  15. 简述质量保证人员的主要工作内容。

    • 为项目制定SQA计划。该计划在制定项目计划时制定,由相关部门审定。它规定了软件开发小组和质量保证小组需要执行的质量保证活动。
    • 参与开发该软件项目的软件过程描述。
    • 评审各项软件工程活动,核实其是否符合已定义的软件过程。
    • 审计指定的软件工作产品,核实其是否符合已定义的软件过程中的相应部分。
    • 确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。
    • 记录所有不符合部分,并向上级管理部门报告。跟踪不符合的部分直到问题得到解决。
    • 协调变更的控制与管理,并帮助收集和分析软件度量的信息。
  16. 什么是性能测试?性能测试主要包括什么内容?

    • 是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
    • 主要包括以下三个方面:应用在客户端性能的测试,应用在网络上性能的测试和应用在服务器端性能的测试
  17. 白盒测试的重点以及相应的对策是什么?

    • 模块接口测试,重点检查进出模块的数据是否正确
    • 模块局部数据结构测试,重点检查局部数据结构能否保持完整性
    • 模块边界条件测试,重点检查临界数据是否正确处理
    • 模块独立执行路径测试,重点检查由于计算错误,判定错误,控制流错误导致的程序错误
    • 模块内部错误处理测试,重点检查内部错误处理设施是否有效
  18. 软件测试和软件开发过程具有怎么样的关系?

    • 软件测试贯穿在软件的开发过程中,在每个开发阶段具有不同的任务,
    • 在需求分析阶段,主要测试需求分析,以及进行系统测试计划的制定。
    • 在详细设计和概要设计阶段,主要确保集成测试计划和单元测试计划完成。
    • 在编码阶段,主要由开发人员测试自己负责开发的模块的代码。对于大型项目则需要有专门人员进行编码阶段的测试任务。
    • 在测试阶段,主要对系统进行测试,并提交相应的测试结果报告和测试分析报告。
  19. 简述负载测试,容量测试和强度测试的区别。

    • 负载测试:在一定的工作负荷下,系统的负荷及响应时间。
    • 强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
    • 容量测试:是通过测试预先分析出反映软件系统应用特征的某项指标的极限值,系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。
  20. 什么是软件测试

    • 软件测试是为了发现错误而执行程序的过程。
    • 软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
  21. 单元测试、集成测试、系统测试的侧重点是什么?

    • 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,
    • 测试重点是系统的模块,包括子程序的正确性验证等。
    • 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。
    • 测试重点是模块间的衔接以及参数的传递等。
    • 系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能供系统方案说明书中指定功能的有效方法。
    • 测试重点是整个系统的运行以及与其他软件的兼容性。
  22. 测试用例设计:有函数f(x,y),其中x∈[100,200],y∈[5,15]。
    请写出该函数采用一般边界值分析法计(自己百度)的测试用例(提示:共9个测试用例)。

    • (100,Y)
    • (200,Y)
    • (101,Y)
    • (199,Y)
    • (X,5)
    • (X,15)
    • (X,6)
    • (X,14)
    • (X,Y)
  23. 简述驱动程序以及如何构建测试驱动程序。

    • 测试驱动程序是一个运行测试用例并收集运行结果的程序。
    • 测试驱动程序的设计应该相对简单。
    • 测试驱动程序必须是严谨的、结构清晰、简单,易于维护。
    • 对所测试的类说明变化具有很强的适应能力。
    • 理想情况下,在创建新的测试驱动程序时,应该能够复用已存在的驱动程序的代码
  24. 简单对比白盒测试与黑盒测试

    • 白盒测试已知产品的内部工作过程,可以对程序每一行语句、每一个条件或分支进行测试
    • 白盒测试适合单元测试、集成测试
    • 白盒测试不适合系统测试
    • 黑盒测试不考虑程序内部结构和内部特性,而是从用户观点出发,针对程序接口和用户界面进行测试
    • 黑盒测试适合功能测试、易用性测试,验收测试、确认测试;
    • 黑盒测试不适合单元测试、集成测试
  25. 简述驱动程序以及如何构建测试驱动程序。

    • 测试驱动程序是一个运行测试用例并收集运行结果的程序。
    • 测试驱动程序的设计应该相对简单。
    • 测试驱动程序必须是严谨的、结构清晰、简单,易于维护。
    • 对所测试的类说明变化具有很强的适应能力。
    • 理想情况下,在创建新的测试驱动程序时,应该能够复用已存在的驱动程序的代码

第一章 质量

7 小结

  1. 质量不仅要满足明示的需求,而且要满足暗示的需求;
  2. 质量具有社会属性、成本属性、可预见性和可测性;
  3. 对质量认识的不同观点,包括制造方的观点、市场的观点、用户的观点、价值的观点等
  4. 质量概念的三个层次,以及狭义的质量概念如何发展到广义的质量概念。

8 课后习题

  1. 填空

    • 与质量相关的概念包括:组织、过程、产品、服务、客户、体系
    • 质量是系统、部件过程满足客户或用户明确需求或期望的不同程度
    • 质量的属性包括:客户属性、成本属性、社会属性、可测性、可预见性
  2. 选择

    • 质量管理是指在质量方面( 指挥 )和( 控制 )组织的协调的活动
    • 质量管理体系可以( 帮助组织实现顾客满意、为组织提供实现持续改进的框架、向顾客提供信任 )
    • 实现全面质量管理全过程的管理必须体现( 预防为主、不断改进;为顾客服务 )的思想
    • 致力于制定质量目标并规定必要的运行过程和相关资源以实现质量目标,称之为( 质量策划 )
    • 质量方针是一个组织总的质量宗旨和方向,应由组织的( 最高管理者 )批准。
    • 由于组织的顾客和其他相关方对组织的产品、过程和体系的要求是随着时间不断变化的,这体现了质量的( 时效性 )。
    • 著名的质量管理专家朱兰提出的质量管理三步曲是指 ( 质量策划、质量控制、质量改进 )。
    • 质量概念涵盖的对象是( 产品、服务、过程(以上都是) )。
    • 从适合顾客需要的角度对产品质量下定义被称为( 适用性质量 )。
    • 质量是一组固有( 特性 )满足要求的程度。
  3. 判断

    • 质量检验是对产品质量特性进行检验,以确定每项质量特性合格情况的管理性检查活动
    • 持续改进总体业绩应当是组织应追求的目标
    • 质量改进是质量管理的一部分,致力于增强满足质量要求的能力
    • 质量控制是按照一个设定的标准去实施检验
    • 服务是产品类别中的一类
    • 质量特性是指产品、过程或体系与标准有关的固有特性。
    • “符合标准”就是合格的产品质量
    • 不合格品控制时,请示领导决定是否可用
    • 质量管理体系是为实现质量方针和质量目标而建立的管理工作系统
    • 珍视顾客抱怨,把它作为我们研发产品、改善质量、提升服务的动力源泉
    • 质量改进和质量控制都是为了保持产品质量稳定
    • 当生产过程处于受控制状态时,产品质量就不会波动
    • 质量控制是消除偶发性问题,使产品质量保持规定的水平
    • 质量管理是指在质量方面指挥和控制组织的协调的活动

第二章 软件质量

6 课后习题

  1. 填空
    • SEI的Watts Humphrey认为软件质量是在 **实用性、需求、可靠性 **和 可维护性 等方面,达到优秀的水准。
    • 用户要求在性能方面包含哪些质量特性:效率性、正确性、安全性、互操作性
    • 用户要求在功能方面包含哪些质量特性:完整性、可靠性、生存性、可用性、便利性
    • 软件质量的3维特性指的是:功能性、可靠性、性能
    • 软件质量的3A特性指的是:可说明性、有效性、易用性
    • 软件质量的定义包含三个方面:软件 产品 的质量、软件 开发过程 的质量、软件在其 商业环境中 所表现的质量
    • ANSI/IEEE STD729给出了软件质量定义:软件产品满足规定的和隐含的与 需求能力 有关的全部特征和特性。
    • 从外部看,软件缺陷是系统所需要实现的某种功能的 失效违背
    • 极限编程适合 小团队、高风险、快速变化或不稳定的需求、强调可测试性
  2. 选择
    • 据权威部门统计,软件错误产生的原因分布图表中,如下( 软件需求规格说明错误 )选项是导致软件错误的主要原因。
    • V 模型是具有代表意义的测试模型,以下理解正确的是( V 模型造成需求分析阶段隐藏的问题一直到后期的验收测试才被发现 )。
    • 以下关于软件质量的说法中,错误的是( 程序的正确性足以体现软件的价值 )
    • 下列( 产品的异常情况 )是关于软件缺陷的描述。
    • 不属于软件产品的质量的特殊性是:( 软件的类型不同,但是软件质量的衡量标准的侧重点相同 )
    • 下列关于软件设计的说法不正确的是:( 软件设计越复杂越好 )
    • 以下哪一种选项不属于软件缺陷( 软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题 )
    • 下面有关软件缺陷的说法中错误的是( 缺陷就是导致系统程序崩溃的错误 )。
    • 极限编程的主要特点有( 简单的分析设计、频繁的客户交流、增量式开发和连续的测试 )(以上全部)
    • 以下关于软件可靠性与硬件的可靠性主要区别的说法中,正确的是( 软件的每个拷贝都是完全一样的,而按照设计生产出来的同规格硬件总有微小差别 )。
    • 软件质量的含义是( 能满足给定需要的特性之全体;具有所希望的各种属性的组合的程度;顾客或用户认为能满足其综合期望的程度;软件的组合特性,它确定软件在使用中将满足顾客预期要求的程度 )

第三章 软件质量工程体系

7 课后习题

  1. 填空题:
    • ISO9126将各种质属性归纳为6个质量特征,其中包括功能性、可靠性、可使用性、效率、可维护性、可移植性
    • 六西格玛模型分为界定、测量、分析、改进、控制等5个阶段。
    • IDEAL模型将质量改进过程划分为初始化、诊断、建立、行动、学习等5个阶段。
    • 采用定量软件工程,制定软件产品质量的度量准则,可以提高软件开发过程管理的可视性,降低劣质成本,提高软件产品的质量
    • McCall模型产品修订纬度的质量因素有可维护性、灵活性、可测试性。
    • 软件质量工程包括软件质量方针、软件质量控制、软件质量保证和软件质量管理四大方面。
    • 软件的6个品质要素包括:正确性、可靠性、易用性、效率、可维护性、可移植性
  2. 选择题:
    • 软件工程概念的提出是由于( 软件危机的出现 )
    • 系统可维护性的评价指标不包括( 可移植性 )
    • 软件可移植性是用来衡量软件( 质量 )的重要尺度之一。
  3. 判断题:
    • 软件可靠性是指一个系统或组件在某个特定时期、特定条件下完成所需完成的功能的能力。

第四章 软件质量度量

7 小结

20230715084907-1.png

8 课后习题

  1. 填空
    • 语法构造方法计算缺陷率的公式是: 0.15 + 0.23 DO WHILE+ 0.22 SELECT+ 0.07 IF-THEN-ELSE
    • 复杂度计算:线数 - 节点数 + 2,本次小测的结果为 4
    • 软件项目度量的主要内容包括: 规模 度量、 复杂度 度量、 缺陷 度量、 进度 度量、 风险 度量、 工作量 度量以及其他一些度量项目。
    • 软件质量度量按其研究对像可分为3类: 项目 质量度量、 产品 质量度量、 过程 质量度量
    • 有效 性和 可靠 性是测量标准中最重要的指标。
    • 课堂上提到的度量尺度包括 分类 尺度、 序列 尺度 、 间隔 尺度、 比值 尺度。
    • 度量是对软件产品进行范围广泛的测度,它给出一个系统、构件或过程的某个给定属性的度的 定量测量
    • 测量是对产品过程的某个属性的范围、数量、维度、容量或大小提供一个 定量的指示
    • 软件产品度量包括软件 规模大小产品复杂度设计特征性能 以及 质量水平
    • 度量 是对软件产品进行范围广泛的测度,它给出一个系统、构件或过程的某个给定属性的度的定量测量。
  2. 选择
    • 假设在程序控制流图中,有14 条边,10个节点,则控制流程图的环路复杂性V(G)等于( 6 )。
    • 修复软件缺陷费用最高的是( 发布 )阶段。
  3. 判断
    • 质量是反映软件与需求相符程度的指标,而缺陷被认为是软件与需求不一致的某种表现。
    • McCabe度量、语法构造方法只适合独立模块内部进行测量,不能考虑系统各个模块间相互耦合的关系。
    • 软件度量应基于分析模型、设计模型或程序本身的结构进行,而独立于编程语言的句法和语法之外。
    • 测量的目标是不断提高有效性和可靠性,测量可以避免出现偏差或误差。
    • 可靠性差一般意味着测量方法在技术上有待改进。
    • 有效性差一般意味着测量方法在原则性上有错误。
    • 度量是为了获取指标评估量化结果的重要手段和方法。
    • 软件度量具有相对性强,绝对性弱的特点。
    • 软件质量度量就是用来衡量软件质量控制和保证的过程和结果的。

第五章 软件质量标准

3 课后习题

  1. 填空
    • CMMI的内容主要有3个级别: 必需 的、 期望 的以及 提供信息 的。
    • CMM为软件过程改进提供了一个框架,将整个软件改进过程分为 5 (请填写阿拉伯数字)个成熟度等级。
    • CMM的意义不仅仅是对软件开发的过程进程控制,还是一种高效的管理方法,有助于企业最大程度的 降低成本提高质量用户满意度
    • 根据软件工程标准制定的机构和标准适用的范围,可将其分为5个级别,即 国际标准国家标准行业标准企业规范项目规范
    • CMM将整个软件改进过程分为 初始级可重复级已定义级已管理级优化级 等5个成熟度等级。
  2. 选择
    • 软件设计需要注意哪些问题:( 减少耦合;代码重用;功能分解 )
    • 根据CMMI规范,每一个软件企业均具有( 等级一 )成熟度。
    • cmm 模型将软件过程的成熟度分为 5 个等级,在( 管理级 )使用定量分析来不断地改进和管理软件过程。
  3. 判断
    • 软件过程能力成熟度是指一个特定过程被明确定义、管理、测量、控制并且是有效的程度。
    • 为了达到一个成熟度等级,必须实现该等级上的全部关键过程区域。
    • 优化级说明已管理的过程,定义了评估软件过程和产品质量的度量。利用此度量对软件过程和产品做出推断和控制。

第六章 软件评审

6 小结

  1. 本章对软件评审的基本情况进行了介绍,包括评审的成熟级别、评审方法、评审技术和评审流程等。
  2. 对于软件评审,评审过程越正式则评审的效率越高,审查是评审方法中最正式、最严格、最有效的评审方法。

7 课后习题

填空题
  1. 评审的方法包括 临时评审轮查走查小组评审审查
  2. 管理评审要求各部门对管理体系目前的状况,包括 适宜 性、 有效 性、 充分 性等进行评审。
  3. 管理评审由 最高管理者 发起
选择题
  1. 评审会议的主要步骤如下:( 由评审员/作者进行演示或说明;评审员会就不清楚或疑惑的地方与作者进行沟通;协调人或记录员在会议过程中完成会议记录 )
  2. 以下哪些资料应当评审:( 基础性和早期的文档;与重大决策有关的文档;对如何做没有把握部分相关的文档;不断被重复使用部件相关的文档 )
  3. 对评审组长的要求如下:( 善于制定和执行评审计划;评审是公平、公正的;具有丰富的技术技能和知识;积极带领评审组员按时保质的完成评审任务 )
  4. 过程评审作用如下:( 评估主要的质量保证流程;考虑如何处理和解决评审过程中发现的不符合问题;总结和共享好的经验;指出需要进一步完善和改进的部分 )
  5. 过程评审是( 对软件开发过程的评审;通过对流程的监控,保证SQA组织定义的软件过程在项目中得到了遵循;保证质量保证方针能得到更快更好的执行 )
  6. 技术评审作为一项软件质量保证活动,作用如下:( 揭示软件在逻辑、执行以及功能和函数上的错误;验证软件是否符合需求;确保软件的一致性 )
  7. 评审小组一般由以下角色构成( 协调人;作者;评审员 )
  8. 评审可以帮助开发工程师( 减少修订缺陷的时间;提高编程效率;减少测试和调试时间 )
  9. 软件评审作为质量控制的一个重要手段,已经被业界广泛使用。评审分为内部评审和外部评审。关于内部评审的叙述,正确的包括。①对软件的每个开发阶段都要进行内部评审②评审人员由软件开发组、质量管理和配置管理人员组成,可邀请用户参与③评审人数根据实际情况确定,比如根据软件的规模等级和安全性等级等指标而定④内部评审由用户单位主持,由信息系统建设单位组织,应成立评审委员会( ①②③ )
  10. 在软件设计中,设计复审是和软件设计本身一样重要的环节,其主要的目的和作用是为了能够( 避免后期付出高代价 )
  11. 软件测试计划评审会需要哪些人员参加?( 项目经理;SQA负责人;配置负责人;测试组 )
  12. 在软件设计中,设计复审是和软件设计本身一样重要的环节,其主要的目的和作用是为了能够( 避免后期付出高代价 )
判断题
  1. 发现缺陷的平均成本不应该超过该缺陷遗留给客户的商业成本。
  2. 评审报告可以看作是评审会结束的标志。
  3. 规则集列出了容易出现的典型错误,是评审的一个重要组成部分。
  4. 过程评审的评审对象是质量保证流程,以及针对产品质量或其他形式的工作产出。
  5. 文档评审分为格式评审和内容评审。
  6. 管理评审是对产品以及各阶段的输出内容进行评估。
  7. 管理者、开发人员、客户有时都反对评审,因为评审会浪费时间,减缓项目的进度。
  8. 评审是对软件元素或者项目状态的一种评估手段。
  9. 评审是质量控制方面一种非常有效的方法。
  10. 同行评审的主要目标在于检测错误、核对与标准的偏离。
  11. 代码评审是检查源代码是否达到模块设计的要求。
  12. 技术评审即是一种技术手段,也是一种质量管理手段。

第七章 SQA组织

5 小结

  • 本章介绍了几种基本的SQA组织结构,阐述了各种结构的优缺点,并说明如何结合实际来选择最适合的组织结构。
  • 同时介绍了SQA组织内成员的责任以及人员的培养。
  • 选择合适的SQA组织和培养人员的根本目的是为了保证软件产品的质量

6 课后习题

填空题
  1. 为了保证项目组能够采用合适的技术和工具,我们应该进行 软件工具的评估
  2. 六西格玛组织结构从上到下分为 倡导者 、 黑带主管(大师)、 黑带绿带
  3. 项目的进度管理 是一个动态的过程,需要不断调度、协调,保证项目的均衡发展。
选择题
  1. SQA计划实施步骤的第一步是( 了解项目的需求,明确项目SQA计划的要求和范围 )
  2. 以下三种组织结构中,哪种相对完善一些( 独立的SQA工程师(独立的SQA小组) )
  3. 以下属于独立SQA部门优点的是:( 保护SQA工程师的独立性和客观性;有利于资源的共享 )
  4. 在企业中,最常见的质量保证组织是( 软件测试部门;软件质量保证组织 )
判断题
  1. 审核是对工作流程的评审,而评审则主要侧重产品本身。
  2. SQA人员与开发工程师本质上是对立的。
  3. 为了让SQA人员可以全心投入本职工作,所以SQA人员必须是全职的。
  4. 创建SQA部门的时候,与企业本身实际相比,更重要的是参考业界流行的各种标准(如ISO、CMMI等)。
  5. 软件工程过程组类似于一个“立法”机构,而SQA则类似于一个“监督”机构。
  6. 任何不符合客户需求的地方都可以认为是缺陷。
  7. 所有SQA活动和项目里程碑的完成或项目里程碑的检验是同时发生的。
  8. 在整个机构中使用基础设施防护与改进部件的主要目标是在机构积累的SQA经验基础上消除或至少降低出错率。
  9. 软件质量系统之间各不相同,说明机构SQA系统构建存在固有灵活性。
  10. SQA组织负责生产高质量的软件产品和制定质量计划,责任是审计软件经理和软件工程组的质量活动并鉴别活动中出现的偏差。
  11. 在软件产品制定生产计划阶段,不必进行重大的SQA活动。

第八章 提高软件设计质量

7 小结

  • 从软件系统结构设计、数据设计、设计模型等方面阐述软件设计阶段,并简单介绍了每个阶段设计的要求以及设计评价标准。
  • 软件设计处于软件工程的技术核心位置。
  • 设计模型可以方便的复用成功的体系结构,帮助设计者更好的完成系统设计

8 课后习题

选择题
  1. 将软件需求转化为数据结构和软件的系统结构,并定义子系统和它们之间的通信或接口是哪个阶段的任务( 概要设计 )
  2. 软件体系结构设计的基本任务( 数据结构及数据库设计;编写概要设计文档;概要设计文档评审;设计软件系统结构 )
  3. 下列耦合度从低到高排列正确的是( 数据耦合、控制耦合、公共环境耦合、内容耦合 )
  4. 开-闭原则的闭指的是( 对于原有代码的修改是封闭的,即不应该修改原有的代码。 )
  5. 软件设计的技术原则包括( 开-闭原则;接口隔离原则;迪米特法则;单一职责原则 )
  6. 在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。新的对象通过向这些对象的委派达到复用已有功能的目的。这是什么原则( 合成/聚合复用原则 )
  7. 体系结构的模型包括( 结构模型;功能模型;动态模型;过程模型 )
  8. 一个设计模式的基本要素包括( 问题;效果;解决方案;模式名称 )
  9. 设计模式的作用包括( 有助于作出有利于系统复用的选择,避免设计损害系统复用性;可以帮助设计者更快更好的完成系统设计;可以更加简单方便的复用成功的设计和体系结构;在工程小组成员之间提供了通用的语义 )
  10. 接口设计准则包括( 是否包含有硬件接口设计,硬件接口设计是否正确且全面;是否包含有软件接口设计,软件接口设计是否正确且全面;是否描述了各类接口的功能;是否描述各接口与其他接口或模块之间的关系 )
  11. 详细设计的目标任务包括( 确定每一模块使用的数据结构;确定模块接口的细节;为每一个模块设计出一组测试用例 )
  12. 用户界面设计原则包括( 必须保持一致性;应有自助功能;界面易懂 )
判断题
  1. 需求分析是将用户需求准确转化为软件系统的唯一途径。
  2. 软件设计的基本原则是设计越简单越好
  3. 软件设计的指导思想是降低模块内聚性,提高模块耦合度。
  4. 任何体系结构都有它自身的优点和缺点,所以我们要有针对性的选择使用。
  5. 软件设计的时候技术远比用户需求重要的多。
  6. 常作验证,早作验证是软件设计的原则之一
  7. 里氏代换原则中说,任何基类可以出现的地方,子类不一定可以出现。
  8. 框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
  9. C/S与B/S软件体系结构相比,除了用户界面的实现方式不同以外,其他没什么差别。
  10. 中间件的多层分布式的体系结构将客户和资源分开,降低了服务器的负载。
  11. 设计模式使得人们可以更加简单和方便地去复用成功的软件设计和体系结构,从而帮助设计者更快更好地完成系统设计。
  12. UML语言先建模再编写代码,从一开始就保证系统结构合理
  13. 数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

第九章 高质量编程

11 课后习题

填空题
  1. 建议文件结构包含三部分内容,包括:定义文件开头处的 版权版本 声明;对一些头文件的引用;程序的实现体(包括数据和代码)。
  2. 正常值用 输出参数 获得,错误标志用 return语句 返回。
选择题
  1. 以下属于优秀代码风格的是( If( j= =1);If(i〉MAX_NUM) )
  2. 以下属于Windows程序命名规则的是( 全局函数的名字应当使用“动词”或者“动词+名词”;静态变量加前缀s_。如果必须定义使用全局变量,则在全局变量前加g_;常量全用大写的字母,用下划线分割单词 )
  3. 下列属于函数处理规则的是( 如果参数是指针且仅做输入用,应该在类型前面加const,以防止该指针在函数体内被意外修改;如果输入参数以值传递的方式传递对象,宜改用“const & ”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率;不要将正常值和错误标志混在一起返回。正常值用输出参数获得,错误标志用return语句返回;不要将正常值和错误标志混在一起返回。正常值用输出参数获得,错误标志用return语句返回 )
  4. 以下符合程序版式规则的是( 尽可能在定义变量的同时初始化该变量;长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首;尽量避免在注释中使用缩写,特别是不常用缩写 )
  5. 以下符合基本语句规则的是( if语句不可将浮点变量用“==”或“!=”与任何数字比较;不可在for循环体内修改循环变量;建议for语句的循环控制变量的取值采用“半开半闭区间”写法;if语句不可将布尔变量直接与TRUE、FALSE或者1、0进行比较 )
  6. 以下符合内存使用规范的是( 程序在运行的时候用malloc或new申请动态内存分配,动态内存的生存期由我们决定;静态存储区域在程序的整个运行期间都存在 )
  7. 以下符合内存使用规范的是( 用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理;内存分配成功后,应尽快对其进行初始化;程序中malloc与free的使用次数一定要相同;free和delete只是把指针所指的内存给释放掉,但并没有把指针本身干掉 )
  8. 以下说法正确的是( const可以修饰函数的参数、返回值,函数的定义体等。修饰的东西受到强制保护,可以预防意外的变动;void Func(const A &a)的形式可以有效防止参数a被意外修改;如果输入参数采用“指针传递”,那么加const修饰可以防止意外地改动该指针,起到保护作用 )
判断题
  1. 注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。
  2. 边写代码边注释,修改代码同时修改相应的注释
  3. 建议将浮点变量用“==”或“!=”与数字比较。

第十章 软件测试

7 小结

  • 本章介绍了软件测试的任务和目标、测试的现实和原则,在此基础上,论述了测试的方法应用之道。
  • 对于测试的不同阶段,通过介绍相应的要求、最佳实践和方法,完整地、有效地实现测试目标。
  • 介绍了测试过程评审和质量保证的方法。
  • 最后,介绍软件测试组织和管理原则,包括测试资源的合理分配、进度和成本的控制以及测试风险的管理。

8 课后习题

填空题
  1. 按照是否需要知道被测试程序的内部结构,测试方法可以分为: 黑盒 测试和 白盒 测试。
  2. 动态测试的两个基本要素是 被测试程序测试用例
  3. 动态测试技术主要使用的分析方法包括: 白盒 测试、 黑盒 测试 和 灰盒 测试 。
  4. 回归测试的目的是所做的修改 达到了预定的目的 ,同时 不影响软件原有功能 的正确性。
  5. 动态测试技术主要使用的分析方法包括: 白盒 测试、 黑盒 测试 和 灰盒 测试 。
选择题
  1. 导致软件缺陷的原因有很多,①—④是可能的原因,其中最主要的原因包括( ①软件需求说明书编写的不全面,不完整,不准确,而且经常更改;④开发人员不能很好的理解需求说明书和沟通不足 )
  2. 一条Bug记录应该包括( ①编号;②Bug描述;③Bug级别;④Bug所属模块;⑤发现人 )
  3. 下面①–④是关于软件评测师工作原则的描述,正确的判断是( 无 )( ①对于开发人员提交的程序必须进行完全的测试,以确保程序的质量‌‌;②必须合理安排测试任务,做好周密的测试计划,平均分配软件各个模块的测试时间‌‌;③在测试之前需要与开发人员进行详细的交流,明确开发人员的程序设计思路,并以此为依据开展软件测试工作,最大程度地发现程序中与其设计思路不一致的错误‌‌;④要对自己发现的问题负责,确保每一个问题都能被开发人员理解和修改。
  4. 测试记录包括( ① 测试计划或包含测试用例的测试规格说明。;③ 与测试用例相关的所有结果,包括在测试期间出现的所有失败。;④ 测试中涉及的人员身份。 )
  5. 下列叙述中,( 白盒测试又称为逻辑驱动测试 )是正确的。
  6. 软件设计阶段的质量控制主要采取的方式是( 评审 )
  7. 下列各项中( 测试预期输出 )不是一个测试计划所应包含的内容。
  8. 下列中不属于测试原则的是( 找到的缺陷越多软件残留的缺陷就越少 )
  9. 关于自动化测试局限性的描述,以下描述错误的是( 自动测试比手工测试发现的缺陷少 )
  10. 缺陷跟踪就是要确保每个被发现的缺陷最终都能够被( 关闭 ),而不是不了了之 。
  11. ( 软件测试文档 )是对要执行的软件测试及测试的结果进行描述、定义、规定和报告的任何书面或图示信息。
  12. 软件测试是按照特定的规程,( 发现软件错误 )的过程。
  13. 软件质量保证与测试人员需要的的基本素质有( 所有选项都是 )( 行业知识、测试专业技能、计算机专业技能 )
  14. 软件测试人员的工作职责不包括( 对软件缺陷进行修复 )
  15. 关于自动化测试局限性的描述,以下描述错误的是( 自动测试比手工测试发现的缺陷少 )
  16. 通过继承机制,子类可以继承父类的特点和功能,这一特征为( 缺陷 )的扩散提供了途径。
  17. 封装这一特征简化了对对象的使用,但同时也给测试结构的( 分析 )、测试路径的选取、测试数据的生成等带来了困难。
  18. 增量式集成测试有3种方式:自顶向下增量测试方法,( 自底向上增量测试方法 )和混合增量测试方式。
  19. 代码检查法有桌面检查法,走查和( 代码审查 )
  20. 划分软件测试属于白盒测试还是黑盒测试的依据是( 是否能看到被测源程序 )
  21. 软件测试的局限性不包括( 软件测试会导致成本增加,项目总体效益降低。 )
  22. 较实用的软件测试停止标准是( 分析发现的缺陷数量和测试投入成本曲线图,确定应继续测试还是停止测试。 )
  23. 下列中不属于测试原则的是( 找到的缺陷越多,软件遗留的缺陷就越少 )
  24. 经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该( 较多 )
  25. 以下哪一类人员与软件质量保证与测试工作无关?( 软件销售人员 )
  26. 软件测试用例主要由输入数据和( 预期输出结果 )两部分组成。
  27. 与设计测试用例无关的文档是( 项目开发计划 )
  28. 在确定测试目标的过程中,测试人员主要完成以下的( 确定测试的标准和规范;确定测试环境;确定所需要的测试资源;确定用户的特殊要求 )
  29. 测试人员应在软件生命周期中的下面哪个阶段介入最好( 需求阶段 )
  30. 软件测试的对象包括( 以上所有 )( 需求分析、概要设计和详细设计;程序源代码;需求规格说明 )
  31. 从测试的要求来讲,如果想让测试完成的效果更好,测试部门与开发部门的关系最好是下面四种中的( 测试组织与开发组织为不同公司。 )
  32. 以下属于安全测试方法的是( ①安全功能验证;②安全漏洞扫描;③模拟攻击实验;④数据侦听 )
  33. 编写测试计划的目的是( ①使测试工作顺利进行;②使项目参与人员沟通更舒畅;③使测试工作更加系统化 )
  34. 对需求说明书评测的内容包括( ①系统定义的目标是否与用户的要求一致;②被开发项目的数据流与数据结构是否足够、确定;③与所有其它系统交互的重要接口是否都已经描述;④主要功能是否已包含在规定的软件范围之内,是否都已充分说明 )
  35. 以下关于白盒测试和黑盒测试的理解,正确是( 白盒测试通过对程序内部结构的分析、检测来寻找问题 )
  36. 为了使软件测试更加高效,应遵循的原则包括( ①所有的软件测试都应追溯到用户需求、充分注意缺陷群集现象;②尽早地和不断地进行软件测试、回归测试;④应由不同的测试人员对测试所发现的缺陷进行确认;⑤增量测试,由小到大 )
  37. ( 设计一个好的测试用例对用户需求的覆盖度达到100% )不是正确的软件测试目的。
  38. 设计功能测试用例的根本依据是( 用户需求规格说明书 )。
  39. 使用软件测试工具的目的不包括( 提高设计质量 )
  40. 以下关于软件测试原则的说法中,错误的是( 测试过程中某模块中查出的错误越多,该模块残留的错误就越少 )
  41. 为了提高测试效率应该( 选择发现错误的可能性大的数据作为测试数据 )
  42. 测试工程师的工作范围会包括检视代码、评审开发文档,这属于( 静态测试 )
  43. 软件测试的责任是:( 编写合理的测试计划,并与项目整体计划有机地整合在一起;针对测试需求进行相关测试技术的研究;进行缺陷跟踪与分析;编写覆盖率高的测试用例 )
  44. 软件测试按照测试层次可以分为( 单元测试、集成测试和系统测试 )
  45. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证:① 经过自己测试的软件今后不会再出现问题; ② 在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结; ③ 承诺不需要其他人员,自己就可以独立进行测试工作; ④ 发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休; 你认为应聘者甲的保证( 都不正确 )。
  46. 软件测试步骤理解有误的是:( 白盒法考虑的是测试用例对程序外部逻辑的覆盖程度 )
  47. 不属于测试工具的优点是( 通过工具我们可以达到 100%的测试覆盖率 )
  48. 下列( 找到的缺陷越多软件的缺陷就越少 )不属于测试原则的内容。
  49. 软件测试类型按开发阶段划分是( 单元测试、集成测试、确认测试、系统测试、验收测试 )
  50. ( 错误强度曲线下降到预定的水平 )可以作为软件测试结束的标志。
  51. 对测试用例描述不正确的是( 不同类别的软件,测试用例是相同的 )
  52. 软件测试计划评审会需要哪些人员参加?( 项目经理;SQA 负责人;配置负责人;测试组 )
  53. 软件测试过程包括哪些步骤( 单元测试;集成测试;验收测试;确认测试 )
  54. 测试设计员的职责有:( 设计测试用例;设计测试过程、脚本 )
  55. 关于软件测试的概述说法不正确的是( 用更好的程序语言编写程序可以避免出错;软件测试在软件开发总工作量的比例应最低 )
  56. 关于软件测试的理解有误的是( 软件测试目的是为了改正软件的错误;应用系统开发完毕,再对它进行软件测试 )
判断题
  1. 需求分析 - 设计-实现-测试,软件测试是软件开发末期才需要做的工作。
  2. 采用自动化测试工具后一定比手工测试发现的缺陷更多。
  3. 测试人员要坚持原则,缺陷未修复完坚决不予通过。
  4. 自底向上集成需要测试员编写驱动程序。
  5. 发现错误多的模块,残留在模块中的错误也多。
  6. 一个软件存在哪些缺陷,开发者和用户的立场是一致的。
  7. 软件测试针对的是初级程序员编写的程序,资深程序员编写的程序无需测试。
  8. 好的测试员不懈追求完美,保证通过测试的软件不会再有缺陷。‍
  9. 测试是为了验证软件已正确地实现了用户的要求。
  10. 代码评审员一般由测试员担任。
  11. 测试是为了验证软件已正确地实现了用户的要求。
  12. 在软件测试中, 测试预言是一种检验待测系统在特定执行下是否正确运行的方法。
  13. 测试人员说:没有可运行的程序,我无法进行测试工作。
  14. 项目立项前测试人员不需要提交任何工件。
  15. 发现错误多的模块,残留在模块中的错误也多。
  16. 只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。
  17. 测试人员要坚持原则,缺陷未修复完坚决不予通过。
  18. 软件测试工具可以代替软件测试员。
  19. 软件测试等于程序测试。
  20. 最重要的用户界面要素是软件符合现行标准和规范。
  21. 软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。
  22. 传统测试以发现错误为目的,现在测试已经扩展到了错误预防的范畴。
  23. 我们有理由相信只要能够设计出尽可能好的测试方案,经过严格测试之后的软件可以没有缺陷。
  24. 设计-实现-测试,软件测试是开发后期的一个阶段。
  25. 永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。
  26. 程序员兼任测试员可以提高工作效率。

第十一章 白盒测试

3 小结

  • 本章主要讲解了白盒测试的基本概念和技术,包括白盒测试的基本概念、分类、白盒测试中的边界值技术、语句覆盖测试、分支覆盖测试、条件覆盖测试、分支-条件覆盖测试、条件组合覆盖测试、路径覆盖测试。
  • 白盒测试允许观察“盒子”内部,不像黒盒测试那样把系统理解为一个“内部不可见的盒子” ,不需要明白内部结构。
  • 为了完整的测试一个软件,这两种测试都是不可或缺的。一个产品在其概念分析阶段直到最后交付给用户期间往往要经过各种静态的、动态的、白盒的和黒盒的测试。

4 课后习题

填空题
  1. 判定-条件覆盖法要求使得判断中 每个条件的所有可能取值 至少执行一次。
  2. 白盒测试适合 单元 测试、 集成 测试。
  3. 满足条件组合覆盖标准的测试数据并不一定能使程序中的 每条路径 都执行到。
选择题
  1. 下列几种逻辑覆盖标准中,查错能力最强的是( 条件组合覆盖 )

  2. 一个程序中所含有的路径数与( 程序的复杂程度 )有着直接的关系

  3. 条件覆盖的目的是( 使程序中的每个判定中每个条件的可能值至少满足一次 )

  4. 白盒测试是根据程序的( 内部逻辑 )来设计测试用例,黑盒测试是根据软件的规格说明来设计测试用例。

  5. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定覆盖。( (a,b,c) = (4,-9,-2)、(-4,8,3) )

    int func(int a,b,c)
    {
         int k=1;
         if ( (a>0) &&(b<0) && (a+c>0) )   
              k=k+a;
         else
              k=k+b;
         if (c>0) 
              k=k+c;
         return k;
    }
    
  6. 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的( 判定覆盖 )

  7. 以下哪种测试方法不属于白盒测试技术( 边界值分析测试 )

  8. 对一个程序进行基本路径覆盖测试,所需测试用例的最少个数为( 程序的环路复杂度 )

  9. 如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例( 2 )

  10. 对下面的计算个人所得税程序中,满足判定覆盖的测试用例是( income=(799, 1500, 1999, 2000) )

    if (income<800) taxrate=0; 
       else if (income<=1500) taxrate=0.05;
          else if (income<2000) taxrate=0.08;
             else taxrate=0.1;
    
  11. 针对下面一个程序段:

    if  ((M>0) && (N = = 0))          FUCTION1;
    if ((M = = 10)|| (P > 10))         FUCTION2;
    

    其中,FUCTION1、FUCTION2均为语句块。
    现在选取测试用例:M=10 N=0 P=3 ,该测试用例满足了( 语句覆盖 )

  12. 一个程序中所含有的路径数与( 程序的复杂程度 )有着直接的关系。

  13. 如果某测试用例集实现了判定覆盖,那么它一定同时实现了该软件的( 语句覆盖 )

  14. 下列不属于白盒测试的技术是( 边界值分析 )

  15. 发现错误能力最弱的是( 语句覆盖 )

  16. 白盒测试方法中阐述不正确的是( 组合覆盖要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合最多出现一次。 )

判断题
  1. 基路径测试给出了必需进行的测试的上限。
  2. 基路径是指从所有的程序路径中选择一个最小的路径集合,程序中的其它路径都可以由这一组路径进行加法和数乘运算得到。
  3. Beta 测试是验收测试的一种。
  4. 白盒测试会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。
  5. 在白盒测试中,如果覆盖率达到100% ,就基本可以保证把所有的隐藏程序缺陷都已经揭露出来了。
  6. 在白盒测试中,如果覆盖率达到100% ,就基本可以保证把所有的隐藏程序缺陷都已经揭露出来了。

第十二章 黑盒测试

8 小结

  • 本章主要讲解了等价类划分法,边界值分析法,因果图法,功能图分析法,综合的案例分析,同时对黒盒测试的几种方法进行的比较,最后介绍了常用的几种黒盒测试的工具。
  • 本章的实践性较强,希望举一反三,将这些测试技术和平时的软件开发和测试工作结合起来。

9 课后习题

选择题
  1. 用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成( 4 )个等价区间。

  2. 某系统对每个员工一年的出勤天数进行核算和存储(每月22工作日,一年最多出勤12*22=264天),使用文本框进行填写。在此文本框的测试用例编写中使用了等价类划分法,则下面划分不准确的是( 有效等价类,0<出勤日<264 )

  3. 黑盒测试称为功能测试,黑盒测试不能发现( 是否存在冗余代码 )

  4. 有关等价类划分方法,说法正确的( 等价类划分可以有两种不同的情况:有效等价类和无效等价类 )

  5. 在划分了等价类后,首先需要设计一个案例覆盖( 尽可能多的 )有效等价类。

  6. 某公司员工如果工作超过一年并且达到了之前同意的目标,那么员工可以获得奖金。
    这些事实可以通过以下表格来显示:‌‎ ‌

    画像-20230315144902907

    以下哪个测试用例是在现实生活中会发生,但是上面的判定表遗漏了?( 条件 1=No,条件 2=Yes,条件 3=No,动作=No )

  7. 某视频应用有如下需求:该应用应该允许在下面的显示分辨率下播放视频:

    1.640*480 ‌
    2.1280*720 ‌
    3.1600*1200 ‌
    4.1920*1080‌
    以下哪组测试用例是对该需求进行等价类划分测试技术得到的结果?( 验证应用能够在需求中的每个显示尺寸都可以播放视频(4 个测试用例) )

  8. 需要计算员工的奖金。奖金不能是负数,但是最少可以是 0。
    奖金是根据雇佣的时间:‏

    • 小于等于 2 年
    • ‏‏大于 2 年但是小于 5 年
    • 5年到 10 年(包括 5 和 10),或者超过 10 年

    ‏‏为了覆盖奖金计算的所有有效等价类最少需要多少测试用例?( 4 )

  9. 您正在测试一个只接受信用卡的无人值守汽油泵。一旦信用卡被验证,泵喷嘴放入油箱,并选择所需的等级,客户就可以使用键盘输入所需的燃油量(加仑)。键盘只允许输入数字。燃料以十分之一(0.1)加仑起出售,最多 50.0 加仑。 以下哪项是覆盖输入数量的等价划分的最小集合?( 0.0、20.0、60.0 )

  10. 一个程序只有一个输入S,其取值范围是 -60≤S≤60。现从输入的角度设计了一组测试数据:-200,20,200,设计这组测试用例的方法( 等价类划分 )

  11. 若有一个计算类型的程序,它的输入量只有—个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( 边界值分析法 )

  12. 白盒测试、灰盒测试和黑盒测试都是常用的系统测试方法。其中,( 黑盒测试 )也称功能测试或数据驱动测试,它是已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。

  13. 用边界值分析法,假定1<X<100,那么整数X在测试中应取的边界值不包括( X=0,X=101 )

  14. 在确定黑盒测试策略时,优先选用的方法是( 等价类划分 )

  15. ( 因果图 )方法根据输出对输入的依赖关系设计测试用例。

  16. 自动化黑盒测试工具中,脚本录制好后,只要执行脚本,就可以把测试过程重做一遍,这被称为( 回放 )

  17. 在自动化黑盒测试工具中,通过录制来得到( 测试脚本 ),可以减少工作量。

  18. ( 录制技术 )可以让并不熟悉脚本语言的软件测试人员也可以方便的得到测试脚本。

  19. 对于业务流清晰的系统可以利用( 场景法 )贯穿整个测试用例设计过程并在用例中综合使用各种测试方法。

  20. 黑盒测试技术中不包括( 逻辑覆盖 )

  21. 凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例的测试方法叫( 错误推测法 )

  22. 在确定黑盒测试策略时,优先选用的方法是( 等价类划分 )

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

  24. 黑盒测试法是根据产品的( 功能 )来设计测试用例的。

  25. ( 因果图法 )方法是根据输出对输入的依赖关系来设计测试用例的。

  26. 黑盒测试是通过软件的外部表现来发现软件缺陷和错误的测试方法,具体地说,黑盒测试用例设计技术包括( 等价类划分法、因果图法、边界值分析法、错误推测法、判定表驱动法 )等。

  27. 下列叙述不正确的是( 判定表驱动法属于白盒测试方法 )

  28. 描述黑盒测试的说法错误的是( 因果图法不属于黑盒测试用例设计方法 )

  29. 设计测试用例时候,( 边界值分析 )是用得最多的一种黑盒测试方法。

  30. 动态黑盒测试( 测试的是软件在使用过程中的实际行为 )

  31. 下列不属于黑盒测试方法的是( 变异测试 )

判断题
  1. 由于函数覆盖率是基于代码的,所以也可以把函数覆盖归入黑盒测试的范畴。
  2. 黑盒测试的测试用例是根据程序内部逻辑设计的。

第十三章 集成测试

4 小结

  • 集成测试是单元测试之后、系统测试之前的一个重要环节,从某种意义上来说,集成测试是三个阶段中最关键的一步。
  • 集成测试最好由开发人员来完成,若将任务报给测试部去完成,反而容易导致反复测试,延误进度。
  • 集成测试的策略主要围绕单个集成测试用例对按口的覆盖和对整个集成树的遍历路径进行设计,各种策略在测试用例的规模、驱动和桩模块的工作量以及缺陷定位等人面各有千秋,应根据实际情况灵活使用。

第十四章 系统测试

4 小结

  1. 系统测试是将已经过良好的集成测试的软件系统, 作为整个计算机系统的一部分。
  2. 与计算机算硬件、外部没备、支持软件、数据以 及人员等其他系统元索结合在一起,在实际使用 (运行)环境下对计算机系统进行一系列的严格 测试来发现软件中的潜在缺陷,保证系统交付给 用户之后能够正常使用。
  3. 一般的,系统测试是产品交付前的最后一个测试 环节,占有重要的地位。系统测试的最终目的是 保证开发方交付给用户的软件产品能够满足用户 的需求,因此,系统测试的测试用例应在实际的 用户处用环境下来执行。

第十五章 验收测试

8 小节

  • 验收测试是在软件产品完成了功能测试和 系统测试之后、产品发布之前所进行的软 件测试活动,它是技术测试的最后一个阶 段,通过了验收测试,产品就会进入发布 阶段。
  • 验收测试一般根据产品规格说明书,严格 检查产品,逐行逐字地对照说明书上对软 件产品所做出的各方面要求,确保所开发 的软件产品符合用户预期的各项要求

测试相关未分类习题

填空题

  1. 系统测试包括 压力 测试、 容量 测试、 性能 测试、 安全性 测试等。
  2. 单元测试是对软件基本组成单元进行的测试,一般在代码完成后由 开发 人员完成, SQA 人员辅助。
  3. 为了将数据库性能、应用程序和系统参数优化,通常对 数据库应用服务器 进行测试。
  4. 恢复测试主要检查系统的 容错能力
  5. 容错性 测试是检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段。
  6. ソフトウェア製品の受け入れテストが完了しました。機能テストとシステム テスト後、製品リリース前に実施されるソフトウェア テスト活動は、技術テストの最終段階であり、納品テストとも呼ばれます。
  7. セキュリティは、アプリケーション レベルのセキュリティとシステム<の 2 つのレベルに分かれています。 i=4> のセキュリティレベル。
  8. パフォーマンス テストの目的: システムがユーザーによって提案されたパフォーマンス指標を満たしているかどうかを検証し、システムを最適化する目的でシステム内のパフォーマンスのボトルネックを発見します。 。
  9. 静的テスト テクノロジーで使用される主な分析方法には、ウォークスルーレビューが含まれます。 、レビュー

複数の選択肢の質問

  1. システム テストに関する次の説明は正しいです: (機能テストを実行するだけでなく、非機能テストも考慮します。主にブラック ボックス テスト テクノロジを使用します。参加者にはプロジェクト チームのメンバー、マーケティング担当者、顧客担当者などが含まれる場合があります。さまざまな動作環境でのテスト)
  2. 次の説明のうち正しいものはどれですか: (ドライバー モジュールは、元のモジュールの機能のシミュレーションです)
  3. ソフトウェアのベータ テストについては、次の説明が正しいです (ベータ テストはソフトウェア会社の外部で実施されるテストであり、専門家以外のテスターでも実行できます)
  4. システム テストでは、ソフトウェア システムをハードウェア、周辺機器、ネットワークなどの他の要素と組み合わせて、ソフトウェア システム全体をテストします。 (パステスト) はシステムテストの一部ではありません。
  5. ホワイト ボックス テストとブラック ボックス テストの両方を使用して、プログラムの内部構造をテストできます。このうち、(ホワイトボックステスト法)はプログラムをパスの集合とみなします。
  6. ステートメントの適用範囲と決定の適用範囲の関係に関する次の説明のうち、正しいものはどれですか? (100% の決定カバレッジは 100% のステートメント カバレッジを保証します)
  7. 程序变异的用途不包括( 减少测试的工作量 )
  8. ソフトウェアテスト工程における結合テストは、主に(概要設計)段階での誤り発見を目的としています。
  9. 構成テストとは(さまざまなハードウェアまたはパラメータを使用してソフトウェアをテストするプロセス)を指します。
  10. (突然変異テスト) の指導の下、テスターはテスト ケース セットのエラー検出能力を評価し、より強力なエラー検出能力を備えたテスト データ セットを作成できます。
  11. ソフトウェア受け入れテストに合格するための基準には、(少なくとも 1 つのソフトウェア機能がソフトウェア要件分析仕様の定義を超えており、ソフトウェア機能である) は含まれません。
  12. ほぼすべてのパフォーマンス テストには (同時実行テスト) が含まれます。
  13. プログラム インストルメンテーションは通常、プログラムの実行 (プロセス ステータス) 情報を取得するために使用されます。
  14. 統合テストに関する次の正しい記述は (すべて正しい) です。
    ①結合テストはアセンブリテストまたは結合テストとも呼ばれます;
    ②さまざまなモジュールを接続すると、モジュールインターフェースを通過するデータは失われますか? ④ 各サブ機能の組み合わせは期待される要件を満たすことができるか? 親の関数 ;
    ③ あるモジュールの機能が別のモジュールの機能に悪影響を及ぼすかどうか;


  15. クラスのテストは、クラスがソフトウェアの他の部分で使用される前に実行する必要があります。テストされていないクラスの使用の防止 (欠陥伝導と拡散)
  16. オブジェクト指向ソフトウェアテストは、オブジェクト指向の特性と組み合わせたオブジェクト指向ソフトウェア開発プロセスに基づいて提案されています。これには以下は含まれません: (オブジェクトのカプセル化テスト)
  17. 親クラスに欠陥がある場合、派生クラス (サブクラス) にも欠陥があります。継承によりコードの再利用が向上しますが、欠陥が伝播する可能性も高くなります。
  18. アルファ テストに関する次の説明はどれですか (アルファ テストは受け入れテストの一種です)。
  19. 現在のソフトウェアおよびハードウェア環境下でソフトウェア システムが耐えられる最大負荷を調査し、システムのボトルネックを特定するのに役立ちます (ストレス テスト)。
  20. エラー推測手法の基本的な考え方は次のとおりです: (プログラム内で考えられるすべてのエラーと、エラーが発生しやすい特殊な状況をリストし、それらに基づいてテスト ケースを選択します)
  21. 以下は統合テストではありません(関数内のローカル変数の値が期待値かどうか)
  22. 一般的なカバレッジ基準には(機能カバレッジ)は含まれません
  23. 発見されたエラーの性質を特定して判断し、これらのエラーを修正し、同時に関連ドキュメントを変更するこの動作は (デバッグ) に属します。
  24. (データフローテスト)とは、変数定義の代入箇所(文)とその値を参照・使用する箇所(文)に着目した構造的なテストで、主にパステストの妥当性チェックとして使用されます。
  25. 単体テストに基づいて、概要設計と詳細設計指示の要件に従ってすべてのモジュールを組み立てる必要があります。モジュールをシステムに組み立てる方法は 2 つあります。

正しいか間違っているか

  1. 機能テストはシステムテストの主な内容であり、システムの機能や性能が要求仕様と一致しているかどうかを確認します。
  2. 機能テストはシステムテストの主な内容であり、システムの機能や性能が要求仕様と一致しているかどうかを確認します。
  3. ソフトウェア テスターは、製品仕様のホワイトボックス テストを実行できます。
  4. ストレス テストには通常、補助ツールのサポートが必要です。
  5. 自動テストはプロジェクトの進行を遅らせる可能性があります。
  6. 受け入れテストはエンドユーザーに焦点を当てたテストです。
  7. ボトムアップ統合では、テスターがドライバーを作成する必要があります。

おすすめ

転載: blog.csdn.net/m0_56942491/article/details/131734756