软件测试过程中的工具使用共9页文档

合集下载

测试过程文档导读_软件测试资料大全

测试过程文档导读_软件测试资料大全

测试过程文档导读深圳市康拓普信息技术有限公司Shenzhen Comtop Information Technology Co.,Ltd.二○○六年十一月修订记录所有权声明:深圳市康拓普信息技术有限公司版权所有不得复制Copyright © 2006 by Shenzhen Comtop Information Technology Co., Ltd.1 前言随着测试过程的越来越完善,产生的各种测试过程文档也越来越多,这些文档都与相关的测试活动有紧密的联系,它们分布在公司软件过程改进库和测试组配置库中不同的目录下,编写本文档的目的就是为了引导不同的读者能方便快捷地找到自己所需的测试文档,并且在适当的时候使用好它们,同时对整个测试过程管理体系的具体实施过程有一个框架性的了解。

本文按照各个关键测试活动来进行编写,在每个测试活动中使用到的文档详见“文件清单”。

2 文件结构测试过程管理体系文件主要包括三大类:模板、规范和支持性文件。

模板如:测试计划、测试任务单和测试报告等;规范中有系统测试用例、用户手册和自动化测试脚本等编写规范;支持性文件是进行各类测试技术评审活动使用的检查表、各类测试方法和测试活动中所用到工具的关键使用说明等参考文件。

3 文件清单注:testSCM为测试组配置库,在129.129.5.7上;SEPG为公司软件过程改进库,在129.129.5.4上。

SEPG库中“test”文件夹下的三个目录:Checklist(检查表)、Standard(规范)、Template(模板)中的文件在测试组的配置库中也有相同的拷贝。

有关测试方法等一些支持性文件(Support File)只存放在测试组的配置库中。

4 关键测试活动4.1 测试策划项目开发计划和开发进度计划评审后,测试组成员以此为依据,编写系统测试计划和系统测试进度计划。

《系统测试计划》是可裁剪的,《系统测试进度计划》是必须的(小项目除外)。

软件测试必备文档

软件测试必备文档

软件测试分类、基本测试策略及测试方法一.分类功能测试、性能测试、兼容性测试、接口测试、安全性测试等1.功能测试不深入代码细节的软件测试方法。

常被称为行为测试,因为测试的是软件在使用过程中的实际行为。

首先,从产品需求文档获知测试对象的软件的输入和应该得到的输出。

其次,开始定义测试案例。

测试案例:指进行实验用的输入,以及测试软件用的程序。

选择测试案例是软件测试员最重要的任务。

不正确的选择可能导致测试量过大或者过小,甚至测试目标不对。

准确评估风险,把不可穷近的可能性减少到可以控制的范围是成功的诀窍。

测试基本方法:通过测试 & 失败测试通过测试:确认软件至少能做什么,而不考验其能力。

失败测试:纯粹为了破坏软件而设计和执行的测试案例,也称为迫使出错测试。

蓄意攻击软件的薄弱环节。

在设计和执行测试案例时,总是首先进行通过测试。

在破坏性试验之前看看软件基本功能是否实现是很重要的,否则在正常使用软件时就会奇怪为什么有那么多的软件缺陷。

常见的测试案例就是设法迫使软件出现错误提示信息。

产品说明书可能会给出这样的功能要求,针对这个问题的测试可能是通过测试也可能是失败测试。

可能两者都是。

不用去刻意区分,重要的是找到软件缺陷!具体测试方法:1.等价类划分是指分步骤地把过多(无限)的测试案例减小到同样有效的小范围的过程。

等价分配技术提供了一个选择哪些数值、舍弃哪些数值的系统方法。

等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试案例。

在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组。

这些组就是等价区间。

等价分配的目的是把可能的测试案例组合缩减到仍然足以测试软件的控制范围。

因为选择了不完全测试,就要冒一定的风险。

如果为了减少测试案例的数量过度进行等价分配,测试的风险就会增加。

另外,等价区间的划分没有一定的标准,只要足以覆盖测试对象就行了。

