软件测试测试原理.pptx

上传人:莉*** 文档编号:73627564 上传时间:2023-02-20 格式:PPTX 页数:70 大小:725.01KB
返回 下载 相关 举报
软件测试测试原理.pptx_第1页
第1页 / 共70页
软件测试测试原理.pptx_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《软件测试测试原理.pptx》由会员分享,可在线阅读,更多相关《软件测试测试原理.pptx(70页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2.12.1测试原则测试原则 两种测试原则两种测试原则从用户的角度出发从用户的角度出发希望通过软件测试能希望通过软件测试能充分暴露软件中存在充分暴露软件中存在的问题和缺陷的问题和缺陷从开发者的角度从开发者的角度出发出发希望测试能表明软件产品希望测试能表明软件产品不存在错误,已经正确地不存在错误,已经正确地实现了用户的需求实现了用户的需求第1页/共70页1 1所有的测试都应追溯到用户需求所有的测试都应追溯到用户需求2 2应当把应当把“尽早测试和不断地进行软尽早测试和不断地进行软件测试件测试”作为软件测试者的座右铭作为软件测试者的座右铭3 3ParetoPareto原则应用于软件测试原则应用于软件

2、测试4 4测试应从测试应从“小规模小规模”开始,逐步转开始,逐步转向向“大规模大规模”5 5穷举测试是不可能的穷举测试是不可能的6 6为了达到最佳效果,应该由独立的为了达到最佳效果,应该由独立的第三方来构造测试第三方来构造测试7 7不充分的测试是不负责任的,过分不充分的测试是不负责任的,过分的测试是一种资源的浪费,同样也是一的测试是一种资源的浪费,同样也是一种不负责任的表现种不负责任的表现测测试试原原则则第2页/共70页测试出口条件参考标准测试出口条件参考标准遗留缺陷数量低于遗留缺陷数量低于1010个,其中严重的缺陷少于个,其中严重的缺陷少于5 5个个测试用例的执行率为测试用例的执行率为100

3、%100%,通过率为,通过率为95%95%对于单元测试,关键模块的语句覆盖率为对于单元测试,关键模块的语句覆盖率为100%100%,判定覆盖率为判定覆盖率为85%85%第8页/共70页测试级别测试级别测测 试试 活活 动动测试类别测试类别测试测试的文的文档档基基础础测试责测试责任主体任主体测测 试试 重重 点点级别级别0 0结结构构化化检查检查静静态测试态测试各各类类文文档档检查检查小小组组各方面各方面级别级别1 1单单元元测试测试白盒白盒测试测试软软件件详细设计详细设计文文档档开开发发人人员员软软件件单单元元设计设计级别级别2 2配置配置项项集成集成测试测试白盒白盒测试测试软软件件概概要要设

4、计设计文文档档独独立立测试组测试组配置项设计配置项设计/构构架架级别级别3 3配置配置项资项资格格测试测试黑盒黑盒测试测试软软件需求件需求规规格格说说明明书书独独立立测试组测试组配置配置项项需求需求级别级别4 4集成集成测试测试白盒白盒测试测试系系统统的子系的子系统设计统设计文文档档独独立立测试组测试组系统设计系统设计/构架构架级别级别5 5系系统测试统测试黑盒黑盒测试测试系系统规统规格格说说明明书书独独立立测试组测试组系系统统需求需求级别级别6 6DT&EDT&E测试测试黑盒黑盒测试测试用用户户手手册册独独立立测试组测试组用用户户手手册册一致性一致性级别级别7 7OT&EOT&E测试测试黑盒

5、黑盒测试测试可操作性需求文可操作性需求文档档可操作性可操作性测试测试组组可操作性需求可操作性需求级别级别8 8外外场测试场测试黑盒黑盒测试测试交付交付计计划划(场场地配置)地配置)外外场场安装安装组组场场地需求地需求7.7.不充分的测试是不负责的,过分的测试是一种资源的浪费不充分的测试是不负责的,过分的测试是一种资源的浪费测试级别测试级别第10页/共70页2.2 2.2 软件测试的软件测试的分类分类第11页/共70页 2.2 2.2 软件测试的分软件测试的分类类 按测试阶段分类按测试阶段分类 按是否需要执行被测试软件分类按是否需要执行被测试软件分类 按是否需要查看代码分类按是否需要查看代码分类

