《软件测试基础》复习大纲1、缺陷因果链?2、怎么样去判别软件缺陷?答:1.软件未达到产品说明书标明的功能。2.软件出现了产品说明书指明不会出现的错误。3.软件功能超出产品说明书指明范围。4.软件未达到产品说明书虽未指出但应达到的目标。5.软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。3、软件缺陷原因分析答:①产生软件缺陷的原因很多,其中最大的原因是软件产品规格说明书(ProductSpecification)。②软件缺陷的第二大来源是设计(随意,易变,沟通不足)。4、软件缺陷的修复(fix)费用答::①在软件开发的各个阶段,都有可能发现缺陷,但不同的时间发现缺陷,其消除缺陷的费用却有着非常大的区别。②随着时间的推移,缺陷的修复费用呈几何级数增长。5、软件测试定义、目的?答:软件测试的定义:狭义的定义,程序测试是为了发现错误而执行程序的过程。广义的定义,软件测试是指软件产品生存周期内所有的检查、评审和确认活动,如设计评审和系统测试。目的:①尽早发现软件产品中的缺陷并确保其被修复②评估、确认软件的质量③预防缺陷④具体实施软件测试时,要在发现缺陷和保证质量两个目的之间做出平衡。其主要目的是发现缺陷。6、验证和确认(V&V)答:软件测试通过验证和确认活动来进行。验证(Verification):是保证软件符合产品说明书的过程。确认(Validation):是保证软件满足用户要求的过程。7、测试与调试测试:Test目的是发现缺陷,通常在受控的条件下(正常的条件和异常的条件)运行程序并评估结果。调试:Debug目的是定位并修复故障,属于开发活动。调试是软件开发人员的工作。答:软件的调试是发现、分析和去除软件失效根源的过程。软件的测试和调试是不一样的。1、目标不同。软件测试的目的是发现错误,至于找出错误的原因和错误发生的地方不是软件测试的任务,而是调试的任务。调试的目的是为了证明程序的正确,因此它必须不断地排除错误。他们的出发点不一样。前者是挑错,是一种挑剔过程,属于质量保证活动。后者是排除错误,是一种排除过程,是编码活动的一部分。2、执行者不同。做测试的,可能是开发人员、测试团队、QA团队及最终用户;而调试是软件开发人员的工作,属于开发活动。8、软件测试的对象答:软件测试≠程序测试软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编缺陷错误故障失效码等各个阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象。9、测试用例是什么?答:为特定目标或特定条件(例如,执行特定的程序路径,或是验证与特定需求的一致性)而开发的一组输入值、执行前提条件、期望结果。10、测试用例的基本思想?答:尽可能多的覆盖所有分支。11、缺陷报告的基本要素有哪些?答:Title/Summary标题/摘要Preconditions预置条件ReproducibleSteps重现步骤Expectedresult预期结果Actualresult实际结果Isolation/Notes隔离/注释12、软件测试常见的3种方式是什么,分别可将软件测试分为哪些测试?答:软件测试常见的3种方式是:等价类划分法,边界值法,因果图法。可将软件测试分为:黑盒静态测试,黑盒动态测试白盒静态测试,白盒动态测试13、检查文档、等价类划分法、因果图、决策表、代码审查、判定覆盖、条件组合覆盖分别是静态黑盒测试、动态黑盒测试、静态白盒测试和动态白盒测试中的哪一种?答:静态黑盒测试:检查文档动态黑盒测试:等价类划分法,边界值分析法,状态测试,因果图,决策表,静态白盒测试:代码审查动态白盒测试:判定覆盖,条件组合覆盖14、黑盒测试用例的设计方法有哪些?答:1、等价类划分法2、边界值分析法3、错误推测法4、因果图和决策表5、场景法6、功能图法7、判定表驱动法8、正交试验设计法15、等价类测试的思想是什么?答:将程序所有可能的输入数据(有效和无效的)划分成若干个等价类,选取每个类中的代表值作为测试用例进行测试。有效等价类:设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到多有有效等价类均被测试用例所覆盖。无效等价类:设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;16、有效等价类和无效等价类分别是什么?答:有效等价类:有效等价类是指对于软件规格说明而言,有意义的、合理的输入数据集合。无效等价类:无效等价类是指对于软件规格说明而言,没有意义的、不合理的输入数据集合。17、等价类划分法测试用例设计的步骤是?答:(1)划分并标识等价类标识所有输入,对每个输入进行等价类划分,形成等价类表,每一等价类规定一个唯一的编号;(2)为有效等价类设计测试用例设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;(3)为无效等价类设计测试用例设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;18、等价类测试的常用划分标准有哪两种?按照各标准等价类测试可分为哪些?答:根据测试时基于单缺陷还是多缺陷。等价类可划分为弱、强两种根据是否考虑无效值,等价类又可划分为一般和健壮两种弱一般等价类,强一般等价类弱健壮等价类,强健壮等价类19、边界值分析法是什么?答:用于对输入或输出的边界值进行测试的一种黑盒测试方法。20、边界值分析法选定的测试数据是哪些?答:选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据。21、静态测试技术评审是什么?答:重点关注:文档对象是否完全实现了它的目标技术专家担任评审人员,可常用同行评审大量的准备工作。在评审会议上,要记下所有的问题并准备评审结果的最终文档必要时,需要定义评审的入口准则和出口准则22、评审的对象是有哪些?答:任何软件工作产品都可以被评审,包括需求规格说明、设计说明、代码、测试计划、测试规格说明、测试用例、测试脚本、用户指南及网页。23、评审的好处?答:1、降低消除缺陷的成本,早期发现并消除缺陷,可以提高开发的生产率2、缩短开发时间3、降低整个软件开发周期的成本4、降低系统运行的故障率5、团队学习,改进团队工作方法24、静态测试技术和动态技术相比,有哪些优势?答:静态技术更多地发现缺陷的原因而非缺陷本身。25、通用的评审过程包括哪几步?答:计划、概述、准备、评审会议、返工和追踪。26、评审中主要涉及的角色有哪些,他们的职责分别是什么?答:经理(manager)选择评审对象、人员确保基础文档、必需的资源可用主持人(moderator)与评审有关的管理工作计划、准备并保证评审有序进行且满足目标收集评审数据发布评审报告作者(author)提交评审的文档的作者或主要负责人评审人员(reviewers)几个(一般不超过5个)在各自准备后来检查评审对象的技术专家。记录员(recorder)记录评审团队提出的所有发现,如问题、采取的措施、决定和建议等。记录要简短、准确,抓住中心思想附:确保评审完整性及高效的一个重要工具是检查表(checklist)27、评审的类型有哪些?最正式的方式是哪种?主要的评审类型有以下几种:非正式评审(informalreview)技术评审(technicalreview)走查(walkthrough)审查(inspection)最正式的是:审查28、静态分析的目的?静态分析(staticanalysis)的目的是发现文档中的缺陷或可能存在缺陷的地方。29、通过静态分析可以发现的可能会导致程序产生的错误的缺陷和结构有:答:1、违背语法规则;2、违背编程规范和标准;3、控制流异常;4、数据流异常。30、数据流异常具体有哪些异常?答:ur异常:程序路径上读取了没有定义的变量du异常:变量被赋值,但这个变量已经是无效的或者未定义的状态,同时未被引用dd异常:变量接收了第二个值,同时,第一个值未被读取或使用使用31、白盒测试的基本思想?答:白盒技术的基本思想是把测试对象的每部分代码至少执行一次。设计面向控制流的测试用例,分析程序的逻辑,然后执行测试用例。32、白盒测试主要技术有哪些?答:1、语句覆盖2、判定覆盖3条件覆盖4、判定/条件覆盖5、条件组合覆盖6、路径覆盖33、软件生命周期包括哪几个阶段?34、软件开发模型有哪些?答:瀑布模式(Waterfall)快速原型模型(Prototype)迭代-增量模型(Incremental)螺旋模式(Spiral)敏捷开发模型35、软件测试模型有哪些?答:V模型;W模型;H模型36、单元测试、集成测试、系统测试和验收测试的目的是什么,参与者有哪些,另外分别属于白盒测试和黑盒测试的哪种?答:单元测试:单元测试的目的是要检测程序模块中有无故障存在。参与者:开发工程师属于:白盒测试。集成测试:检验组成系统的模块接口有无错误。代码实现的系统设计与需求定义是否吻合参与者:开发工程师,测试工程师。属于:黑盒测试,白盒测试。系统测试:检验组成整个系统的代码、以及系统的软硬件配合有无错误。代码实现的系统与用户需求是否吻合。检验系统的文档等各种是否完整、有效,模拟验收测试的要求。检查系统是否符合用户的验收标准。参与者:测试工程师。属于:黑盒测试。验收测试:系统是否符合事先约定的验收标准。参与者:产品经理或其他高级经理,开发工程师,测试工程师,用户。属于:黑盒测试。37、驱动模块和桩模块分别是什么?答:桩模块就是用来代替被测模块所调用的模块。它的作用是返回被测试模块所需要的信息,驱动模块的作用是用来模拟被测试模块的上级调用模块,它只完成接受测试数据,以及上级模块调用被测模块的格式驱动被测模块,接受被测模块的测试结果并输出.38、集成测试的增量集成策略有哪些?答:1、自顶向下2、自底向上3、随意集成4、中枢集成39、α和β测试是什么?答:α、β、λ常用来表示软件测试过程中的三个阶段,α是第一阶段,一般只供内部测试使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。