数据测试软件由数据(包括键盘输入、鼠标单击、磁盘文件、打印输出等等)和程序(可执行的流程、转换、逻辑和运算)两个最基本的要素组成。

软件性能测试工具Jmeter入门级教程案例

软件性能测试工具Jmeter入门级教程案例

软件性能测试工具Jmeter入门级教程案例性能测试工具Jmeter入门级教程案例JMeter学习(一)工具简单介绍一、JMeter 介绍Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。

它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。

JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。

同时,JMeter可以帮助你对你的应用程序进行回归测试。

通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。

为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.JMeter与LoadRunner比较JMeter 是一款开源(有着典型开源工具特点:界面不美观)测试工具,虽然与LoadRunner 相比有很多不足,比如:它结果分析能力没有LoadRunner详细;很它的优点也有很多:?开源,他是一款开源的免费软件,使用它你不需要支付任何费用,?小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java 开发的工具。

?功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。

因为它的开源性,当然你也可以根据自己的需求扩展它的功能。

两者最大的区别:jmeter不支持IP欺骗,而LR支持。

缺点使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试。

二、JMeter 下载安装1)JMeter安装1.解压文件到任意目录2. 安装JDK,配置环境变量JAVA_HOME.3. 系统要求:JMeter2.11 需要JDK1.6以上的版本支持运行4. JMeter可以运行在如下操作系统上:Unix,Windows 和Open VMS.5. 避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。

软件测试文档

软件测试文档

1.测试分类1.1.系统测试系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。

1.2.确认测试模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。

从测试原理上分为:白盒测试、黑盒测试和灰盒测试。

1.3.白盒测试通过程序的源代码进行测试而不使用用户界面。

这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。

1.4.黑盒测试通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。

测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。

在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。

黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测法。

等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法。

1.5.灰盒测试灰盒测试就像黑盒测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。

甚至于还读过部分源代码。

因此测试人员可以有真对性地进行某种确定的条件/功能的测试。

从软件特性上分为功能测试和性能测试。

1.6.功能测试是指为了确保软件系统功能实现的正确性,完整性和其他特性而进行的测试。

性能测试:是指为了评估软件系统的性能状况,和预测软件系统性能趋势而进行的测试和分析。

END2.项目测试的规划2.1.项目测试启动项目立项后,在测试配置库中创建项目。

22.2.测试计划:系统详细设计后,制定测试计划,准备测试资源。

软件测试与开发工具作业指导书

软件测试与开发工具作业指导书

