软件测试课后习题

合集下载

软件测试习题集及答案

软件测试习题集及答案

一、判断分析题1.软件测试的目的是尽可能多的找出软件的缺陷.Y2.软件测试的目的是证明软件没有错误.N3.测试组负责软件质量.N4.程序的效率与程序的复杂性相关.N5.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性. Y6.测试程序仅仅按预期方式运行就行了.N7.好的测试员不懈追求完美. Y8.不存在质量很高但可靠性很差的产品.N9.测试是为了验证该软件已正确地实现了用户的要求. N10.发现错误多的程序模块,残留在模块中的错误也多.Y11.程序效率的提高主要应通过选择高效的算法来实现. Y12.测试人员要坚持原则,缺陷未修复完坚决不予通过.N13.项目立项前测试人员不需要提交任何工件.Y14.缺陷跟踪系统只针对对测试人员来使用.N15.从用户软件开发者的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品. N16.软件项目在进入需求分析阶段,测试人员应该开始介入其中. Y17.测试是提高产品质量根本手段.18.代码评审员一般由测试员担任.N19.代码评审是检查源代码是否达到模块设计的要求.N20.软件测试员可以对产品说明书进行白盒测试.N21.静态白盒测试可以找出遗漏之处的问题.Y22.总是首先设计白盒测试用例.N23.用黑盒法测试时,测试用例是根据程序内部逻辑设计的.N24.黑盒测试方法中最有效的是因果图法.Y25.软件测试按照测试过程分类为黑盒、白盒测试.N26.白盒测试又称结构测试、逻辑驱动测试或基于程序的测试.Y27.白盒测试时一般由开发人员兼任测试人员的角色.Y28.黑盒测试是从用户观点出发的测试.Y29.白盒测试是从用户观点出发的测试.N30.白盒测试根据程序外部特征进行测试,黑盒测试根据程序内部逻辑结构进行测试.N31.程序通过了全面的白盒测试,就不需要再进行黑盒测试了.N32.对于同一个测试对象,等价类的测试用例数多于边界值的测试用例数.33.如果输入条件规定了取值范围,则可定义一个有效等价类和两个无效等价类.Y34.不能对输出值域进行健壮性测试.35.有n个变量的函数的健壮最坏情况测试用例的个数为:5的n次方.Y36.有n个变量的函数的健壮最坏情况测试用例的个数为:7的n次方.N37.有n个变量的函数的健壮性测试用例的个数为:5n+1.N38.有n个变量的函数的最坏情况测试会产生5的n次方个测试用例.Y39.有n个变量的函数的边界值分析会产生4n+1个测试用例Y40.边界值分析的假设是“多缺陷”假设 .N41.健壮性测试的主要价值是观察例外情况的处理.Y42.在设计测试用例时,应包括合理的输入条件和不合理的输入条件.Y43.弱健壮等价类测试基于多缺陷假设.N44.强健壮等价类测试是基于多缺陷假设,并考虑了无效值.Y45.强一般等价类测试考虑了无效值.Y46.弱一般等价类是基于单缺陷假设.Y47.弱健壮等价类测试基于单缺陷假设并考虑了无效值.Y48.等价类测试的弱形式不如对应的强形式的测试全面Y49.语句覆盖是最弱的逻辑覆盖.Y50.语句覆盖是最强的逻辑覆盖.N51.判定覆盖不一定包含条件覆盖.Y52.条件覆盖不一定包含判定覆盖.Y53.判定/条件覆盖能同时满足判定、条件两种覆盖标准.Y54.判定/条件覆盖指满足判定覆盖标准或条件覆盖标准.N55.DD-路径图是一种压缩图.Y56.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述. Y57.尽量用公共过程或子程序去代替重复的代码段.N58.对于连锁型分支结构,若有n个判定语句,则有2n条路径.Y59.尽量采用复合的条件测试,以避免嵌套的分支结构.Y60.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁.Y61.单元测试能发现约80%的软件缺陷.Y62.单元测试属于动态测试. N63.单元测试多采用白盒测试结构性测试技术.Y64.单元测试需要从程序的内部结构出发设计测试用例.Y65.单元测试需要为每个基本单元开发驱动模块或桩模块.Y66.在面向对象语言语言中,单元测试是函数或子过程.67.单元测试又称为模块测试,是针对软件测试的最小单位-程序模块进行正确性检验的测试工作.Y68.集成测试计划在需求分析阶段末提交.N69.自底向上集成需要测试员编写驱动程序.Y70.进行自底向上集成测试,需要为所测模块或子系统编制相应的驱动模块.Y71.进行自底向上集成测试,需要为所测模块或子系统编制相应的桩模块.N72.进行自顶向下集成测试,需要为所测模块或子系统编制相应的驱动模块.N73.进行自顶向下集成测试,需要为所测模块或子系统编制相应的桩模块.Y74.MM-路径是可执行路径.Y75.非渐增式集成方式,发现错误难以诊断定位.Y76.集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统.Y77.系统测试多采用白盒测试结构性测试技术.N黑盒测试78.验收测试是由最终用户来实施的.N79.负载测试是验证要检验的系统的能力最高能达到什么程度.N80.我们可以人为的使得软件不存在配置问题.N81.可以发布具有配置缺陷的软件产品.Y82.所有软件必须进行某种程度的兼容性测试. Y83.所有软件都有一个用户界面,因此必须测试易用性. N84.β测试是由软件的多个用户在实际使用环境下进行的测试.Y85.系统测试是在真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求.Y86.Beta 测试是验收测试的一种.Y二、简答题1.什么是软件测试软件测试的目的和作用是什么答:利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估.软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果.软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷.测试是为了证明程序有错,而不是证明程序无错.一个成功的测试是发现了至今未发现的错误的测试.软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例.2.简述软件测试的目的和原则.答:软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷.测试是为了证明程序有错,而不是证明程序无错.一个成功的测试是发现了至今未发现的错误的测试.软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例.3.软件缺陷产生的原因答:A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改B.软件设计说明书C.软件操作人员的水平D.开发人员不能很好的理解需求明书和沟通不足4.什么是软件测试,以及软件测试的意义答:软件测试是为了发现错误而执行程序的过程.软件测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例即输入数据及预期的输出结果,并利用这些测试用例去运行程序,以发现错误的过程.意义:1.对产品质量完成全面的评估,为软件产品发布如验收测试、软件系统部署如性能规划测试、软件产品鉴定第三方独立测试委托方和被委托方纠纷仲裁第三方独立测试和其它决策提供信息;2.通过持续的测试包括需求评审、设计评审、代码评审等可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本;3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度.4.通过对缺陷进行分析,找出缺陷发生的根本原因软件过程中的问题,包括错误的行为方式或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的5.什么是软件测试什么是测试用例,测试用例必须包括那几部分答:狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据.这组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据.6.简述你对测试工作的认识过程、在以后的工作的一些建议.7.请辨析软件的质量是“设计出来的”还是“测试出来的”观点.8.软件测试与软件开发的关系答:软件开发是一个系统的工程.包括需求分析,设计,编码,测试,维护等等几个环节.测试是整个软件开发流程中的一个环节.9.在测试生命周期中,测试过程分为几个阶段各个阶段的含义以及各阶段的测试依据是什么答:软件测试是一个规则的过程,包括测试设计、测试执行以及测试结果比较等.①测试设计:根据软件开发各阶段的文档资料和程序的内部结构,利用各种设计测试用例技术精心设计测试用例.②测试执行:利用这些测试用例执行程序,得到测试结果.③测试结果比较:将预期的结果与实际测试结果进行比较,如果二者不符合,对于出现的错误进行纠错,并修改相应文档.修改后的程序还要进行再次测试,直到满意为止.如果测试发现不了错误,可能由于测试配置考虑不周到,应考虑重新制定测试方案,设计测试用例.按照开发阶段划分,软件测试可分为单元测试、集成测试,系统测试和验收测试.单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标.集成测试:对已测试过的模块进行组装,进行集成测试.系统测试:检验软件产品能否与系统的其他部分协调工作.验收测试:检验软件产品质量的最后一道工序.10.一名优秀的软件测试工程师应具备哪些素质答:一个优秀的测试工程师应该具备的基本素质有:责任心、沟通能力、团队精神、自信心、耐心、怀疑精神、洞察力、幽默感等.应具备的专业素质有:有竞争力的测试人员要具有三方面的技能:计算机专业技能、测试专业技能、软件编程技能.11.如何做一名合格的测试人员测试人员应具备素质如下:(1)沟通能力.(2)移情能力.(3)技术能力.(4)自信心.(5)外交能力.(6)幽默感.(7)很强的记忆力.(8)耐心.(9)怀疑精神.(10)自我督促.(11)洞察力.12.测试计划的目的是什么答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容.借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更.13.什么是黑盒测试黑盒测试主要采用的技术有哪些答:黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试.它从用户观点出发的测试.用这种方法进行测试时,把被测试程序当作一个黑盒,在不考虑程序内部结构的内部特性、测试者只知道该程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结果的正确性.黑盒测试的方法包括:边界值分析、等价类测试、基于决策表的测试和因果图等.14.简单描述黑盒测试各种方法的特点.答:黑盒测试的方法主要有边界值分析法、等价类划分法、因果图法、决策表测试法等.边界值分析利用输入变量的最小值、略大于最小值、输入值域内的任意值、略小于最大值和最大值来设计测试用例.等价类划分法是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例.经过类别的划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值.因果图方法就是从程序规格说明书的描述中找出因输入条件和果输出结果,将因果图转换为决策表,最后为决策表中的每一列设计一个测试用例.这种方法考虑到了输入情况各种组合以及各个输入情况之间的相互制约关系.在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的.在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作.决策表法很适合测试这类问题.15.如果能够执行完美的黑盒测试,还需要进行白盒测试吗为什么答:需要,黑盒测试可根据程序规格检验程序是否完成规定功能,但无法发现程序内部的编码和逻辑错误,白盒测试与之相反互补.16.边界值测试有几种方法答:边界值分析和健壮性测试17.等价分类法的测试技术采用的一般方法举例说明答:(1)为每个等价类编号;(2)设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有有效等价类被覆盖为止.(3)设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有无效等价类被覆盖为止.18.什么是等价类如何划分等价类等价类测试中有哪些方法答:把单元的输入域化分为几种数据类,每种用来发现一类的错误,每类只用提供一个或几个用例数据.目的是减少用例数量.19.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系.答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求.白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查.软件的黑盒测试意味着测试要在软件的接口处进行.这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明.因此黑盒测试又叫功能测试或数据驱动测试.黑盒测试主要是为了发现以下几类错误:1、是否有不正确或遗漏的功能2、在接口上,输入是否能正确的接受能否输出正确的结果3、是否有数据结构错误或外部信息例如数据文件访问错误4、性能上是否能够满足要求5、是否有初始化或终止性错误软件的白盒测试是对软件的过程性细节做细致的检查.这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试.通过在不同点检查程序状态,确定实际状态是否与预期的状态一致.因此白盒测试又称为结构测试或逻辑驱动测试.白盒测试主要是想对程序模块进行如下检查:1、对程序模块的所有独立的执行路径至少测试一遍.2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍.3、在循环的边界和运行的界限内执行循环体.4、测试内部数据结构的有效性,等等.单元测试模块测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件或者场景下某个特定函数的行为.单元测试是由程序员自己来完成,最终受益的也是程序员自己.可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试.执行单元测试,就是为了证明这段代码的行为和我们期望的一致.集成测试也叫组装测试,联合测试是单元测试的逻辑扩展.它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口.从这一层意义上讲,组件是指多个单元的集成聚合.在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分.方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试.最后,将构成进程的所有模块一起测试.系统测试是将经过测试的子系统装配成一个完整系统来测试.它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法.常见的联调测试系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计.验收测试是部署软件之前的最后一个测试操作.验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务.验收测试是向未来的用户表明系统能够像预定要求那样工作.经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样.20.什么是白盒测试白盒测试主要采用的技术有哪些白盒测试有那几种方法并简单描述各种方法的特点.答:白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试.它依赖于对程序细节的严密的检验.针对特定条件和循环集设计测试用例,对软件的逻辑路径进行测试.在程序的不同点检验程序的状态,来进行判定其实际情况是否和预期的状态相一致.白盒测试包括:逻辑覆盖、基路径测试、数据流测试、程序插装等.总体上分为静态方法和动态方法两大类静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖.21.常用的逻辑覆盖测试方法有哪几种并简单描述各种方法的目的.答:逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖.语句覆盖:要求设计若干个测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次.判定覆盖:要求设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次,即判断的真假值均要被检测.判定覆盖又称为分支覆盖.条件覆盖:要求设计若干测试用例,执行被测程序,使得程序中每个判断的每个条件的可能取值至少被执行一次.判定/条件覆盖:要求设计足够的测试用例,执行被测程序,使得判断中每个条件的所有可能取值至少被执行一次,同时每个判断的所有可能判断结果也至少被执行一次.路径覆盖:要求设计足够多测试用例,覆盖程序中所有可能的路径.22.逻辑覆盖中几种主要覆盖的含义举例说明答:逻辑覆盖是一种使用最广泛的结构测试方法.逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节.由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖.23.单元测试有那些步骤,各个步骤有那些实施内容.答:1.静态检查:用工具Logiscope或者人工检查单2.动态检查:用工具PurifyPlus或者人工调试3.测试用例执行工具或人工设计测试用例及数据;提前编写测试用例代码、脚本、驱动模块和桩模块;提前运行测试用例,记录结果.在步骤1,2之后进行24.非增量式测试与增量式测试答:非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试.假如在模块的接口处存在错误,只会在最后的集成测试时一下子暴露出来.增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改.而且一些模块在逐步集成的测试中,得到了较多次的考验,因此,可能会取得较好的测试效果.结论:增量式测试要比非增量式测试具有一定的优越性.25.简述自顶向下增量式测试和自底向上增量式测试两种集成测试方法,并比较两者的优点和缺点.答:自顶向下增量式测试:主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架.主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难.自底向上增量式测试:优点在于,由于驱动模块模拟了所有调用参数,即使数据流并未构成有向的非环状图,生成测试数据也无困难.主要缺点在于,直到最后一个模块被加进去之后才能看到整个程序系统的框架.26.简述集成测试的过程.集成测试的方法有那些答:系统集成测试主要包括以下过程:1. 构建的确认过程.2. 补丁的确认过程.3. 系统集成测试测试组提交过程.4. 测试用例设计过程.5. 测试代码编写过程.6. Bug的报告过程.7. 每周/每两周的构建过程.8. 点对点的测试过程.9. 组内培训过程.27.比较自顶向下集成测试和自底向上集成测试的优劣答:自顶向下集成测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块主程序,然后依照控制层次结构向下进行集成.自底向上集成测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,由于是从最底层开始集成,所以也就不再需要使用桩模块进行辅助测试.自顶向下测试的主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架.它的主要缺点是需要提供桩模块.自底向上的优点在于不需要桩模块,需用的驱动模块比较少.它的主要缺点在于,直到最后一个模块被加进去之后才能看到整个程序系统的框架.。

