51Testing软件测试论坛

标题: 没有任何需求的情况下,如何展开性能测试工作?(2010-7-26)(获奖名单已公布) [打印本页]

作者: 默默巫    时间: 2010-7-26 15:39
标题: 没有任何需求的情况下,如何展开性能测试工作?(2010-7-26)(获奖名单已公布)
没有任何需求的情况下,如何展开性能测试工作?
1、性能测试前需要做哪些准备工作?
2、没有需求的情况下,如何去搜集有利的测试需求?
3、性能测试一般需要多少人手资源?
4、怎样的测试才算是一次成功的性能测试?

本问题由会员zhifei.xie提供,如果你也有问题想提出来和大家一起讨论,请点击此处>>
说不定下期讨论的问题就是由你提出的哦,请快快参与吧!



获奖名单
奖项
获奖名单
奖励
答案链接
二等奖
aishifu1
300论坛积分
10#

作者: srialy    时间: 2010-7-26 17:18
关注中··················
作者: 牛粪    时间: 2010-7-26 20:33
期待高手
作者: leizhihuan    时间: 2010-7-27 11:42
在之前的项目中,曾做过一个用exploratory testing在没有任何需求的情况下进行测试。exploratory testing的核心内容就是在没有需求的情况下了解软件功能与执行测试同时进行。关于这个我做了一个ppt,大家感兴趣就留邮箱,上传不了。

个人看法:如果没有任何需求也就是说功能需求也没有,首先我们需要找到软件业务中的main flow,创建自动化脚本。需要注意的是在开始的时候不要把整个流程走完,而是要将整个流程做成一个step一个step来测试,这样的话,如果发现有block的bug或者memory leak的话会更好定位。

在第一轮把这些大问题剔除之后。再把所有steps集成一块跑整个流程,

由于没有需求,所以vuser的并发数量需要自己来设置,一般参考亚马逊的点击排行再根据82理论设置,然后在上下浮动,当然,最好能够将10个vusers, 100个, 1000, 10000, 100000几个参数都跑完生成图表来进行对比。

关于阀值, 需要找同类型的软件,在不同时间段客户端做少量测试,取高中低三个值,放在我们的report中看处于自己产品中的位置。



乱写了这么多,没什么条理。。。。
作者: zhangjinyan    时间: 2010-7-27 15:49
我,zhangjinyan_8410@163.com,谢谢!
作者: xyhixx    时间: 2010-7-27 15:51
关注中。。。
xyhix@163.com
作者: rzggz    时间: 2010-7-27 15:53
关注中,最近也遇到这样的问题了,很让人迷茫啊!!!!
作者: xmzjt    时间: 2010-7-27 16:10
4楼的TX,想学习下你的经验  jintaoz.gugu@163.com
作者: 1367    时间: 2010-7-27 16:12
4# :我也想学习一下,谢谢!yangdawei695@163.com
作者: aishifu1    时间: 2010-7-27 16:16
没有任何需求的情况下,如何展开性能测试工作?
1、性能测试前需要做哪些准备工作?2、没有需求的情况下,如何去搜集有利的测试需求?
刚好以前关注过这个问题,2个问题其实是一个问题,一起回答一下:
性能测试启动时主要做四件事情,被测系统预研、项目经理访谈、业务经理访谈、技术经理访谈
一、被测系统预研:
目标:根据被测系统的资料初步了解被测系统的任意方面的信息,尽可能多了解被测系统的相关知识,可以包括:系统的建设目的、系统的技术架构、系统的业务架构
内容:
确定被测系统的软件开发组织和组织的负责人,例如项目经理。
向项目经理提出获取被测系统所有相关资料的申请,可以包括:软件需求规格说明书、软件概要设计说明书、软件详细设计说明书、软件操作手册、软件维护手册等。
在索取这些资料的过程中,常见由于保密原则而项目经理不同意提供资料、或者项目开发过程不规范而项目经理无法提供有效的资料等类似情况

二、项目经理访谈

目标:获取性能测试实施工作的开展信息,例如开始/截止日期,测试环境等,从项目经理处获得被测系统的开发状态和期望的性能测试工作的目标

内容:
向项目经理申请获得准确的性能测试实施开始时间
向项目经理申请获得准确的性能测试实施截止日期
向项目经理了解被测系统的生命周期当前处于哪个阶段,例如集成测试阶段、系统测试阶段、验收测试阶段、上线阶段、运营维护阶段等