软件测试与开发工具作业指导书第1章软件测试基础 (4)1.1 软件测试概述 (4)1.1.1 定义 (4)1.1.2 目的 (4)1.1.3 原则 (4)1.2 软件测试生命周期 (4)1.2.1 测试计划 (4)1.2.2 测试设计 (5)1.2.3 测试执行 (5)1.2.4 测试评估 (5)1.3 软件测试方法与策略 (5)1.3.1 黑盒测试 (5)1.3.2 白盒测试 (5)1.3.3 灰盒测试 (5)1.3.4 静态测试 (6)1.3.5 动态测试 (6)1.3.6 自动化测试 (6)1.3.7 功能测试 (6)1.3.8 兼容性测试 (6)1.3.9 安全性测试 (6)第2章单元测试工具 (6)2.1 JUnit (6)2.1.1 特点 (6)2.1.2 使用方法 (7)2.2 NUnit (7)2.2.1 特点 (7)2.2.2 使用方法 (7)2.3 TestNG (7)2.3.1 特点 (7)2.3.2 使用方法 (8)第3章集成测试工具 (8)3.1 Selenium (8)3.1.1 概述 (8)3.1.2 安装与配置 (8)3.1.3 使用方法 (8)3.1.4 注意事项 (8)3.2 TestComplete (8)3.2.1 概述 (9)3.2.2 安装与配置 (9)3.2.3 使用方法 (9)3.2.4 注意事项 (9)3.3.1 概述 (9)3.3.2 安装与配置 (9)3.3.3 使用方法 (9)3.3.4 注意事项 (10)第4章系统测试工具 (10)4.1 LoadRunner (10)4.1.1 概述 (10)4.1.2 主要功能 (10)4.1.3 使用方法 (10)4.2 JMeter (10)4.2.1 概述 (10)4.2.2 主要功能 (11)4.2.3 使用方法 (11)4.3 Gatling (11)4.3.1 概述 (11)4.3.2 主要功能 (11)4.3.3 使用方法 (11)第5章功能测试工具 (11)5.1 Apache Bench (12)5.1.1 功能特点 (12)5.1.2 使用方法 (12)5.2 YSlow (12)5.2.1 功能特点 (12)5.2.2 使用方法 (12)5.3 WebPageTest (13)5.3.1 功能特点 (13)5.3.2 使用方法 (13)第6章自动化测试工具 (13)6.1 Jenkins (13)6.1.1 Jenkins安装与配置 (13)6.1.2 Jenkins插件管理 (13)6.1.3 Jenkins任务创建 (14)6.2 Git (14)6.2.1 Git安装与配置 (14)6.2.2 Git基本操作 (14)6.2.3 Git分支管理 (14)6.3 Selenium Grid (14)6.3.1 Selenium Grid架构 (14)6.3.2 Selenium Grid安装与配置 (15)6.3.3 Selenium Grid测试执行 (15)第7章代码质量检查工具 (15)7.1 SonarQube (15)7.1.1 安装与配置 (15)7.1.3 常用插件 (15)7.2 Checkstyle (15)7.2.1 安装与配置 (16)7.2.2 使用方法 (16)7.2.3 常用配置 (16)7.3 PMD (16)7.3.1 安装与配置 (16)7.3.2 使用方法 (16)7.3.3 规则集 (16)第8章代码覆盖率工具 (16)8.1 JaCoCo (16)8.1.1 概述 (16)8.1.2 安装与配置 (17)8.1.3 使用方法 (17)8.1.4 注意事项 (17)8.2 Emma (17)8.2.1 概述 (17)8.2.2 安装与配置 (17)8.2.3 使用方法 (17)8.2.4 注意事项 (17)8.3 Cobertura (18)8.3.1 概述 (18)8.3.2 安装与配置 (18)8.3.3 使用方法 (18)8.3.4 注意事项 (18)第9章接口测试工具 (18)9.1 Postman (18)9.1.1 概述 (18)9.1.2 安装与配置 (18)9.1.3 使用方法 (19)9.2 SoapUI (19)9.2.1 概述 (19)9.2.2 安装与配置 (19)9.2.3 使用方法 (19)9.3 RESTAssured (19)9.3.1 概述 (20)9.3.2 安装与配置 (20)9.3.3 使用方法 (20)第10章持续集成与持续部署 (20)10.1 CI/CD基本概念 (20)10.1.1 持续集成 (20)10.1.2 持续部署 (21)10.2 GitLab CI/CD (21)10.4 Docker与容器化部署 (21)第1章软件测试基础1.1 软件测试概述1.1.1 定义软件测试是指在规定的条件下,对软件产品进行操作以发觉软件中的缺陷和问题,并验证软件是否满足规定的需求与用户期望的过程。

测试工程师的十大工具箱

测试工程师的十大工具箱

测试工程师的十大工具箱在软件开发行业中,测试工程师起着至关重要的作用。

他们负责确保软件的质量和稳定性,以及发现并修复潜在的问题。

为了更好地完成测试任务,测试工程师通常会使用一系列工具来提高效率和准确性。

本文将介绍测试工程师使用的十大工具,以及它们各自的功能和优势。

1. 自动化测试工具自动化测试工具是测试工程师必备的利器之一。

它们能够模拟用户操作,自动执行测试用例,提高测试的覆盖率和效率。

常见的自动化测试工具包括Selenium、Appium和JUnit等。

它们可以用于Web应用、移动应用和后端服务等不同类型的软件测试。