软件测试(第2版 慕课版)课后习题答案

软件测试(第2版 慕课版)课后习题答案

第一章软件测试基础课后习题答案1.什么是软件测试?软件测试发现一个应用从开始到结束时的错误,测试是一个过程。

(Glenford J.Myers 提出对软件测试的定义)测试是发现错误而执行的一个程序或系统的过程测试以发现故障为目的,是为了发现故障而执行程序过程2.软件测试涉及哪几个关键问题?软件测试的经济性原则谁来测试(who)测试什么(what)什么时候测试(when)怎样进行测试(how)测试的停止标准是什么(which)3.为什么说软件需求说明是软件故障的最大来源?软件需求是描述了系统有哪些功能,功能操作,性能如何等问题,是开发阶段的重要文档,也是后期软件开发的重要依据。

如果软件需求一开始就错了,在后面处理过程则会把错误放大,这样使得修复起来成本就是提升。

4.简述软件测试的复杂性和经济性。

复杂性1.完全测试是不现实的2.软件测试是有风险的3.杀虫剂现象4.缺陷的不确定性经济性软件测试是软件生命期中费用消耗最大的环节。

测试费用除了测试的直接消耗外,还包括其他的相关费用5.分析最近发生的软件质量事故,并简要分析产生的原因。

具体案例具体分子6.启动Windows计算器,输入“6,000-6=”(逗号不能少),观察计算结果,这是软件故障吗?为什么?这是软件故障中的界面缺陷。