6、 按测试执行时是否需要人工干预分类按测试执行时是否需要人工干预分类 其他测试类型其他测试类型第12页/共70页LOGO2.2.1 2.2.1 按测试阶段分类按测试阶段分类单元测试单元测试确认测试确认测试系统测试系统测试验收测试等验收测试等集成测试集成测试第13页/共70页定义 单元测试(Unit Testing)又称模块测试(Module Testing),是指对软件中的最小可测试单元进行测试,目的是检查每个单元是否能够正确实现详细设计说明中的功能、性能、接口和设计约束等要求,发现各个模块内部可能存在的各种缺陷。优点 减轻调试的难度 提供同时测试多个单元的可能 1.1.单元元测试第14页/共7

7、0页集成测试(Integration Testing)又称组装测试,是在单元测试的基础上,按照设计要求,将通过单元测试的单元组装成系统或子系统而进行的有序的测试,目的是检验不同程序单元或部件之间的接口关系是否符合概要设计的要求,能否正常运行。确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试检测与证实软件是否满足软件需求说明书中规定的要求。2.2.集成集成测试 3.3.确确认测试第15页/共70页系统测试(System Testing)是为了验证和确认系统 是否达到其原始目标,而对集成的硬件和软件系统进行的测试,是在真实或模拟系统运行的环境下,检查完整的程序系统是否

8、能和系统正确配置、连接,并满足用户需求。系统测试主要由黑盒测试工程师在整个系统集成好之后进行。前期主要看系统功能是否满足需求,这被称为功能测试。后期主要测试系统运行是否满足要求,以及系统在不同硬件和软件环境中的兼容性等,这被分别称为性能测试、兼容性测试、用户界面测试等。系统测试的主要依据是软件的需求规格说明文档。4.4.系系统测试第16页/共70页定义 验收测试(Acceptance Testing)又称接受测试,是一种正式的测试,是在系统测试后期,以用户测试为主,是一般由用户或其他权威机构来决定是否可以接受产品的验证性测试。验收测试是软件正式交付给用户使用的最后一个测试环节,并决定用户是否最

9、终验收签字和结清所有应付款。主要依据 软件需求规格说明文档和验收标准。测试用例 可以直接采用内部测试组所设计的系统测试用例的子集,也可由验收人员自行设计。5.5.验收收测试第17页/共70页验验收收测测试试 测试测试测试也称开发方测试,开发测试也称开发方测试,开发方通过检测和提供客观证据,方通过检测和提供客观证据,证明软件运行是否满足用户规证明软件运行是否满足用户规定的需求。定的需求。测试测试测试是内部测试之后的外部测试是内部测试之后的外部公开测试,是将软件完全交给公开测试,是将软件完全交给用户,让用户在实际使用环境用户,让用户在实际使用环境下进行的对产品预发布版本的下进行的对产品预发布版本的

10、测试。测试。第18页/共70页2.2.2 按是否执行被测软件分类一、静态测试二、动态测试第20页/共70页 一、静态测试定义定义 静态测试(静态测试(Static Testing)又称静态分析()又称静态分析(Static Analysis),是不实际运行被测软件,而是直接分析软件的形式和结),是不实际运行被测软件,而是直接分析软件的形式和结构,查找缺陷。构,查找缺陷。第21页/共70页静态测试(1 1)对于源代码)对于源代码 主要是看代码是否符合相应的标准和规主要是看代码是否符合相应的标准和规范,如可读性、可维护性等,其工作过程范,如可读性、可维护性等,其工作过程类似一个编译器,随着语法分析

11、的进行做类似一个编译器,随着语法分析的进行做特定工作,如分析模块调用图、程序的控特定工作,如分析模块调用图、程序的控制流图等图表,度量软件的代码质量等。制流图等图表,度量软件的代码质量等。(2 2)对于程序界面)对于程序界面(3 3)对于文档)对于文档 主要是检查用户手册与需求说明是否真主要是检查用户手册与需求说明是否真正符合用户的实际要求正符合用户的实际要求。第22页/共70页1.1.静态测试是采用走查、同行评审、会审静态测试是采用走查、同行评审、会审等方法来查找错误或收集所需度量数据的。等方法来查找错误或收集所需度量数据的。2.2.静态分析的查错和分析功能是其他方法静态分析的查错和分析功能

