摘要:

汇报功能测试结果相对简单,因为这些结果有一个清晰的通过或者失败的输出。汇报性能测试的结果更加细致入微些,而且有很多展示这些值的方法——但是迈克尔斯塔尔感到这些方法没有特别有效。他建议一种使性能测试结果一眼易读的汇报方法。

有效的汇报测试结果是我们专业的圣杯之一。如果正确操作,它能改进项目的质量并且帮助我们关注实际的事情。但是如果错误操作,它增加了误解并减少测试带来的价值。

汇报功能测试结果相对简单,因为这些测试有一个个清晰的通过或失败的输出。汇报性能测试更有细微差别。

让我们以一个定义开始:这篇文章的目的,我使用术语“性能测试”意味着任何测试会执行一个度量,它以一系列数值型的值都被考虑到可接受的结果。它可能是耗电量的测量,网站并行服务的用户数量,可以从硬盘读取的数据速度,等等。——任何一个非功能需求的测量。

第一个性能测试的挑战是决定什么被认为是“通过”。这在需求定义阶段经常地被忽略。我看到过很多需求解读成这样:“从数据库提取数据时间必须少于10毫秒”,或者“处理一个视频文件的速度必须是小于每秒100帧”。这些需求是不完整的,因为它们没有包含我们想要达到的实际目标。我们只知道我们允许忍受的而且仍然通过产品的最坏的结果。这儿有两个问题。

首先,让我们假设我执行一次测试并且发现处理视频文件在以101帧的速度完成(回想需求是“至少100帧每秒”)。看起来很好,对吗?但是它是否意味着我们接近边缘(那是产品难以满足需求)或者一切都是好的?假如需求被定义很好,它将包含目标和最小值——例如,目标:120帧每秒;最少:100帧每秒。有这样的需求,101帧每秒的结果很清晰地暗示了产品难以满足需求。

第二,当测试最低限度地失败(比如99帧每秒),产品经理会处于“灵活”且接受产品的压力中。我们有多经常听到 “事实上,我们都在最小值以下,但是我们经常通过,所以我们决定它是好的”?假如完整的需求可以被获取到(目标:120帧每秒),将会更清晰地看到结果离目标有多远,并且产品会有一个真正的发行。

为了完整性的好处,我将提起一个非功能性需求不仅需要特定目标和最小值,而且需要测试方法,因为测试方法影响测试结果。举个例子,当测量CPU使用率,取决于我们如何执行测量,结果会变化很大。我们是否测量记录的最大值?一次持续多久?我们算测量的平均值吗?一秒有多少测量值?我们的测试中还有其它什么并行运行在CPU上吗?

从理论上讲,汇报性能测试结果根本不应该是一个问题。只呈现出结果并且指出一个通过或者失败。但是再者,我们不仅想要知道结果;我们想要得到结果如何关联目标的一个概念。制作一份报告不会过度复杂,但是仍然要发送一个完整的状态图片是一个平衡的做法。

我们可以使用一个表格:

需求

目标

最小值

结果

视频处理速度(帧每秒)

120

100

101

无论如何,因为多数产品有很多性能需求,我们将以一个充满数字的大表格结束。它将难以快速看出哪里是一个问题。我们可以使用颜色去提高可读性:

需求

目标

最小值

结果

帧处理速度(帧每秒)

120

100

101

CPU占用率(%)

7

10

8.55

性能消耗

1.5

1.9

1.34

但是这带来更多问题。它意味着帧处理速度和CPU使用率使用相同的颜色代码吗?一个几乎失败,当另一个很好地在可接受范围内。所以可能帧处理速度标成红色?但是然后我们使用什么颜色表示失败呢?而且多久我们考虑一个结果在它应该变成黄色前而为绿色呢?更不要提到会发生的困难,因为一些人有色盲。

当我的医生每三年把我的每年血液检查(我一丝不苟地做这个事)发送给我时,我正在考虑这个事情。无论如何,从实验室来的结果包括几十个数的列表显示了这个表格:

即使虽然我不是物理学家,我可以区分良好结果的合适的方法,哪个是边界,并且哪个是我应该与医生讨论的一些事。

在我的脑海里一个电灯泡继续前进:为什么不使用这个方法来报告性能测试呢?我指出一些数据点并且用幻灯片演示:

特性

分数

能量消耗

 

传输/米每秒

CPU占用率

内存使用

注意那些我仍然使用颜色,但是轴线解释了颜色的选择并且暗示哪里高亮会更好并且哪儿颜色上更暗会更好些——单独的方法。读者能清晰地看到在允许范围内的每个测量的位置;颜色主要服务于关注在有问题的地方。制作这样一份报告花费一些时间,但是它可以被自动化。

我还没有在实际项目看见这个想法的实现——我仍然在研究这个想法——但是假如你确实使用这个想法,我将会高兴地了解到你的经验和你的组织的反应。