由于无法输入逗号,无法进行输入,当做一个界面缺陷,因为不符合需求,原本是小数点变成了逗号。

7.软件测试应遵循哪些重要的原则或方针?1.完全测试程序是不可能的2.软件测试是有风险的3.测试无法找到隐藏的软件故障4.存在的故障数量与发现的故障数量成正比5.杀虫剂现象6.并非所有软件故障都能修复7.一般不要丢弃测试用例8.应避免测试自己编写的程序9.软件测试是一项复杂且具有创造性的和需要高度智慧的挑战性任务8.假定无法完全测试某一程序,那么在决定是否应该停止测试时应考虑哪些问题?在工作中,常用的停止测试标准有五类:测试超过了预定时间,停止测试执行了所有测试用例但没有发现故障,停止测试使用特定的测试用例方法作为判断测试停止的基础正面指出测试完成要求,如发现并修改70个软件故障根据单位是见查出故障数量决定是否停止测试9 . 假如星期一测试软件的某一功能时,每小时能发现一个新的软件故障,那么星期二会以什么频率发现软件故障?第一感觉就是与第一天(星期一)的一样,既然前一天发现的频率以每小时都有新的故障,说明软件的缺陷很高,所以第二天也可能有同样的频率。

软件测试 第2版慕课版习题答案 第五章 课后习题答案

