您好,欢迎访问三七文档
1.简述软件测试的定义及测试的意义定义:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。从软件质量保证的角度看:软件测试是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。测试过程中的活动包括“分析”软件(静态测试)和“运行”软件(动态测试)。也有人认为软件测试(softwaretesting)就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。意义:测试是想以最少的时间和人力,系统地找出软件中潜在的各种缺陷,通过修正缺陷提高软件质量,回避软件发布后由于潜在缺陷造成的隐患所带来的商业风险;测试的附带收获是,它能够证明软件的功能和性能是否与需求说明书相符合;实施测试收集到的测试结果数据为可靠性分析提供了依据;测试不能表明软件中不存在错误,它只能说明软件中存在错误。2.为何说软件缺陷最大来源是软件需求说明软件缺陷:存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,Bug是口语化的缺陷。缺陷在没有被激活的状态下,软件可以正常运行,但是一旦在某一触发条件下,缺陷被激活,软件内部就会出现故障。3.简述软件测试的重要原则或策略原则:尽早地和不断地进行软件测试不可能完全的测试:一、不可能测试程序对所有可能输入的响应。二、不可能测试到程序每一条可能的执行路径三、无法找出所有的设计错误四、不能采用逻辑来证明程序的正确性增量测试,由小到大避免测试自己的程序设计周密的测试用例策略:软件测试的策略:就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、确认测试、系统测试以及验收测试软件测试技术:(1)白盒测试和黑盒测试(2)静态测试和动态测试(3)传统测试方法和面向对象测试的方法(4)特定环境及应用的测试4.简要描述软件测试过程制定测试计划1、制定计划(1)概要测试计划(2)详细测试计划2、测试大纲(用例)测试大纲是软件测试的依据,包括测试项目、测试步骤、测试完成的标准。3、软件测试报告软件测试报告是软件测试过程中最重要的文档测试执行过程1.测试执行过程的三个阶段(1)初测期——测试主要功能和关键的执行路径,排除主要障碍。(2)细测期——依据测试计划和测试大纲、测试用例,逐一测试大大小小的功能、方方面面的特性、性能、用户界面、兼容性、可用性等等;预期可发现大量不同性质、不同严重程度的错误和问题。(3)回归测试期——系统已达到稳定,在一轮测试中发现的错误已十分有限;复查已知错误的纠正情况,确认未引发任何新的错误时,终结回归测试。2.集成测试过程中的两个重要里程碑在集成测试过程中的两个重要的里程碑是功能冻结和代码冻结的确定。这两个里程碑界定出回归测试期的起止界限。5.软件测试的目的,原则目的:测试是想以最少的时间和人力,系统地找出软件中潜在的各种缺陷,通过修正缺陷提高软件质量,回避软件发布后由于潜在缺陷造成的隐患所带来的商业风险;测试的附带收获是,它能够证明软件的功能和性能是否与需求说明书相符合;实施测试收集到的测试结果数据为可靠性分析提供了依据;测试不能表明软件中不存在错误,它只能说明软件中存在错误。原则:尽早地和不断地进行软件测试不可能完全的测试:一、不可能测试程序对所有可能输入的响应。二、不可能测试到程序每一条可能的执行路径三、无法找出所有的设计错误四、不能采用逻辑来证明程序的正确性增量测试,由小到大避免测试自己的程序设计周密的测试用例6.对软件复杂性进行归纳分析1、无法对程序进行完全测试(1)测试所需要的输入量太大(2)测试的输出结果太多(3)软件实现的途径太多(4)软件规格说明没有一个客观标准2、测试无法显示潜在的软件缺陷和故障——通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。3、存在的故障现象与发现的故障数量成正比——结论:应当对故障集中的程序段进行重点测试4、不能修复所有的软件故障——原因:没有足够的能力进行修复;修复的风险较大;不值得修复;可不算做故障的一些缺陷;“杀虫剂现象”。——结论:关键是要进行正确的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复。5、软件测试的代价——工作原则:就是如何将无边无际的可能性减小到一个可以控制的范围,以及如何针对软件风险做出恰当选择,去粗存精,找到最佳的测试量,使得测试工作量不多也不少,既能达到测试的目的,又能较为经济。7.各种测试各种测试的说明:单元测试:单元测试是基于程序模块进行正确性验证的测试。集成测试:集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。确认测试:确认测试是检验所开发的软件是否能按顾客提出的要求运行。系统测试:系统测试是将被测的软件作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素结合在一起,在实际的环境中,对计算机系统进行一系列的测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。系统测试主要包括:恢复测试(恢复测试是要采取各种人工干预方式使软件出错,而不能正常工作,进而检验系统的恢复能力)、安全测试、强度测试(压力测试)、性能测试,强度和性能测试往往结合起来进行。验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。8.归纳集成测试的两种不同测试方法非增量式测试非增量式测试是采用一步到位的方法来构造测试:——对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。实例采用非增量式测试方法进行集成测试非增量式测试的缺点:——当一次集成的模块较多时,非增量式测试容易出现混乱,因为测试时可能发现了许多故障,为每一个故障定位和纠正非常困难,并且在修正一个故障的同时,可能又引入了新的故障,新旧故障混杂,很难判定出错的具体原因和位置。增量式测试增量式测试的集成是逐步实现的:——逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。按照不同的实施次序,增量式集成测试又可以分为三种不同的方法:(1)自顶向下增量式测试(2)自底向上增量式测试(3)混合增量式测试9.归纳确认测试的准则确认测试的准则确认测试也称为合格性测试,是检验所开发的软件是否能按用户提出的要求进行。软件确认要通过一系列证明软件功能和要求一致的黑盒测试来完成。经过确认测试,应该为已开发的软件给出结论性评价:(1)经过检验的软件的功能、性能及其他要求均已满足需求规格说明书的规定,则可被认为是合格的软件。(2)经过检验发现与需求说明书有相当的偏离,得到一个各项缺陷清单。10.系统测试的内容包含哪些?写出每一种测试的要点系统测试:系统测试是将被测的软件作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素结合在一起,在实际的环境中,对计算机系统进行一系列的测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。系统测试主要包括:恢复测试(恢复测试是要采取各种人工干预方式使软件出错,而不能正常工作,进而检验系统的恢复能力)、安全测试、强度测试(压力测试)、性能测试,强度和性能测试往往结合起来进行。常见测试方法:(1)恢复测试-检查系统的容错能力。(2)安全测试-检查系统对外界非法入侵的防范能力。(3)强度测试,也称压力测试、负载测试。检测非正常的情况下系统的负载能力。(4)性能测试:用来测试系统在运行时的表现。(5)容量测试:是指在系统正常运行的范围内确定系统能够处理的数据容量。(6)正确性测试:是为了检测软件的各项功能是否符合产品规格说明的要求。(7)可靠性测试:检验系统的可靠性。(8)兼容性测试:11.软件测试策略包含哪些特征软件测试策略包含的特征:※※※(1)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。(2)不同的测试技术适用于不同的时间点。(3)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。(4)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。12.软件测试包含哪些阶段,侧重点,含义(不确定)单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标。集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。13.正确理解黑盒测试方法的概念,并进行总结归纳黑盒测试被称为功能测试或数据驱动测试。在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上,进行:(1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。(2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性。(3)检测程序初始化和终止方面的错误。14.简述白盒测试用例的设计方法,并进行分析总结白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有:逻辑覆盖法(逻辑驱动测试):是以程序内部的逻辑结构为基础设计测试用例的方法。根据对程序内部的逻辑结构的覆盖程度,逻辑覆盖法具有不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定—条件覆盖、条件组合覆盖等基本路径测试方法:如果把覆盖的路径数压缩到一定限度内,例如程序中的循环体只执行零次和一次,就称为基路径测试。15.简述客户/服务器体系结构应用系统的测试特点及主要内容C/S体系结构的软件测试通常是从单个客户端开始,然后再逐步集成客户端、服务器和网络系统进行集成测试,最后进行系统的整体测试。(1)客户端的独立测试对客户端的测试主要是属于功能性测试。用户客户端应用以“分离的”模式被测试,即这层测试不考虑服务器和底层网络的运行。通常包括:客户端的测试——检测客户端的业务逻辑流程的应用(2)客户端与服务器端的集成测试客户端软件和关联的服务器端应用作一体测试,但并不过多考虑网络运行的关联因素。对服务器的测试——主要是性能的测试。测试包含服务器的协调和数据管理功能以及服务器的性能(整体响应时间和数据的吞吐量)的表现。通常包括:数据库测试-一致性错误,输出的错误连接速度测试-速度太慢,引起数据丢失。负载测试-为了测量C/S系统在某一负载级别上的性能,以保证系统在需求范围内能够正常工作。压力测试-通常是指对Web应用系统负载能力极限的测试。系统限制和故障恢复信息页面的传输能力。对应用服务器(中间件)的测试(3)整体测试对完整的C/S体系结构整体测试,在上述功能测试和性能测试的基础上,还包括网络运行及其性能的测试。整体测试通常包括以下测试项目:事务测试——创建一系列的测试以保证每类事务被按照需求处理。事务测试着重于处理的正确性,同时也关注性能问题。网络通信测试——用于验证网络节点间的通信是否正常的发生,并且消息传递、事务和相关的网络通信有无错误的发生。1
本文标题:软件测试复习简答
链接地址:https://www.777doc.com/doc-1991467 .html