频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.2.1 性能测试在软件测试的周期位置

作者: 柳胜编著 出处:电子工业出版社  2008-06-15 10:28    砖    好    评论   进入论坛
阅读提示:《性能测试从零开始:LoadRunner入门》第1章主要讲述的是软件性能测试,在软件性能测试范畴内就有很多,诸如并发测试、压力测试、基准测试、测试场景等概念和名词,这让刚接触性能测试的新手眼花缭乱,目不暇接。但我们如果能深入软件性能测试的本质,从哲学的角度看问题,找出其内在联系,比如因果关系、形式内容关系,甚至重叠关系等,理清思路之后,那么做软件性能测试就会如庖丁解牛,游刃有余。本节为您介绍性能测试在软件测试的周期位置。

1.2  软件性能测试

在上一节中,我们知道软件系统的性能问题多种多样,这给用户带来巨大的风险,那么我们如何能够在软件系统上线之前,找出软件中潜在的性能问题呢?目前软件性能测试是发现软件性能问题最有效的手段,而完备有效的性能测试是最关键的,在本节中我们将从流程和技术的角度解析如何构建一个高效的性能测试模型。

1.2.1  性能测试在软件测试的周期位置

首先,软件性能测试属于软件测试范畴,存在于软件测试的生命周期中。一个软件的生产过程通常遵循V型图,如图1-3所示。

 
图1-3  软件开发-测试V型图

在通常的软件生产周期中,先由用户提出用户需求或经系统分析核定以后提出系统需求,开发人员再经过需求分析提出软件需求规格说明,进行概要设计,提出概要设计说明,进行详细设计,提出详细设计说明,最后就是对每个模块进行编码。到测试阶段,测试按照开发过程逐阶段进行验证并分步实施,体现了从局部到整体、从低层到高层逐层验证系统的思想。对应软件开发过程,软件测试步骤分为代码审查、单元测试、集成测试、系统测试。

而性能测试就属于软件系统级测试,其最终目的是验证用户的性能需求是否达到,在这个目标下,性能测试还常常用来做:

(1)识别系统瓶颈和产生瓶颈的原因;

(2)最优化和调整平台的配置(包括硬件和软件)来达到最高的性能;

(3)判断一个新的模块是否对整个系统的性能有影响。


系统瓶颈:

瓶颈本来是指玻璃瓶中直径较小并影响流水速度的一段,用它来比喻软件系统中出现性能问题的节点是很形象的,比如一个典型的分布式系统架构如图1-4所示。

 
(点击查看大图)图1-4  软件系统压力流动图

如果把软件系统看做是交通系统,那么网络就是一条条大道,客户端、防火墙、负载均衡器、Web服务器、应用服务器(中间件)、数据库等各个系统节点就是交通要塞,客户的请求和数据就像在道路上行驶的车辆,如果在某处发生堵车,那么整个交通系统都会不畅。在这个时候,我们就要分析是哪里出了问题,是道路不够宽,还是某处立交桥设计不合理而引起堵塞等。找到问题的关键点,那么此关键点就是本系统的瓶颈。软件系统也是如此,我们做性能测试的大部分工作都是为了寻找这个瓶颈到底在何处。

需要注意的是,软件的性能瓶颈可能不止一处。

作为软件测试的一种,软件测试的规则同样适用于性能测试中:

(1)确定预期输出是测试必不可少的一部分

如果事先无法肯定预期的测试结果,往往会把看起来似是而非的东西当作正确结果。必须提倡用事先精确对应的输入和输出结果来详细检查所有的输出。对于性能测试来说,预期输出就是用户的性能需求,一份明确的性能需求是成功性能测试的先决条件。

(2)必须彻底检查每一个测试结果

事实上,在最终发现的错误,有相当一部分在前面的测试中已经暴露出来了,然而由于人们未能细心检查先前的测试结果而遗漏了。
一段程序中存在的错误概率与在这段程序中发现的错误数呈正比。

这是pareto原则应用于软件测试,也包括性能测试,即性能测试发现的错误中的80%很可能集中在20%的程序模块中。

(3)穷举测试是不可能的

在性能测试中不可能覆盖每一个功能部分,这也意味着有性能问题的模块可能被忽略掉,这样的话,我们在设计性能测试案例时,应该采取一些策略和技巧,使用尽可能少的性能测试用例,发现尽可能多的bug。这方面内容我们将在本书的第10章中介绍。
在具有软件测试共性的同时,性能测试也有自身的一些特点。

1.性能测试不是功能测试

性能测试不要求也无法做到覆盖软件所有的功能,通常我们只是对系统中某些功能或模块做性能测试。一般的,我们在选择性能测试案例时需要遵循以下的原则:

(1)基本且常用的

比如,一个E-mail系统,基本且常用的功能有注册、登录、收邮件、查询邮件,用户使用这些功能的频率较高,要做性能测试。而高级查询、过滤器、邮件列表等功能被使用的次数较少,就可以不做性能测试,或者进行性能测试的优先级低一些。

(2)对响应时间要求苛刻的

这样的要求经常出现在金融和电信等对实时性要求比较高的系统中。比如,从手机呼叫开始,经过基站、核心网,再到被叫手机响铃,整个系统的处理时间应该在用户能接受的范围内。另外,一个负责和手机通信的基站在发生故障或掉电后,要能很快地恢复工作状态。这些功能都对时间有着严格的要求,一定要做性能测试,当然实际运作时,电信系统上线时所做的性能测试不仅仅限于这些功能。

将这些功能细分就是性能测试中的事务(Transaction)。关于事务这个概念我们在后面的章节中将详细阐述。

2.性能测试属于系统级测试

从V型图可以看到,性能测试属于系统级测试。那么性能测试是基于单元测试、集成测试、功能测试等都已经完成的基础上,站在用户的角度去测试整个系统的。这包含两个含义:

第一,性能测试是“两头在外”,软件性能需求不仅直接来自用户,最终目的也是服务于用户。通过性能测试这个过程,从上面我们讲到用户的需求和性能测试指标的对应关系,就可以看出。

第二,性能测试开始的必要条件是软件系统已经处于一个比较稳定的状态,系统架构、主要代码、中间件等都不再有大的变化,否则会给性能测试带来很大的风险。

思考

基于以上事实,我们应该在软件流程什么阶段开始性能测试?结合自己的实际工作进行分析。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
专题:网络性能测试
性能测试从零开始:LoadRunner入门
EJB JPA数据库持久层开发实践详解
ASP.NET 3.5网络数据库开发实例自学手册
Visual C++代码参考与技巧大全
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
Windows Server 2008专题
Windows Server 2008专题
2008中国互联网大会
2008中国互联网大会
微软出价446亿美元收购雅虎
微软出价446亿美元收购雅虎
· 微软出价446亿美元收购..
· 技术人求职简历完备手册
· 访问控制列表(ACL)介绍
· 隐私保护技术探讨
· 华为员工自杀频频拷问..
· 勇闯IT培训黑色围城
· CISSP认证成长之路
· 解析35岁技术人的价值..
· 网络工程师职业规划与..
· LAMP技术精解
· AMD Phenom三核处理器..
· 充电计划之热门IT认证..
· 如何有效防御SQL注入攻..
· 2008年上半年全国软考..
· 选择适合自己的IT认证
· IPv6协议--拓展网络无..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
· 专题:AIX操作系统管理..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· PHP开发应用手册
· 专题:AIX操作系统管理..