软件测试 第2版慕课版习题答案 第五章 课后习题答案

第五章软件测试的管理过程课后习题答案1.简述软件测试过程的概念。

软件测试是软件开发中的最后一个阶段。

软件测试是使用人工或者自动手段来运行或测试某个系统的过程,通过测试发现软件开发设计的过程中存在的问题, 其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

软件测试的过程主要描述了软件测试需要做的工作,随着软件测试技术的进步,测试过程也会得到进一步改进。

2.软件测试包括哪几个阶段?(1)测试需求的分析和确定,测试需求就是在项目中要测试什么。

(2)测试计划。

测试计划是指导测试过程的纲领性文件,内容包含产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、风险分析等。

(3)测试设计。

测试设计可以理解为对测试工作进行有目的、有计划、创造性的业务活动。

测试设计主要包括测试管理的设计,以及各种测试技术应用的设计,其中测试管理中的团队管理方法设计与测试流程设计是重中之重。

(4)测试执行。

书写相应的测试用例,按照测试用例中的步骤一步步执行,查看实际结果与预期结果是否一致。

(5)测试记录和软件缺陷跟踪。

通过某些测试软件的日志功能,可以在相应的测试用例执行完之后记录相关的日志文件,作为测试过程的记录。

(6)回归测试。

因为旧代码得到了修改,通常需要再次进行测试来验证修改是否引入了新的错误,这一测试过程就称为回归测试。