2. 性能测试工具性能测试工具用于评估软件在各种负载情况下的性能表现。

通过模拟用户并发访问和大规模的数据处理,性能测试工具能够测量软件的响应时间、吞吐量和资源利用率等指标。

常用的性能测试工具有JMeter和LoadRunner等。

3. 缺陷管理工具缺陷管理工具帮助测试团队有效地追踪和管理软件中的缺陷。

它们提供了一个集中式的平台,方便测试人员报告缺陷、分配任务并跟踪缺陷的解决进度。

一些知名的缺陷管理工具包括JIRA和Bugzilla等。

4. 测试管理工具测试管理工具用于规划、组织和跟踪测试活动。

它们可以帮助测试团队制定测试计划、管理测试资源和生成测试报告。

一些常见的测试管理工具有TestRail和TestLink等。

5. API测试工具API测试工具用于测试软件的应用程序接口(API),以确保其功能正确性和性能稳定性。

这些工具能够模拟API请求,验证返回结果,并检查API的响应时间和错误处理能力等。

常用的API测试工具有Postman和SoapUI等。

6. 覆盖率分析工具覆盖率分析工具用于评估测试用例对源代码的覆盖程度。

它们能够分析测试用例执行过程中哪些代码被访问到,从而帮助测试工程师了解测试的完整性和有效性。

常见的覆盖率分析工具包括JaCoCo和Emma等。

7. 数据生成工具数据生成工具用于生成各种类型的测试数据,以满足不同的测试需求。

软件测试的基本过程

软件测试的基本过程

软件测试的基本过程1.引言概述部分的内容可以如下编写:1.1 概述软件测试是软件开发过程中的重要环节,用于检测和评估软件产品的质量和可靠性。

它是通过执行一系列测试活动来发现和纠正软件中的问题和错误,以确保软件在实际使用中能够达到预期的功能和性能要求。

软件测试的目标是确保软件的正确性、可用性和稳定性。

通过进行软件测试,可以发现和修复潜在的缺陷,提高软件的健壮性和可靠性。

同时,软件测试还可以帮助提高用户满意度,促使开发团队对软件开发过程进行改进和优化。

软件测试的过程通常包括测试计划制定、测试用例设计、测试环境设置、测试执行和结果分析等阶段。

在测试计划制定阶段,测试人员根据软件需求和设计文档制定测试计划,确定测试范围和目标,并制定测试策略和方法。

在测试用例设计阶段,测试人员根据软件需求和设计文档编写测试用例,定义测试输入、操作和预期输出。

在测试环境设置阶段,测试人员配置测试环境,包括硬件、软件和网络等资源的准备。

在测试执行阶段,测试人员根据测试计划和测试用例执行测试,记录测试结果和问题。

最后,在结果分析阶段,测试人员对测试结果进行整理和分析,评估软件的测试覆盖率和质量。

软件测试的基本过程是软件开发生命周期中的关键环节,对于保障软件质量和用户满意度具有重要意义。

在日常的软件开发工作中,我们应该重视软件测试的实施,注重测试计划的编制、测试用例的设计和测试结果的分析,以提高软件的可靠性和稳定性。

软件测试是一个不断迭代和改进的过程,未来的软件测试将面临更多复杂和多样化的挑战,我们需要不断学习和探索新的测试方法和技术,以适应快速发展的软件行业需求。

文章结构是指文章中各部分的组织和安排方式,它是整篇文章的骨架和框架。

一个良好的文章结构可以使读者更好地理解和接受文章的内容。

本文将按照以下结构展开内容:1. 引言1.1 概述:介绍软件测试的背景和基本概念,引出文章要讨论的问题。

1.2 文章结构:介绍本文的结构和组织方式,并简要说明每个部分的主要内容。

常用嵌入式软件白盒测试工具介绍

常用嵌入式软件白盒测试工具介绍