12、是其他方法所不能替代的,静态分析能发现文档中的所不能替代的,静态分析能发现文档中的问题(也只能通过静态测试发现),通过问题(也只能通过静态测试发现),通过文档中的问题或其他软件评审发现来找出文档中的问题或其他软件评审发现来找出需求分析、软件设计等问题,而且能有效需求分析、软件设计等问题,而且能有效地检查代码是否具有可读性、可维护性,地检查代码是否具有可读性、可维护性,是否遵守编程规范是否遵守编程规范。第23页/共70页main()main()int a10,i,j,tmp;int a10,i,j,tmp;for(i=0;i=10;i+)for(i=0;i=10;i+)scanf(%d,&ai)

13、;scanf(%d,&ai);for(i=0;i=10;i+)for(i=0;i=10;i+)for(j=i+1;j=10;j+)for(j=i+1;j=10;j+)if(ai aj)if(ai aj)ai=aj;ai=aj;for(i=0;i=10;i+)for(i=0;i=10;i+)printf(%d,ai);printf(%d,ai);无注释无注释无注释无注释书写格式不规范书写格式不规范书写格式不规范书写格式不规范tmptmp变量未使用变量未使用变量未使用变量未使用数组下标越界使用数组下标越界使用数组下标越界使用数组下标越界使用第24页/共70页 1:char*report(int m

14、,int n,char*p)2:3:int result;4:char*temp,*q=null;5:long nm;6:int i,k,kk;7:char name12=Joe Jakeson;8:nm=n*m;9:temp=p=?q:p;10:for(i=0;i0)result=1;17:else if(k0)result=-1;18:if(m=result)return(temp);19:else return(name);20:PC-LINTPC-LINT编译出现的警告:编译出现的警告:第第9 9行的逻辑判定有问题行的逻辑判定有问题第第1212行的变量行的变量k k没有初始化没有初始化

15、第第1313行的行的kkkk未被使用未被使用第第1818行的行的resultresult有可能没有可能没有被初始化有被初始化第第1919行返回的是一个局部行返回的是一个局部对象的地址对象的地址第25页/共70页树状视图树状视图定位违反编码规范的代码定位违反编码规范的代码使用使用LogiScope来检查代码的规范性:来检查代码的规范性:第26页/共70页使用使用LogiScope统计被测试程序的测试覆盖率:统计被测试程序的测试覆盖率:用例覆盖率情况用例覆盖率情况第27页/共70页使用使用LogiScope统计被测试程序的测试覆盖率:统计被测试程序的测试覆盖率:各函数覆盖情况各函数覆盖情况第28页

16、/共70页以流程图形式显示覆盖情况以流程图形式显示覆盖情况 使用使用LogiScope查看某函数的覆盖情况:查看某函数的覆盖情况:第29页/共70页 二、动态测试定义定义 动态测试(动态测试(Dynamic TestingDynamic Testing)又称动)又称动态分析(态分析(Dynamic AnalysisDynamic Analysis),是指需要实),是指需要实际运行被测软件,通过观察程序运行时所际运行被测软件,通过观察程序运行时所表现出来的状态、行为等发现软件缺陷,表现出来的状态、行为等发现软件缺陷,包括在程序运行时,通过有效的测试用例包括在程序运行时,通过有效的测试用例来分析被

17、测程序的运行情况或进行跟踪对来分析被测程序的运行情况或进行跟踪对比,发现程序所表现的行为与设计规格或比,发现程序所表现的行为与设计规格或客户需求不一致的地方。客户需求不一致的地方。第30页/共70页动态测试的局限性往往需要借助测试用例来完成。即通过执行往往需要借助测试用例来完成。即通过执行测试用例、分析测试用例来对被测软件重点测试用例、分析测试用例来对被测软件重点考查,以期发现缺陷。相比静态测试,动态考查,以期发现缺陷。相比静态测试,动态测试增加了测试用例的设计、执行和分析,测试增加了测试用例的设计、执行和分析,以及由测试用例所带来的用例组织与管理等以及由测试用例所带来的用例组织与管理等活动。