内容:
向项目经理了解性能测试工作目标,即期望获得什么样的性能测试成果,应包括:性能测试的性质(调优性质的性能测试、验收性质的性能测试等)

向项目经理了解被测系统的生产环境部署方案,包括网络部署内容、服务器硬件部署内容、操作系统部署内容、安全部署内容、应用平台部署内容、数据库中的数据量规模,尤其要获得是否将在同一个服务器上存在其他应用系统的部署内容

内容:
向项目经理了解性能测试环境信息,应包括:硬件到位日期、软件安装日期、硬件级别(是否与生产环境的硬件级别相同)、软件级别(是否与生产环境的软件版本相同)、部署方式(是否与生产环境的部署方式相同),尤其要注意测试环境中的数据量规模是否能够达到生产环境的级别(例如生产环境在上线时将具备500万注册用户的信息,是否在测试环境中能够拥有如此规模的数据量,并且这些数据是否符合实际情况)

向项目经理了解性能测试的性能指标,应包括:是否已经确定了性能测试的指标;性能指标是否合理;如果性能指标不合理,是否由性能测试实施人员辅助重新进行确定

三、业务经理访谈:
目标:获取性能测试业务模型的设计依据,例如被测系统的关键业务、主要用户场景、用户场景交易发生概率、期望响应时间等
从业务经理处申请调派合适的业务人员,作为将来建立性能测试模型的业务支持人员