软件开发的每个阶段都会进行多次回归测试。

(7)测试总结报告。

编写测试总结报告,首先是为了对测试结果进行分析,得到对软件质量的评价;其次是为了评估测试执行和测试计划是否相符;最后是为了针对软件中的缺陷提出相应的建议3.需要从哪几个方面对测试需求进行评审?测试需求评审的内容包括完整性审查和准确性审查。

完整性审查是检查测试需求是否覆盖了所有软件需求,以及软件需求的各项特征,关注功能要求、数据定义、接口定义、性能要求、安全性要求、可靠性要求、系统约束、行业标准等,同时还要关注系统隐含的用户需求。

软件测试 第2版慕课版习题答案 第13章 课后习题答案

软件测试 第2版慕课版习题答案 第13章 课后习题答案

第13章软件测试的拓展与提高课后习题及答案
1.企业的测试策略体现在几个方面?
(1)合理地减少测试工作量。

通过以下方式减少测试工作量。

①减少冗余的测试。

②减少无价值的测试。

(2)提高测试效率。

2.为什么要制订测试计划?
(1)测试计划文档为完成测试任务提供便利。

(2)测试计划文档改善测试任务与测试过程之间的联系。

(3)测试计划文档为组织、规划与管理测试项目提供支持。

3.简述基于CMMl的测试流程和传统测试流程的区别。

基于CMMl的测试流程从全局的角度来看,主要是在V模型的基础上在需求分析、概要设计和详细设计阶段增加了需求测试、概要设计测试和详细设计测试3个环节
4.通过调研,了解当前互联网公司是如何将DevOps部署到企业的软件质量保障流程中的。

使用DevOps自动化工具
(1)Jenkins
(2)Maven
(3)DOCker+Jenkins打造自动化测试。

《软件测试》课后习题答案

《软件测试》课后习题答案

课后习题答案第1章一、单选题1、B2、C3、A4、B5、A二、填空题1、规格说明书检查清单2、①引言②测试概要③测试内容及执行情况④缺陷统计与分析⑤测试结论与建议3、测试是以评价一个程序或者系统属性为目标的任何一种活动。

测试是对软件质量的度量。

4、与整个开发流程融合成一体5、①软件测试过程是为了发现程序中的错误。

②设计出好的测试方案和测试用例才能发现迄今为止尚未发现的错误。

③软件测试中通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。

④软件测试中对错误的分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。

⑤测试中即使没有发现错误的也是有价值的,完整的测试是评定软件质量的一种方法。

三、简答题1、①评测测试需求②制定测试计划③设计测试用例④执行测试⑤编写测试报告2、测试计划包括:①确定测试内容②制定测试规则③设定测试环境④安排测试任务⑤计划实施⑥风险管理。