18、活动。需要搭建软件特定的运行环境,增加了有关需要搭建软件特定的运行环境,增加了有关测试环境的配置、维护和管理的工作量。测试环境的配置、维护和管理的工作量。不能发现文档问题,必须等程序代码完成后不能发现文档问题,必须等程序代码完成后进行,发现问题相对迟得多。进行,发现问题相对迟得多。第31页/共70页三静态测试与动态测试的比较 测试方法测试方法比较项目比较项目静态测试静态测试动态测试动态测试是否需要运行软件否是是否需要测试用例否是是否可以直接定位缺陷是否测试实施难易程度容易困难第32页/共70页 2.2.3 2.2.3 按是否需要查看按是否需要查看代码分类代码分类黑盒测试黑盒测试白盒测试白盒测试

19、灰盒测试灰盒测试第34页/共70页黑盒测试是将被测试软件看做一个黑盒子,只考虑系统的输入和输出,完全不考虑程序内部逻辑结构和处理过程。黑盒测试的依据是各阶段的规格说明书。黑盒测试又称功能性测试(Functional Testing)或数据驱动测试(Data-driven Testing)。黑黑盒盒测测试试第35页/共70页黑盒测试优点优点局限性局限性黑盒测试用例与程序如何实现无关黑盒测试用例与程序如何实现无关测试用例的设计与程序的开发可以测试用例的设计与程序的开发可以并行进行。并行进行。输入条件多、输入条件多、组合复杂、数据量组合复杂、数据量大,大,不可能做到穷举测试。不可能做到穷举测试。因只

20、选择部分输入构成测试用例,因只选择部分输入构成测试用例,黑盒测试是很有可能存在漏洞的。黑盒测试是很有可能存在漏洞的。第36页/共70页白盒测试是将黑盒子打开,研究源代码和程序内部的逻辑结构。白盒测试的依据是程序代码。白盒测试又称结构性测试(Structural Testing)或逻辑驱动测试(Logic-driven Testing)。白白盒盒测测试试第37页/共70页白盒测试白盒测试可以利用不同的覆盖准则测试多个分支白盒测试的覆盖指标可以充当黑盒测试的检查手段。例如,若采用黑盒方法设计的测试用例没有满足某些白盒测试覆盖指标(如判定覆盖)的要求,则证明该测试用例集合必然存在漏洞。代码中常存在内

21、存泄露的问题,尤其是C/C+程序,白盒测试可以方便地发现内存泄露的问题,且是直接定位缺陷,而黑盒测试只能通过长时间运行程序,并仔细地检查用例执行结果,才能发现这类问题。特特殊殊的的应应用用领领域域第38页/共70页白盒测试无法穷举:程序中的逻辑路径太多,常常要面对路径爆炸的问题。例如,有的代码可能不到100行,却具有520条可能的路径,若每条路径设计一个测试用例,且每个测试用例执行一次需要1ms,则连续执行所有的测试用例大约需要3170年。无法发现程序违反设计规范的地方,无法发现程序是否符合用户需求。局局限限性性第39页/共70页介于白盒测试和黑盒测试之间的测试。灰盒测试关注输出对于输入的正确

22、性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。灰灰盒盒测测试试第40页/共70页2.2.4 2.2.4 按测试执行时是否按测试执行时是否需要人工干预分类需要人工干预分类n手工测试n自动测试第42页/共70页手手动测试手动测试是完全由人工完手动测试是完全由人工完测试工作,包括测试计划测试工作,包括测试计划的制定,测试用例的设计的制定,测试用例的设计和执行,以及测试结果的和执行,以及测试结果的检查和分析等。传统的测检查和分析等。传统的测试工作都是由人工来完成试工作都是由人工来完成的。的。第43页/共7

23、0页自自动测试自动测试是使用自动化测试自动测试是使用自动化测试工具或自动化测试脚本来进工具或自动化测试脚本来进行的测试,包括测试脚本的行的测试,包括测试脚本的开发与执行等,以某种自动开发与执行等,以某种自动测试工具来验证测试需求。测试工具来验证测试需求。这类测试在执行过程中一般这类测试在执行过程中一般不需要人干预,通常在功能不需要人干预,通常在功能测试、回归测试和性能测试测试、回归测试和性能测试中使用较为广泛。中使用较为广泛。第44页/共70页自动测试优点优点 能够产生出可靠的系统能够产生出可靠的系统改进测试工作质量改进测试工作质量减少测试工作并缩短进度减少测试工作并缩短进度第45页/共70页

