测试经理不知道性能测试人员在做什么
不知道性能测试进展如何
不知道性能测试是否有效
不知道如何协助性能测试人员
了解性能测试的进展,更好的控制整个测试流程
了解性能测试的质量
等到稳定版再进入是不靠谱的,要尽早。
尽早到什么时候,性能测试需要哪些流程和数据呢?关注性能方案中的用户模型。
传统敏捷
敏捷方式的最大特点就是不断确认、不断修正、多次迭代。
在传统方式的测试过程中,经常出现的问题恰恰是缺少了敏捷思想中的确认过程,导致了测试方向偏离、测试有效性不够。
在传统方式中,可以很简单的将过程分为文档和执行两部分。文档过程很容易被检查,问题主要是在执行过程,这个过程有可能对测试经理是不可见的。
考虑这个问题:如果一次性能测试,没有提起任何问题,是否在性能报告之前的执行过程是不可知的?
如果现有的工作方式确实存在这个问题,该如何解决呢?
这就需要依靠性能测试执行过程规范和检查制度,请继续往后看。
测试负责人的疑问主要是新版本需不需要再做一次性能测试?比如只新增加了一个功能。
抛开上面提到的3个方面,新增功能或模块可能会引起性能测试用户模型的变化。如果经过确认,用户模型无需变化,那自然也没必要重新测试。如果用户模型确实发生了改变,其实我觉得是有必要再次执行测试的,毕竟性能测试也算是一种自动化的测试,就应该能够持续性的运行。
只不过我们现在的问题是,性能测试的复用性太低,基于HTTP请求的脚本很容易失效,测试环境也总需要重新搭建,这些因素导致了性能测试的成本和投入变大,即使只是增加了一个小功能,可能也需要重头来做一次性能测试。如果有办法改变这个状况,那么每次新版本只要补充一下相关的测试代码就可以了。
我的想法是,性能测试要向组件/服务/接口级别靠近(见Q1),越接近底层,可复用性也就越高。另外,企业级虚拟化的建设一定要跟上,这样才不会在测试环境上浪费时间。
还有很多其他类型的测试,这里只是列出了几种最常用到的,术语的定义可能也和其他资料有些差别,比如负载和压力,不过无关紧要。
这里需要注意的一点,在负载、压力和容量测试中,测试的依据都是用户模型,只有用户模型准确,测试的结果才会有意义。
提起性能测试,需要做那种测试呢?
一般来说,除了容量测试,其他几种都是要做的,这是得到有效测试结果的必备过程。容量测试,属于获取“额外信息”的测试,不过这种测试其实是非常有价值的,很多资料都把它列为了必做之一。
稳定性测试需要运行多长时间?
之所以会有这个疑问,其实是因为测试人员提供的结果数据没有说服力,不是证明了系统可以长期稳定运行,而只是下了个系统稳定的结论。我也总和性能测试人员强调,测试的结果是要用数据来证明的,不是说测完了下一个通过的结论就可以了,这样自然要被测试经理、开发经理怀疑(尤其是你是一个新人)。
如果能够提供各种详尽的数据,比如测试运行12小时内,操作系统的资源利用情况、应用中间件内部的资源利用情况、甚至是程序内部的一些性能指标等等,如果这些指标足够代表系统的性能,且它们的表现是非常平稳的,那么完全可以从这个趋势推断出,即使系统运行更长的时间也将是稳定的。
反之,如果不提供数据,而只是描述测试运行了3天,那么自然会有“3天够不够长”的疑问,只有通过“足够长”的运行时间才能减少人们的顾虑。
性能相关需求一般由需求人员提供,测试负责人是这些需求的第一个把关人。针对这些需求,测试负责人可以分析哪些内容呢?
这些对性能的评价标准,应该在测试设计时就明确下来,测试负责人可对此进行检查。
有一点需要注意的是,性能指标是否可检测。通用的指标如页面响应时间很容易获取,所有的测试工具都可以做到。但一些特殊的指标,尤其是涉及到客户端的,可能会存在技术上的问题。比如即时通讯软件的测试中,要求最大压力时,发送信息能够在1s内到达。那么这个到达时间如何获取呢?如果没有提前做好准备,在测试执行时很可能会遇到问题,而测试人员遇到这个问题,很有可能会选择忽视它,只顾把压力加上去就算测完了。
最常见的目的是模拟用户的实际行为,获取用户的感受。
建立用户模型。即用户做什么操作、操作路径是什么、操作频率……
这里只是用户模型覆盖度的问题,实际使用的用户模型还需要很多其他信息才能建立起来。测试负责人需要重点关注和确认用户模型的建立。
由上可知,性能测试只能覆盖系统的一部分功能。不要指望所有和性能相关的问题都由性能测试来发现。性能测试最最想发现的是瓶颈,而不是缺陷。
我比较害怕听到这样的话,“生产环境的一个操作很慢,去做下性能测试吧”。
这是在部门内做的一次培训交流,听众是测试经理。这里把PPT改成文档了,居然用了一天工时……
给这个培训起了个名字,叫性能测试十问,结果自己只整理出了8个。留下2个名额给大家吧:)
转载于:https://www.cnblogs.com/twocats/archive/2013/04/02/2994146.html