转载于:https://www.cnblogs.com/fengye151/p/11519067.html

一种更好的汇报性能测试结果的方法(译)相关推荐

  1. Ventoy-一种更便捷的OS启动盘制作方法

    今天心血来潮想给电脑装个双系统,然后发现了一个牛叉的工具,使用该工具比较完美的实现了OS 镜像下载后即可安装,省去了使用UltraISO /Rufus等工具写OS镜像到U盘的步骤,而且支持多种平台 , ...

  2. 贝叶斯优化: 一种更好的超参数调优方式

    简介 本文受 浅析 Hinton 最近提出的 Capsule 计划 启发,希望以更通俗的方式推广机器学习算法,让有数学基础和编程能力的人能够乐享其中. 目前人工智能和深度学习越趋普及,大家可以使用开源 ...

  3. 在职场中,千万不要当这两种下属,学会汇报,让领导刮目相看!

    转自:霸王课 2018-03-09 08:00:00 在职场中,向上沟通一个很重要的环节就是工作汇报.松下兴之助的传人江口克彦曾说过:"对于上司来说,最让人心焦的就是无法掌握各项工作的进度. ...

  4. 从AI、加密货币到火星任务,一种更强大、更稳定的存储设备

    作者:贺佳 来源:数据实战派 所研究器件之一的显微镜图像,由两个尺寸相同的十字架组成,其中一个具有 IrMn3 柱,第二个仅由 Pt 组成.(来源:西北大学和墨西拿大学) 美国西北大学和意大利墨西拿大 ...

  5. MobileViT: 一种更小,更快,高精度的轻量级Transformer端侧网络架构(附代码实现)...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 [导读]之前详细介绍了轻量级网络架构的开源项目,详情请看深度学习中的轻量级网络架构总结与代码实现 ...

  6. 两种写法的效果一样,那么到底哪一种更好呢?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 有时候,我们在写一些循环逻辑的时候,并不是按执行次数等作 ...

  7. c语言c2182是什么错误,C语言中一种更优雅的异常处理机制

    上一篇文章对C语言中的goto语句进行了较深入的阐述,实际上goto语句是面向过程与面向结构化程序语言中,进行异常处理编程的最原始的支持形式.后来为了更好地.更方便地支持异常处理编程机制,使得程序员在 ...

  8. JNI开发笔记(六)--一种更规范的so库生成方法

    一种更规范的JNI工程写法 引 前言 1. MainActivity中的两个重要的语句 2. 建立Util类来替代MainActivity 3. 在MainActivity中验证JNI工程并生成so库 ...

  9. 介绍一种更方便的代理池实现方案

    现在搞爬虫,代理是不可或缺的资源. 代理池 为了保证代理的有效性,我们往往可能需要维护一个代理池.这个代理池里面存着非常多的代理,同时代理池还会定时爬取代理来补充到代理池中,同时还会不断检测其中代理的 ...

最新文章

  1. VS2010/VS 2013 删除空行
  2. 虽然得了第三名,但依然很快乐...
  3. php删除禁用函数,百度云平台封禁的PHP函数列表 PHP禁用函数列表(转)
  4. 今日Google图标——Frank Lloyd Wright诞辰138周年
  5. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结
  6. 智能技术改变淘宝,阿里巴巴首次详解核心商业AI体系
  7. 数据湖正在成为新的数据仓库
  8. 一种用javascript实现的比较兼容的回到顶部demo + 阻止事件冒泡
  9. 81-linux cluster : lvs
  10. 关于 LDTP 操纵 windows 控件。
  11. 2021-2025年中国电子薄膜开关行业市场供需与战略研究报告
  12. 【matplotlib】对x轴标签进行旋转的方法小结
  13. php html转ubb,php ubb转换成html,html转换成ubb代码
  14. android 去广告浏览器,Adblock Browser(去广告浏览器) V1.3.1 安卓版
  15. 计算机硬盘通过usb接口,并口硬盘转usb接口的方法介绍【详解】
  16. 查看电脑CPU是否支持虚拟化
  17. Java七牛云报400错误
  18. 实施360绩效评估的的3个关键事项
  19. Linux二进制方式安装mysql8
  20. 微信域名监控通知、微信域名检测API接口分享

热门文章

  1. 题目:三个售票员 卖出 30张票 || 多线程编程的企业级套路+模板||synchronized与Lock的区别
  2. MyBatis是持久化层框架(SQL映射框架)-操作数据库
  3. bugku杂项题 白哥的鸽子 栅栏密码解密在线网站
  4. tomcat屏蔽ip
  5. Python 技术篇-容易被忽略的尾差问题
  6. Python基础 基本数据类型
  7. 用界面读取图片并且保存图片的方法
  8. 计算机四级网络工程师考点速查,全国计算机等级考试标准教程:四级网络工程师...
  9. tf.matmul()研究【Python】
  10. 复合五点高斯公式计算(Python实现)