功能特色
第6页共9页
常用嵌入式软件白盒测试工具介绍
1. 即时测试类/函数 2. 支持极端编程模式下的代码测试 3. 自动建立类/函数的测试驱动程序和桩调用 4. 自动建立和执行类/函数的测试用例 5. 提供快速加入和执行说明和功能性测试的框架 6. 执行自动回归测试 7. 执行部件测试(COM)
价格
市场价每套约 30 万人民币
相关网站
不详
获取方式
国内深圳市华唐科技有限公司代理
三、 RTRT(Rational Test RealTime)
生产厂商
IBM Rational
简介
IBM Rational Test RealTime 帮助开发人员创建测试脚本、执行测试用例和生成 测试报告,并提供对被测代码进行静态分析和运行时分析功能。利用该工具,开发人员 可以大大提高测试的效率。
2. 测试覆盖分析
CODETEST 提供程序总体概况,函数级代码以及源级覆盖趋势等多种模式来观 测软件地覆盖情况。由于 CODETEST 是一种完全地交互式工具,测试者可以在对系 统进行操作地同时追踪覆盖情况。
CODETEST 覆盖率信息包括程序实际执行的所有内容,而不是采样的结果,它 以不同颜色区分运行和未运行的代码,CODETEST 可以跟踪超过一百万个分支点, 特别适用于测试大型嵌入式软件。
支持直观的树状测试用例管理,支持单用例、单测试集,或多用例多测试集 批量执行,支持命令行启动全工程自动测试。
第1页共9页
常用嵌入式软件白盒测试工具介绍
VcTester 共享版定位于个体测试应用,商用版则定位于企业级应用,为适应 团队运作及产品质量保证活动而增加相应功能,商用版具有如下特色:
1. 支持符合第 4 代白盒测试方法的测试评估体系
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试过程中的工具使用软件测试过程中的工具使用作者:easylife来源:不详摘要:软件测试是保证软件质量的重要手段,它在整个软件开发过程中占据了将近一半的时间和资源。

在软件测试过程中合理的引入测试工具,能够加快测试进度,提高测试质量,实现更快、更好的开发软件产品的目标。

本文介绍了覆盖软件测试各个阶段的测试工具,说明了每一类工具所应用的测试阶段,以及它能发挥的作用。

Abstract:Software test is one measure to insure the quality of software,it costs half of time and resource in the whole process of development.If test tools can be used in the process,it would to improve the speed of test and the quality of test,It's probable to develop software rapidly and to produce high quality.In this document it introduces some software test tools for the different of test moment,it introduce the time for every kind of tools,but the function of the test tool.关键字:软件测试工具;测试设计;静态分析;单元测试;功能测试;性能测试;测试过程管理;Keywords:software test tool;test design;static analysis;unit test;function test;performance test;test process management;1、引言最近几年,软件测试在国内越来越受到重视,因为大家逐渐认识到了软件测试对于保证软件质量的重要性。

随着对软件测试重视的提高,国内软件测试技术的发展也很快,逐渐从过去手工作坊式的测试向测试工程化的方向发展。

要真正实现软件测试的工程化,其基础之一就是要有一大批支持软件测试工程化的工具。

因此,软件测试工具对于实现软件测试的工程化来说至关重要。

本文就从如何进一步提高软件测试质量和效率的角度出发,讨论测试工具在软件测试过程中的应用。

2、为什么要引入测试工具在测试过程中引入测试工具能给我们带来以下的好处。

2.1、提高工作效率这是引入测试工具给我们带来的一个显著好处。

那些固定的、重复性的工作,可以由测试工具来完成,这样就使得测试人员能有更多的时间来计划测试过程,设计测试用例,使测试进行的更加完善。

2.2、保证测试的准确性测试是需要投入大量的时间和精力的,人工进行测试时,经常会犯一些人为的错误,而工具的特点恰恰能保证测试的准确性,防止人为疏忽造成的错误。

2.3、执行困难的测试工作有一些测试工作,人工进行是很困难的。

有的是因为进行起来较为复杂,有的是因为测试环境难以实现。

测试工具可以执行一些通过手工难于执行,或者是无法执行的测试。