主要作用是:测试工作是软件开发过程中不可缺少的组成部分,在软件开发工作的开始阶段就要制定好软件测试计划,作为软件开发保障性的工作。

第2章一、填空题1、包括等价类划分法、边界值分析法、因果图与决策法、正交试验设计法。

2、等价类。

3、区分有效等价类与无效等价类两种情况。

4、边界值分析法。

5、恒等、非、与。

二、单选题1、D2、C3、B三、简答题1、等价类要区分有效等价类与无效等价类两种情况。

在划分等价类时需要遵守以下原则:(1)按区间划分(2)按限制条件或规则划分(3)按数值划分(4)细分等价类。

2、它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交实验设计是一种高效率、快速、经济的实验设计方法。

3、分析出原因和结果原因:1、年薪制2、非年薪制3、严重违规4、一般过失结果:11、扣当月5%12、扣年终2%13、扣当月8%14、扣年终5%画出决策图:阴影部分表示因违反约束条件(2~3、5、14~15违反年薪制约束,4、8、9、12违反惩罚约束,1、16同时违反前面两种约束)而不可能出现的情况因此删去。

(完整版)软件测试技术基础课后习题答案

(完整版)软件测试技术基础课后习题答案

第1章软件测试概述1.简述软件测试的意义。

解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。

而由于软件本身的特性,软件中的错误是不开避免的。

不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。

因此为了保证软件质量,必须对软件进行测试。

软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。

2.什么是软件缺陷?它的表现形式有哪些?解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。

它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低?解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。

其中在需求分析阶段引入的缺陷最多,修复的成本又最低。

4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类?解:有缺陷。

其所属类别与软件产品说明书的要求有关。

5.什么是软件测试?简述其目的与原则。

解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。

测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。

软件测试 课后习题答案

软件测试 课后习题答案

软件测试课后习题答案软件测试课后习题答案在软件开发过程中,软件测试是一个至关重要的环节。

通过测试,开发人员可以发现并修复软件中的错误,确保软件的质量和稳定性。

然而,软件测试并非一项简单的任务,需要测试人员具备一定的技能和知识。

下面是一些关于软件测试的课后习题及其答案,希望对大家有所帮助。

习题一:什么是软件测试?为什么软件测试如此重要?答案:软件测试是指通过运行软件系统或应用程序,以发现并评估其功能、性能、安全性等方面的问题的过程。

软件测试的目的是确保软件的质量和稳定性,以满足用户的需求和期望。

软件测试之所以重要,主要有以下几个原因:1. 发现错误:软件中可能存在各种错误和缺陷,通过测试可以发现并修复这些问题,提高软件的质量。

2. 提高可靠性:软件测试可以验证软件的可靠性和稳定性,确保软件在各种条件下都能正常运行。

3. 保证用户满意度:通过软件测试,可以确保软件符合用户的需求和期望,提高用户的满意度。

4. 节省成本和时间:及早发现和修复软件中的问题,可以避免后期修复的成本和时间浪费。

5. 增强竞争力:软件测试可以提高软件的质量和稳定性,增强企业的竞争力。

习题二:软件测试的基本原则是什么?答案:软件测试的基本原则包括以下几点:1. 全面性:测试应该覆盖软件的各个功能和模块,以确保所有可能的错误都能被发现。

2. 独立性:测试应该独立于开发过程,以确保测试结果的客观性和准确性。

3. 可重复性:测试应该能够被重复执行,以验证软件在不同环境和条件下的稳定性和可靠性。

4. 及早测试:测试应该尽早开始,以便在软件开发过程中及时发现和修复问题。

5. 风险导向:测试应该根据软件的重要性和风险程度进行优先级排序,以确保关键功能的测试覆盖率。

习题三:软件测试的常用方法有哪些?答案:软件测试的常用方法包括以下几种:1. 黑盒测试:测试人员只关注软件的输入和输出,不考虑内部实现细节,以验证软件的功能是否符合需求。

2. 白盒测试:测试人员了解软件的内部实现细节,以验证软件的逻辑正确性和代码覆盖率。

软件测试技术(习题卷13)

软件测试技术(习题卷13)

软件测试技术(习题卷13)第1部分:单项选择题,共56题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]软件质量在软件测试中被定义为( )。

A)正确程度B)适于使用或符合要求C)人们对软件需求的程度D)软件的用途和适用范围答案:C解析:2.[单选题]关于系统测试方法,说法不正确的是( )。

