1. 请通过生活中的具体例子,来阐述软件系统中的缺陷是什么样的方式损害个人或者公司的利益?
在当今社会,软件系统越来越成为生活中不可或缺的一部分,包括从商业应用(比如银行系统)到消费产品(比如汽车)各个领域。然而,很多人都有这样的经历:软件并没有按照预期进行工作。软件的不正确执行可能会导致许多问题,包括资金、时间和商业信誉等的损失,甚至导致人员的伤亡。
淘宝交易的第三方支付系统支付宝不能正确处理顾客订单事务,顾客麻烦、企业经济损失、企业形象受影响。
2. 通过具体的例子,来说明为什么要进行测试?
对软件系统和文档进行严格的测试,可以减少软件系统在运行环境中的风险,假如在软件正式发布之前发现和修正了缺陷,就可以提高软件系统的质量。
进行软件测试也可能是为了满足合同或法律法规的要求,或者是为了满足行业标准的要求。
3. 为什么说测试是质量保证的一部分,或者说测试是如何来提高软件的质量的?
答:软件测试能够提高软件质量,这是通过识别缺陷并对这些缺陷进行相应的调试及修正实现的,测试同时也是衡量软件质量的手段,如果测试用例是软件使用的合理样本,那么用户所体验到的软件质量应该和测试时所体验到的软件质量不会有太大的差异。
但是功能性、可靠性、可用性、效率、可维护性以及可移植性都是软件质量的范畴,因此测试是软件质量保证的一部分。
4. 简单说明术语错误、缺陷、失效的基本概念,它们之间的相互关系是什么?
答:失效:是指不完全符合规定的需求,是实际结果或行为与期望结果或行为之间的偏差。
缺陷:指软件的故障。 错误:指人的过失和错误。
导致软件失效的是软件的故障,每个故障是软件开发或更改后存在的,只有在软件执行时软件的这些故障才会以失效的方式显露出来。认为的错误或过失往往会导致故障。
5. 测试的主要目的有哪些?
答:1,证明系统是可以工作的;
2,发现缺陷;
3,提供对系统质量相关的信心和信息; 4.预防缺陷;
5.收集数据,过程改进。
6. 在多年的测试实践中,形成的一些基本测试原则有哪些?
答:1,测试可以证明缺陷存在,但不能证明缺陷不存在;
2,穷尽测试是不可能的; 3,测试尽早介入; 4,缺陷集群性; 5,杀虫剂悖论;
6,测试活动依赖于测试背景;
7,不存在缺陷(就是有用系统)的谬论。
7. 简单谈谈软件测试的基本过程,以及每个测试过程中的主要任务有哪些?
答:1,测试计划和控制;主要任务是测试策略的确定。
2,测试分析和设计;
- 1 -
评审测试依据(比如需求、系统架构、设计和接口说明等)。 评估测试依据和测试对象的可测性。
通过对测试项、规格说明、测试对象行为和结构的分析,识别测试条件并确定其优先级。 设计测试用例并确定优先级。
确定测试条件和测试用例所需的必要的测试数据。 规划测试环境的搭建和确定测试需要的基础设施和工具。
3,测试实现和执行;
测试实现和执行阶段的主要任务: 测试用例的开发、实现并确定它们的优先级。
开发测试规程并确定优先级,创建测试数据,同时也可以准备测试用具和设计自动化测试脚本。 根据测试规程创建测试套件,以提高测试执行的效率。 确认已经正确搭建了测试环境。
根据计划的执行顺序,通过手工或使用测试执行工具来执行测试规程。 记录测试执行的结果,以及被测软件、测试工具和测试件的标识和版本。 将实际结果和预期结果进行比较。
对实际结果和预期结果之间的差异,作为事件上报,并且进行分析以确定引起差异的原因(例如:代码缺陷、具体测试数据缺陷、测试文档缺陷、或测试执行的方法有误等)。 缺陷修正后,重新进行测试活动。比如通过再次执行上次执行失败的用例来确认缺陷是否已经被修正(确认测试)。执行修正后的测试用例或执行一些测试用例来确保缺陷的修正没有对软件未修改的部分造成不良影响或对于缺陷的修正没有引发其他的缺陷(回归测试)。 4,测试出口准则的评估和报告; 评估测试出口准则的主要任务: 按照测试计划中定义的测试出口准则检查测试日志。
评估是否需要进行更多的测试,或是否需要更改测试的出口准则。 为利益相关者提供一个测试总结报告。
5,测试结束活动。
测试结束活动的主要任务: 检查提交了哪些计划的可交付产品、事件报告是否关闭、或对未关闭的事件报告提交变更需求、以及系统的验收文档状态等等。 记录和归档测试件、测试环境和测试基础设备,以备将来的项目使用。 移交测试件到维护部门。
分析和记录学到的经验教训,为以后的项目和测试成熟度的改善所用。
- 2 -
8. 测试的心理因素是如何影响测试的成功与否的?
答:人们会犯错误,却不愿承认!因此在测试中,测试心理学扮演了重要的角色。测试是一项具有极高创造性和智力挑战的任务。开发人员一方面存在对自己错误的盲视,另一方面来说对自己的测试对象非常了解也是一个优势。一个的测试团队会不断提高测试的质量和对测试的理解力,测试人员可以无偏见的看待测试对象。测试人员和开发人员对各自工作的共性认识有助于他们相互合作。开发人员应当了解测试的基础知识,同样测试人员也需要对软件开发有基本的了解,这样对互相理解共同的任务和问题非常有帮助。
9. 简单谈谈V模型的基本组成阶段,以及每个阶段的简单含义?
答:1,需求规格说明;从客户或将来的系统用户中收集要求和需求,进行详细描述并最终得到批准。 2,系统功能设计;将需求映射到新系统的功能和框图上。 3,系统技术设计;设计系统的具体实现方式。
4,组件规格说明;定义每个子系统的任务、行为、内部结构以及与其他子系统的接口。 5,编程;通过编程语言实现所有的已经定义的组件。
6,组件测试;验证软件组件是否按照组件规格说明正确运行。
7,集成测试;检查多个组件是否按照系统技术设计描述的方式协同工作。 8,系统测试;验证整个系统是否满足需求规格说明。
9,验收测试;从用户角度检查系统是否满足合同中定义的需求。
10. 作为一个良好的测试,它应该具备哪些特征?
11. V模型中的测试级别有哪4种?它们各自的主要任务是什么?
答1,组件测试;验证软件组件是否按照组件规格说明正确运行。
2,集成测试;检查多个组件是否按照系统技术设计描述的方式协同工作。 3,系统测试;验证整个系统是否满足需求规格说明。
4,验收测试;从用户角度检查系统是否满足合同中定义的需求
12. 简单谈谈测试中的4种测试类型,它们的基本含义是什么?
答:1,功能测试;包括验证系统输入输出行为的各种测试,基础是功能需求。 2,非功能测试;指系统执行它的功能有多好或者质量如何。
3,软件结构的测试;设计并运行足够的测试用例,覆盖所有的结构条目。
4,与变更有关的测试和回归测试,变化部分进行再测试,以及重新执行已有的测试用例。
13. 简单谈谈确认测试和回归测试在什么时候进行?它们的测试目的是什么?
答:当已有的系统发生变化,缺陷被修正或是增加了新的功能时,变化的部分必须进行再测试。另外还存在变化导致副作用的风险,为了解决这些问题,需要重新执行已有的测试用例,这些测试称回归测试。
当发现和修改了一个缺陷后,应该重新进行测试以确定原来的缺陷已经成功的修改,这称之为确认测试。调试(缺陷修复)是一种开发活动,不是一种测试活动。
回归测试是对已被测过的程序在修改缺陷后进行的重复测试,以发现在这些变更后是否有新的缺陷
引入或被屏蔽。这些缺陷可能存在于被测试的软件中,也可能在与之相关或不相关的其他软件组件中。当软件发生变更或者应用软件的环境发生变化时,需要进行回归测试。回归测试的规模可以根据在已正常运行的软件中发现新的缺陷的风险大小来决定。
假如测试是用来进行确认测试和辅助回归测试的,则它们应该是可以重复执行的。
回归测试可以在所有的测试级别上进行,同时适用于功能测试、非功能测试和结构测试。回归测试套件一般都会执行多次,而且通常很少有变动,因此将回归测试自动化是很好的选择。
- 3 -
14. 简单描述一下静态技术和动态技术之间的异同点?
与动态测试技术需要运行软件不同,静态测试技术通过手工检查(评审)或自动化分析(静态分析)
的方式对代码或者其他的项目文档进行检查。
评审是对软件工作产品(包括代码)进行测试的一种方式,可以在动态测试执行之前进行。在生命周期早期的评审过程中发现并修改缺陷(例如发现需求中的缺陷)的成本会比在动态测试中才发现并修改这些缺陷的成本低的多。
软件评审的主要好处有:尽早发现和修改缺陷、改善开发能力、缩短开发时间、缩减测试成本和时
间、减少产品生命周期成本、减少缺陷以及改善沟通等。评审也可以在工作产品中发现一些遗漏的内容,例如发现需求有遗漏,而这在动态测试中是很难被发现的。
评审、静态分析和动态测试具有共同的目标:识别缺陷。它们之间是互补的:不同的技术可以有效
和高效地发现不同类型的缺陷。与动态测试相比,静态技术发现的是软件失效的原因而不是失效本身。 与动态测试相比,通过评审更容易发现如下典型缺陷:与标准之间的偏差、需求内的错误、设计错误、可维护性不足和错误的接口规格说明等等。
15. 正式的评审过程主要有哪些阶段组成?
答:计划、预备会阶段概述、个人准备、评审会议、返工和跟踪结果。
16. 正式评审过程中参与的角色有哪些人?他们的主要职责是什么?
答:1,开发经理;选择评审对象并确保基础文档、必须的资源是可用的,同时也负责选择需要参加评审的人员。
2,主持人;和评审有关的管理工作,计划准备并保证评审有序进行且满足它的目标,收集评审数据,发布评审报告。
3,作者;是提交评审文档的创建者,如果是多个人参与文档的创建,主要负责人应该指定为作者;由他担任作者这个角色。
4,评审人员;是几个在各自准备后检查评审对象的技术专家。
5,记录员;应该记录下评审团队提出的所有发现,由作者担当记录员是有意义的。 6,观察员。
典型的正式评审主要有下面几种角色: 经理:决定是否需要进行评审,在项目计划中分派时间,判断是否已达到评审的目标。 主持人:主持文档或文档集的评审活动,包括策划评审、召开会议和会议后的跟踪。假如需要,主持人可能还需要进行不同观点之间的协调。主持人通常是评审是否成功的关键。 作者:待评审文档的作者或主要责任人。
评审员:具有专门技术或业务背景的人员(也称为检查员(checker)或审查员(inspector)),他们在必要的准备后,标识和描述被评审产品存在的问题(如缺陷)。所选择的评审员应该在评审过程中代表不同的观点和角色,并且应该参与各种评审会议。 记录员:记录所有的事件、问题,以及在会议过程中识别的未解决的问题。
17. 简单谈谈评审的主要类型有哪些?
答:1.非正式评审-主要特点: 没有正式的过程。可以是由程序员的同行们或技术负责人对设计和代
码进行评审。 可以有选择的文档化。 根据不同的评审者,评审作用可能会不同。
主要目的:以较低的成本获得收益。
- 4 -
2.走查 -主要特点:由作者主持开会。以情景、演示的形式和同行参加的方式进行。开放式模式。
评审会议之前的准备、评审报告、发现的问题清单和记录员(不是作者本人)都是可选的。 在实际情况中可以是非常正式的,也可能是非常不正式的。
主要目的:学习、增加理解、发现缺陷。
3.技术评审-主要特点:文档化和定义的缺陷检测过程,需要包含同行和技术专家。可能是没有
管理者参与的同行评审。理想情况下由专门接受过培训的主持人(不是作者本人)来领导。会议之前需要进行准备。 检查表、评审报告、发现的问题列表、管理者的参加等都是可选的。 在实际情况中可以是在不正式的和非常正式的之间。
主要目的:讨论、作决策、评估候选方案、发现缺陷、解决技术问题、检查与规格及
标准的符合程度。
4.审查 -主要特点: 由接受过专门培训的主持人(不是作者本人)来领导。通常是同行检查。
定义了不同的角色。 引入了度量。 根据入口、出口规则的检查列表和规则定义正式的评审过程。 会议之前需要进行准备。 出具审查报告和发现问题列表。 正式的跟踪过程。 过程改进和读者是可选的。
主要目的:发现缺陷。
18. 哪些因素会影响评审的成功进行?
答:1.评审的目的是提高被评审文档的质量。检查中发现问题,比如不清楚的观点和偏差, 是评审的要求和目的。发现的问题必须以中性和客观的方式进行记录。
2.人的特性和心理作用都会对评审产生很强的影响。评审文档的作者应该将评审作为一种正面
的经历。
3.根据被评审文档的类型和级别以及参与评审人员的知识水平,来选择不同且适合的评审类型。 4.使用检查表和指南来提高评审过程中发现问题的效率。 5.需要必要的培训,特别是针对像审查这样正式的评审类型。
6.管理层可以为软件开发过程中的文档评审计划足够的资源(时间和人力), 来支持一个有效
地评审过程。
7.成功运用评审的一个重要方面是不断从评审中学习经验教训,比如评审过程的持续改进。
评审成功的因素包括: 每次评审都有预先明确定义的目标。 针对评审目标,有合适的评审人员的参与。 对发现的缺陷持欢迎态度,并客观地描述缺陷。
能够正确处理人员之间的问题以及心理方面的问题(比如对作者而言,能让他觉得有积极正面的体验)。
采用的评审技术适合于软件工作产品的类型和级别以及参与评审人员。 选用合适的检查表或定义合适角色,可以提高缺陷识别的有效性。 提供评审技术方面的培训,特别是针对正式的评审技术,比如审查。
管理层对良好评审过程的支持(如在项目计划中安排足够的时间来进行评审活动)。 强调学习和过程的改进。
- 5 -
19. 静态分析的主要优点是什么?
答:a 静态分析和评审时紧密联系的。假如在评审前进行叻静态分析,可以发现很多缺陷,从而评 审时需要检查的地方就可以明显地减少。由于静态测试通常是工具支持的,,因此其工作量比评审少得多。1)假如文档是很正规的,可以使用工具支持的静态分析,则在进行文档评审之前必须进行静态分析,因为静态分析可以轻松二不费什么成本的发现一些故障和不一致性,从而可以缩短评审的时间。2)通常,即使没有计划进行评审活动,静态分析也是应该使用的。通过静态分析发现和删除错误都可以提高文档的质量。 b; 测试对象和编程标准的差异,禁止使用的易生成错误的程序结构等类型的缺陷只可能通过静态分析(或评审)来发现。C;因为违背语法准则,违背编程规范和标准,控制流异常, 数据流异常等导致程序产生的问题也可以通过静态分析来发现,静态分析还可以用来发现安全性问题。
静态分析的好处: 在测试执行之前尽早发现缺陷。
通过度量的计算(比如高复杂性测量),早期警示代码和设计可能存在问题的方面。 可以发现在动态测试过程不容易发现的一些缺陷。
可以发现软件模块之间的相互依赖性和不一致性,例如链接。 改进代码和设计的可维护性。
在开发过程中学习经验教训,从而预防缺陷。
20. 为什么我们需要同时采用基于规格说明的测试(黑盒测试)和基于结构的测试(白盒测试)?它们各
自比较常用的测试技术有哪些?
答:将测试技术分为黑盒测试技术和白盒测试技术是一种比较标准的分类方法。黒盒技术(包括基于规格说明和基于经验的测试技术)依据对测试基础文档进行分析或者基于开发人员、测试人员和用户的经验得出和选择测试条件或测试用例,无论是功能性的还是非功能性的用例,都不需参考组件或系统的内部结构。而白盒技术(也称为结构化或基于结构的技术)基于对组件或系统结构分析。 由于没有一种测试技术能够覆盖测试中需要考虑的所有方方面面,所以测试过程中经常会采用不同的测试技术的组合。
黑盒测试常用的技术有等价类划分,边界值分析,状态转换测试,因果图技术和决策表技术,用例测试,随机测试,语法测试,冒烟测试。
白盒测试技术主要有语句覆盖,分支覆盖,条件测试,路径覆盖。
21. 解释基于规格说明的测试、基于结果的测试和基于经验的测试三者的特征,以及各自的区别?
1.基于规格说明的技术具有以下共同特点: 使用正式或非正式的模型来描述需要解决的问题、软件或其组件等。 根据这些模型,可以系统地导出测试用例。
2.基于结构的技术的共同特点: 根据软件的结构信息设计测试用例,比如软件代码和软件设计。
可以通过已有的测试用例测量软件的测试覆盖率,并通过系统化的导出设计用例来提高覆盖率。
3.基于经验的方法具有以下共同特点:
测试用例根据参与人员的经验和知识来编写。
测试人员、开发人员、用户和其他的利益相关者对软件、软件使用和环境等方面所掌握的知识。
- 6 -
对可能存在的缺陷及其分布情况的了解。
22. 简单阐述等价类划分的一些基本原则?
可以将软件或系统的输入分成不同的组,对于同一个组的输入,软件或系统应该有相似的表现行为,
就好像系统是以相同的方式对这些输入值进行处理。等价类划分(或等价类)可以分为两种类型的数据:有效数据和无效数据(即应该被系统拒绝的数据)。等价类划分也可以基于输出、内部值、时间相关的值(例如在事件之前或之后)以及接口参数(在集成测试阶段)等进行。可以设计测试用例来覆盖不同的等价类。等价类划分可以应用在所有测试级别上。
通过应用等价类划分技术,能够实现输入覆盖和输出覆盖。它同样适用于人为的输入、通过系统接口的输入以及集成测试中的接口参数。
23. 语句覆盖和判定覆盖的基本含义是什么?
答:在组件测试(component testing)中,语句覆盖是指评价一个测试用例套件中已经执行的可执行语句的百分比。语句测试的测试用例用来执行专门的语句,通常用来增加语句的覆盖率。
判定覆盖,和分支测试相关,是指评价在一个测试用例套中已经执行的判定(例如if语句的true和false选项)输出的百分比。判定测试的测试用例用来执行专门的判定输出,通常用来增加判定的覆盖率。
24. 如何来评估测试用例的质量?
评估测试用例的质量(K3),它们是否满足: 显示明确的与需求的可追溯性(traceability);包含预期的结果。
25. 哪些因素会应先测试设计技术的选择?
测试技术的选择基于下面的几个因素,包括:系统类型、法律法规标准、客户或合同的需求、风险的级别、风险的类型、测试目标、文档的可用性、测试员的技能水平、时间和成本预算、开发生命周期、用例模型和以前发现缺陷类型的经验等。
26. 为什么说测试很重要?
通过的测试员进行测试和评审,发现缺陷的效率会提高。
27. 测试的主要优点和缺点是什么?
测试的优点: 的测试员可以做到没有偏见,可以发现一些其他不同的缺陷。一个的测试员可
以验证在系统规格说明和实现阶段所做的一些假设。
测试的缺点:与开发小组脱离(如果完全)。 作为最后的检查点(checkpoint),测试员可能
是项目的瓶颈。 开发人员可能失去对软件质量的责任感。
28. 简单说说测试负责人(Test Leader)和测试员(Tester)的主要任务是什么?
测试组长可能的主要任务有:
与项目经理以及其他人共同协调测试策略和测试计划。 制定或评审项目的测试策略和组织的测试方针。
将测试的安排合并到其他项目活动中,比如集成计划(integration planning)。
制定测试计划(考虑背景,了解测试目标和风险等)。计划包括选择测试方法、估算测试的时间、工作量和成本、资源的获取、定义测试级别、测试周期和计划事件管理。 创建测试规格说明、测试准备、测试实施和测试执行,监督测试结果并检查出口准则。 根据测试结果和测试进度(有时记录在状态报告中)调整测试计划,必要时采取必要的措施对存在的问题进行补救。
- 7 -
对测试件进行配置管理,保证测试件(testware)的可追溯性。 引入合适的度量项以测量测试进度,评估测试和产品的质量。 决定哪些测试用例可以自动化执行,自动化的程度,如何实现。 选择测试工具支持测试,并为测试员组织测试工具的培训。 决定测试环境的实施。
根据在测试过程中收集的信息编写测试总结报告。
测试员可能的主要职责包括:
评审和参与测试计划的制定。
分析、评审和评估用户需求、规格说明书及模型的可测试性。 创建测试规格说明书。
建立测试环境(通常需要与系统管理员,网络管理员协同完成)。 准备和获取测试数据。
进行各种级别的测试,执行并记录测试日志,评估测试结果,记录和预期结果之间的偏差。 根据要求使用测试管理工具和测试监督(test monitoring)工具。 实施自动化测试(可能需要开发人员或测试自动化专家的支持)。 在可行的情况下,测量组件和系统的性能。 对他人的测试进行评审。
29. 测试计划包含的主要内容有哪些?
确定测试的范围和风险,明确测试的目标。
定义测试的整体方法(测试策略),包括测试级别的定义、入口和出口准则(exit criteria)的定义。 把测试活动集成和协调到整个软件生命周期活动中去:收集,准备,开发,运行和维护。 决定测试什么?测试由什么角色来执行?如何进行测试?如何评估测试结果? 为测试分析和设计活动安排时间进度。 为测试实现、执行和评估安排时间进度。 为已定义的不同测试任务分配资源。
定义测试文档的数量、详细程度、结构和模板。
为测试准备和执行的监控、缺陷解决(defect resolution)和风险问题(risk issues)选择度量项。 确定测试规程的详细程度,以提供足够的信息支持可重复的测试准备和执行。
30. 影响测试成本的主要因素有哪些?
- 8 -
测试计划受到很多因素的影响:组织的测试方针、测试的范围、测试目标、风险、约束(constraints)、危险程度(criticality)、可测试性和资源的可用性(availability)等。随着项目和测试计划的不断推进,将有更多的信息和具体细节包含在计划中。
31. 基于度量的估算方法和基于专家的估算方法的主要区别是什么?
基于度量的方法:根据以前或相似项目的度量值来进行测试工作量的估算,或者根据典型的数据来进行估算。 基于专家的方法:由任务的责任人(owner of the task)或专家来进行测试任务工作量的估算。 一旦估算了测试工作量,就可以识别资源和建立时间进度表。
32. 简单描述用于监督测试准备和测试执行的常见度量有哪些?
测试用例准备阶段工作所占时间的百分比(或按计划已编写的测试用例的比例)。 测试环境准备阶段工作所占时间的百分比。
测试用例执行量(例如:执行的测试用例数/没有执行的测试用例数,通过/失败的测试用例数)。 缺陷信息(例如:缺陷密度、发现并修改的缺陷、失效率、重新测试的结果)。 需求、风险或代码的测试覆盖率。 测试员对产品的主观信心。 测试中确定的里程碑的具体日期。
测试成本,包括寻找下一个缺陷或执行下一轮测试所需成本与收益的比较。
33. 简单描述针对测试报告和测试控制的主要测试度量有哪些?
测试报告度量:A.该测试级别的测试目标的充分性。
B.采用的测试方法的适当性。c针对测试目标的测试的有效性。
测试控制措施的例子: 基于测试监控信息来做决策。
如果一个已识别的风险发生(如软件发布延期),重新确定测试优先级。 根据测试环境可用性,改变测试的时间进度表。
设定入口准则:规定修改后的缺陷必须经过开发人员重新测试后才能将它们集成到版本中去。
34. 测试报告的主要目的和内容是什么?
测试报告是对测试工作和活动等相关信息的总结,主要包括: a.在测试阶段发生了什么?比如达到测试出口准则的日期。
b.通过分析相关信息和度量可以对下一步的活动提供建议和做出决策,比如对仍然存在的缺陷的评估、继续进行测试的经济效益、存在的突出风险以及被测试软件的置信度(level of confidence)等。
35. 风险的基本定义是什么?风险是有哪两个因素决定的?
风险可以定义为事件、危险、威胁或情况等发生的可能性以及由此产生不可预料的后果,即一个潜在的问题。风险级别由出现不确定事件的可能性(likelihood)和出现后所产生的影响(事件引发的不好的结果)两个方面来决定。
- 9 -
36. 简单描述项目风险和产品风险的区别?以及典型的项目风险和产品风险有哪些?
项目风险是指关于项目按目标交付的能力方面的风险,比如: 公司组织因素: 技能和人才的不足。个人和培训问题。因素,比如与测试员进行需求和测
试结果沟通方面存在的问题。测试和评审中发现的信息未能得到进一步跟踪(如未改进开发和测试实践)。对测试的态度或预期不合理(如:认为在测试中发现缺陷是没有价值的)。
技术方面的问题: 不能定义正确的需求。给定现有的情况下,能够满足需求的程度。设计、
编码和测试的质量。供应商的问题:第三方存在的问题。合同方面的问题。
产品风险:在软件或系统中的潜在失效的区域(即将来可能发生的不利事件或危险)称之为产品风
险,因为它们对产品质量而言是一个风险,比如:
易错(failure-prone)的软件交付使用。 软件/硬件对个人或公司造成伤害的可能性。
劣质的软件特征(比如功能性、可靠性、可用性和性能等)。 软件没有实现既定的功能。
风险通常可以用来决定从什么地方开始测试,什么地方需要更多的测试。测试可以用来降低风险或
可以减少负面事件的影响。 产品风险对于项目的成功来讲是一种特殊类型的风险。作为一种风险控制活动,测试通过评估修复严重缺陷的能力和应急计划的有效性来提供关于残留风险的反馈信息。
37. 简单说说事件报告的目的和主要内容?
事件报告的目的和作用如下: 1.为开发人员和其他人员提供问题反馈,在需要的时候可以进行识别、隔离和纠正。 2.为测试组长提供一种有效跟踪被测系统的质量和测试进度的方法。 3.为测试过程改进提供资料。
事件报告可能包含的具体信息如下: 1.提交事件的时间,提交的组织和作者。 2.预期和实际的结果。
3.识别测试项(配置项)和环境。
4.发现事件时软件或系统所处的生命周期阶段。
5.为了能确保重现和解决事件需要描述事件(包括日子、数据库备份或截屏)。 6.对利益相关者的影响范围和程度。 7.对系统影响的严重性。 8.修复的紧迫性/优先级。
9.事件状态(例如:打开的、延期的、重复的、待修复的、修复后待重测的或关闭的等)。 10.结论、建议和批准。
- 10 -
11.全局的影响,比如事件引起的变更可能会对系统的其他部分产生影响。
12.变更历史纪录,比如针对事件的隔离、修改和确认已修改,项目组成员所采取的行动顺序。 13.参考(references),包括发现问题所用的测试用例规格说明的标识号。
38. 测试活动过程中,主要有哪些不同类型的测试工具?
测试管理的工具支持、静态测试的工具支持、测试规格说明的工具支持、测试执行和记录工具、性能和监控工具、特定应用领域的测试工具、其他工具。
39. 使用测试工具的潜在利益和风险有哪些?
使用工具的潜在收益是:
减少重复性的工作(比如,执行回归测试,重新输入相同测试数据,按代码标准检查)。 更好的一致性和可重复性(比如,用工具执行测试,从需求导出测试)。 客观的评估(比如,静态测量、覆盖率)。
容易得到测试和测试的相关信息(比如,关于测试进展的统计和图表,事件发生率和性能)。 使用工具存在的风险:
对工具存在不切实际的期望(包括工具的功能性和易用性)。
低估首次引入工具所需的时间、成本和工作量(包括培训和获取外部的咨询)。
低估从工具中获得较大和长久收益需要付出的时间和工作量(包括更改测试过程并不断改进工具
使用方式的需要)。
低估对测试工具生成的结果进行维护所需的工作量。
对测试工具过分依赖(替代测试设计或者对一些更适合手工测试的方面使用测试工具)。
40. 等价类划分例子:
说明:本软件功能是通过参数Index、ActorKey、Aggregator Size和Aggregator Name来创建
一个组,它们各自的取值范围如下:
Index:[10001,10006]; ActorKey:[1,65535]; Aggregator Size:[1,8]; Aggregator Name:必须是字母,
并且长度不能超过8个;
要求:
输出练习中每个参数的等价类;
输出练习的概要测试用例,来覆盖有效等价类和无效等价类; 解:1.共16个等价类
- 11 -
Index有效等价类[10001,10006]代表值10002Actor Admin Key[1,65535]10Aggregator Size[1,8]3无效等价类>10006<10001非数字<1>65535非数字<1>8非数字不是字母代表值1000710000abc066000abc010abc123Aggregator name必须是字母且长度不能超过8个ABCD长度小于等于0(空)长度大于8abcdefghi
2.共13个测试用例 1个有效测试用例:
Index Actor Admin Key Aggregator Size Aggregator name 12个无效测试用例: 第1个参数无效Index1000710000abc100021000210002100021000210002100021000210002Actor Admin Key101010066000abc101010101010Aggregator Size333333010abc333Aggregator nameABCDABCDABCDABCDABCDABCDABCDABCDABCD123空abcdefghi10002 10 3 ABCD
第2个参数无效第3个参数无效第4个参数无效41边界值分析
说明:具体的需求和39中的等价类划分一样。 要求:
输出练习中每个参数的边界值;
输出练习的概要测试用例,来覆盖有效边界值和无效边界值; 解:1.共16个边界值
- 12 -
IndexActor Admin KeyAggregator SizeAggregator name有效边界值100011000616553518AABCDEFGH无效边界值100001000706553609空ABCDEFGHI
2.有效边界值测试用例2*2*2*2=16个 序号123456710111213141516Index10001100011000110001100011000110001100011000610006100061000610006100061000610006Actor Admin Key111166535665356653566535111166535665356653566535Aggregator Size1133113311331133Aggregator nameAABCDEFGHAABCDEFGHAABCDEFGHAABCDEFGHAABCDEFGHAABCDEFGHAABCDEFGHAABCDEFGH
无效边界值测试用例2+2+2+2=8个 序号12345678第一个参数无效第二个参数无效第三个参数无效第四个参数无效Index1000010007100011000610001100011000110001Actor Admin Key166535066536166535166535Aggregator Size18180918Aggregator nameAABCDEFGHAABCDEFGHAABCDEFGH空ABCDEFGHI
42.状态转换测试
要求:
列出状态图中包含的状态和事件; 设计测试用例覆盖所有的状态; 设计测试用例覆盖所有的事件;
- 13 -
设计测试用例覆盖所有的路径; 设计完整的状态转换表; 解:1.状态图中的状态
序号1234567事件
名称NullMadePaidTicketedUsedCancelledNonpayCancelledByCust状态说明初始状态订票状态已付费状态出票状态使用状态没有付费取消客户取消
序号123456名称giveInfopayMoneyprintgiveTicketpayTimerExpirescancel事件说明提供个人信息付费打印机票给客户机票付费计时器超时客户主动取消
2.设计测试用例覆盖所有的状态 1)→Made→Paid→Ticked→Used
2)→Made→CancelledNonpay 3)→Made→CancelledByCust →Made→Paid→CancelledByCust
→Made→Paid→Ticked→CancelledByCust
第3)中的三个用例可选一 3. 设计测试用例覆盖所有的事件
1) 2) 3)
giveInMade payMonPaid giveTicket giveTicket
Ticketed Used
giveInf
payney o payTimerExpires Made CancelledNonpay payMoneyMade ypayoney
cancel
Made Made payMon
cancel
CancelledByCust Paid payMoney neypayoney
CancelledByCust
giveInf payoney
giveInf payney o giveIn
Paid print
- 14 -
Ticketed cancel
Cancelled
第3)中的三个用例可选一 4. 设计测试用例覆盖所有的路径
1) 2)
giveInf payoney giveInf payney o payMonegiveTicket
Ticketed Made Paid yypayoneypayoney
payTimerExpires Made CancelledNonpay payMoneyMade y
payoney
cancel
Made giveTicket
Used
giveInf 3) payoney
cancel
CancelledByCust Paid payMoney ney
payoney
CancelledByCust
giveInf payney o 4)
5) giveInf payoney
payMone
Made yypayoney
EventgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresgiveInfopayMoneyprintgiveTicketcancelPayTimerExpiresPaid payoney
ActionstartPayTimerNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneTicketNoneRefundNoneNoneNoneNoneNoneRefundNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneNoneprint
Ticketed cancel
CancelledByCust
5. 设计完整的状态转换表
Current Statenull(初始状态)nullnullnullnullnullMadeMadeMadeMadeMadeMadePaidPaidPaidPaidPaidPaidTicketedTicketedTicketedTicketedTicketedTicketedUsedUsedUsedUsedUsedUsedCan-NonPayCan-NonPayCan-NonPayCan-NonPayCan-NonPayCan-NonPayCan-byCustCan-byCustCan-byCustCan-byCustCan-byCustCan-byCustNext StateMadenullnullnullnullnullMadePaidMadeMadeCan-byCustCan-NonPayPaidPaidTicketedPaidCan-byCustPaidTicketedTicketedTicketedUsedCan-byCustTicketedUsedUsedUsedUsedUsedUsedCan-NonPayCan-NonPayCan-NonPayCan-NonPayCan-NonPayCan-NonPayCan-byCustCan-byCustCan-byCustCan-byCustCan-byCustCan-byCust正面的状态变化负面的状态变化
- 15 -
43.决策表测试:练习三角形判定决策表题目:C1:a.b.c构成三角形C2:a=b?C3:a=c?C4:c=b?a1:非三角形a2:不等边三角形a3:等腰三角形a4:等边三角形不符合逻辑练习输出:1.输出初始的三角形判定决策表;2.根据前面的知识,将初始决策表进行合理的优化,得到简化的决策表;3.根据简化的决策表,设计概要测试用例;解:1.原始决策表1YYYY2YYYN3YYNY4YYNN5YNYY6YNYN三角形判定决策表710YYNNNNYYNNYYYNYN****11NYNY*12NYNN*13NNYY*14NNYN*15NNNY*16NNNN*C1:a.b.c构成三角形C2:a=b?条件桩C3:a=c?C4:c=b?a1:非三角形a2:不等边三角形动作桩a3:等腰三角形a4:等边三角形a5:不符合逻辑2.优化决策表1)删除不合逻辑的规则2)简化相似的条件:9-16******X9~16N---*X4YYNN6YNYNX7YNNY8YNNN*****1YYYYC1C2C3C4a1a2a3a43.概要测试用例编号123456输入C1不满足C1C2满足,C3C4不满足C1C3满足,C2C4不满足C1C4满足,C2C3不满足C1满足,其它都不满足C1C2C3C4全部满足输出非三角形等腰三角形等腰三角形等腰三角形不等边三角形等边三角形
- 16 -
44.语句覆盖
要求:
选择通过哪些测试用例(或者哪条路径),可
以达到100%的语句覆盖?并选择满足100%语句覆盖的参数A、B、X的输入值?
解:有四条路径
1
1 1
2
1)F1F2 2)F2T2 3)T1F2 4)T1T2
第四条路径即a→c→e可以达到100%的语句覆盖 取A=2,B=0,X=4即可满足100%语句覆盖
45.判定覆盖 要求:
画出判定覆盖的详细表格;
2
选择通过哪些测试用例(或者哪条路径),可
以达到100%的判定覆盖?并选择满足100%判定覆盖的参数A、B、X的输入值?
解:有四条路径
1)F1F2 2)F2T2
3)T1F2 4)T1T2
F1F2 AND T1T2或者F1T2 AND T1F2可以达到100%的判定覆盖
1.T1T2:表中(1)or(2)or(3)
1
1
2 2
F1F2:表中(8)or(12)or(16) 2.T1F2:表中(4)
F1T2:表中(5)or(6)or(7)or(11)or(15)
上述两组取值都满足100%判定覆盖的参数A、B、X的输入值
- 17 -
序号⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃
条件t1t2t3t4t1t2t3f4t1t2f3t4t1t2f3f4t1f2t3t4t1f2t3f4t1f2f3t4t1f2f3f4f1t2t3t4f1t2t3f4f1t2f3t4f1t2f3f4f1f2t3t4f1f2t3f4f1f2f3t4f1f2f3f4A>122442244※※11※※11B=000001111※※00※※11X42824181※※31※※21X=X/A2120.520.521※※31※※21判定T1T2T1T2T1T2T1F2F1T2F1T2F1T2F1F2※※F1T2F1F2※※F1T2F1F2 - 18 -
因篇幅问题不能全部显示,请点此查看更多更全内容