软件测试工具 Software Testing Tool

Slides:



Advertisements
Similar presentations
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Advertisements

游戏软件测试 主讲人:徐丽.
第六章 软件测试自动化 HLJU Software Testing.
软件测试的组织和管理 山东省软件评测中心 韩庆良.
单元一:基本概念 报告人:谢兆贤 2015/9/X.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
AngularJS -- 使用AngularJS进行开发
第二讲 搭建Java Web开发环境 主讲人:孙娜
面向对象建模技术 软件工程系 林 琳.
学习前的准备工作 讲师:burning.
R in Enterprise Environment 企业环境中的R
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
欢乐玩转单元测试之JUnit 讲师:FREE QQ:
大学计算机基础 典型案例之一 构建FPT服务器.
走进编程 程序的顺序结构(二).
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
课程设计.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
What have we learned?.
化学品清单 类型.
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
常用自动化测试工具简介 随着人们对测试工作的重视以及测试工作的不断深入,越来越多的公司开始使用自动化测试工具。如果能够正确地选择和使用自动化测试工具,就会提高测试的效率和测试质量,降低测试成本。由于一些商用的自动化测试工具十分昂贵,因此在选择自动化测试工具时,要把各种因素考虑进去,只有这样才能做出正确的选择。
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
录制回放工具使用说明 鲁晓宇
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
软件维护(2) 东华大学计算机学院 石秀金.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
$9 泛型基础.
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
第二章 Java基本语法 讲师:复凡.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
_03宽字符与Unicode编程 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
Python 环境搭建 基于Anaconda和VSCode.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
入侵检测技术 大连理工大学软件学院 毕玲.
DEV310 Microsoft Visual Studio 2005托管代码调试
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
质量控制(QC)模式 BrookFIELD.
DEV243 Visual Studio Team System 测试深入探讨
Presentation transcript:

软件测试工具 Software Testing Tool 任课老师:黄武 2019/1/17 58

提纲 软件测试概述 软件测试工具分类 软件测试工具选择 单元测试工具cppUnit介绍 2019/1/17 58

1 软件测试概述 软件测试的基本内容 软件测试的定义 软件测试的分类 软件测试的简单过程 2019/1/17 58

1.1 软件测试的基本内容 软件测试 图 软件测试知识域主题的分解结构 软件测试基础 测试级别 测试相关的度量 测试技术 测试过程 测试有关的术语 关键问题 测试与其它活动的联系 测试对象 测试目标 实际考虑 测试活动 评价被测程序 评价完成的测试 基于测试人员的直觉和经验 基于规格说明 基于代码 基于应用本质 选择和组合技术 基于错误 图 软件测试知识域主题的分解结构 2019/1/17 58

1.2 软件测试的定义 在IEEE标准610.12-1990中将软件测试定义为: 软件测试(Software Test)——在指定的条件下操作测试系统或组件(1),观察或记录结果(2),并对测试系统或组件的不同方面做出评估(3)的过程 总体来讲,软件测试是一个寻找和证实软件缺陷的过程 2019/1/17 58

1.3 软件测试的分类 单元测试 集成测试 系统测试 确认测试 回归测试 软件测试级别的几个阶段 2019/1/17 58

1.3.1 各种软件测试之间的关系 技术方法 应用目标/特性 单元测试 系统测试 验收测试 性能测试 强壮性测试 功能测试 白盒测试 黑盒测试 测试阶段或层次 适用性测试 可靠性测试 集成测试 安全性测试 2019/1/17 58

1.4 软件测试的简单过程 在很多软件程序员的眼中,测试软件就是运行软件,看软件在运行过程中是否出错; 实际上,运行软件只是软件测试的一部分 实际的软件测试是需要设计的,设计的结果是构建了测试用例,而测试是按照测试用例来运行软件的,运行软件得到的结果需要记录,统计 2019/1/17 58

1.4.1 最简单的测试过程 最简单的测试过程至少包括测试设计,生成测试用例,执行测试用例以及测试结果分析几个阶段 测试管理 测试设计 1.4.1 最简单的测试过程 最简单的测试过程至少包括测试设计,生成测试用例,执行测试用例以及测试结果分析几个阶段 测试设计 执行测试用例 测试结果分析 生成测试用例 测试管理 2019/1/17 58