内容:
向业务经理讲解获取性能测试所需关键业务的方法
从业务经理处获得被测系统的关键业务,选取的原则应包括:
发生频率非常高的(例如:移动核心业务系统中的缴费业务,它在移动每天的业务总量中占到90%以上)
关键程度非常高的(业务经理认为绝对不能出现问题的,例如银行业务中的存款业务、取款业务、转账业务等与金钱相关的)
资源占用非常严重的(导致磁盘I/O非常大的,例如某个业务进行结果提交时需要向数十个表存取数据,或者一个查询提交请求时会检索出大量的数据记录
向业务经理讲解获取性能测试所需主要用户场景的方法
从业务经理处获得被测系统的主要用户场景,选取的原则应包括:
以一年作为被测系统主要用户场景的衡量周期
在一年中将会有多少种非常大量的用户在线行为
例如移动公司发布新的优惠活动信息后,大量用户集中到营业厅办理手续的事件;
例如税务局每到每个月的9号到11号之间,大量的用户集中访问网上报税系统进行企业报税事件;
例如某个企业每到20号左右,大量员工访问内部财务系统进行报销操作的事件;
例如银行的营业厅每天在上午的10点和下午的15点都会迎来业务受理高峰的事件;
向业务经理讲解获取用户场景的交易发生概率的方法

从业务经理处获得业务发生概率
例如在移动公司的每日高峰用户场景中,90%的用户进行缴费业务、5%的用户进行开户业务、2%的用户进行话费查询业务、2%的用户进行换卡业务、1%的用户进行停机/开机业务
内容:
向业务经理讲解确定期望业务响应时间的方法

从业务经理处获得期望业务响应时间,例如
1000用户在线的每日高峰用户场景中,缴费业务的期望响应时间最大不能超过3秒,开户业务的期望响应时间最大不能超过5秒,查询业务的期望响应时间最大不能超过12秒

向业务经理讲解性能测试建模过程中需要业务支持人员的原因,并向业务经理提出申请,调派一名或多名业务人员在将来支持性能测试案例的设计工作、业务数据的准备工作。

四、技术经理访谈:
目标:获取关键业务的技术路径,获取性能测试业务模型的补充设计依据;根据由业务经理处获得的关键业务,向技术经理了解这些关键业务使用的数据库中的数据表;向技术经理申请合适的开发人员,作为将来开发性能测试脚本的技术支持人员

内容:
将主要用户场景和关键业务提供给技术经理,请技术经理判断这些关键业务是否覆盖了被测系统的所有业务请求处理节点
(例如某个应用系统是三层架构,WEB-APP-DB,其中APP层包括两个中间件服务器,每个服务器处理不同的业务请求,此时要确定是否每个服务器都被关键业务所覆盖)
如果存在某个业务请求处理节点没有被业务经理分析并确定的关键业务所覆盖,则由性能测试分析师向业务经理转告这个情况,确认是否增加性能测试所需测试的用户场景和关键业务
向技术经理讲解为什么需要了解关键业务使用了哪些数据库中的数据表

例如性能测试分析师在数据库中查找符合测试条件的数据时,根据这些关键业务和数据表之间的关系就可以设计相应的SQL语句,用该SQL语句获得关键业务执行所需要的测试数据。

也可以由此了解到哪些数据库中的数据表在测试中将被用到(例如Select、Insert等),并且判断哪些数据表需要存在多少条记录。

由技术经理处获得关键业务使用了哪些数据库中的数据表,并将这个关系填入到《性能测试技术调研表》中
向技术经理讲解为什么需要技术开发人员支持性能测试脚本开发的工作

由技术经理调派合适的开发人员,作为将来开发性能测试脚本的技术支持人员

例如某个被测系统在提交业务请求时将对业务请求数据进行加密,这时需要技术支持人员向性能测试脚本开发人员提供加密程序,以供性能测试脚本开发人员在性能测试脚本中将加密程序作为动态链接库程序进行调用,使得性能测试脚本能成功模仿实际业务请求。

例如性能测试脚本需要从数据库中获得大量的业务数据进行性能测试的执行,此时需要技术人员指导性能测试脚本开发人员如何从数据库的相关数据表中提取符合测试需要的业务数据。

又例如性能测试在执行过整轮的测试后,在执行下一轮性能测试之前需要恢复数据库中的数据,此时需要技术支持人员辅助进行数据库的备份和恢复工作。

例如性能测试工程师在设计性能测试监控模型时,需要技术支持人员辅助实施被测系统的监控配置工作。

3、性能测试一般需要多少人手资源?
   根据性能测试目的的不同,需要的资源不同。根据被测系统的规模不同,需要的资源也不同。
   按角色分的话需要以下人员:
   测试经理、测试分析师、测试工程师、监控工程师、相关专家(数据库、操作系统、被测系统)。
   大型项目一般会在5-6人的有过,小型项目1人有过。

4、怎样的测试才算是一次成功的性能测试?
    达到了被测系统项目经理的预期就是成功的性能测试。
    目标要谈清楚,有的是选型类的性能测试,能够准确、公平、公正获取被测系统的性能指标就是成功的性能指标。
    有的是调优类的性能测试,配合相关专家对系统进行调优,解决系统性能问题就是成功的性能指标。
作者: leizhihuan    时间: 2010-7-27 16:37
上传exploratory 的ppt,不好意思,大家花分买吧。。。
作者: zhangjinyan    时间: 2010-7-27 17:15

太不仗义了
作者: 咚咚宝031102    时间: 2010-7-27 17:25
2年前我也关注此问题   由于公司环境的影响  磨灭了自己这种想法  试着开展无需求无计划的情况下开展自己的测试

说白一点   公司没有需求   测试是做不来主的
一般都是市场或者跑业务的 或者销售或者技术支持或者用户提出来的    软件才不断的进行更改   

有升级的功能就足够啦
仅自己的观点
作者: 806114786    时间: 2010-7-28 16:16
标题: 回复 10# 的帖子
哥们,你太够意思了,谢谢啊,学习了
作者: Jmocun    时间: 2010-7-29 11:27
jh6318@163.com,发我一份学习一下,谢谢
作者: saiqi5092    时间: 2010-7-29 11:42
297172623@qq.com,发给我一份,学习学习,谢谢
作者: maclehappy13    时间: 2010-7-29 14:15
没需求的时候无非就是以下几种办法:
1、挖掘用户需求;
2、引导用户提出需求;
3、按业界通用要求做性能测试;
4、按经验做性能测试测试;
5、不做性能测试。

不好采用什么方法。总体原则是做比不做好,用户需求比业界值和经验值好。
作者: mxlmin    时间: 2010-7-29 14:25
标题: re
没事溜达过!
作者: 测试小女子    时间: 2010-7-29 14:26
标题: 回复 4# 的帖子
46908613@qq.com
作者: lqadnggw    时间: 2010-7-29 15:23
学习了,谢谢大家提供的资料
作者: chyu1126    时间: 2010-7-29 16:23
谢谢了,学习一下
作者: chyu1126    时间: 2010-7-29 16:26
俺都快没有分了
作者: patric    时间: 2010-7-29 17:07
没需求就不测试.

需求是工作的推力,工资是工作的动力,两者缺一不可.

如果说没需求就挖掘需求,或者自己想象出需求.那完成后就等于有需求了,就不是这个问题的范畴了.
作者: xw520    时间: 2010-7-30 08:41
标题: 回复 11# 的帖子
不厚道,两个一样的。
作者: wangyaxu    时间: 2010-7-30 18:07
标题: gang dao
谢谢1106104616@qq.com
作者: msnshow    时间: 2010-7-31 10:21
标题: 这种情况我到是经常遇到
这种情况我遇到比较多,因为提交测试申请的需求方他们也不太清楚需求到底应该怎么写,在这种情况对性能测试工程师的要求就更高了,一般说来我会采用以下方式
1、加强与开发沟通
>了解开发对性能测试范围的要求
>了解开发对性能最不放心的功能模块
2、加强与项目需求方沟通
>了解系统上线后的推广计划
>了解相关数据量目标(如访问量、使用的用户数等等)
3、加强与其它有经验的同事或同行业人员交流
>学习别人的经验
4、根据以往的项目经验
>找类似项目,根据以做过的项目的实际压力情况和压力分布来进行模拟
5、根据此项目在线上的表现(如果是在线项目的升级版本)
>线上运行的状况(性能表现情况、资源占用情况等)
>线上的压力情况(如访问量、数据分布、增长情况等)

总之,需求不是没有,只是没有明确化,没有形成文档。在用户和开发心里都有自己的一些需求,关键是我们要把这些提取出来,形成我们的测试计划;当然为了以后别的项目不出现类似情况,可以写一些需求模板提供给相关的人员来填写,这样就能比较容易的采集到相关需求了

[ 本帖最后由 msnshow 于 2010-7-31 10:25 编辑 ]
作者: 牛粪    时间: 2010-7-31 15:48
标题: 回复 11# 的帖子
学习学习
作者: cathey_yang    时间: 2010-8-2 09:22
呵呵,还是买了~~~
物有所值就好~~~~
毕竟LZ辛苦一趟~~~
作者: zhyb_2008    时间: 2010-8-2 10:06
自己先在测试平台得一负载值,然后会和其他部门商议,共同制订
我这儿做的WEB性能测试较多,之前已经有性能测试的标准可以参考。然后就是和实际的结合。标准可以参考各大公司的性能测试案例,如淘宝的性能测试等。。。
作者: cathey_yang    时间: 2010-8-2 14:34
啊啊啊啊啊啊啊啊啊啊啊啊啊啊~~~~
我以为是两个呢,结果下载下来才知道是同一个~~~
作者: yaozaiwind    时间: 2010-8-3 12:25
很想好好学习一下 yaozaiwudi@163.com
作者: 金子快来    时间: 2010-8-11 16:21
1:尽可能的多沟通。开发经理,产品经理,主要了解业务模式以及可能大并发的业务。或者预期的客户数量以及要求的无故障进行周期等等.
2:多用80/20原则确定,并发数量等。任何产品都有其高频率的应用业务,或者某段时间会产生的高频业务。都需要重点关注
3:开展探索性测试,找到某业务的压力边界值。

注:多关注登录,网站类多关注主页;多关注某些批量定时业务。搜索时注入大量预期负载数据。
作者: sunlight426    时间: 2010-8-16 14:35
其实10#的朋友已经写得非常地详细了,而且适用性也非常普遍。



我也有过完全没有需求的性能测试经验,而这样的性能测试是在系统版本升级改造后,对系统做性能评估。

1、确定测试范围,寻找到性能测试的相关功能点,即系统核心业务,用户使用最频繁的业务、数据量较大的业务

2、针对这些测试功能点,编写测试计划,制定测试目标和测试策略,即对系统的哪些功能分别进行负载压力测试、稳定性测试和容量测试

3、根据测试目标和测试工作量确定测试工具(一般都是Loadrunner)、人员和进度安排



这样基本上就可以开展测试了。需求是有的,只是这样的需要测试人员去挖掘,根据经验和已有的业务数据来判断,确定测试目标,这样才能制定优秀的测试计划,测试才能开展。



测试过程中必不可少的是,多了解前台业务同后台数据结构如表、视图等的关系,测试过程中作验证脚本、运行脚本功能验证、取数据等
作者: wjlMydream    时间: 2010-9-24 19:21
4楼的前辈,想学习一下
1241706661@qq.com  谢了!!!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2