1、实验介绍实验介绍信息系统测试信息系统测试6.1 实验一实验一 黑盒测试技术黑盒测试技术实验目的:实验目的:初步学会使用QESuite Web Version1.0,掌握黑盒测试基本技术,并能够应用黑盒测试技术设计测试用例。实验介绍实验介绍信息系统测试信息系统测试实验说明:通过一个简单的C程序sample.cpp(源代码见附录A),来介绍黑盒测试用例的编写和测试的实施过程。在这个实验过程中运用测试过程管理工具QESuite Web Version1.0,旨在说明应用测试管理工具管理测试过程。实验介绍实验介绍信息系统测试信息系统测试实验内容:对被测程序进行功能划分。应用等价类划分和边界值方法设计测
2、试用例。创建测试任务并执行测试。发现软件缺陷,填写软件问题报告。实验介绍实验介绍信息系统测试信息系统测试QESuite Web 1.0简介QESuite Web Version1.0面向软件产品的整个生命周期,实现对测试过程、测试对象、测试数据的有效管理,指导用户实施测试过程改进,满足开发企业对于测试管理的基本需求,是一个轻量级的测试过程管理工具,特别适用于对一个小型测试队伍(少于30人)的测试过程的管理,是中小型软件开发企业打造测试管理体系的有效工具。实验介绍实验介绍信息系统测试信息系统测试6.1.1 测试准备 实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试
3、实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试6.1.2 设计测试用例 使用等价类划分方法使用等价类划分方法 使用边界值分析方法使用边界值分析方法实验介绍实验介绍信息系统测试信息系统测试使用等价类划分方法使用等价类划分方法等价类划分是一种典型的黑盒测试方法等价类划分是一种典型的黑盒测试
4、方法,使用这一方法时,完全不使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明。对被测程序进考虑程序的内部结构,只依据程序的规格说明。对被测程序进行分析后得出如下等价类表:行分析后得出如下等价类表:实验介绍实验介绍信息系统测试信息系统测试使用等价类划分方法使用等价类划分方法在设计测试用例时,要注意:使一个测试用例尽可能覆盖多个有在设计测试用例时,要注意:使一个测试用例尽可能覆盖多个有效等价类,一个测试用例只能覆盖一个无效等价类。根据上面效等价类,一个测试用例只能覆盖一个无效等价类。根据上面划分的等价类,划分的等价类,7个测试用例就可以覆盖所有的等价类。设计测个测试用例就可以覆盖所有
5、的等价类。设计测试用例如下:试用例如下:实验介绍实验介绍信息系统测试信息系统测试使用边界值分析方法使用边界值分析方法边界值分析方法就是针对各种边界情况设计测试用例边界值分析方法就是针对各种边界情况设计测试用例,下面仅对第下面仅对第一种规则说明应用边界值分析方法生成测试用例:一种规则说明应用边界值分析方法生成测试用例:实验介绍实验介绍信息系统测试信息系统测试6.1.3 测试实施过程 录入测试用例录入测试用例 执行测试执行测试 填写软件问题报告填写软件问题报告 查看软件问题报告查看软件问题报告 实验介绍实验介绍信息系统测试信息系统测试录入测试用例录入测试用例录入测试用例,是测试人员的职责,所以首先
6、要以“测试人员”的身份登录系统,实验介绍实验介绍信息系统测试信息系统测试录入测试用例录入测试用例实验介绍实验介绍信息系统测试信息系统测试录入测试用例录入测试用例实验介绍实验介绍信息系统测试信息系统测试录入测试用例录入测试用例实验介绍实验介绍信息系统测试信息系统测试执行测试执行测试 测试人员必须严格按照步骤执行测试用例并检验执行结果是否与期望结果一致实验介绍实验介绍信息系统测试信息系统测试填写软件问题报告填写软件问题报告以以“测试人员测试人员”的身份登陆系统,点击的身份登陆系统,点击“问题报告问题报告”,然后将,然后将鼠标移动至页面的右侧面板鼠标移动至页面的右侧面板“新建功能新建功能”,点击,点
7、击“新建问题新建问题报告报告”。实验介绍实验介绍信息系统测试信息系统测试填写软件问题报告填写软件问题报告然后选择出现问题的功能分类,然后填写软件问题报告。然后选择出现问题的功能分类,然后填写软件问题报告。实验介绍实验介绍信息系统测试信息系统测试查看软件问题报告查看软件问题报告点击左侧导航页的点击左侧导航页的“所有的问题报告所有的问题报告”,然后点击,然后点击“按作者按作者”,然后在右侧页面作者一栏中选择然后在右侧页面作者一栏中选择“全部全部”。实验介绍实验介绍信息系统测试信息系统测试查看软件问题报告查看软件问题报告然后点击标题栏下的某个具体软件问题报告,就可以查看一个软件问题报告的具体结果。实
8、验介绍实验介绍信息系统测试信息系统测试6.2 实验二实验二 白盒测试技术白盒测试技术实验目的:实验目的:通过一个C语言小例子stulink.cpp(源代码见附录B)详细讲解如何用白盒测试工具safeproc/c+来进行白盒测试。实验介绍实验介绍信息系统测试信息系统测试实验内容:对程序进行静态分析,分析程序结构。对函数进行插装。对程序进行动态测试,得出分支覆盖率和语句覆盖率,以及其它结果。实验介绍实验介绍信息系统测试信息系统测试6.2.1 Safepro/C+简介 Safepro/C+是一个白盒测试工具,可以帮助分析和测试程序,使您更快捷有效地理解程序的结构,及早地发现程序中暗藏的错误,提高程序
9、的质量。Safepro/C+也是一个C/C+软件的分析与测试支持工具,也可以说是一个C/C+软件的质量保证工具,同时也是一个C/C+软件理解工具。实验介绍实验介绍信息系统测试信息系统测试Safepro/C+功能 1.1.静态分析功能静态分析功能:(1)程序结构分析;(2)程序数据流分析;(3)McCabe复杂度和Halstead复杂度度量;(4)类之间关系的可视化显示。实验介绍实验介绍信息系统测试信息系统测试静态分析流程静态分析流程实验介绍实验介绍信息系统测试信息系统测试Safepro/C+功能 2.2.动态测试功能动态测试功能:(1)语句、分支覆盖率测试;(2)分支执行频度分析;(3)中断的
10、跟踪;(4)断言的设定和跟踪;(5)测试结果可视化显示。实验介绍实验介绍信息系统测试信息系统测试动态测试流程动态测试流程实验介绍实验介绍信息系统测试信息系统测试6.2.2被测程序说明被测程序说明stulink.cpp是一个链表应用的简单例子,包括1个主函数和5个子函数。Main函数:主函数。Creatlink函数:创建一个含 n 个节点的链表。Deletelink函数:删除链表中值为 num 的节点。Insertlink函数:在链表中插入一个节点。Printlink函数:打印链表中各节点信息。Destroylink函数:销毁链表,释放动态分配的内存。实验介绍实验介绍信息系统测试信息系统测试6.
11、2.3白盒测试准备白盒测试准备在开始测试之前,被测程序必须通过在开始测试之前,被测程序必须通过VC+VC+编译器编译、链接。编译器编译、链接。创建一个Win32 Console Application项目:*.PRJ 编译、链接被测程序 导出Makefile文件:*.MAK 实验介绍实验介绍信息系统测试信息系统测试6.2.3白盒测试准备白盒测试准备Safepro C/C+Safepro C/C+的测试准备:的测试准备:(1)创建测试项目;(2)导入Makefile文件;(3)配置测试环境。实验介绍实验介绍信息系统测试信息系统测试(1)创建测试项目选择“项目-新建项目-Visual C+项目”选
12、项。实验介绍实验介绍信息系统测试信息系统测试(2)导入Makefile文件:*.MAKSafepro/C+会打开一个对话窗口,要求输入Makefile文件名(由VC+生成),如stulink.mak。实验介绍实验介绍信息系统测试信息系统测试(3)配置测试环境配置测试环境系统会打开项目窗口,可以配置测试环境:添加被测程序源文件名;设置预期要达到的覆盖率:默认情况下,语句覆盖率要达到95%以上,分支覆盖率要达到90%以上。实验介绍实验介绍信息系统测试信息系统测试6.2.4静态分析静态分析实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息
13、系统测试选择“分析-基本信息”,得到程序的基本信息 实验介绍实验介绍信息系统测试信息系统测试选择“结果-扇入/扇出报表”,查看函数间的调用关系。实验介绍实验介绍信息系统测试信息系统测试选择“结果-复杂度报告”,其中:McCabe表示McCabe复杂度;Halstead表示Halstead复杂度。实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试实验介绍实验介绍信息系统测试信息系统测试选择“结果-图形化结果-
14、函数调用关系图”,查看函数调用关系图。实验介绍实验介绍信息系统测试信息系统测试选择“结果-全局变量静态跟踪报表”,查看全局变量静态跟踪报表。实验介绍实验介绍信息系统测试信息系统测试选择“结果-局部变量静态跟踪报表”,查看局部变量静态跟踪报表。实验介绍实验介绍信息系统测试信息系统测试选择“结果-局部变量静态跟踪报表”,查看局部变量静态跟踪报表。实验介绍实验介绍信息系统测试信息系统测试6.2.5动态测试动态测试实验介绍实验介绍信息系统测试信息系统测试对程序的结构进行分析后,设计如下4个测试用例:A 创建节点数2,num=12,age=15;num=13;age=18删除节点的num=12插入节点的
15、num=17,age=19B 创建节点数0删除节点的num=12插入节点的num=15,age=17C 创建节点数2,num=12,age=15;num=13;age=18删除节点的num=13插入节点的num=8,age=17D创建节点数2,num=12,age=15;num=15;age=18删除节点的num=13插入节点的num=13,age=17实验介绍实验介绍信息系统测试信息系统测试 在进行动态测试之前,必须先通过静态分析。选择要插桩的函数,选择全部函数。执行编译及连接,生成插桩后的可执行文件。运行程序。按照设计的测试用例执行测试。用多个测试用例多次执行程序,得到的覆盖率是执行结果的
16、累加。实验介绍实验介绍信息系统测试信息系统测试(1)点击“测试-插桩”,选择插装函数。实验介绍实验介绍信息系统测试信息系统测试(1)点击“测试-插桩”,选择插装函数。实验介绍实验介绍信息系统测试信息系统测试(2)选择“测试-编译及链接”,进行编译及链接。实验介绍实验介绍信息系统测试信息系统测试(3)选择“测试-运行”,开始运行被测程序。实验介绍实验介绍信息系统测试信息系统测试(4)根据被测程序提示,并按照测试用例A设计的数据输入。A 创建节点数2,num=12,age=15;num=13;age=18 删除节点的num=12 插入节点的num=17,age=19实验介绍实验介绍信息系统测试信息
17、系统测试(1)选择“结果-图形化结果-覆盖率图-函数”,查看某一函数的覆盖率信息。实验介绍实验介绍信息系统测试信息系统测试选择deletelink函数。运行测试用例A后,整个项目语句覆盖率达到80%,分支覆盖率达到61%。实验介绍实验介绍信息系统测试信息系统测试查看deletelink函数的覆盖率信息。实验介绍实验介绍信息系统测试信息系统测试(2)选择“结果-覆盖率报表”可以得到所有函数覆盖率报表。实验介绍实验介绍信息系统测试信息系统测试(2)选择“结果-覆盖率报表”可以得到所有函数覆盖率报表。实验介绍实验介绍信息系统测试信息系统测试(1)用测试用例B重新执行程序后,每个函数覆盖率报表如下:运
18、行测试用例B后,整个项目语句覆盖率达到85%,分支覆盖率达到69%。实验介绍实验介绍信息系统测试信息系统测试(2)用测试用例C重新执行程序后,每个函数覆盖率报表如下:运行测试用例C后,整个项目语句覆盖率达到93%,分支覆盖率达到84%。实验介绍实验介绍信息系统测试信息系统测试(3)用测试用例D重新执行程序后,每个函数覆盖率报表如下:运行测试用例D后,整个项目语句覆盖率达到98%,分支覆盖率达到96%。实验介绍实验介绍信息系统测试信息系统测试 查看源程序,原来是Main函数中第40行:printf(Pointer is NULL-memory alloc fail!);没有执行,这只有在内存分配失败的情况下才会执行,填写报告说明这句没有覆盖的原因。经过上面4个测试用例的执行,整个项目语句覆盖率达到98%,分支覆盖率达到96%,达到预期的测试目标,测试通过。实验介绍实验介绍信息系统测试信息系统测试选择“结果-项目验收报告”,得到项目覆盖率图。实验介绍实验介绍信息系统测试信息系统测试选择“结果-项目验收报告”,得到项目验收报告。实验介绍实验介绍信息系统测试信息系统测试本讲到此结束,谢谢!本讲到此结束,谢谢!