软件测试基础

上传人:大米 文档编号:568743820 上传时间:2024-07-26 格式:PPT 页数:43 大小:5.05MB
返回 下载 相关 举报
软件测试基础_第1页
第1页 / 共43页
软件测试基础_第2页
第2页 / 共43页
软件测试基础_第3页
第3页 / 共43页
软件测试基础_第4页
第4页 / 共43页
软件测试基础_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《软件测试基础》由会员分享,可在线阅读,更多相关《软件测试基础(43页珍藏版)》请在金锄头文库上搜索。

1、 2013, All Rights Reserved. Dilato Infotech Limited.软件测试技术Aug.2015 2013, All Rights Reserved. Dilato Infotech Limited.Agenda软件测试的概念和分类黑盒测试技术测试用例的设计和实施缺陷(Bug)管理软件测试的生命周期软件测试常识 2013, All Rights Reserved. Dilato Infotech Limited.什么是软件测试使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试需要严谨

2、和一丝不苟的精神。 2013, All Rights Reserved. Dilato Infotech Limited.什么是测试用例评价测试人员的标准主要有两个,即发现的有效Bug数和编写的有效测试用例数。测试用例:英文为Test Case,缩写为TC。指的是在测试执行之前设计的一套详细的测试方案,包括测试环境,测试步骤,测试数据和预期结果。测试用例 = 输入 + 输出 + 测试环境 2013, All Rights Reserved. Dilato Infotech Limited.Tips测试用例模板Bug 模板公司里测试部门的组织结构用什么工具管理Test Case和Bug测试分为几

3、个组,分别是什么 等等以上这些根据公司不同而不同,面试的时候可以问面试官相关的问题,例如 2013, All Rights Reserved. Dilato Infotech Limited.软件测试分类黑盒和白盒测试静态和动态测试单元测试、集成测试、系统测试、验收测试功能测试性能测试回归测试、Smoke测试、随机测试(探索性测试) 2013, All Rights Reserved. Dilato Infotech Limited.黑盒和白盒测试的概念黑盒测试(Black-Box Testing), 指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入

4、数据和输出结果。白盒测试(White-Box Testing), 指的是把盒子盖打开,去研究里面的源代码和程序结构。在软件公司里,往往采用黑盒和白盒技术相结合的方法,对软件的整体功能和性能进行黑盒测试,对软件的源代码采用白盒测试。 2013, All Rights Reserved. Dilato Infotech Limited.静态和动态测试所谓的静态测试(Static Testing), 是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。动态测试(Dynamic Testing), 是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否

5、相符的过程。所以我们判断一个测试属于动态还是静态测试,唯一的标准就是看是否运行程序。 2013, All Rights Reserved. Dilato Infotech Limited.黑盒白盒,静态动态的关系它们只是一个测试的不同分类角度而已,而且它们之间还有包含交叉的关系,总结一下4句话:黑盒测试有可能也是动态测试(运行程序,只看输入和输出), 也有可能是静态测试(不运行程序,只查看界面)白盒测试有可能也是动态测试(运行程序,并分析代码结构), 也有可能是静态测试(不运行程序,只是静态查看代码)动态测试有可能也是黑盒测试(运行程序,只看输入和输出), 也有可能是白盒测试(运行程序,并分析

6、代码结构)静态测试有可能也是黑盒测试(不运行程序,只是查看界面), 也有可能是白盒测试(不运行程序,只是静态查看代码) 2013, All Rights Reserved. Dilato Infotech Limited.单元测试、集成测试、系统测试、验收测试软件测试中基本且重要的概念,它们都是按照软件测试的阶段来划分的。单元测试:对软件中的最小可可测试单元(最小的功能模块)进行检查和验证。集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分。(接口测试)系统测试:是指将整个软件系统看做1个整体进行测试,包括对功能、性能、安全、

7、兼容性进行测试。验收测试(Acceptance Testing): 是指在系统测试的后期,以用户测试为主,或有测试人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。 2013, All Rights Reserved. Dilato Infotech Limited.比较 2013, All Rights Reserved. Dilato Infotech Limited.功能测试和性能测试功能测试(Function Testing): 检查实际软件的功能是否符合用户的需求。可细分为:逻辑功能测试、界面测试、易用性测试、安装卸载测试、兼容性测试、安全测试。性能测试 (Perform

8、ance Testing): 一般要用到自动化工具。软件的性能分为时间和空间的性能:时间性能:主要指软件的一个具体事务的响应时间(Respond Time)空间性能:主要指软件运行时所消耗的系统资源 (e.g. CPU, 内存,硬盘等)。软件性能测试的分类:一般性能测试、稳定性测试、负载测试、压力测试。 2013, All Rights Reserved. Dilato Infotech Limited.性能测试分类一般性能测试:指被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。例如只让1个用户多次登录,记录系统资源的消耗情况(CPU,内存等),并记录单个用户的平均登录时间。稳

