认识软件性能测试10大误区

曾经我们帮助客户进行软件性能测试的时候,客户不解的问,不是必须通过功能测试后才可以测试性能吗?可能有很多人会存在这样的疑问,在这里,我们的多位专家根据多年经验总结出性能测试的10大误区,希望能给大家带来帮助。

  误区1:应用程序必须通过功能测试后才可以测试性能。

  应该尽早的进行性能测试。性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起后,才能检查一个系统的真正性能。

  性能测试从早开始,完成一个小模块,对小模块的接口进行性能测试,一般耗费资源很少,但可以防止问题在项目最后出现,花费很大的精力去修改。

  而有些资料中提到的:在系统代码开发和功能测试完成之后,进行性能测试的说法,是为了检查系统整体性能的做法。一般经常出现在验收性能测试中。

  误区2:软件性能测试要向功能测试一样,覆盖到所有功能。

  性能测试的主要目的是为了系统调优。不可能对所有的系统功能都进行性能测试。在测试设计时需要结合当时的实际系统,先分析软件可能存在的瓶颈,此时可依据80/20原则分析:对系统资源的利用、数据大量传输、数据转换、用户使用频率、逻辑复杂度等进行分析,选择要执行的功能和场景,再依次制定性能测试的方案。

  误区3:系统吞吐率随着并发量增加而增加。

  随着并发量的增加吞吐率并不是线性增长的。并发量从小逐渐增大,开始阶段吞吐率随着并发量的增加线性变化;当并发量达到某一值时,系统处理能力趋于饱和(也可能某一硬件条件达到临界值),此时再逐渐增大并发,会有一些请求处于等待状态,所以响应时间变慢,吞吐率趋于稳定;当并发量达到系统的最大处理能力后,再增加并发,系统处理能力会下降,吞吐率也会下降,最终可能发生宕机。

  误区4:客户给出性能指标,我们一定要想法设法达到。

  根据用户提供的指标进行可行性分析,分析这些指标在理想状态下是否可以达到。比如有这么一个要求:有一台服务器,希望能承载10000个用户每秒200kb的传输。从CPU、Disk、网卡等方面分析都是很难达到的,也是很难测试的。需要和客户商讨增加硬件配置或者通过其他途径来解决。

  误区5:压力测试、负载测试、容量测试等这些不同类型的测试一个一个分开来执行。

  现实场景是复杂的,测试也需要尽可能的模拟负载的场景。在一个整体的系统性能测试场景中,应该包括各个类型的测试。而需要检查某一个方面的指标或分析某个性能问题时,尽量保证场景简单、单一、容易模拟。

  误区6:做性能测试主要就是性能测试工具的使用;我做不好性能测试,是因为对测试工具不熟悉;测试工具可以自动生成我所需要的报表;依靠性能测试工具就能准确定位系统瓶颈;

  测试工具在测试中只能起到辅助性作用。而测试方案、测试场景的分析、问题的定位这才是性能测试的关键。不要期望测试工具能够生成你想要的东西(报表、瓶颈分析),工具只是尽可能多的提供我们分析的依据。

  误区7:在线用户数就是并发用户数。并发用户数高意味着PV(页面浏览量)大。

  并发用户数*用户访问页面数=PV

  误区8:提高一下硬件配置就可以提高性能了,因此性能测试不重要。

  随着软件规模的扩大,提高硬件配置只是解决性能问题的一个基本手段。因为如果软件自身存在性能问题,再多的资源可能也不够用,例如:内存泄露问题,随着时间的增加,内存终究会被耗尽,最后导致系统崩溃;数据库连接等配置信息、数据库死锁是和硬件很难挂钩的;算法逻辑问题导致程序缓慢。即使要提高配置,也要首先用性能测试的方式得出哪些硬件可能存在瓶颈。

  误区9:性能测试独立于功能测试

  一方面,整体性能测试的场景设计要求的系统功能非常熟悉;另一方面,功能测试可以发现性能问题,性能测试也能发现功能问题。很多性能问题时由于软件自身功能缺陷引起的。如果应用系统功能不完善或者代码运行效率低下,通常会带来一些性能问题。功能测试可能会发现这些问题。

  误区10:随便找个环境下进行一下性能测试就可以了。

  做性能问题分析可以在类生产环境上进行,配置可以有些差别,但是,整体性性能测试、验收性性能测试要尽量在用户生产环境下进行。








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac php oracle11g,Oracle11G函数整理

返回字符的字符函数 1、CHR(n) [n为正整数,如果ngt;256,就去MOD(n,256)] select CHR(65) a1,CHR(67)||CHR(65)||CHR(84) a2 FR返回字符的字符函数1、CHR(n) [n为正整数,如果n>256,就去MOD(n,256)]2、CONCAT(ch1,ch2) 拼接字符串…

软工_个人博客作业3

PART1 博文阅读感想 十几篇博客一气读下来,有一个词一直萦绕在我的脑海里——紧张!紧张!还是紧张! 首先这紧张来自于自己的学习方面。作为计算机系的科班出身,当然与生俱来就有一种优越感——我们是专业的,…

Linux环境中配置环境变量无效

1.在Linux系统中的【 ~/.baserc 】文件与【 /etc/profile 】配置环境变量后(可以使任意环境变量)无效的现象,如下为解决办法: 使用命令: 1 vim ~/.zshrc 在 【# User configuration】下添加环境变量; 如图说明: 2.也可…

手机能打开的表白代码_手机拍照还能加文字?打开这个自带按钮,一键就能添加方便...

