软件测试-原理-应用_第1页
软件测试-原理-应用_第2页
软件测试-原理-应用_第3页
软件测试-原理-应用_第4页
软件测试-原理-应用_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章软件测试基本概念,本章要点了解软件,Bug,用户需求,软件测试,测试环境掌握软件环境分类,测试用例概念学会使用测试用例模板与编写测试用例的注意事项,软件测试,程序测试,什么是软件,软件=程序+文档,测试,软件测试,硬件测试,程序测试,文档测试,软件的分类,功能划分系统软件应用软件技术架构划分C/S结构软件B/S结构软件按照用户划分产品软件项目软件规模划分小型中型大型,Bug,Bug-小虫子,Bug的由来,Bug的由来,Bug,说法指程序运行时出现的故障,Bug,BUG完全没有实现的功能:A,B,C-A,B基本实现用户需要的功能,但运行出现错误。实现用户不需要的功能是否时BUG的标准是否满足用户的需求,Bug,用户想要的-用户所说的-需求分析人员理解的-系统需求规格说明书-开发人员理解的-实际软件,Debug,CMM-BUG,经典Bug案例,经典Bug案例,经典Bug案例,经典Bug案例,什么是软件测试,SoftwareTestingTest-TESTUM(陶罐)-评估矿石的质量定义说法软件测试就是为了发现错误而执行程序或系统的过程,软件测试,标准定义使用人工或自动手段,运行或测试某个系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果与实际结果的差别。,测试环境,什么是测试环境测试环境=软件+硬件+网络,硬件,硬件,PC机,品牌机,兼容机,笔记本,服务器,PDA,手机,软件,软件,XP,Vista,Win7,Mac,Unix,Linux,网络,网络,局域网,10M,100M,互联网,3G网,Wifi,测试环境,怎样搭建测试环境真实项目软件产品软件干净无毒独立,测试用例,什么是测试用例TestCaseTC,在测试之前设计的一套详细的测试方案,测试环境,测试步骤,测试数据,测试结果测试用例=输入+输出+测试环境,测试用例,测试用例,4W,Why:为什么要写用例,When:什么时候写用例,Who:由谁来写用例,What:根据什么写测试用例,测试用例注意事项,为什么要团队交流重复测试跟踪统计用户自测什么时候写需求计划,测试计划完成后谁写测试人员依据需求分析,第二章:软件测试分类,本章要点了解黑盒测试和白盒测试的概念,静态测试、动态测试、单元测试的概念和应用,集成测试,系统测试,验收测试的概念掌握功能测试,性能测试的概念和应用,界面测试、易用性测试、安装测试、兼容性测试、回归测试、冒烟测试、随机测试的含义,按阶段,是否运行,是否查看源代码,其它,软件测试,单元测试,集成测试,系统测试,验收测试,静态测试,动态测试,白盒,黑盒,功能,性能,逻辑功能测试,界面测试,易用性测试,安装测试,兼容性测试,一般性能测试,稳定性测试,负载测试,压力测试,回归,冒烟,随机,黑盒测试z=xy?x:y;return(z);main()floata,b;intc;scanf(“%f,%f”,/*程序名称:求两个实数中的最大值作者:BillGates版本:V2.1创建日期:2010-9-21*/#includefloatMax(floatfVar1,floatfVar2)/返回两个实数中的最大值floatfMaxVar;fMaxVar=fVar1fVar2?fVar1:fVar2;return(fMaxVar);voidmain(void)floata;floatb;floatc;scanf(“%f,%f”,静态测试&动态测试,动态测试:实际运行被测试程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准是看是否运行程序。,静态测试&动态测试,静态测试,动态测试,黑盒测试,白盒测试之间的关系?-一个测试的不同分类角度而已。,其它重要测试,按测试阶段划分,单元测试,集成测试,系统测试,验收测试,什么是单元测试?,单元测试(unittesting):是指对软件中的最小可测试单元进行检查和验证。,单元:人为规定的最小的被测功能模块。,C语言:?,Java语言:?,图形界面:?,什么时候进行单元测试?,程序员编码之后,代码已经通过编译后进行单元测试。测试前期,还要撰写单元测试计划,编写单元测试用例。,由谁来进行单元测试?,白盒测试工程师或开发人员。若是开发人员来测试,最好做到交叉测试。避免即当裁判员,又到运动员。,单元测试的依据?,(1)源程序本身,代码+注释。(2)详细设计文档。,单元测试的通过标准?,(1)程序通过所有的单元测试的用例。(2)语句的覆盖率达到100%。(3)分支的覆盖率达到85%。,如何进行单元测试?,单元测试:主要用白盒测试,先静态的检查代码是否符合规范,然后动态的运行代码,检查其实际运行结果,以及程序的非法数据的容错性,程序的边界处理等。,单元测试的一般步骤?,(1)编译运行程序:查看能否正确运行。,(2)静态测试。,编码规范检查单,(3)动态测试。,测试用例,什么是集成测试?,集成测试(integrationtesting):是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。,集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。重点检测各个模块的接口部分,如函数之间的参数传递是否正确等。,什么时候进行集成测试?,理论上,集成测试在单元测试之后。但:效率太低。实际:单元测试和集成测试同步进行,在单元测试中先测试几个函数的功能,然后再集成测试一下这几个函数的接口(即参数传递)。,由谁来进行集成测试?,白盒测试工程师或开发人员。,集成测试的依据?,(1)单元测试模块。(2)概要设计文档。,什么是系统测试?,系统测试(systemtesting):是指将整个软件系统看做1个整体进行测试,包括对功能,性能,以及软件所运行的软硬件环境进行测试。,主要由黑盒测试工程师在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性。,系统测试的特点?,(1)系统测试需要花大量的时间和精力去完成,也是软件交付给用户进行验收测试的最后一道关口。(2)测试工作前松后紧,后期的系统测试的工作量是很大的。,系统测试的依据?,(1)系统需求规格说明书文档。,什么是验收测试?,验收测试(acceptancetesting):指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保证人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。,重要性:涉及到用户能否最终验收签字并付款。,软件项目运营?,(1):客户支付项目总经费的20%作为定金。用于支付软件项目前期的开发成本和效益。,(2):在项目的中期会有一个中期评审,客户通过中期评审来检查软件项目的进度和质量,通过中期评审,再付50%的经费。,(3):通过最后的验收测试,再支付最终的30%。,验收测试,验收测试,Alpha测试:由用户、测试人员、开发人员共同参与的内部测试。,Beta测试:内侧后的公测,即完全交给最终用户测试。,单元测试,集成测试,系统测试,验收测试,最小模块,模块间的接口,整个系统,整个系统,详细设计,概要设计,需求规格说明书,需求规格说明书,白盒测试工程师,或开发人员,白盒测试工程师,或开发人员,黑盒测试工程师,主要为用户,还可能有测试工程师,主要采用白盒,黑盒白盒结合,黑盒测试,黑盒测试,1,2,4,2,功能测试,黑盒测试,功能测试FunctionTest,性能测试PerformanceTest,检查实际软件的功能是否符合用户的需求。,逻辑功能测试。,界面测试。,易用性测试。,安装测试。,兼容性测试。,逻辑功能测试,题1:为Xp系统中的计算器程序的加法功能编写逻辑功能测试用例。,逻辑功能测试LogicFunctionTest,界面测试,界面测试UserInterfaceTest,界面测试窗口,窗口能否改变大小,移动,滚动,窗口是否能正确的被关闭,窗口中的数据能否用鼠标,功能键,方向键访问,窗口的声音和颜色是否符合需求,界面测试下拉菜单,下拉菜单能否正确工作,是否列出了所有菜单功能和下拉子菜单功能,是否可以通过鼠标访问所有菜单功能,文本,字体,大小是否合适,菜单功能的名字是否具有自解释性,界面测试检查重点,(1)普通文字居左,状态居中,数字金额居右。,(2)检查输入非法字段时,系统处理是否合理。,(3)按TAB键,界面输入框是否按排列自上而下,自左而右的顺序获得焦点。,(4)处理时间较长(=10S),应给出提示或进度条。,(5)退出系统时,应提示。,(6)在保存数据修改,删除等不可恢复性操作时,应明确提示用户是否进行该操作。,易用性测试,从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。,易用性测试UsabilityTest,易用性测试,易用性测试UsabilityTest,易理解性,易学性,易操作性,易用性测试,常用的功能有无快捷方式,友好的软件联机帮助,工具栏图标准确表达操作意图,反馈时间较长的操作显示进度条,功能相同或相近的操作划分到一个区域,软件出现问题,要提供技术支持联系方式,安装测试,检查软件能否正确的安装和卸载。,安装测试InstallationTest,安装测试,(1)典型安装,完全安装,自定义安装,检查安装步骤和界面,(2)突然中断安装,下次安装能否正确,(3)安装的时候磁盘空间不足,(4)能否安装一个软件的多个版本,(5)从程序组,控制面板卸载,检查信息是否被成功删除。,(6)卸载正在使用的程序,兼容性测试,硬件兼容性测试。,兼容性测试CompatibilityTest,软件兼容性测试。,单机版软件-兼容性测试,B/S版软件-兼容性测试,客户端,Internet,Web服务器,DB服务器,IISTomcatWebsphere,SQLSeverOracleSysbase,B/S版软件服务器端配置,B/S版软件客户0端配置,性能测试,性能测试PerformanceTest,时间性能,空间性能,性能测试,时间性能:主要指软件的一个具体事务的响应时间。,标准2/5/10,2S:非常有吸引力,5S:比较不错,10S:用户忍受的上限,性能测试,空间性能:软件运行时所消耗的系统资源。,性能测试,性能测试,一般性能测试,稳定性测试,负载测试,压力测试,一般性能测试,让被测系统在正常的软硬件环境下运行,不像其施加任何压力的性能测试。,一般性能测试,单机版:在推荐配置下运行软件,检查CPU的利用率,内存的占有率等性能指标以及软件主要事务的平均响应时间。,CS/BS结构:测试单个用户登录后,系统主要事务的响应时间和服务器的资源消耗情况。,稳定性测试ReliabilityTesting,连续运行被测系统,检查系统运行时的稳定程度。,稳定性测试,MTBF:错误发生的平均时间间隔(MeanTimeBetweenFailure)用来衡量系统的稳定性。该值越大越稳定。,采用24*7(24小时*7天)的方式让系统不间断运行,具体运行多长时间,视项目实际情况而定。,负载测试LoadTesting,让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。,负载测试,负载测试,稳定性测试都是连续运行被测系统,两者的差别在何处?,作用:为我们测试系统在临界状态下运行是否稳定提供了一种方法。,压力测试StressTesting,持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。,几种性能测试的比较,回归测试RegressionTesting,对软件的新的版本进行测试时,重复执行上一个版本测试时的用例。,回归测试可以在任何阶段进行,既有黑盒测试的回归,也有白盒测试的回归。,冒烟测试SmokeTesting,是指在一对一个新版本进行系统大规模的测试之前,先验证一下这个软件的基本功能是否实现,是否具备可测性。,冒烟测试名字的由来同电路板测试有关。,测试小组在正规测试一个新版本之前,先指派一两个测试人员测试一下软件的主要功能,如果没有实现的话,则打回开发组重新开发。节省大量的时间成本和人力成本。,随机测试(猴子测试MonkeyTesting),是指测试中所有的输入数据都是随机产生的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。,第三章:软件测试常识,公司里测试部门的组织结构,测试Vs开发,中国,国外,1:91:15,微软:1.5:1,Borland:1:1,公司里测试部门的组织结构,欧美软件项目,公司里测试部门的组织结构,比尔盖茨:“人们都说我们是世界上最大的软件开发公司,其实我们更是世界上最大的软件测试公司。”,(1)小公司,(2)大公司,(3)测试外包公司,软件测试工程师所需的素质,三心二意一能力,三心,二意,一能力,细心,耐心,信心,服务意识,团队意识,沟通能力,软件测试工程师所需的素质,技术能力,黑盒工程师,搭建黑盒测试环境,掌握黑盒测试技术,白盒工程师,阅读代码,测试工程师,项目经理,测试经理,开发人员,客户,优秀测试工程师,大侠,高人指点,内功心法,武术招式,江湖阅历,优秀测试工程师,测试高手,名师指点,基础知识,测试技术,项目经验,软件测试工程师所需的素质,(1)不断学习充电。-与时俱进。,(2)阅读原版书籍。,(3)阅读缺陷报告。-前车之鉴,后事之师。,(4)阅读高手写的测试用例。-站在巨人的肩膀上会看的更远。,(5)学习产品相关的业务知识。,什么是SQA?,SQA(SoftwareQualityAssurance软件质量保证):为确保开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。,餐厅和项目组,餐厅,老板,当班经理,主厨,厨师,检验员,监督员,餐厅和项目组,项目组,老板,项目经理,系统架构师,程序员,测试员,SQA,SQA的定位?,SQA是独立于项目组之外的第三方监督机构,理论上,他的权力与项目经理平行,监督整个项目的管理,需求分析,设计,编码,测试与维护等软件工程的各个环节。,SQA要做的工作,(1)通过监控软件开发过程来保证产品质量。,(2)保证开发出来的软件和软件开发过程符合相应标准与规程。(ISO9000,CMM),(3)保证软件产品,软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者。,(4)确保项目组制定的计划、标准和规程适合项目组需要,同时满足评审和审计需要。,CMM?,CMM(CapabilityMaturityModel能力成熟度模型),是由卡耐基-梅隆大学与20时机80年代制定的。CMM就是SQA用来监督项目的一个标准质量模型,SQA按照CMM上面各种规则来检验各种各样的项目。CMM共分为5级。,说明:质量模型不止一种,98年以前ISO9000比较火,2000以后,CMM比较受欢迎。,软件测试的一些基本原则,ZeroBug与GoodEnough,ZeroBug,没有任何Bug,GoodEnough,软件达到一定质量要求,就可以停止测试了。,软件测试的一些基本原则,ZeroBug与GoodEnough,GoodEnough,权衡投入/产出比原则。不充分的测试不负责任过分的测试资源的浪费,软件测试的一些基本原则,GoodEnough通过标准,(1)遗留Bug在10个以下,严重的Bug在5个以下。,(2)测试用例的执行率为100%,通过率为95%。,(3)单元测试中,关键模块的语句覆盖率要达到100%,分支覆盖率要达到85%。,软件测试的一些基本原则,不要试图穷举测试。,测试时考虑所有可能的输入值。-太耗费时间。,在测试用例上下功夫,用最少的测试用例达到最大的覆盖率。,软件测试的一些基本原则,开发人员不能既是运动员又是裁判员,测试应该由独立的第三方机构来完成。,软件测试的一些基本原则,软件测试要尽早执行,(1)实践证明:需求分析阶段引入的缺陷是最多的,修复成本确是最低的。,(2)测试需求说明是否真正符合用户的需要,测试设计是否严格按照需求说明的要求。可以减少后期测试和维护的工作量。,软件测试的一些基本原则,软件测试要尽早执行,软件测试要追溯需求,原始要求,正确的规格说明书,错误的规格说明书,正确的设计,错误的设计,对错误的说明的设计,正确的编码,错误的编码,对错误设计编码,对错误说明编码,正确功能,可改正错误,不开改正错误,潜伏的错误,软件测试的一些基本原则,缺陷的二八定理,一般情况下,软件80%的缺陷集中在20%的模块中,测试的时候抓住主要矛盾。重点测试。-缺陷的集群现象或是虫子窝现象。,软件测试的一些基本原则,缺陷具有免疫性,程序员在修改完缺陷,把新版本提交给测试人员进行回归测试,测试用例依然用相同的,效果会大大折扣。-测试人员根据新版本的特点,修改维护测试用例。,每修复34个缺陷,一般就会产生一个新的缺陷,所以要充分注意修改错误所产生的影响和波及效果。,黑盒测试,要点,等价技术边界值技术因果图技术业务流程图技术,(1)等价类技术(EquivalenceClassTesting),等价类划分是一种黑盒测试技术,它不考虑程序的内部结构,只是根据软件的需求说明来对输入的范围进行细分,然后再从分出来的每一个区域内选取一个代表性的测试数据。如果等价类划分的好,这个代表性的测试数据的作用就等价于其区域内的其它值。,等价类:是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。,(1)等价类技术,等价类,有效等价类,无效等价类,合理的输入数据集合,无意义的输入数据集合,(1)等价类技术,题1:有一个C语言程序,其功能为计算两个1100之间(包括1和100)的整数的和。请构建其等价类划分。,(1)等价类技术,100的整数(如400,107等),无效等价类1,有效等价类2,无效等价类3,(1)等价类技术,加数,数值,非数值,整数,100整数-3,小数-4,字母-5,特殊字符-6,空格-7,空白-8,(1)等价类技术,(1)等价类技术,(1)先考虑输入数据的数据类型。-合法类型&非法类型。,(2)合法类型中的合法区间和非法区间。,(3)画出示意图,区分等价类。,(4)为每一个等价类编号。,(5)从一个等价类中选举一个测试数据构造测试用例。,(2)边界值技术(BoundaryValueTesting),“错误隐含在角落”,大量的测试实践经验表明,边界值是最容易出现错误的地方,也是我们测试的重点。,测试边界值时,一般测试边界值和正好超出边界值一个单位的值。,(2)边界值技术,(3)因果图法,所谓原因,指的就是输入;所谓结果,指的就是输出。因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。,(3)因果图法,题2:某奖金计算软件完成如下功能:(1)该软件可以计算某公司的年终奖,该公司员工分为普通员工和管理人员。(2)员工表现分为普通,优秀和特殊贡献奖。(普通员工和优秀员工都可以有特殊贡献,普通员工和管理人员表现相同,但工资是不同的)。(3)根据员工的分类和表现,将奖金分为1类奖金,2类奖金,3类奖金。输入员工类型和表现,就会输出相应的奖金类别。编写测试用例?,(3)因果图法,员工类别,普通员工A1,管理人员A2,表现类别,普通B1,优秀B2,特殊贡献B3,奖金类别,1类奖金C1,2类奖金C2,(3)因果图法,(3)因果图法,(1)找出所有输入条件和输出条件,并编号,(2)分析输入条件之间的关系,是互斥还是可以同时满足。,(3)画出输入条件的排列组合情况。,(4)编写测试用例。,(3)因果图法,应用场合:当软件的输入条件较多的时候,可以考率用因果图法来设计测试用例。考虑输入的所有排列组合情况,防止遗漏。,因果图的局限性:假如有n个条件。每个条件有真或假两种取值,理论上就有2的n此方种排列组合。大大增加了测试用例的个数,不便于维护。,(4)流程图法,在编程的时候我们要画算法流程图,将这一思想应用到黑盒测试领域。黑盒测试的流程图针对整个系统业务功能流程的。,(4)流程图法,(1)详细了解需求。,(2)根据需求说明或界面原型,找出业务流程的各个页面以及流转关系。,(3)画出业务流图,或路径图。,(4)编写测试用例,覆盖所有的路径分支。,(4)流程图法,题3:画出淘宝网站购物业务流程,并依据此业务流程编写测试用例,进行测试?,购物模块业务流程图,登录,查询商品,选择商品,网上付款,出货,退出,身份验证,(5)综合,在实际测试中,我们往往需要综合各种测试技术?,我们首先应用流程图法画出被测软件的总体业务流程,然后针对具体某个页面或是模块,再应用等价类的思想来划分输入范围(重点测试边界值),如果涉及多个输入条件的组合情况,在应用因果图法来考虑所有情况的排列组合。,题4:计算三角形面积程序功能:输入三个整数A,BC,输出以ABC为边的三角形的面积(ABC在【1,100】之间),结果保留两位小数。编写测试用例。,第五章缺陷管理,Bug的分类,按严重程度划分,系统崩溃,严重,一般,次要,建议,一般的缺陷管理工具会自动给出一个默认的Bug严重程度划分。,按严重程度划分:是指Bug对软件质量的破坏程度,即此Bug的存在将对软件的功能和性能产生什么样的影响。,Bug的分类,按优先级划分,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论