【郑州软件测试机构:软件性能测试需求综述】
软件性能测试需求的质量直接影响软件性能测试的效果,在分析Web应用系统软件性能测试目的的基础上,提出软件测试需求描述要达到准确、一致和特定的要求,进一步明确软件性能测试需求必须要确定4W1H,即软件性能测试的需求必须包含where,what,when,who和how,并综述了几种有效的获取软件性能测试需求的方法。
基于Web服务器的应用系统由于提供浏览器界面而无须安装,大大降低了系统部署和升级成本而得以普遍应用。目前,很多企业的核心业务系统均是Web应用,但当Web应用的数据量和访问用户量日益增加,系统不得不面临性能和可靠性方面的挑战。因此,无论是Web应用系统的开发商或最终用户,都要求在上线前对系统进行性能,科学评价系统的性能,从而降低系统上线后的性能风险。
在很多软件性能测试项目中,由于不能合理定义系统的软件性能测试需求,不能建立和真实环境相符的负载模型,不能科学分析软件性能测试结果,导致软件性能测试项目持续时间很长或不能真正评价系统性能并提出性能改进措施。因此,软件性能测试需求分析的正确性是整个软件性能测试工作的最基本前提。若不能保证软件性能测试需求分析的正确性,即使软件性能测试工具使用的再正确,软件性能测试执行的再顺利,也无法保证软件性能测试达到预期的效果,即可能无法发现性能瓶颈、或者发现不了实际情况中应该出现的瓶颈。
本文从分析软件性能测试的目的出发,提出软件性能测试需求描述的三个要求,综述软件性能测试需求的获取常用方法。
2 软件性能测试的目的
软件性能测试的目的不仅是发现软件缺陷,还可能包括以下几个方面:
(1)验证能力。这是软件性能测试中最简单也是最常用的一个应用领域,典型的能力验证问题会采用这样的描述方式:“***系统能够在***条件下具有***能力?”。通常情况下,企业在进行项目验收阶段要求能力验证型的软件性能测试或者委托第三方软件测试机构开展独立的性能验证,其主要特点是在已确定的生产环境中实际使用被测系统,即这套系统能不能承受大量的并发用户同时访问?常以典型场景设计测试方案和用例。
(2)规划能力。这与(1)有较大的不同,以规划能力为目的的软件性能测试关注的是“应该如何才能使系统具有要求的性能能力?”或者“系统能否支持未来一段时间内的用户增长?”,因此,这种软件性能测试强调对系统当前性能的评估,通过评估可以在应用实际部署之前,预见系统负载压力的承受能力。
(3)调优性能。性能调优是以第一种或第二种为目的的软件性能测试实施后提供原始数据进而分析系统瓶颈和优化为目的,因此(3)常与其他的软件性能测试活动交杂在一起。该类软件性能测试需要在确定的基准环境下,采用基准负载,关注基准性能指标后,调整系统运行环境和实现方法,执行测试,记录测试结果进行分析,再调整、执行、分析,不断往复,直到系统性能达到要求为止。比如:用户提出业务操作响应时间长,如何定位问题,调整性能?
3 软件性能测试需求描述要求
(1)准确。如**系统必须在不超过 10 秒的响应时间内,处理 20 起登录和注销系统任务。再如**搜索时间最大不超过5秒以及平均时间在1~3秒以内。
(2)一致。开发工程师、用户和软件性能测试工程师对有关术语的理解要一致,如:并发用户数、动态用户数、静态用户数:
静态用户(注册用户):3500以上
动态用户(在线用户):1500以上
并发用户:500以上
(3)特定。软件性能测试的需求一定是有条件的,如:
检查系统在 200 个用户的负载下,所有业务动作是否可用及稳定;
检查系统在300 个用户的负载下,连续运行 72 小时过程中,订单上传、转单、详情单查询、发运等业务动作是否可用及稳定;
检查系统在 8.0 GB 业务数据、1500 个用户、500 个并发用户运行的负载下,连续运行 72 小时过程中,以上业务动作是否可用及稳定。
因此,软件性能测试需求必须要包含有多少用户(who)在什么时间(when)或者持续多久(when)进行了什么业务(what),最终需要关注怎样的指标(how)。除此以外,需要根据项目性质和软件性能测试的目标来获得软件性能测试需求的来源(where),归纳为4W1H。下面将介绍一些常用的软件性能测试需求获取的方法。
4 获取软件性能测试需求的方法
软件性能测试需求是应用需求的衍生,既需要借助于相关的理论知识,又要依靠测试工程师在相关领域的经验积累,根据前面4W1H的软件性能测试需求的要求,即对软件性能测试需求进行整理,确定恰当的并发用户数、在适当的时间进行典型的业务活动时,关注的性能指标有怎样的结果,笔者根据多次软件性能测试实践经验,总结获取软件性能测试需求的方法如下。
4.1 性能需求信息来源(where)
(1)开发过程相关文档。这是软件性能测试需求的主要来源,项目开发计划书、需求规格说明书、设计说明书、测试计划等文档都可能涉及软件性能测试的要求,通过收集这些资料,可以找到初步的性能需求。相关的项目干系人有客户代表、项目经理、需求分析员、系统架构设计师、产品经理等。
(2)相似项目性能需求。公司的其他产品或项目会累积出一些数据,如:**技术论坛一小时最多能发1000新帖;****博客平均每天新增800篇,以这些数据为确认新项目测试需求的基础。
(3)业界公认标准。如响应时间,根据服务器的不同和项目的具体情况可能有两类标准:
A类标准——
4秒以内,用户可以接受
4-9秒,30%用户离开
8-10秒,60%用户离开
超过10秒,90%用户离开
B类标准——
8秒,用户可接受
16秒,50%用户离开
32秒,90%用户离开
(4)用户使用模型。软件性能测试要通过一系列场景的执行来完成,分析用户的使用模型是获取软件性能测试需求的有效手段,即定义系统的典型使用方式,考虑哪些用户使用系统的哪些典型业务,在什么时间段和用户数量的估计值,因此需要和最终的用户有很好的沟通,最好能够实地考察用户的应用情况。如某OA系统的每天早上8:00会有200个用户在10分钟内登录系统;每天查询交易的高峰是在9:00-11:00和下午的14:00-16:00等。
4.2 80~20原则估算测试强度(how)
80~20原理:每个工作日中80%的业务在20%的时间内完成。