精益测试
- 2021-05-10 15:53:00
- 林子
- 转贴:
- bylinzi.com
- 572
一、精益生产

二、精益测试
什么是精益测试
不管是手工测试还是自动化测试,都要先搞清楚业务价值和质量目标,根据业务风险来执行测试,对于优先级高的要重点测,而优先级低的可以减少测试覆盖。
根据“二八原则”,80%的业务优先级可能只在其中20%的功能模块上,而其他80%的功能模块只占有20%的业务。如果一视同仁,追求全面覆盖,花费大量精力在那80%的低优先级模块上,必然造成大量的浪费。相反地,不追求测试覆盖率,追求测试的有效性,将会事半功倍,带来更高的ROI。因此,很多时候,测试恰到好处很关键,带着bug上线也许是个好的策略。
注意,这里的质量目标是关键,对于一些事关生命安危的软件系统,质量要求会特别高,全面的测试覆盖都是有效的,也是恰到好处的一种。
这就是是精益测试的思想。
因此,精益测试可以定义为: 以业务价值为目标,以尽量少的成本交付高质量的软件,测试测在能体现价值的点上,做到有效覆盖,减少浪费。
精益测试的精髓

- 适时(T)
敏捷测试要求测试全程参与,让测试活动发生在敏捷软件开发生命周期的每个环节,而让每种类型的测试发生在它最该发生的时刻,这就是“适时”的概念。比如:开发前对需求的确认,开发代码提交前自动化测试的实现和验证,部署后对系统做的冒烟测试等等。
- 适量(A)
对于测试覆盖率,有人会认为越高越好,比如前面提到的有团队要求99%的自动化测试覆盖,就算这些测试覆盖都是有效的,但是花费太多精力去测试一些不是那么重要或者不是那么容易出问题的模块,也可能得不偿失,造成浪费。我们建议测试覆盖,不管是手动还是自动化的,都是适量就好,根据风险来确定需要加强测试的业务优先级和响应的测试覆盖量,一定不能一味的追求高覆盖。需要权衡利弊,把时间花在真正有价值的事情上,这也是精益的体现。比如,做用户故事验收的时候,需要测到多细一直是个有争议的问题。我觉得主要路径的正常用例,加上一些需要特别关注的点就可以了,特别关注的点包括易出错的异常路径、IE这样的特殊浏览器、高风险的安全问题等。不能也不需要在故事验收的时候覆盖所有的边角情况,毕竟需求、开发和测试三方凑一起不容易,时间要尽量短些才好。当然,可能有的团队还需要在故事验收的时候验收日志、性能等,只要做到尽量高效,按照团队需求来就好,并没有千篇一律的答案。
- 精准(T)
精准测试通常是指根据代码改动所影响到的范围去针对性的进行自动化测试。而这里说的精准测试范围更广,可以理解为基于风险的测试,风险可能来自于业务和架构层面,也可能来自于代码改动,还可能跟系统特点或其他项目因素相关。执行测试之前更重要的是分析和设计,不能盲目的去测。三、精益测试的指导框架
测试四象限

-
支持团队的测试
左侧支持团队的测试是用来告诉团队要写什么代码,起到明确需求、辅助设计的作用。其中,第一象限是面向技术的支持团队的测试,帮助构建产品的内部质量,也就是代码质量的保障,比如单元测试和API测试等;第二象限则是面向业务的支持团队的测试,从更高层次以业务专家可以理解的方式确定系统期望的行为,帮助团队澄清业务以更好的理解真正的业务价值。
这两个象限的测试能够快速提供反馈信息,并确保快速的解决问题,既指导了功能的开发,又提供了防止重构和新代码的引入而导致不期望行为发生的安全网。
- 评价产品的测试
程序员编写的代码可以使得左侧面向业务的测试通过,但也可能没有产生客户真正想要的东西,因此还需要第三、第四象限的评价产品的测试。第三象限是面向业务的评价产品的测试,通过模仿真实用户使用应用的方式,帮助确认是否构建了真正需要的产品;第四象限是面向技术评价产品的测试,主要采用工具和相应的技术来评价产品的性能、健壮性和安全性等非功能特性,并且在开发周期的每一步都要考虑这些测试的开展。
这两个象限的测试中产生的信息应该反馈到象限矩阵的左侧,并用于创建新的测试来驱动下一步开发,形成良性的增强环路。
- 测试象限的使用
象限的顺序跟测试执行的顺序无关,敏捷开发往往开始于客户测试(面向业务的测试)。与测试执行时机相关的因素通常有:- 产品发布的风险
- 客户方对产品目标的要求
- 是基于遗留系统的开发还是从零开始构建的新系统
- 可利用的测试资源等
测试分层

关于测试分层的概念,大家可能更为熟悉的是 测试金字塔,测试金字塔呈现的是不同种类测试比例的多少,底层单元测试较多,越往上层测试比例越少,呈现为金字塔结构。


四、小结
测试策略受众多因素的影响,需要做到目标驱动,并且根据具体情况随着时间推移不断的演进。测试四象限和测试分层都只是指导框架,不是必须遵守的规范,可以作为测试策略制定的参考模型,具体项目的策略还需根据项目特定情况进行调整。
文章分类
联系我们
联系人: | 阿道 |
---|---|
电话: | 17762006160 |
地址: | 青岛市黄岛区长江西路118号青铁广场18楼 |