9、定性测试(Reliability Testing): 是指连续运行被测系统,检查系统运行时的稳定程度。用错误发生的平均时间间隔(MTBF)来衡量系统的稳定性,MFBF越大,系统的稳定性越强。负载测试(Load Testing): 通常是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。例如让1个,2个,5个,10-100个用户并发登录,在这个过程中每次都观察资源消耗情况,当发现资源消耗快要达到临界值时(CPU 80%), 停止增加用户,例如现在的并发用户数为50,我们就用这50个用户同时多次重复登录,直到系统出现故障为止。 负载测试为我们测试系统在临界状态下运行是否稳定提

10、供了一种办法。压力测试 (Stress Testing): 通常是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。比如我们不断地增加并发登录的用户数,120,150,170,200、当增加到200个用户并发登录时,系统崩溃了,这是我们就知道此软件所能承载的最大登录并发数为200个左右。 2013, All Rights Reserved. Dilato Infotech Limited.案例 纸杯测试微软公司的一道面试题,面试官随意选一个物品,让应聘者在规定的时间内说出测试策略或是设计测试用例。要求应聘者有一定的生活常识,了解常用的测试方法,并且思维要敏

11、捷,有发散性。我们可以从 基本功能测试、易用性测试、界面测试、压力测试、性能测试等角度去思考。比如安全性问题,杯子所用的材料是否符合食品卫生标准,在内外温度等环境因素下是否会与所盛各种饮料所应,而产生对人体有害的物质。以下是相关的答案,仅供参考:(1) 基本功能测试(逻辑功能测试):硬度:是否达到设计标准。装载能力:在杯子内分别装入少量的、半杯的、满杯的,看其装载量是否达到设计标准。装载种类:开水(是否产生异味)、温水、冷水、冰水、咖啡,有颜色的饮料(2) 界面测试(UI测试):看其形状、大小设计是否适合人方便拿起。外观是否吸引人(广告嘛),常新悦目带广告的图案沾水后是否掉色、模糊(3) 易用

12、性测试:看其形状、大小设计是否适合人方便拿起。残疾人士用此杯去喝水的容易程度。杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在使用完也可以方便拿走。(4)稳定性测试,装入液体后记录其多久以后漏水(5)安全性测试,材料问题,符合食品卫生标准,温度,异味(6)本地化测试,为国际化和本地化的需要,广告图案和文字是否在政治,宗教和文化方面具有广泛的适用性。 2013, All Rights Reserved. Dilato Infotech Limited.回归测试、Smoke测试、随机测试这3个概念也很重要,他们既不属于测试阶段,也不算是具体的测试方法。回归测试(Regression

13、Testing), 是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。冒烟测试(Smoke Testing), 是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。随机测试(Random Testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。缺点,不如测试不系统,无法统计覆盖率/需求覆盖率,很难回归测试等,所以一般都是先作大规模的正规测试,如果时间允许的话,就辅助一些随机测试。 2013, All Rights Reserved. Dilato Infotech Limited.总结 2

14、013, All Rights Reserved. Dilato Infotech Limited.黑盒测试技术等价类方法边界值方法因果图法流程图法 2013, All Rights Reserved. Dilato Infotech Limited.黑盒测试技术 - 等价类方法等价类技术 (Equivalence Class Testing)案例:加法器,有这样一个语言程序,功能是计算两个之间整数的和。其源代码如下所示:#includeVoid main(void)int a, b, c;while (1)printf(“请输入两个1到100之间的整数:”);fflush(stdin); /

15、清空输入缓冲区scanf(“%d%d”, &a, &b);if(a1&a1&b100) /判断两个加数是否在100之间c= a+b;printf(“两个数的和为%dn”, c)我们知道,在黑盒测试的时候一般是不看源代码的。我们现在只根据需求(计算1100之间整数的和)来设计测试用例,使用穷举测试的思想给加法器设计测试用例:一共要设计多少条用例呢?加数有共计个取值,加数也是,所以一共有100*100=10000种组合的可能,但这只是测试了正常范围内的取值,如果输入的数据不在1100之间呢?我们引入等价类的思想。用例用例编号号加数加数加数加数和和122334 2013, All Rights Re

16、served. Dilato Infotech Limited.黑盒测试技术 - 等价类方法等价类划分法是一种黑盒测试技术,它不考虑程序的内部结构,只是根据软件的需求说明来对输入的范围进行细分,然后再从分出的每一个区域内选取一个有代表性的测试数据。如果等价类分的好,这个代表性的测试数据的作用就等价于其区域内的其他取值。等价类又可分为有效等价类和无效等价类。有效等价类:是指符合需求规格说明书,合理地输入数据集合。无效等价类:是指不符合需求规格说明书,无意义的输入数据集合。那么这个程序里面,我们怎么划分等价类呢?根据输入要求将输入区域划分为个等价类:):100: 无效等价类然后我们从每一个等价类中