1.4.2 一个软件测试的例子 对“Hello world”程序进行测试 ,程序代码如下: void static main (int argc, char* argv[] ) { printf( “Hello world”); return 0; } 2019/1/17 58

1.4.2.1 建立测试用例 测试最基本的方法就是建立并运行测试用例,我们通常使用表格的方式来构建简单的测试用例 表1 测试Hello world程序的测试用例 用例编号 说明 操作过程 输入值 期望的结果 1 测试程序功能 运行软件 无 在控制台上打印出”Hello world” 2019/1/17 58

1.4.2.2 执行测试用例 将Hello world 程序编译、连接形成可执行程序Hello.exe,然后运行它,因为测试不要求输入值,因此运行软件即是执行测试 Hello.exe 2019/1/17 58

1.4.2.3 记录运行的结果 程序在控制台上打印出Hello world字样 2019/1/17 58

1.4.2.4 测试总结 测试的实际结果与期望的结果一致,程序的打印功能是正确的 上面4步就是对Hello world程序的一次正式测试,尽管它还不够完整,但是它让我们看到了测试的整个过程 2019/1/17 58

1.4.3 对Hello World软件的改进 void static main (int argc, char* argv[] ) { switch ( *argv[1] ) { case ‘1’: /// 输入1打印Hello world printf( “Hello world!”); break; case ‘2’: /// 输入2打印Hello guy printf( “Hello guy!”); default: /// 输入其它参数打印Hello printf( “Hello!”); } 2019/1/17 58

1.4.3.1 建立测试用例 由于该程序接受参数,我们可以选择不同的输入参数来进行软件测试 表2 测试改进后Hello world程序的测试用例 编号 说明 操作过程 输入值 期望的结果 1 测试程序功能 运行软件 在控制台上打印出”Hello world!” 2 在控制台上打印出”Hello guy!” 3 在控制台上打印出”Hello!” 4 测试程序健壮性 无 打印出”Hello!” 2019/1/17 58

1.4.3.2 执行测试用例 我们在控制台上运行该程序,分别给程序带不同的输入参数,可执行程序的名字是Hello.exe Hello 1 2019/1/17 58

1.4.3.3 记录运行的结果 表3 测试改进后Hello world程序的结果记录 测试编号 输入 期望的结果 实际的结果 通过/失败 1 2 打印”Hello guy!” 3 打印”Hello!” 4 无 弹出错误对话框 失败 2019/1/17 58

1.4.3.3.1 错误对话框 执行不带参数的Hello程序后,弹出错误对话框,程序崩溃 2019/1/17 58

1.4.3.4 测试总结 在程序中使用了输入参数变量*argv[1],如果不输入任何参数,那么argv[1]为空指针(NULL),程序访问空指针会出现问题,如果我们在程序的前面对参数个数加以保护,就不会出现上面的问题 真是想不到,这么简单的一个程序也会出错 ! 是的,即使我们认为再简单的程序也可能包含错误,但软件测试可以找到这些错误 2019/1/17 58

问题 你以前正规的做过软件测试吗? 你知道测试工具对于测试而言有什么作用吗? 2019/1/17 58

2. 软件测试工具分类 测试工具是为了提高测试效率,用软件代替测试人工输入的有效方法 根据测试工具的作用,可以分类为: 白盒测试工具 黑盒测试工具 功能测试工具 性能测试工具 2019/1/17 58

2.1 白盒测试 白盒测试——软件测试员可以了解软件的内部结构以及实现的具体代码,从而可以根据程序的内部情况来设计更实用的测试案例 白盒测试工具就是针对代码进行测试,测试中发现的错误可以定位到代码的具体位置 if (x >1 0) p=x*2; else p= x; … 输入 输出 白盒测试 2019/1/17 58

2.1.1 白盒测试工具的分类 白盒测试工具可以分为两类 静态测试工具 直接对代码进行语法分析,根据某种质量模型评估代码,不需要运行代码 动态测试工具 动态测试工具采用在程序中插桩的方式,让程序中插入一些代码,然后运行代码统计程序运行时的数据 2019/1/17 58

2.1.2 白盒静态测试工具 白盒静态测试工具的代表是Telelogic公司的Logiscope软件 Telelogic是1983年在瑞典创立的复杂软件及系统开发解决方案供应商,其提供从需求管理、变更管理、可视化软件工程到软件测试的工具,其产品被各国军方所采用,2008年被IBM公司收购 2019/1/17 58

2.1.2.1 Logiscope软件 Logiscope是Telelogic公司推出的专用于软件质量保证和软件测试的产品 主要功能是对软件做质量分析和测试以保证软件的质量,并可做认证、反向工程和维护,特别是针对要求高可靠性和高安全性的软件项目和工程  http://blog.csdn.net/jxxy012/article/details/502548 2019/1/17 58

2.1.2.3 Logiscope软件的三大功能 Audit:定位错误模块,可评估软件质量及复杂程度,提供代码的直观描述,自动生成软件文档(根据标准进行评估) RuleChecker:根据工程中定义的编程规则自动检查软件代码错误,可直接定位错误。包含大量标准规则,用户也可定制创建规则,自动生成测试报告 TestChecker:测试覆盖分析,显示没有测试的代码路径,通过插装和软件运行进行分析 2019/1/17 58

2.1.2.2 Logiscope软件界面 2019/1/17 58

2.1.3 白盒动态测试工具 白盒动态测试工具的代表包括: Rational公司的Purify Numega公司的BoundsChecker Compuware公司的Devpartner等 Numega 1997年被Compuware收购 Micro Focus公司2009年收购Compuware公司的测试产品线 2019/1/17 58

2.1.3.1 IBM Rational Purify简介 IBM Rational Purify是一个面向VC, VB或者Java开发的测试工具,用于检查Visual C/C++ 和Java 代码中与内存有关的错误,确保整个应用程序的质量和可靠性 主要用于查找Visual C/C++ 程序中的传统内存访问错误,以及Java 代码中与垃圾内存收集相关的错误方面 2019/1/17 58

2.1.3.2 Purify界面 2019/1/17 58

2.2 黑盒测试工具 黑盒测试——是基于需求说明书的软件测试,在这种测试下,我们不需要了解软件的内部结构,内部分支,以及软件代码的具体实现 黑盒测试工具一般原理是利用脚本的录制和回放,模拟用户的操作,然后比较记录结果和预先设定的结果来判定测试的正确性 输入 输出 黑盒测试 2019/1/17 58

2.2.1 典型的黑盒测试工具 典型的黑盒测试工具包括: Compuware公司的QACenter Rational公司的teamTest、Robot等 2019/1/17 58

2.2.1.1 QACenter简介 QACenter测试软件是一个综合型的测试工具集,它帮助测试人员创建一个快速、可重用的测试过程 这些测试工具自动帮助管理测试过程,快速分析和调试程序,包括针对回归,强度,单元,并发,集成,移植,容量和负载建立测试用例,自动执行测试和产生文档结果 2019/1/17 58

2.2.1.2 QACenter的组成 QACenter主要包括以下几个模块: QARun:应用的功能测试工具 QALoad:强负载下应用的性能测试工具 QADirector:测试的组织设计和创建以及管理工具 TrackRecord:集成的缺陷跟踪管理工具 EcoTools:高层次的性能监测工具 http://baike.baidu.com/link?url=DePzfsLyNzDNZlBW6jiuNVbwy4ipGzw5GUTm_SHC-tvXeSX0To4Q1bm0SDcnMGADlOe-2R9wjHHuIhN9O6_JC_ 2019/1/17 58

2.3 功能测试工具 功能测试是对产品各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能 功能测试工具包括: Rational Robot SilkTest WinRunner 2019/1/17 58

2.3.1 Rational Robot Rational Robot 是rational 的产品之一,提供了软件的功能测试,它提供了许多类似机器人的重复过程 IBM Rational Robot 可以让测试人员对 .NET、Java、Web和其他基于 GUI 的应用程序进行自动的功能性回归测试 Rational Robot 可开发三种测试脚本,包括用于功能测试的GUI脚本、用于性能测试的VU以及VB脚本 2019/1/17 58

2.4 性能测试工具 性能测试是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 性能测试工具用于测试软件的性能,包括: HP公司的LoadRunner Microsoft公司的WebStress Apache Jmeter(开源软件) 2019/1/17 58

2.4.1 LoadRunner LoadRunner是一种预测系统行为和性能的负载测试工具 2019/1/17 58

2.4.2 LoadRunner工作原理 2019/1/17 58

2.4.3 LoadRunner界面 2019/1/17 58

2.5 测试管理工具 测试管理包括对测试计划、测试用例、测试实施以及测试缺陷进行管理 测试管理工具是对测试过程进行管理的工具,典型的测试管理工具包括: Mercury Interactive公司(2006年被HP收购)TestDirector Rational公司的testManager Mozilla公司的Bugzilla(开源工具) 2019/1/17 58

2.5.1 TestDirector TestDirector是HP(Mercury Interactive)公司生产的企业级测试管理工具,也是业界第一个基于Web的测试管理系统,它可以在公司内部或外部进行全球范围内测试的管理 通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能 2019/1/17 58

2.5.2 TestDirector项目管理 基于Internet的测试项目管理 2019/1/17 58

2.5.3 TestDirector界面 2019/1/17 58

问题: 有这么多的测试工具,你怎么选择适合于你的测试工具呢? 2019/1/17 58

3. 测试工具的选择 测试工具众多,因此需要根据一定的条件来选择适合自己要求的测试工具 选择的测试工具的因素: 功能 价格 测试自动化 适合软件生命周期的各个阶段 2019/1/17 58

3.1 选择的步骤 图 测试工具选择步骤 成立小组 定义问题 测试自动化 的解决方案 工具供应商 确定 需求 商务谈判 决定 候选评估 演示检验 约束 工具软件市场 图 测试工具选择步骤 2019/1/17 58

3.1.1 选择的步骤说明 成立小组负责测试工具的选择和决策,制定时间表 确定需求,并研究不同的解决方案 了解市场上满足需求的产品,包括:基本功能、价格、限制以及服务等 根据了解的情况,决定是自己开发还是从市场上购买 2019/1/17 58

3.1.2 选择的步骤说明(续) 确定2~3种候选产品 请候选产品厂家介绍、演示产品 初步确定 商务谈判 最后决定 2019/1/17 58

问题 你知道什么是测试驱动开发吗? 2019/1/17 58

4. CppUnit单元测试 测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持在编写实际代码之前,先写好基于产品代码的测试代码 XUnit是一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试 XUnit的成员有很多,如JUnit,PythonUnit等;CppUnit是XUnit家族中一个专门面向C++的测试框架 2019/1/17 58

4.1 初识CppUnit工具 将cppunit-1.12.1.tar.gz复制到你的计算机上 2019/1/17 58

4.2 编译CppUnit的例子 进入example文件夹,用VC++6.0打开examples.dsw 将CppUnitTestApp工程设为Active Project,编译后运行进入CppUnit的基于GUI方式进行单元测试的界面TestRunner 使用“Browse”按钮选择“Core”下的“TestCaseTest”案例 点击“Run”运行得到测试结果 2019/1/17 58

4.3 CppUnit的GUI界面 运行TestCaseTest的结果 2019/1/17 58

4.4 CppUnit的组织 CppUnit将所有的单元测试按照树的结构来表示 在CppUnit中,最小的测试单元称为测试方法TestMethod;而多个相关的测试方法又可以组成一个测试用例TestCase;多个测试用例又组成测试包 TestSuite CPPUnit的树形组织结构 2019/1/17 58

课堂讨论 学生讲解:介绍一款你熟悉的软件测试工具,比如WinRunner软件测试工具,讲讲它属于什么类型的测试工具,它的原理,它是如何工作的等 2019/1/17 58

作业 名次解释 软件测试 软件测试工具 简答题 软件测试工具是如何分类的,对每一类软件测试工具举一个例子 介绍软件测试工具Quick Test Professional 2019/1/17 58