您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > (答案整理)11《软件测试》复习
《软件测试》复习提纲1.什么是软件测试?软件测试的意义?软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。答案1:软件测试是为了发现错误而执行程序的过程。答案2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序,以及发现错误的过程。意义:确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正。2.什么是软件缺陷?请举例。哪里出现的缺陷最多?软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,未满足用户的需求。举例:缺点(defect)异常(anomaly)偏差(variance)失败(failure)缺陷(bug)故障(fault)问题(problt)错误(error)规格说明书出现的缺陷最多。3.软件测试是否就是程序测试?哪些可以作为软件测试的对象?不是。对象:程序、数据(库)、文档、服务4.软件测试的目的是什么?软件测试的目标是什么?软件测试的原则是什么?测试的目的就是发现软件中的各种错误和缺陷,但不是唯一目的,软件测试存在多种目的,其中最重要的三条为:(1)证明所做的是客户所需的(2)确保编码人员正确理解设计的意图(3)通过回归测试来保证目前运行的程序在将来仍然可以正常工作。目标:确保软件完成了它所承诺或公布的功能;为软件的质量评估提供依据;确保软件满足性能的要求;确保软件是健壮的和适应用户环境,为软件质量改进和管理提供帮助原则:1.所有测试的标准都是建立在用户需求之上2.软件测试必须基于“质量第一”的思想去开展各项工作3.事先定义好产品的质量标准4.软件项目一启动,软件测试也就开始,而不是等程序写完才开始进行测试5.穷举测试时不可能的6.第三方进行测试会更客观更有效7.软件测试计划是做好软件测试工作的前提8.测试用例是设计出来的,不是写出来的9.对主观错误较多的程序段,应进行更深入的测试10.重视文档,妥善保管一切测试过程文档。5.软件测试如何分类?按照程序是否执行:静态测试(审查、评审和走查)、动态测试按照测试用例的设计方法:白盒测试、黑盒测试按照开发阶段划分:单元测试、集成测试、系统测试、验收测试按照测试实施的组织划分:开发方测试、用户测试(β测试)、第三方测试按照是否使用工具:手工测试、自动化测试/按测试范围分:单元测试,组件测试,集成测试,系统测试,验收测试,安装测试;/按测试目的:正确性测试(白盒测试、黑盒测试),性能测试,可靠性测试(强壮性测试、异常处理测试、负载测试),安全性测试;/按测试对象:单元测试,组件测试,模块测试,程序测试,系统测试,文档测试;/按测试内容:回归测试,功能测试,负载测试,压力测试,性能测试,强度测试,易用性测试。6.程序的测试与程序的调试有何区别?分别由谁来完成?(新增)区别:1,软件测试是找出软件已经存在的错误,而调试是定位错误,修改程序以修正错误.2,软件测试从一个已知的条件开始,有预知的结局而调试从未知的条件开始,其结局不可预知3,软件测试可以计划,可以预先制定测试用例和过程,工作进度可以度量.而调试不能计划,进度不可度量.4,调试是在测试之后,在方法,思路,策略上都有所不同.5,测试的对象可以是文档和代码而调试的对象只能是代码6.调试是随机性的由程序员完成为了程序可运行测试是有目的性的由测试人员完成为了程序可完成指定功能调试由开发人员完成,测试由非开发人员完成7.常见的软件测试模型有哪些?(没有提到优缺点)V模型从左到右,描述了基本的开发过程和测试行为,明确地标明了测试工程中存在的不同级别,清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。优点:明确地标明了测试工程中存在的不同级别,清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系缺点:没有明确地说明早期的测试,不能体现“尽早地”和“不断地”进行软件测试原则。W模型优点:测试与开发是同步进行的,可以显著的节约总体测试时间缺点:需要有严格的指令表示上一阶段完全结束才可以开始下一个阶段H模型、X模型等8.一个软件测试包含哪些基本过程?制定测试计划测试设计与开发:1测试环境设计2测试用例设计与开发3辅助工具开发测试执行与管理:1准备测试环境2实施测试9.什么是测试用例?它包含哪些内容?通常对测试用例有哪些要求?测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求内容:包括测试编号,测试环境,测试目的,测试操作步骤,测试预期结果测试用例要求:对需求覆盖的完整性有效性清晰性可理解性可维护性10.什么是测试驱动开发?(新增)测试驱动开发,英文全称Test-DrivenDevelopment,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。TDD中文是测试驱动开发,它是一种以“测试先行”为原则的开发方法,开发人员在编写产品代码前,通常先写出对应的测试程序,后在编写产品代码,然后再进行测试。11.什么是白盒测试?白盒测试有哪些测试方法及其含义?这些方法的强弱程度怎样?白盒测试(又称结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。测试方法:逻辑覆盖测试:主要考察使用测试数据运行被测程序时对程序逻辑的覆盖程度。通常希望选择最少的测试用例来满足所需的覆盖标准。主要的覆盖标准有:语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖。基本路径测试(路径分析测试):是TomMcCabe提出的一种白盒测试技术,这种方法首先根据程序或设计图画出控制流图,并计算其区域数,然后确定一组独立的程序执行路径(称为基本路径),最后为每一条基本路径设计一个测试用例。循环测试:循环分为4种不同类型:简单循环、嵌套循环、串接循环和非结构循环。数据流测试。12.什么是黑盒测试?黑盒测试有哪些测试方法及其含义?黑盒测试依据软件的需求规约,而不考虑程序的内部结构与特性,检查程序的功能是否符合需求规约的要求。(黑盒测试是一种从用户观点出发的测试,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试)测试方法:等价类划分法:等价类划分方法将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试用例。边界值分析法:边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。大量的错误发生在输入范围的内部。比较测试:通常,可由二支软件开发队伍,根据相同的需求规格说明分别开发二个软件版本,然后,用相同的测试用例对二个版本的软件分别进行测试,比较二个版本软件的测试结果,如果测试结果相同,则可认为二个版本的软件都是正确的,如果测试结果不同,则要分析各个版本,以发现错误的所在。此测试称为比较测试。错误猜测:错误猜测是一种凭直觉和经验推测某些可能存在的错误,从而针对这些可能存在的错误设计测试用例的方法。因果图法:因果图方法是一种帮助人们系统地选择一组高效测试用例的方法,它既考虑了输入条件的组合关系,又考虑了输出条件对输入条件的依赖关系,即因果关系,其测试用例发现错误的效率比较高。决策表法:在所以黑盒测试方法中,基于决策表的测试是最为严格,最具有逻辑性的测试方法。13.白盒测试与黑盒测试最大的不同是什么?黑盒测试不考虑程序的内部结构和处理算法。(测试的任务不同)14.什么是手工测试?什么是自动化测试?二者各有何优缺点?手工测试(ManualTesting),顾名思义,即依靠人力来查找缺陷。一般采用黑盒测试方法,可用于集成测试、系统测试和验收测试中。优点:测试用例的设计中,经验和对错误的判断能力是难以替代的;界面和用户验收测试中人,审美观和心理体验难以替代;在正确性检查时,人们对是非的判断和逻辑推理能力是难以替代的。缺点:重复多、工作量大、易出错、覆盖面低、对于大型软件来说效率不够高。自动测试(AutomationTesting)则使用有针对的工具来测试(借助测试工具进行的)。它可以让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意义的测试设计等活动。如果采用自动比较技术,还可以自动完成测试用例执行结果的判断,从而避免人工比对存在的疏漏问题。设计良好的自动化测试,在某些情况下可以实现“夜间测试”和“无人测试”。优点:对程序的新版本运行己有的测试,即回归测试。可以运行更多更频繁的测试。可以进行一些手工测试难以完成或不可能完成的测试。充分地利用资源。测试具有一致性和可重复性。测试具有复用性。缩短软件发布的时间。增强软件的可靠性。1.记录业务流程并自动生成脚本程序2.精确测试3.生成大量虚拟用户4.监控软硬件系统5.模仿网络设备6.胜任人工无法完成的困难测试7.显示和分析测试结果缺点:不能取代手工测试。手工测试比自动测试发现的缺陷更多。对测试质量的依赖性极大。测试自动化不能提高有效性。测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。工具本身并无想象力。15.选用软件自动化测试工具的目的是什么?有哪些常见的自动化测试工具?(新添)目的:让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意义的测试设计等活动。常用自动化测试工具:RationalRobot,WinRunner,LoadRunner,QACenter,QuickTestProfessional,TestDirector,Jtest16.在白盒测试方法中,无论采用那种覆盖标准都不可能达到100%覆盖率。它们共同的目标是什么?用尽可能少的测试用例发现尽可能多的错误。17.什么是因果图法?它有哪些特点?因果图中有哪些约束?因果图法是一种帮助人们系统地选择一组高效测试用例的方法,它既考虑了输入条件的组合关系,又考虑了输出条件对输入条件的依赖关系,即因果关系,其测试用例发现错误的效率比较高。因果图方法的特点是:考虑输入条件的组合关系;考虑输出条件对输入条件的依赖关系,即因果关系;测试用例发现错误的效率高;能检查出功能说明中的某些不一致或遗漏。因果图中的约束:E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1I约束(或):a、b、c中至少有一个必须为1,即a、b、c不能同时为0。O约束(唯一):a和b必须有一个且仅有一个为1。R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。M约束(强制):若结果a为1,则结果b强制为0。18.按照开发阶段来分,软件测试分为哪些测试及其各自含义?单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块集成起来,主要对与设计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。19.单元测试的内容是什么?单元测试采用什么测试方法?内容:在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。测试方法:模块接口测试、模块局部数据结构测试、路径测试、错误处理测试、模块边界条件测试20.单元测试中设计测试用例的依据是什么?(新增)在做系统测测试的时候,依据的是需求说明书(SRS)在做集成测试的时候,依据的是概要设计说明书(HLD)在做单元测试的时候,依据的是详细设计说明书(LLD)21.系统测试有哪些任
本文标题:(答案整理)11《软件测试》复习
链接地址:https://www.777doc.com/doc-4307880 .html