17、选取一个代表性的数据来测试,测试用例是:用例用例编号号所属等价所属等价类加数加数加数加数和和)34043)0-1提示)110101提示 2013, All Rights Reserved. Dilato Infotech Limited.等价类方法总结等价类的定义等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。等价类划分的步骤(1)先考虑输入数据的数据类型(合法和非法的类型)(2)再考虑数据范围(合法类型中的合法区间和非法区间)(3)画出示意图,区分等价类(4)为每一个等价类编号(5)从一个等价类中选举一个测试数据构造测试用例理论上来说,如果等价类里面的

18、一个数值能够发现缺陷,那么该等价类里面的其他数值也能够发现缺陷。实际过程中,首先要确保等价类的划分是争取的,否则也得不到正确的结果。多看一些案例,将这种思想应用到实际工作中。 2013, All Rights Reserved. Dilato Infotech Limited.边界值方法(Boundary Value Testing)错误隐含在角落(Errors Hide in the Corner), 大量的测试实践经验表明,边界值是最容易出现问题的地方,也是我们的测试重点。需要说明的是,在白盒测试中也应用到了边界值得测试思想,边界值技术不是黑盒测试的专利。我们还是以上一节的加法器为例来讲解

19、边界值的思想:输入要求是1100之间的整数,因此自然产生了1和100两个边界,我们在构造测试用例的时候要重点考虑这两个边界。我们在测试1和100这两个边界的时候,构造了(1,1)、(100,100)、(0,0)、(101,101)这组测试用例,即正好是边界的值和正好超出边界的值。结果发现(1,1)、(100,100)这两条测试用例未通过:本应正确求和,却提示信息要求输入正确整数,这是什么?正确的代码应该是: if(a=1&a=1&b=100) ,包括1和100,这两个边界值也是正常的值。测试边界值是,一般测试边界值和正好超出边界值一个单位的值。用例用例编号号所属等价所属等价类被被测边界界加数加

20、数加数加数预期期结果果实际结果果2)1112提示2)100100100200提示1)1提示提示3)100101101提示提示4)1.23.2提示提示65)A提示提示76)空格空格空格空格提示提示 2013, All Rights Reserved. Dilato Infotech Limited.等价类和边界值的关系其实边界值和等价类的联系是很紧密的,边界值就是根据等价类划分的过程中产生的。而由于边界的地方最容易出错,我们在从等价类中选取测试数据的时候也经常选取边界值。举一反三! 2013, All Rights Reserved. Dilato Infotech Limited.黑盒测试技术

21、 因果图法所谓的原因,指的就是输入;所谓的结果,指的就是输出。因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。实际在测试的时候可以画因果图,但是笔者认为其有画蛇添足之嫌。其实因果图方法的本质就是构造所有输入条件的排列组合,达到这一目的就可以了。而且因果图的画法比较理论化,晦涩难懂,因此这里就不做过多的介绍。因果图法小结1.因果图的步骤(1)找出所有输入条件和输出条件,并编号。(2)分析输入条件之间的关系,是互斥还是可以同时满足。(3)画出输入条件的排列组合情况。(4)编写测试用例。2. 因果图的应用场合当软件的输入条件较多的时候,我们可以考虑用因果图法来设计测试用例,考虑输

22、入的所有排列组合情况,防止遗漏。3. 因果图的局限性假如有N个条件,每个条件有真或假两种取值,那么理论上就有2的N次方种排列组合,这就大大增加了测试用例的数目,不便于维护。我们可以根据实际情况判断并精简输入条件的个数。 2013, All Rights Reserved. Dilato Infotech Limited.黑盒测试技术 流程图法我们在编程的时候,一般都需要画程序的算法流程图。我们同样可以将这一思想应用到黑盒测试领域。算法流程图是针对程序内部结构的,而黑盒测试的流程图是针对整个系统业务功能流程的。比如我们测一个B-C(商家对顾客)的电子商务网站,可以画一个顾客购物的流程图。再如,我

