连载:(九)软件测试技术——数据库性能检查和压力测试

发表于:2008-6-16 16:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈能技    来源:51Testing软件测试网

        上面介绍的都是代码层的性能测试,而目前很多软件系统都需要应用到数据库,通常数据库也会成为性能瓶颈之一。如图所示的是一个简单C/S结构系统可能出现性能瓶颈的地方。

 简单C/S结构系统可能出现性能瓶颈的地方


那么测试人员应该如何发现数据库相关的性能问题呢?
        首先要分析什么会引起数据库的性能问题,一般来说有两个主要原因:数据库的设计和SQL语句。
        数据库的设计又分为数据库的参数配置和逻辑结构设计,前一种比较好解决,后一种则是测试人员需要关注的,糟糕的表结构设计会导致很差的性能表现。例如,没有合理地设置主键和索引则可能导致查询速度大大降低。没有合理地选择数据类型也可能导致排序性能降低。
        低效率的SQL语句是引起数据库性能问题的主要原因之一,其中又包括程序请求的SQL语句和存储过程、函数等SQL语句。对这些语句进行优化能大幅度地提高数据库性能,因此是测试人员需要重点关注的对象。
        技巧:可以借助一些工具来帮助找出有性能问题的语句,例如SQL Best Practices Analyzer、SQLServer数据库自带的事件探查器和查询分析器、LECCO SQLExpert等。

软件的“极限考验”——压力测试
        是否想知道软件系统在某方面的能力可以达到一个怎样的极限呢?软件项目的管理者以及市场人员会尤其关心压力测试的结果,想知道软件系统究竟能达到一个怎样的极限。压力测试(stress testing)就是一种验证软件系统极限能力的性能测试。
        压力测试与负载测试(load testing)的区别在于,负载测试需要进行多次的测试和记录,例如随着并发的虚拟用户数的增加,系统的响应时间、内存使用、CPU使用情况等方面的变化如何。压力测试的目的很明确,就是要找到系统的极限点。在系统崩溃或与指定的性能指标不符时的点,就是软件系统的极限点。

        说明:实际上,在做性能测试的过程中不会严格区分这些概念,它们的界限有些模糊。对于测试人员来说,更关心的是如何满足性能需求,如何进行性能测试。

        经常碰到性能需求不明确的情况。用户通常不会明确地提出性能需求,在进行需求分析和设计时也通常把性能考虑在后面。即使提出了性能上的要求,也是很模糊的,例如:“不能感觉到明显的延迟”。
        对于不明确的性能需求,通常需要进行的不是极限测试,而是负载测试,需要逐级验证系统在每一个数据量和并发量的情况下的性能响应,然后综合分析系统的性能表现形式。

连载一 连载二  连载三 连载四 连载五 连载六 连载七 连载八

本文选自《软件测试大全:测试技术、流行工具、项目实战》一书,本站经人民邮电出版社和作者的授权,近期将进行部分章节连载,敬请期待!

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号