手机拍照还能文字?打开这个自带按钮,一键就能添加方便我们日常生活中,经常会在朋友圈里面看到,这样的图片,不仅图片好看,上面还带有精美的文字,里面还添加了时间、地点、天气,在配上…

如何使create-react-app与Node Back-end API一起使用

This is a very common question among newer React developers, and one question I had when I was starting out with React and Node.js. In this short example I will show you how to make create-react-app work with Node.js and Express Back-end.这在新的React开发人…

Spring Cloud Eureka 入门 (二)服务提供者详解

2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “优秀不是过去是一种心态” 「Spring Cloud Eureka 入门系列」Spring Cloud Eureka 入门 (一…

题解 CF682C 【Alyona and the Tree】

简单搜索题,我们每找到一组不满足题目给出条件的点和边就将其整个子树删除,然后最终答案加上该子树的大小即可。注意,搜索的时候如果当前的边权和sum已经为负了,应该将其改为0(可以想想为什么) 注&#xff…

现在mfc的现状如何_天玑云客:微信代运营现在什么现状?如何挑选合适的代运营公司?...

来源:天玑云客综合整理团队成员均来自“中国房地产策划代理百强企业”TOP10以及”中国企业500强“TOP20企业并担任重要职位。和你一起聊运营、产品、技术研发、房地产以及各种新兴行业有哪些有趣的营销玩法。由于微信公众号/小程序的影响力日益增强,以及…

第五百一十八天 how can I 坚持

闲是真能闲出病来,无名的焦虑啊。不想这样。 天越来越冷了。后天就放假了,有点小激动,这一天天的。 今晚没玩游戏,看了会《微微一笑很倾城》,只能是崇拜那些玩游戏好的,就是玩不好,哎。。。 睡觉…

第三方登录 人人php,人人网第三方登录接口方案

之前闲暇有空,就去了解了下人人网的第三方登录的接口,呵呵..发布想了解的都了解下.一. REST接口模式使用HTTP post 协议or HTTP get 协议发出请求.HTTP 协议同REST服务器通信.Java Struts 1.2 .do 的模式请求.代码:1.URL编码的示例代码(java): value java.net.UR…

easy ui dialog 关闭之后的怪异问题

最近在工作中使用easy ui做东西,然后发现了一些不可思议的现象,笔记一下,前事不忘后事之师!事故现场:增加页面和修改页面是分离的两个jsp文件.在页面加载时会用jquery去控制一些数据加载和一些逻辑.理论上来说不希望增加页面和修改页面互相干扰.单独拿增加模块测是正常的.加载修…

node.js gbk编码_如何使用Node.js将Chrome的霸王龙编码为电报游戏

node.js gbk编码by Fernando Garca lvarez通过费尔南多加西亚阿尔瓦雷斯 如何使用Node.js将Chrome的霸王龙编码为电报游戏 (How to code Chrome’s T-Rex as a Telegram game using Node.js) Last month I was really interested in learning how the Telegram game platform …

二进制文件更新程序_APR 6.17程序文件更新

兰博基尼程序文件更新Lamborghini Huracan EURO MY2018 5.2L V10 DKBC 4T0907552L S0002 Stage 1 V1.1 [APR Mobile]奥迪程序文件更新Audi A3 / VW GTI NA MY2014 2.0TSI CNTC 5G0906259A S0001 Stage 1 V2.0.3 [2WD] [Single Program]Audi A3 / VW GTI NA MY2014 2.0TSI CNTC …

android 事件拦截 (Viewpager不可以左右滑动)

以前没有做过真正的需求,所以从来没有觉得事件拦截分发处理有什么好懂的。 现在做需求了,真的是什么需求都有,你作为开发都要去研究实现。比如说,只能点不能滑动的viewpager。其实这都可以不用viewpager了。直接用fragment的repl…

mysql安装设置数据目录下,linux下安装mysql数据+配置

《linux下安装mysql数据配置》由会员分享,可在线阅读,更多相关《linux下安装mysql数据配置(2页珍藏版)》请在人人文库网上搜索。1、Redhat下安装MySQL数据库 说明:安装环境:本地VMWare虚拟机redhat MySQL安装目录:/hom…

力扣——k个一组翻转链表

给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4…

拨盘Demo大赛,获奖公布-20170710

2019独角兽企业重金招聘Python工程师标准>>> 为了答谢微信小程序联盟的新老会员,极乐科技支持举办的拨盘大赛终于落幕,本次大赛有662人关注,报名参赛8位,获奖名单如下: ##一、获得1000元现金奖励的参赛者 会…

2018年编程语言排行榜_这是2018年学习的最佳编程语言

2018年编程语言排行榜by Alexander Petkov通过亚历山大佩特科夫(Alexander Petkov) 这是2018年学习的最佳编程语言 (Here are the best programming languages to learn in 2018) This is the definitive guide for anyone wanting to choose the right programming language …

ZJUTACM

描述 这回是浙江工业大学的ACM程序设计竞赛,欢迎你的到来!但是,请稍等!裁判Joe说了,必须正确回答他的问题,才可以看到PIPI的气球MM,KUKU的气球GG.Joe手上有7张卡片,每张卡片上有一个大写字母,分别是Z,J,U,T,A,C,M.现在他开始表演魔术,每次只交换其中的两张卡片.等表…

vscode 不能运行h5c3代码_让开发效率“飞起”的VS Code 插件

前言VSCode,是一个免费的、开源的跨平台编辑器,也是我最满意的编辑器之一。本文向大家推荐一些我喜欢的vscode插件,不出意外的话,这些插件将对你的工作效率提升有不小的帮助!GitLensVS Code中的 Git 体验在易用性和完整性之间取得…