3、测试工具在软件测试过程中的具体应用在这一部分,我们讨论测试工具在测试过程中的具体应用。

现在的测试工具很多,基本上覆盖了各个测试阶段。

按照工具所完成的任务,可以分为以下几大类:测试设计工具、静态分析工具、单元测试工具、功能测试工具、性能测试工具、测试过程管理工具。

下面,我们就针对每一类工具展开介绍。

3.1、测试设计工具测试设计工具,更完整的名称应该是测试用例设计工具,是一种帮助我们设计测试用例的软件工具。

设计测试用例是一项智力性的活动,工具如何能够代替呢?确实是这样,但仔细思考一下我们就会发现,很多设计测试用例的原则、方法是固定的,比如等价类划分、边界值分析、因果图等等,这些成型的方法,很适合通过软件工具来实现。

测试用例设计工具按照生成测试用例时数据输入内容的不同,可以分为:基于程序代码的测试用例设计工具和基于需求说明的测试用例设计工具。

下面分别对这两类工具进行介绍。

3.1.1、基于程序代码的测试用例设计工具基于程序代码的测试用例设计工具是一种白盒工具,它读入程序代码文件,通过分析代码的内部结构,产生测试的输入数据。

这种工具一般应用在单元测试中,针对的是函数、类这样的测试对象。

由于这种工具与代码的联系很紧密,所以,一种工具只能针对某一种(些)编程语言。

这类工具的局限性是--只能产生测试的输入数据,而不能产生输入数据后的预期结果,这个局限也是由这类工具生成测试用例的机理所决定的。

所以,基于程序代码的测试用例设计工具所生成的测试用例,还不能称之为真正意义上的测试用例。

不过即使这样,这种工具仍然为我们设计单元测试的测试用例提供了很大便利。

3.1.2、基于需求说明的测试用例设计工具这种测试用例设计工具,依据软件的需求说明,生成基于功能需求的测试用例。

这种工具所生成的测试用例既包括了测试输入数据,也包括预期结果,是真正完整的测试用例。

使用这种测试用例设计工具生成测试用例时,需要人工的事先将软件的功能需求转化为工具可以理解的文件格式,再以这个文件作为输入,通过工具生成测试用例。

在使用这种测试用例设计工具来生成测试用例时,需求说明的质量是很重要的。

由于这种测试用例设计工具是基于功能需求的,所以可用来设计任何语言、任何平台的任何应用系统的测试用例。

我们来看一个这类工具的例子--SoftTest。

在使用SoftTest生成测试用例时,先将软件功能需求转化为文本形式的因果图,然后让SoftTest读入,SoftTest会根据因果图自动生成测试用例。

在这个过程中,工具的使用者只需要完成由功能需求到因果图的转化,至于如何使用因果图来生成测试用例,则完全由Softtest完成。

所有测试用例设计工具都依赖于生成测试用例的算法,工具比使用相同算法的测试人员设计的测试用例更彻底、更精确,这方面工具有优势。

但人工设计测试用例时,可以考虑附加测试,可以对遗漏的需求进行补充,这些是工具无法做到的。

所以,测试用例设计工具并不能完全代替测试工程师来设计测试用例。

使用这些工具的同时,再人工的检查、补充一部分测试用例,会取得比较好的效果。

3.2、静态分析工具一提到软件测试,人们的第一印象就是填入数据、点击按钮等这些功能操作。

这些测试工作确实是重要的,但它们不是软件测试的全部。

与这种动态运行程序的测试相对应,还有一种测试被称为静态测试,也叫做静态分析。

进行静态分析时,不需要运行所测试的程序,而是通过检查程序代码,对程序的数据流和控制流信息进行分析,找出系统的缺陷,得出测试报告。

进行静态分析能切实提高软件的质量,但由于需要分析人员阅读程序代码,使得这项工作进行起来工作量又很大。

对软件进行静态分析的测试工具在这种需求下也就产生了。

现在的静态分析工具一般提供以下两个功能:分析软件的复杂性、检查代码的规范性。