A)可以使用监视器方法收集系统执行时间和资源使用情况B)只要有足够的时间,一个好的安全测试就一定可以侵入一个系统C)容量测试是指系统承受速度方面的超额负载D)在嵌入式系统中,功能需求与性能需求必须同时考虑答案:C解析:3.[单选题]我希望对事物进行掌控A)强烈同意B)同意C)不同意D)最不同意答案:C解析:4.[单选题]针对布尔表达式A&&(B||C)执行逻辑覆盖测试,测试用例至少需要___(45)___种组合才能满足多条件覆盖的要求。

A)6B)4C)8D)12答案:C解析:5.[单选题]编写测试计划的目的不包括( )A)使项目参与人员沟通更舒畅B)使测试工作更加系统化C)使测试工作顺利进行D)使测试内容更少,完成更快答案:D解析:6.[单选题]我喜欢结交新朋友A)强烈同意B)同意C)不同意D)最不同意答案:C解析:7.[单选题]以下关于功能测试用例的意义的叙述,正确的是()1)避免盲目测试并提高测试效率2)令软件测试的实施重点突出、目的明确3)在回归测试中无需修正测试用例便可继续开展测试工作4)测试用例的通用化和复用化使软件测试易于开展A)1),2),3)B)1),3)C)2),3)D)1),2),4)答案:B解析:8.[单选题]下图为一个航班查询窗体的截图,若对该窗体中的控件进行测试,则下列描述中错误的是( d )。

(选择一项)有图片A)选择出发地为“重庆”,选择目的地为“厦门”,在下方的航班信息中显示为“厦门-重庆”,这是该软件的功能缺陷B)界面中应保持字体大小和类型的风格统一,因此“选择目的地”标签和“选择出发地”标签的字体设置不同是该软件的缺陷C)若在“选择出发地”列表框中可以选中“北京”,而在“选择目的地”列表框中也可以同时选中“北京”,则这种情况不符合实际需求,是该软件的缺陷D)预定机票是该的主要功能,因此“预订机票”按钮应突出显示,尺寸略大于“退出”按钮,这样设计符合常规界面设计原则答案:D解析:9.[单选题]实际的逻辑覆盖测试中,一般以( )为主设计测试用例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

百度文库- 让每个人平等地提升自我目录第1章软件测试概述 (1)第2章软件测试方法与过程 (4)第3章黑盒测试 (7)第4章白盒测试方法 (13)第5章软件测试管理及自动化测试基础 (18)第6章WINRUNNER测试工具 (20)第7章LOADRUNNER测试工具 (22)第8章JUNIT (24)第1章软件测试概述1.简述软件测试的意义。

解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。

而由于软件本身的特性,软件中的错误是不开避免的。

不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。

因此为了保证软件质量,必须对软件进行测试。

软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。

2.什么是软件缺陷?它的表现形式有哪些?解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。

它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低?解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。

其中在需求分析阶段引入的缺陷最多,修复的成本又最低。

4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类?解:有缺陷。

其所属类别与软件产品说明书的要求有关。

5.什么是软件测试?简述其目的与原则。

解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。

测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。

