《软件测试方法和技术第三总复习.pptx》由会员分享,可在线阅读,更多相关《软件测试方法和技术第三总复习.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、主要内容主要内容CH1 软件测试概述软件测试概述CH2 黑盒测试CH3 白盒测试CH4 集成测试CH5系统测试CH6软件测试自动化基础第1页/共41页CH1 软件测试概述软件测试概述软件测试的目的和意义软件测试的过程软件测试与软件开发的关系第2页/共41页软件测试的定义:软件测试的定义:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。简单地说,软件测试是“探测”,在“探测”中发现软件的毛病。CH1 软件测试概述第3页/共41页CH1
2、软件测试概述软件测试概述软件测试的目的和意义 以最少的时间和人力,以最少的时间和人力,系统地找出软件中潜在的各种错误系统地找出软件中潜在的各种错误和缺陷和缺陷。如果我们成功地实施了测试,我们就能够发现软件。如果我们成功地实施了测试,我们就能够发现软件中的错误。中的错误。测试的附带收获是,它测试的附带收获是,它能够证明软件的功能和性能与需求能够证明软件的功能和性能与需求说明相符合说明相符合。实施测试收集到的测试结果数据为可靠性分析提供了依据。实施测试收集到的测试结果数据为可靠性分析提供了依据。第4页/共41页CH1 软件测试概述软件测试概述软件测试的过程模块中有无故障(1)可以发现很多软件故障(
3、2)修改成本较低发现与接口有关的模块之间的问题增量式集成测试法是否满足软件需求结论性评价证明系统性能独立的测试机构向用户表明系统可以像用户预的那样工作第5页/共41页CH1 软件测试概述软件测试概述软件测试与软件开发的关系1.软件测试过程V模型第6页/共41页CH1 软件测试概述软件测试概述2.软件测试过程W模型第7页/共41页CH1 软件测试概述软件测试概述软件测试环境的搭建 测试环境是指用来运行软件的环境。测试环境硬件软件网络数据准备测试工具测试环境硬件软件网络数据准备测试工具搭建软件测试环境还应注意以下几点:尽量模拟用户的真实使用环境;测试环境中尽量不要安装其它与被测软件无关的软件,但最
4、好安装杀毒软件,以确保系统没有病毒;测试环境应与开发环境独立第8页/共41页CH2 黑盒测试黑盒测试黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。基本观点:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。只关心软件的输入数据和输出结果。第9页/共41页CH2 黑盒测试黑盒测试黑盒测试两个显著的优点:黑盒测试与软件具体实现无关,所以如果软件实现发生了变化,测试用例仍然可以使用;设计黑盒测试用例可以和软件实现同时进行,因此可以压缩项目总的开发时间。第10页/共41页C
5、H2 黑盒测试黑盒测试(1)等价类划分方法输入域的某个互不相交的子集合,所有等价类的并便是整个整个输入域。划分等价类划分等价类+测试用例设计测试用例设计无冗余性完备性第11页/共41页CH2 黑盒测试黑盒测试第一步第二步第三步1.形成等价类表2.每一等价类规定一个唯一的编号1.设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类;2.重复这一步骤,直到所有有效等价类均被测试用例所覆盖1.设计一新测试用例,使其只覆盖一个无效等价类2.重复这一步骤直到所有无效等价类均被覆盖;第12页/共41页CH2 黑盒测试黑盒测试第13页/共41页CH2 黑盒测试黑盒测试第14页/共41页CH2 黑盒测试黑盒
6、测试第15页/共41页CH2 黑盒测试黑盒测试(2)边界值分析法在等价类划分基础上进行边界值分析测试等价类划分基础上进行边界值分析测试的基本思想是,选取正好等于、刚刚大于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。第16页/共41页CH2 黑盒测试黑盒测试(3)判定表法 判定表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。第17页/共41页CH2 黑盒测试黑盒测试 条件桩 条件项 动作桩 动作项规则任何一个条件组合的
7、特定取值及其相应要执行的操作称为一条规则第18页/共41页CH2 黑盒测试黑盒测试构造判定表可采用以下5个步骤:(1)列出所有的条件桩和动作桩。(2)确定规则的个数。(3)填入条件项。(4)填入动作项,得到初始判定表。(5)简化判定表,合并相似规则。第19页/共41页CH3 白盒测试白盒测试白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。第20页/共41页CH3 白盒测试白盒测试(1)逻辑驱动测试为了衡量测试的覆盖程度,需要建立一些标准,目前常用的一些覆盖标准从低到高分别是:语句覆盖:每个语句至少都能被执行一次.判定覆盖(分支覆盖):每一个分支至少都
8、通过一次。条件覆盖:每个判断的每个条件的每个可能取值至少执行一次;判定/条件覆盖:每个条件取到各种可能的值,并使每个判定取到各种可能的结果。条件组合覆盖:每个判定中条件的各种可能组合都至少出现一次。第21页/共41页CH3 白盒测试白盒测试条件组合覆盖准则分支条件覆盖准则分支覆盖准则条件覆盖准则语句覆盖准则第22页/共41页CH3 白盒测试白盒测试第23页/共41页CH3 白盒测试白盒测试(2)基本路径测试在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤和一个工具方法:1.程序的控制流图控制流图:描述程序控制流的一种图示方法。2.
9、程序圈复杂度:从程序的环路复杂性可导出程序基本路径集合中的独立路独立路径径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。3.导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。4.准备测试用例:确保基本路径集中的每一条路径的执行。工具方法:图形矩阵第24页/共41页CH3 白盒测试白盒测试流图只有二种图形符号图中的每一个圆称为流图的结点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流。在将程序流程图简化成控制流图时,应注意:在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区
10、域。如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND)连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。独立路径:至少沿一条新的边移动的路径第25页/共41页 void Sort(int iRecordNum,int iType)1 2 int x=0;3 int y=0;4 while(iRecordNum-0)5 6if(iType=0)7 x=y+2;8 else9 if(iType=1)10 x=y+10;11 else12 x=y+20;13 14 CH3 白盒测试白盒测试第26页/共41页程序流程图和对应的控制流图如下:程序流程图和对应的控制流图如下:第27
11、页/共41页CH4 集成测试集成测试集成测试:假定各个软件单元已经通过了单元测试的前提下,检查各个软件单元之间的相互接口是否正确。第28页/共41页CH4 集成测试集成测试集成策略非渐增式集成渐增式集成自顶向下、自底向上、三明治第29页/共41页CH4 集成测试集成测试自顶向下自顶向下优点:在测试过程早期,对主要的控制点或判决点进行检验。如果主要控制点有问题,早点认识到这个问题就变得很重要。如果选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能,功能可行性较早得到证实,能够给开发者和用户带来成功的信心。缺点:在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能
12、及时回送到上层模块,因此测试并不充分 第30页/共41页CH4 集成测试集成测试自底向上自底向上优点:由于驱动模块模拟了所有调用参数,测试模块返回结果不影响驱动模块,生成测试数据也没有困难。如果关键模块是在结构图的底部,自底向上的测试是有优越性的。另外自底向上的组装测试不必开发桩模块。缺点:当最后一个模块尚未测试时,还没有呈现出被测软件系统的雏形第31页/共41页CH5 系统测试系统测试性能测试:检验软件是否达到需求规格说明书中规定的各类性能指标,并满足一些性能相关的约束和限制条件。评估系统的能力。识别系统中的弱点。系统调优。第32页/共41页压力测试:是指模拟巨大的工作负荷,以查看系统在峰值
13、使用情况下是否可以正常运行通过增加系统负载来测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态反常的方式,找出性能瓶颈,本质:破坏程序第33页/共41页压力测试与性能测试的联系与区别:压力测试是用来保证产品发布后系统能否满足用户需求,关注的重点是系统整体;性能测试可以发生在各个测试阶段,即使是在单元层,一个单独模块的性能也可以进行评估。压力测试是通过确定一个系统的瓶颈,来获得系统能提供的最大服务级别的测试。性能测试是检测系统在一定负荷下的表现,是正常能力的表现;而压力测试是极端情况下的系统能力的表现。第34页/共41页容量测试:采用特定的手段测试系统能够承载处理任务的极限值所从
14、事的测试工作。容量测试往往应用于数据库方面的测试数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。第35页/共41页容量测试与压力测试的区别与容量测试十分相近的概念是压力测试。二者都是检测系统在特定情况下,能够承担的极限值。然而两者的侧重点有所不同,压力测试主要是使系统承受速度方面的超额负载,例如一个短时间之内的吞吐量。容量测试关注的是数据方面的承受能力,并且它的目的是显示系统可以处理的数据容量。第36页/共41页自动化测试的定义自动化测试的定义 自动化测试就是使用软件工具来代替手工进行的一系列动
15、作。它自动化测试就是使用软件工具来代替手工进行的一系列动作。它具有良好的可操作性、可重复性和高效率等特点。具有良好的可操作性、可重复性和高效率等特点。自动化测试的目的是减轻手工测试的工作量,以达到节约资源自动化测试的目的是减轻手工测试的工作量,以达到节约资源(包括人力、物力等),保证软件质量,缩短测试周期的效果。(包括人力、物力等),保证软件质量,缩短测试周期的效果。通常是使用脚本或者其他代码驱动应用程序。这一切可以通过可通常是使用脚本或者其他代码驱动应用程序。这一切可以通过可视用户界面(如浏览器)完成,也可以通过直接命令(从客户端视用户界面(如浏览器)完成,也可以通过直接命令(从客户端发向服
16、务器,以模仿浏览器发送的命令)完成自动化测试。发向服务器,以模仿浏览器发送的命令)完成自动化测试。自动化测试大都属于回归测试的范畴。自动化测试大都属于回归测试的范畴。CH6软件测试自动化基础软件测试自动化基础第37页/共41页自动化测试优点自动化测试优点 提高测试效率提高测试效率 降低对软件新版本进行回归测试的开销降低对软件新版本进行回归测试的开销 完成手工测试不能或难以完成的测试完成手工测试不能或难以完成的测试 具有一致性和可重复性具有一致性和可重复性 更好地利用资源更好地利用资源 降低风险,增加软件信任度降低风险,增加软件信任度 CH6软件测试自动化基础软件测试自动化基础第38页/共41页自动化测试的局限性自动化测试的局限性 不能完全取代手工测试和手工测试工程师不能完全取代手工测试和手工测试工程师 软件自动化测试可能降低测试的效率软件自动化测试可能降低测试的效率 测试人员期望自动测试发现大量的新错误测试人员期望自动测试发现大量的新错误 如果缺乏测试经验,测试的组织差、文档少或如果缺乏测试经验,测试的组织差、文档少或不一致,则自动测试的效果比较差不一致,则自动测试的效果比较差 软件自动化测试工具本身的问题软件自动化测试工具本身的问题 CH6软件测试自动化基础软件测试自动化基础第39页/共41页第40页/共41页感谢您的观看!第41页/共41页