23、们要测试某个机票预定系统,可画一个订票的流程图。凡是涉及业务流程的地方,我们都可以应用这种方法。我们来总结一下流程图法的步骤。第一步:详细了解需求。第二步:根据需求说明或界面原型,找出业务流程的各个页面及各页面之间的流转关系。第三步:画出业务流图(路径图)第四步:写用例,覆盖所有的路径分支。流程图法一般不是针对具体某个页面或是某个模块的测试,而是将被测系统看作一个完整的系统,从宏观上来分析其业务流程,然后再画出流程图来。其好处在于能够使测试人员对被测系统有一个总体的把握,防止测试的时候有遗漏的页面或模块。 2013, All Rights Reserved. Dilato Infotech L

24、imited.黑盒测试技术的综合运用在实际测试过程中,我们往往需要综合各种测试技术。我们首先应用流程图法画出被测软件的总体业务流程,然后针对具体某个页面或是模块,再应用等价类的思想来划分输入范围(重点测试边界值),如果涉及多个输入条件的组合情况,我们再应用因果图法考虑所有情况的排列组合。 2013, All Rights Reserved. Dilato Infotech Limited.测试用例的设计依据的方法:等价类划分法边界值分析法因果图法流程图法 等。我们编写的测试用例一般包括功能测试用例、非功能测试用例、百盒测试用例。功能测用例主要是基于需求的业务逻辑,是设计的重点。非功能测试用例主

25、要包括界面测试用例、易用性测试用例、性能测试用例、兼容性测试用例、安全性测试用例等。白盒测试用例一般在单元测试之前编写,需要白盒测试的基本知识。 2013, All Rights Reserved. Dilato Infotech Limited.缺陷管理Bug的分类缺陷报告提交缺陷报告的注意事项Bug的处理流程常见的缺陷管理工具 2013, All Rights Reserved. Dilato Infotech Limited.Bug的分类Bug的基本定义:软件的Bug指的是软件中(包括程序和文档)不符合用户需求的问题,从这个定义中我们可以知道判断一个Bug的标准就是看其是否符合用户的需求

26、。那么常见的Bug从不同的角度,可以将Bug分为多种类型。1.按严重程度(Severity)划分。例如:系统崩溃、严重、一般、次要、建议。2.按优先级(Priority)划分。表示处理和修正软件缺陷的先后顺序。例如:高(High)、中(Middle)、低(Low)。3.按照测试种类划分。可以将Bug分为逻辑功能类、性能类、界面类、易用性类、兼容性类等等,就是前面讲到的Bug分类。4.按功能模块划分。二八原则,我们在测试的时候可以统计一下Bug主要集中在哪些模块里,找到重点测试的区域。5.按Bug生命周期划分。每个Bug都有其生存和死亡的生命周期,可以这样划分:New,Investigated,

27、Confirmed,Fixed,Closed,Reopen。 2013, All Rights Reserved. Dilato Infotech Limited.缺陷报告不同的项目组会有不同的缺陷报告模板,报Bug时应该按照模板严格填写各项内容,使得缺陷报告更加完整。开发人员对Bug的解决情况 和 测试人员的验证情况 通常是测试人员和开发人员沟通的机会。 2013, All Rights Reserved. Dilato Infotech Limited.提交缺陷报告的注意事项缺陷报告是测试人员的主要工作产品之一。缺陷报告的读者通过缺陷报告来了解和评价测试人员,好的测试报告会增加开发人员对测

28、试人员的信任度,差的缺陷报告会影响开发人员的效率,也会影响测试人员自身的声誉。下面列出了一些提交Bug时的注意事项:1.确保重现Bug2.要用最少且必要的步骤描述Bug3.简洁、准确、完整4.一个Bug一个报告测试人员要经常换位思考,尽量多站在开发人员的角度上思考问题。提交Bug时保持中立客观的态度,不要掺杂强烈的个人主观感情在里面。“You”,“My”,“They”等不应该出现在Bug的描述里。 2013, All Rights Reserved. Dilato Infotech Limited.Bug的处理流程实际上,不同公司的Bug处理流程一般是不同的,同一公司不同项目的Bug处理流程也