(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。

(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。

测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。

(2)测试应当有重点。

(3)事先定义好产品的质量标准。

(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。

(5)穷举测试是不可能的。

(6)第三方进行测试会更客观,更有效。

(7)软件测试计划是做好软件测试工作的前提。

(8)测试用例是设计出来的,不是写出来的。

(9)对发现错误较多的程序段,应进行更深入的测试。

(10)重视文档,妥善保存一切测试过程文档。

6.件测试阶段是如何划分的?解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。

7.简述软件开发的几个模式,并说明每种模式对软件测试的影响。

解:大棒模式简单,计划、进度安排和正规开发过程几乎没有,其开发过程是非工程化的。

大棒模式的软件测试通常在开发任务完成后进行,很难回头修复存在的问题,测试工作只是向客户报告软件经过测试后发现的情况。

边写边改模式通常最初只有粗略的想法就进行简单的设计,然后开始较长的反复编写、测试和修复过程,在认为无法更精细地描述软件产品要求时就发布产品。

该模式下,软件测试人员将和程序员一起陷入可能是长期的循环往复过程。

瀑布模式将软件生命周期的各项活动规定为按照固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品。

软件测试在后期展开,使得开发中出现的问题直到开发后期才显露,失去了及早纠正的机会。

快速原型模式首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。

原型系统在扩充完善过程中不断被检查、测试和修改。

螺旋模式是瀑布模式与边写边改模式演化结合的形式,并加入了风险评估所建立的软件开发模式,其主要思想是在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段并重复上述过程,直到获得最终产品。

测试在每个阶段都要进行,并从最初就参与。

8.简述软件测试过程。

解:软件测试过程主要包括如下6个活动:测试计划;测试需求分析;测试设计;测试规程实现;测试执行;总结生成报告。

9.“软件测试能够保证软件的质量”这句话对吗?软件测试和软件质量之间是什么关系?解:不对。

软件测试是保障软件质量的手段之一,但不是唯一手段。

测试是产品高质量的必要非充分条件,软件测试不能决定软件质量。

10.判断以下说法是否正确。

(1)软件测试和软件调试是同一回事。

(2)软件测试是可以无穷尽的。

(3)测试是为了证明软件的正确性。

(4)测试过程中应重视测试的执行,可以轻视测试的设计。

(5)测试不能修复所有的软件故障。

(6)因为测试工作简单,对软件产品影响不大,所以可以把测试作为新员工的一个过渡工作,或安排不合格的开发人员做测试。

解:(1)(2)(3)(4)(6)错误,(5)正确。

11.简述软件开发进程与测试进程的关系。

解:软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

第2章软件测试方法与过程1.对软件测试的复杂性进行归纳分析。

解:软件测试的复杂性在于:无法对程序进行完全的测试;测试无法保证被测程序中无遗留错误;不能修复所有的软件故障。

2.分别解释什么是静态测试、动态测试、黑盒测试、白盒测试、人工测试和自动化测试。

解:所谓静态测试是指不运行被测软件,仅通过分析或检查等其他手段达到检测的目的。

所谓动态测试是指通过运行被测软件,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。

黑盒测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后对每个功能单元生成测试数据进行测试。

用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为功能测试。

白盒测试又称为结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

广义上,人工测试是人为测试和手工测试的统称。

人为测试的主要方法有桌前检查,代码审查和走查。

手工测试指的是在测试过程中,按测试计划一步一步执行程序,得出测试结果并进行分析的测试行为。

自动化测试指的是利用测试工具来执行测试,并进行测试结果分析的测试行为。

3.如果没有软件规格说明或需求文档,可以进行动态黑盒测试吗?为什么?解:不行。

因为黑盒测试是基于软件规格说明的测试。

4.在单元测试中,所谓单元是如何划分的?解:单元测试的对象通常是软件设计的最小逻辑单元,单元的划分在面向过程的结构化程序中一般是函数或子过程,在面向对象的程序中可以是类或类的成员函数。

5.简述单元测试的主要任务。

解:单元测试的主要任务是:模块接口测试;局部数据结构测试;路径测试;错误处理测试;边界测试。

6.如果开发时间紧迫,是否可以跳过单元测试而直接进行集成测试?为什么?解:不可以。

因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。

7.什么是驱动模块和桩模块?为下面的函数构造一个驱动模块。

int divide(int a, int b){int c;if (b==0) {printf("除数不能为0"); return 0;}c=a/b;return c;}解:驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块,启动被测模块,最后输出实测结果。

桩模块用以模拟被测模块工作过程中所调用的子模块。

函数驱动模块:void main( ){int x,y,z;scanf(“%d%d”,&x,&y);z=divide(x,y);printf(“%d”,z);}8.什么是回归测试?什么时候进行回归测试?解:回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。

每当软件发生变化时就应进行回归测试。

9.集成测试有哪些不同的集成方法?简述不同方法的特点。

解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合集成4种集成方法。

一次性集成方法需要的测试用例数目少,测试方法简单、易行。

但是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使集成测试通过,也会遗漏很多错误进入系统测试。

自顶向下集成在测试的过程中,可以较早地验证主要的控制和判断点;一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;容易进行故障隔离和错误定位。

但是在测试时需要为每个模块的下层模块提供桩模块,桩模块的开发和维护费用大;桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测试不充分;涉及复杂算法和真正I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。

自底向上集成可以尽早的验证底层模块的行为;提高了测试效率;一般不需要桩模块;容易对错误进行定位。

但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。

混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被集成之前,中间层不能尽早得到充分的测试。

10.系统测试主要包括哪些内容?解:系统测试主要包括强度测试、性能测试、恢复测试、安全测试、可靠性测试、安装测试、容量测试和文档测试。

11.验收测试是由谁完成的?通常包含哪些过程?解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应参加。

通常包含α测试和β测试过程。

12.分析比较面向对象的软件测试与传统的软件测试的异同。

解:传统的单元测试的对象是软件设计的最小单位——模块。

相关文档
最新文档