软件质量标准化组织制定了一个ISO/IEC9126质量模型,用来量化的衡量一个软件产品的质量。

该软件质量模型是一个分层结构,包括质量因素、质量标准、质量度量元三层。

质量度量元处于质量模型分层结构中的最底层,它直接面向程序的代码,记录的是程序代码的特征信息,比如函数中包含的语句数量、代码中注释的数量。

质量标准是一个概括性的信息,它比质量度量元高一级,一个质量标准由若干个质量度量元组成的。

质量因素由所有的质量标准共同组成,处于软件质量模型的最高层,是对软件产品的一个总体评价。

具有分析软件复杂性功能的静态分析工具,除了在其内部包含上述的质量模型外,通常还会从其它的质量方法学中吸收一些元素,比如Halstend质量方法学、McCabe质量方法学。

这些静态分析工具允许用户调整质量模型中的一些数值,以更加符合实际情况的要求。

在用这类工具对软件产品进行分析时,以软件的代码文件作为输入,静态分析工具对代码进行分析,然后与用户定制的质量模型进行比较,根据实际情况与模型之间的差距,得出对软件产品的质量评价。

具有检查代码规范性功能的静态分析工具,其内部包含了得到公认的编码规范,比如函数、变量、对象的命名规范,函数语句数的限制等等,工具支持对这些规范的设置。

工具的使用者根据情况,裁减出适合自己的编码规范,然后通过工具对代码进行分析,定位代码中违反编码规范的地方。

以上就是静态分析工具所具有的功能。

与人工进行静态分析的方式相比,通过使用静态分析工具,一方面能提高静态分析工作的效率,另一方面也能保证分析的全面性。

3.3、单元测试工具单元测试是软件测试过程中一个重要的测试阶段。

与集成测试、确认测试相比,在编码完成后对程序进行有效的单元测试,能更直接、更有效的改善代码质量。

进行单元测试不是一件轻松的事。

一般来讲,进行一个完整的单元测试所需的时间,与编码阶段所花费的时间相当。

进行单元测试时,根据被测单元(可能是一个函数,或是一个类)的规格说明,设计测试用例,然后通过执行测试用例,验证被测单元的功能是否正常实现。

除此之外,在单元测试阶段,我们还需要找出那些短时间不会马上表现出来的问题(比如C++代码中的内存泄露),还需要查找代码中的性能瓶颈,并且为了验证单元测试的全面性,我们还想了解单元测试结束后,我们的测试所达到的覆盖率。

针对这些在单元测试阶段需要做的工作,各种用于单元测试的工具就产生了。

典型的单元测试工具有以下几类:动态错误检测工具、性能分析工具、覆盖率统计工具。

动态错误检测工具,用来检查代码中类似于内存泄露、数组访问越界这样的程序错误。

程序功能上的错误比较容易发现,因为它们很容易表现出来。

但类似于内存泄露这样的问题,因为在程序短时间运行时不会表现出来,所以不易发现。

遗留有这样问题的单元被集成到系统后,会使系统表现的极不稳定。

性能分析工具,记录被测程序的执行时间。

小到一行代码、一个函数的运行时间,大到一个exe或dll文件的运行时间,性能分析工具都能清晰的记录下来。

通过分析这些数据,能够帮助我们定位代码中的性能瓶颈。

覆盖率统计工具,统计出我们当前执行的测试用例对代码的覆盖率。

覆盖率统计工具提供的信息,可以帮助我们根据代码的覆盖情况,进一步完善测试用例,使所有的代码都被测试到,保证单元测试的全面性。

动态错误检测工具、性能分析工具、覆盖率统计工具的运行机理是:用测试工具对被测程序进行编译、连接,生成可执行程序。

在这个过程中,工具会向被测代码中插入检测代码。

然后运行生成的可执行程序,执行测试用例,在程序运行的过程中,工具会在后台通过插入被测程序的检测代码收集程序中的动态错误、代码执行时间、覆盖率信息。

相关文档
最新文档