《测试之美》独家连载(四)

发表于:2010-8-26 10:09  作者:林俊彦 译   来源:51Testing软件测试网

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签:

  . 收集系统性能指标,并验证系统使用模型中包括的每个功能任务,在10 个用户的负荷下,在每一个包含该功能任务的性能测试构造中,都达到性能需求。

  ─ [功能任务列表,每行一个]

  . 收集系统性能指标,并验证系统使用模型,在以下负荷程度的性能要求下,在每一个实现了该使用模型的性能测试构造中,都达到性能需求。

  ─ [用户负荷从100 个增加到3000 个,每行一个]

  . 收集系统性能指标,并验证系统使用模型,在开发组长、性能测试人员以及项目经理认为恰当的构造上,通过为期9小时、负荷为1000 个用户的压力测试的性能要求。

  这里美丽的地方是我们创建的是明确的、容易建立战略的、并且直接映射到客户在最终报告中要求的信息上。一个额外的收获是,从那一刻起在该项目中,每当有人质疑我们的性能测试方法时,总会有一个或多个参与了检查点设置的人帮我辩解,甚至经常在我发现这些挑战之前!

  这个故事的一个有趣的后续是,那一周的晚些时候,一项新的公司政策被通过了——任何包含性能测试的合同或交付项定义送到客户去批准前,必须咨询我。我也十分肯定,这是性能测试从功能测试中分离出来成为一个独立的实践领域的催化剂,同时导致了在此后的项目中性能测试组长直接向项目经理而不是测试经理报告。

  你不能性能测试所有东西

  作为一家同时有几个开发项目的公司的性能测试技术组长,其中一项乐趣是我几乎总是同时参与超过一个项目。我强调这一点,是因为下面的故事是来自一个不同的项目,但发生的时间顺序确实在上一个故事和下一个故事之间。

  这个项目是建立一个基于网络的财务规划应用程序。虽然在今天很常见,不过在当时,这是极有创意的。该系统的性能测试优先度极高有两个原因:

  . 我们受雇于这个项目是由于客户因为已建好的系统的糟糕的性能而解雇了之前的软件开发公司。

  . 客户已经购买了超级杯的广告时段,并开始拍摄宣传该应用程序的商业广告。

  可以理解的是,我们的客户Ted 指示我,他希望“所有可能的导航路径和所有可能的输入数据组合”都被包括在我们的性能测试中。我尝试了几种方法来沟通,告诉他在今年的超级杯之前,这根本是一个不可能实现的任务,但都不得要领。Ted 越来越愤怒,因为他看到我拒绝做他付钱让我做的事。经过6个星期尝试解决(或至少简化)一个非常复杂的组合问题并将其写入文档,我越来越沮丧的是,我一直不能帮助开发人员追踪到导致Ted 聘请我们的性能问题。

  一天下午,在Ted 拒绝了另一个系统使用模型后,我叫他到性能测试实验室来和我一起建立一个模型。我很惊讶,他说他马上就到。

  我开始交谈,试图向Ted 解释,未经许可在我们的性能测试中包括由其他公司维护的网站链接,不仅没有多少价值,而且等同于向这些网站发动拒绝服务(denial-of-service)攻击。Ted 完全没有听进去。在那一刻,我意识到我站在那里,我们正在朝对方叫嚷,而我的拳头正沮丧得紧握。

  为了试图冷静下来,我走到白板前并开始画一种类似sideway 流程图,代表网站上的最可能的用户活动。令我惊讶的是,Ted 也拿起一支标记笔,开始加强那张图。不久,我们开始了一个平静而专业的、关于用户第一次访问网站时最有可能做哪些事的讨论。在中间的某个时候,Chris 加入了谈话,并向我们解释许多我们建模的活动是多余的,由于基于底层系统体系结构互换。

  在不到一个小时的时间内,我们创建了一个系统使用模型,我们都同意该模型可以代表在超级杯营销活动期间最可能流行的条目,以及应用程序中开发人员已确定的性能不佳风险比较高的功能区域。我们还达成了一个共识:在我们对系统的这些方面的性能充满信心之前,测试和调试应用程序的其他部分并不能很好地利用我们的时间。

  这次会议后的一周内,我们已成功建模了一个早期版本的测试并开始运行,开发团队和我都开始积极地寻找和改进系统中的性能问题。

  再一次,这个故事的开端一点也不美丽。这一回,美丽是在Ted 和我开始共同致力于在白板上建立模型,而不再是我将模型通过电子邮件发给他批准的时候开始绽放的。而当Chris 将开发人员的角度带入交谈时,美丽盛开了。实时协作使我们不仅能更好地了解彼此的关注点,还能讨论比较使用模型的各个方面的投资回报率(ROI ),而不是单独考虑某一方面,这正是我们几个星期来一直在犯的错误。

  这个故事也有一个有趣的后续。碰巧的是,那一天Ted 、Chris 和我在白板上画的草图,成为了用户社区建模语言(User Community Modeling Language,UCML )的灵感。此后UCML 成为了世界各地大量的性能测试人员采用的选择建模以及记录系统使用的方法。欲了解更多关于UCML 的信息,请访问http://www.perftestplus.com/articles/ucml.pdf

  这不是内存泄漏

  这是在“好的,那么什么是性能测试用例?”插曲发生近2个月之后,我们终于做好准备在eVersity 项目中开始根据一个相当完整的系统使用模型加载测试。单用户和10 个用户的测试,在这个特定的构造上取得了比性能需求更好的结果,所以我准备运行100 个用户的测试。由于这是第一次同时运行多个使用情景,我定了一个观察点来在测试运行时观察测试,以及检查一些我可以得到的服务器统计数据。


【福利】填问卷 送2019精选测试大礼包+接口测试实战课程!

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道