29、不尽相同。一般情况下的Bug的bug处理流程如下图所示:提交缺陷报告分配缺陷报告处理缺陷报告返测报告关闭缺陷报告返测通过返测未通过重新打开(Reopen) 2013, All Rights Reserved. Dilato Infotech Limited.常见的缺陷管理工具“工欲善其事,必先利其器”,使用合适的缺陷管理工具,可以使我们的缺陷管理事半功倍。比较流行的Bug管理工具:TrackRecord、Clearquest、Bugzilla(Free)、Mantis(Free)、JIRA(Free)、Github(Free)。很多公司也有自己研发的Bug管理工具,例如微软的 2013, Al

30、l Rights Reserved. Dilato Infotech Limited.生命周期软件的生命周期:软件开发和软件测试的生命周期: 2013, All Rights Reserved. Dilato Infotech Limited.认识几个模型 2013, All Rights Reserved. Dilato Infotech Limited.软件测试计划编写测试计划的注意事项。编写测试计划时,应注意以下四点:增强计划的实用性,一切从实际出发,不流于形式。坚持“5W1H”规则,明确内容与过程。采用评审和更新机制,保证测试计划满足实际需求。分别创建测试计划与测试策略。(测试策略重点

31、在HOW,目标性强。)5W1H分别指: 2013, All Rights Reserved. Dilato Infotech Limited.公司里测试部门的组织结构手工和自动化比例开发和测试人员比例外包测试的比例 2013, All Rights Reserved. Dilato Infotech Limited.软件测试工程师所需具备的素质三心二意1能力三心:细心、耐心和信心二意:服务意识、团队合作意识1能力:沟通能力 2013, All Rights Reserved. Dilato Infotech Limited.如何成为一名优秀的测试工程师大侠是怎样炼成的?测试高手是怎样炼成的?内

32、功是基础,测试人员也需要打好基础,计算机硬件、网络、操作系统、数据库、移动,语言等等。内功基础上就是各种武术招式了,测试里面的武术招式就是各种测试技术,比如黑盒测试中的等价类、边界值、因果图白盒测试中的语句覆盖、分支覆盖、路径覆盖这些技术都比较实用,还有实现自动化测试等。但是打好基础是前提。走理论实践理论的路线。 2013, All Rights Reserved. Dilato Infotech Limited.什么是全称为Capability Maturity Model, 即“能力成熟度模型”,是一个主流的标准质量模型,是由卡耐基梅隆大学于世界年代定制的,最初只是应用于本校的软件项目开发

33、中,后来逐渐推广为主流的行业标准。对于做欧美外包项目的软件公司,还是很有作用的,因为欧美很多公司都认可认证,如果公司过了或,那么说明该公司具备了承接国际项目的经验和实力。华为,东软。微软,甲骨文等国际知名公司往往没有过。一流公司做标准,二流公司做品牌,三流公司做产品,微软不需要遵循别人的标准,微软就是标准的制定者。 2013, All Rights Reserved. Dilato Infotech Limited.软件测试的一些基本原则Zero Bug 与Good EnoughZero Bug指的是软件没有任何Bug, Good Enough指的是只要软件达到一定的质量要求,就可以停止测试了

34、。Good Enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源浪费,同样也是不负责的表现。如何界定是个问题,涉及到测试计划的制定。软件测试要尽早执行,实践证明,在大多数情况下,在需求分析阶段就会产生缺陷,而且需求分析阶段引入的缺陷是最多的,其修复成本却是最低的,所以软件测试应该尽早执行,越早执行,风险越小。 2013, All Rights Reserved. Dilato Infotech Limited.软件测试的一些基本原则缺陷的二八定理。一般情况下,软件的缺陷集中在的模块中。如果发现某一程序模块比其他模块有更多的缺陷,就要投入更多的人力和精力

35、重点测试这的模块,以提高我们的测试效率。也成为缺陷的集群现象或者虫子窝现象。缺陷具有免疫性。要求测试人员根据新版本的特点去修改维护测试用力。值得注意的经验,每修复个Bug, 一般就会产生一个新的缺陷,所以开发人员要充分注意修改错误所产生的影响和波及的效果。 2013, All Rights Reserved. Dilato Infotech Limited.Next内存管理的相关知识Junit的使用2018 156th Ave NE, Suite 100Bellevue, WA 98007, USAPhone: +1-425-372-2172Fax: +1-425-644-2185E-mail: Grand Place B-12, No.5, Huizhong Rd, Chao-yang, Beijing China 100101Phone: +86-10-84892660Fax: +86-10-84892660 2013, All Rights Reserved. Dilato Infotech Limited.Thank You!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号