24、2.2.5 其他测试类型冒烟测试随机测试第46页/共70页冒烟测试定义在测试中发现问题,找到了一个缺陷,然后开发人员会来修复这个缺陷。这时想知道这次修复是否真的解决了程序的缺陷,或者是否会对其他模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为冒烟测试。优点是节省测试时间,防止创建失败;缺点是覆盖率还是比较低。冒烟测试是自由测试的一种。第47页/共70页随机测试定义 根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程 主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些

25、特殊情况点、特殊的使用环境、并发性进行检查。尤其对以前测试发现的重大缺陷,进行再次测试,可以结合回归测试一起进行。第48页/共70页2.3 软件测试的流程第49页/共70页按生命周期和工作活动来分:按生命周期和工作活动来分:需求评审设计评审单元测试集成测试功能测试系统测试验收测试测试计划测试设计测试脚本开发测试执行测试结果分析和报告第50页/共70页2.4 软件测试的过程模型第51页/共70页 2.4.2 W 模型模型 2.4.1 V 模型模型 2.4.4 X 模型模型 2.4.3 H 模型模型 四四种种模型模型第52页/共70页2.4.1 V 2.4.1 V 模型模型 V模型是软件开发传统开

26、发模型-瀑布模型的变种,它反映了测试活动与分析和设计的关系,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程中各阶段的对应关系。第53页/共70页V模型2.4.1 V 2.4.1 V 模型模型第54页/共70页2.4.1 V 2.4.1 V 模型模型 局限性:V模型仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。第57页/共70页2.4.2 W 2.4.2 W 模型模型 1W模型

27、建立 V模型的局限性在于没有明确地说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。在V模型中增加软件各开发阶段应同步进行的测试,被演化为一种W模型,因为实际上开发是“V”,测试也是与此相并行的“V”。第58页/共70页2.4.2 W 2.4.2 W 模型模型 2W模型应用 W模型是V模型自然而然的发展。它强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。可以说,测试与开发是同步进行的,从而有利于尽早地发现问题。因此,相对于V模型,W模型更科学。第59页/共70页2.4.2 W 2.4.2 W 模型模型第60页/共70页2.4.2 W 2.4

28、.2 W 模型模型 局限性:W模型也是有局限性的。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动。同样的,软件开发和测试保持一种线性的前后关系,需要有严格的指令表示上一阶段完全结束,才可正式开始下一阶段。这样就无法支持迭代、自发性以及变更调整。第61页/共70页 1H模型建立在V模型和W模型中需求、设计、编码等一系列活动是串行的,而事实上,它们是可以交叉进行的。因此,相应的测试之间也不存在严格的次序关系。同时,各层次间的测试也存在反复触发、迭代和增量关系。为了解决以上问题,有专家提出了H模型。它将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰

29、地体现出来。2.4.3 H 2.4.3 H 模型模型第62页/共70页H模型2.4.3 H 2.4.3 H 模型模型第63页/共70页2.4.3 H 2.4.3 H 模型模型H H模型揭示了:模型揭示了:软件测试不仅仅指测试的执行,还包括很多其他的活动;软件测试是根据被测物的不同而分层次进行的。不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。软件测试要尽早准备,尽早执行;软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行;第64页/共70页2.4.4 X 2.4.4 X 模型模型X模型第65页/共70页2.4.4 X 2.4.4 X 模型模型X模型提出探索性

30、测试,即无事先计划的测试,只是随便测一下,这样有助于有经验的测试人员在计划外发现更多的软件缺陷。第66页/共70页本本 章章 小小 结结1.介绍软件测试的一般原则、常见而重要的特殊测试类型、测试过程等内容。2.试图从非技术的角度,以一个管理人的视角来看待软件测试。3.主要目的是纠正对软件测试的一些误解,建立软件测试的思想,避免在实施软件测试的过程中犯低级错误。第67页/共70页习题1 只要学会某种时下流行的自动化测试工具的使用,就可以轻松搞定测试工作了吗?4 自动化测试工具可以让繁重的手工劳动变得轻松,那么,我们还有必要做手工测试吗?3 良好的单元测试是否可以替代集成测试?我们该如何应用各种测试过程模型5 阐述测试的七大原则。2第68页/共70页习题6 从测试阶段和工作活动两方面简单阐述下软件测试的流程。7 简单阐述W模型的优缺点及H模型的特点。第69页/共70页感谢您的观看!第70页/共70页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com