您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Week08_软件测试工具剖析
2020/2/19581软件测试工具SoftwareTestingTool任课老师:黄武2020/2/19582提纲软件测试概述软件测试工具分类软件测试工具选择单元测试工具cppUnit介绍2020/2/195831软件测试概述软件测试的基本内容软件测试的定义软件测试的分类软件测试的简单过程2020/2/195841.1软件测试的基本内容软件测试软件测试基础测试级别测试相关的度量测试技术测试过程测试有关的术语关键问题测试与其它活动的联系测试对象测试目标实际考虑测试活动评价被测程序评价完成的测试基于测试人员的直觉和经验基于规格说明基于代码基于应用本质选择和组合技术基于错误图软件测试知识域主题的分解结构2020/2/195851.2软件测试的定义在IEEE标准610.12-1990中将软件测试定义为:软件测试(SoftwareTest)——在指定的条件下操作测试系统或组件(1),观察或记录结果(2),并对测试系统或组件的不同方面做出评估(3)的过程总体来讲,软件测试是一个寻找和证实软件缺陷的过程2020/2/195861.3软件测试的分类软件测试级别的几个阶段单元测试集成测试系统测试确认测试回归测试2020/2/195871.3.1各种软件测试之间的关系技术方法应用目标/特性单元测试系统测试验收测试性能测试强壮性测试功能测试白盒测试黑盒测试测试阶段或层次适用性测试可靠性测试集成测试安全性测试2020/2/195881.4软件测试的简单过程在很多软件程序员的眼中,测试软件就是运行软件,看软件在运行过程中是否出错;实际上,运行软件只是软件测试的一部分实际的软件测试是需要设计的,设计的结果是构建了测试用例,而测试是按照测试用例来运行软件的,运行软件得到的结果需要记录,统计2020/2/195891.4.1最简单的测试过程最简单的测试过程至少包括测试设计,生成测试用例,执行测试用例以及测试结果分析几个阶段测试设计执行测试用例测试结果分析生成测试用例测试管理2020/2/1958101.4.2一个软件测试的例子对“Helloworld”程序进行测试,程序代码如下:voidstaticmain(intargc,char*argv[]){printf(“Helloworld”);return0;}2020/2/1958111.4.2.1建立测试用例测试最基本的方法就是建立并运行测试用例,我们通常使用表格的方式来构建简单的测试用例表1测试Helloworld程序的测试用例用例编号说明操作过程输入值期望的结果1测试程序功能运行软件无在控制台上打印出”Helloworld”2020/2/1958121.4.2.2执行测试用例将Helloworld程序编译、连接形成可执行程序Hello.exe,然后运行它,因为测试不要求输入值,因此运行软件即是执行测试Hello.exe2020/2/1958131.4.2.3记录运行的结果程序在控制台上打印出Helloworld字样2020/2/1958141.4.2.4测试总结测试的实际结果与期望的结果一致,程序的打印功能是正确的上面4步就是对Helloworld程序的一次正式测试,尽管它还不够完整,但是它让我们看到了测试的整个过程2020/2/1958151.4.3对HelloWorld软件的改进voidstaticmain(intargc,char*argv[]){switch(*argv[1]){case‘1’:///输入1打印Helloworldprintf(“Helloworld!”);break;case‘2’:///输入2打印Helloguyprintf(“Helloguy!”);break;default:///输入其它参数打印Helloprintf(“Hello!”);break;}}2020/2/1958161.4.3.1建立测试用例由于该程序接受参数,我们可以选择不同的输入参数来进行软件测试表2测试改进后Helloworld程序的测试用例编号说明操作过程输入值期望的结果1测试程序功能运行软件1在控制台上打印出”Helloworld!”2测试程序功能运行软件2在控制台上打印出”Helloguy!”3测试程序功能运行软件3在控制台上打印出”Hello!”4测试程序健壮性运行软件无打印出”Hello!”2020/2/1958171.4.3.2执行测试用例我们在控制台上运行该程序,分别给程序带不同的输入参数,可执行程序的名字是Hello.exe1.Hello12.Hello23.Hello34.Hello2020/2/1958181.4.3.3记录运行的结果表3测试改进后Helloworld程序的结果记录测试编号输入期望的结果实际的结果通过/失败11打印”Helloworld!”打印”Helloworld!”通过22打印”Helloguy!”打印”Helloguy!”通过33打印”Hello!”打印”Hello!”通过4无打印”Hello!”弹出错误对话框失败2020/2/1958191.4.3.3.1错误对话框执行不带参数的Hello程序后,弹出错误对话框,程序崩溃2020/2/1958201.4.3.4测试总结在程序中使用了输入参数变量*argv[1],如果不输入任何参数,那么argv[1]为空指针(NULL),程序访问空指针会出现问题,如果我们在程序的前面对参数个数加以保护,就不会出现上面的问题真是想不到,这么简单的一个程序也会出错!是的,即使我们认为再简单的程序也可能包含错误,但软件测试可以找到这些错误2020/2/195821问题你以前正规的做过软件测试吗?你知道测试工具对于测试而言有什么作用吗?2020/2/1958222.软件测试工具分类测试工具是为了提高测试效率,用软件代替测试人工输入的有效方法根据测试工具的作用,可以分类为:1.白盒测试工具2.黑盒测试工具3.功能测试工具4.性能测试工具2020/2/1958232.1白盒测试白盒测试——软件测试员可以了解软件的内部结构以及实现的具体代码,从而可以根据程序的内部情况来设计更实用的测试案例白盒测试工具就是针对代码进行测试,测试中发现的错误可以定位到代码的具体位置白盒测试if(x10)p=x*2;elsep=x;…输入输出2020/2/1958242.1.1白盒测试工具的分类白盒测试工具可以分为两类1.静态测试工具直接对代码进行语法分析,根据某种质量模型评估代码,不需要运行代码2.动态测试工具动态测试工具采用在程序中插桩的方式,让程序中插入一些代码,然后运行代码统计程序运行时的数据2020/2/1958252.1.2白盒静态测试工具白盒静态测试工具的代表是Telelogic公司的Logiscope软件Telelogic是1983年在瑞典创立的复杂软件及系统开发解决方案供应商,其提供从需求管理、变更管理、可视化软件工程到软件测试的工具,其产品被各国军方所采用,2008年被IBM公司收购2020/2/1958262.1.2.1Logiscope软件Logiscope是Telelogic公司推出的专用于软件质量保证和软件测试的产品主要功能是对软件做质量分析和测试以保证软件的质量,并可做认证、反向工程和维护,特别是针对要求高可靠性和高安全性的软件项目和工程软件的三大功能1.Audit:定位错误模块,可评估软件质量及复杂程度,提供代码的直观描述,自动生成软件文档(根据标准进行评估)2.RuleChecker:根据工程中定义的编程规则自动检查软件代码错误,可直接定位错误。包含大量标准规则,用户也可定制创建规则,自动生成测试报告3.TestChecker:测试覆盖分析,显示没有测试的代码路径,通过插装和软件运行进行分析2020/2/1958282.1.2.2Logiscope软件界面2020/2/1958292.1.3白盒动态测试工具白盒动态测试工具的代表包括:1.Rational公司的Purify2.Numega公司的BoundsChecker3.Compuware公司的Devpartner等Numega1997年被Compuware收购MicroFocus公司2009年收购Compuware公司的测试产品线2020/2/1958302.1.3.1IBMRationalPurify简介IBMRationalPurify是一个面向VC,VB或者Java开发的测试工具,用于检查VisualC/C++和Java代码中与内存有关的错误,确保整个应用程序的质量和可靠性主要用于查找VisualC/C++程序中的传统内存访问错误,以及Java代码中与垃圾内存收集相关的错误方面2020/2/1958312.1.3.2Purify界面2020/2/1958322.2黑盒测试工具黑盒测试——是基于需求说明书的软件测试,在这种测试下,我们不需要了解软件的内部结构,内部分支,以及软件代码的具体实现黑盒测试工具一般原理是利用脚本的录制和回放,模拟用户的操作,然后比较记录结果和预先设定的结果来判定测试的正确性黑盒测试输入输出2020/2/1958332.2.1典型的黑盒测试工具典型的黑盒测试工具包括:1.Compuware公司的QACenter2.Rational公司的teamTest、Robot等2020/2/1958342.2.1.1QACenter简介QACenter测试软件是一个综合型的测试工具集,它帮助测试人员创建一个快速、可重用的测试过程这些测试工具自动帮助管理测试过程,快速分析和调试程序,包括针对回归,强度,单元,并发,集成,移植,容量和负载建立测试用例,自动执行测试和产生文档结果2020/2/1958352.2.1.2QACenter的组成QACenter主要包括以下几个模块:1.QARun:应用的功能测试工具2.QALoad:强负载下应用的性能测试工具3.QADirector:测试的组织设计和创建以及管理工具4.TrackRecord:集成的缺陷跟踪管理工具5.EcoTools:高层次的性能监测工具=DePzfsLyNzDNZlBW6jiuNVbwy4ipGzw5GUTm_SHC-tvXeSX0To4Q1bm0SDcnMGADlOe-2R9wjHHuIhN9O6_JC_2020/2/1958362.3功能测试工具功能测试是对产品各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能功能测试工具包括:1.RationalRobot2.SilkTest3.WinRunner2020/2/1958372.3.1RationalRobotRationalRobot是rational的产品之一,提供了软件的功能测试,它提供了许多类似机器人的重复过程IBMRationalRobot可以让测试人员对.NET、Java、Web和其他基于GUI的应用程序进行自动的功能性回归测试RationalRobot可开发三种测试脚本,包括用于功能测试的GUI脚本、用于性能测试的VU以及VB脚本2020/2/1958382.4性能测试工具性能测试是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试性能测试工具用于测试软件的性能,包括:1.HP公司的LoadRunner2.Microsoft公司的WebStress3.ApacheJmeter(开源软件)2020/2/1958392.4.1LoadRunnerLoadRunner是一种预测系统行为和性能的负载测试工具LoadRunner通过以模拟成千上万用户实施并发负载及实时性能监测的方式来确认和查找问题,其对整个企业架构进行测试Load
本文标题:Week08_软件测试工具剖析
链接地址:https://www.777doc.com/doc-3911302 .html