功能和性能测试经验谈(2)

发表于:2015-04-21来源:uml.org.cn作者:段念 王志平 戴金点击数: 标签:性能测试
5.分析测试结果 分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,

  5.分析测试结果

  分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。

  6.回报缺陷(defect)

  在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。

  性能测试的三大步骤

  第一步 准备和组织是性能测试过程的第一步,在这个阶段,需要明确性能测试的目标和需求,并组织起合适的人员,制订性能测试计划。

  一般来说,性能测试的应用领域分为能力验证、能力规划、性能调优和缺陷修复四个方面。其中能力验证表明测试的目的是验证系统能力是否达到预期的性能标准; 能力规划是要考察系统的可扩展性; 性能调优则是为了找到系统的性能瓶颈,为性能调优提供依据; 缺陷修复是为了找出系统中存在的并发等方面的缺陷。

  明确目标也就是要把性能测试的目的归到相应的应用领域,而确定需求则是要更详细地确定性能测试的基准。对产品的性能测试需求的来源是软件需求、设计文档或是用户备忘录等设计和需求相关的文档。当然,并非所有的性能测试需求都在这些文档中以明确的方式标识出来,此时就需要根据不十分明确的文档描述进行进一步的细化。我们的经验是在文档评审时高度关注所有与性能相关的描述,例如“要求操作响应时间小于……”、“要求……能够快速……”、“要求……能够支持……用户访问”、“要求……能快速稳定运行”等,然后进行进一步的细化,从而作为测试的依据。

  性能测试涉及的设备、环境、技术、工具较多,性能测试人员的组织也必须兼顾这些方面。一个性能测试组最好包括系统工程师(负责测试环境搭建、服务器和应用服务器的配置)、网络工程师(负责网络环境的维护和验证)、性能分析工程师(负责测试计划的拟定,对性能测试结果进行分析,给出性能测试报告)、自动化工程师(负责测试脚本的编写和测试工具实施)、数据库工程师(负责对数据库层进行性能问题定位)。在条件允许的情况下,还可以包括开发工程师和客户代表,辅助对性能测试结果进行分析和确认。

  性能测试计划是用来指导性能测试过程的主要文档,在测试计划中除了要写明本次测试的测试目标、测试需求外,还需要在测试计划中给出明确的测试退出条件和测试的时间和资源计划。

  第二步 第二步测试设计,也是性能测试的主要内容。测试设计一般基于测试场景进行,一个测试场景就是一个用户的实际使用系统的剖面。

  在性能测试过程中,明确每个场景的参与者人数、比例和具体行为是非常重要的,这些都是构成性能测试脚本的基础。根据经验,可以从应用服务器的日志中分析用户行为。例如,对于一个OA系统,我们从日志中分析出在上午9:00~9:30时段内有200个查看邮件页面的page view,且查看时间基本集中在前10分钟; 而在9:00~9:30时间段内对BUG显示页面的查看量是300个page view,对页面的访问基本平均分配在整个时间段,则我们可以建立两个脚本,前一个脚本模拟查看邮件操作(脚本1),后一个脚本模拟查看BUG操作(脚本 2),考虑运行15分钟的测试场景,则只需在前5分钟运行脚本1,在整个过程中运行脚本2,通过调整think time使得page view达到实际的数值即可。

  当然,并不是每个不同的用户应用剖面都需要作为测试场景来设计,在多数情况下,可以通过对测试场景出现的几率、重要性、风险等进行分析,从而最终确定需要设计的测试场景。明确了场景之后,根据性能测试应用领域的不同,可以采用不同的性能测试方法来达到性能测试的目标。另外需要提醒的是,性能测试设计还应该包括测试环境、测试数据等的设计,因为影响系统性能的因素很多,保持测试过程中环境和数据的可控性是非常重要的。

  第三步 第三步性能测试结果分析,是性能测试过程中最困难,也是最重要的步骤。它需要分析人员对测试结果中的各项数据有准确的认识,明确各指标之间的关系。如果各项数据指标间没有明显联系,在多数情况下需要综合考虑各种因素,才能得出最终结论。

原文转自:http://www.uml.org.cn/Test/200608151.htm