当测试遇上微创新

简介: 当测试遇上微创新

640.jpg

他山之石,可以攻玉。我们在提升专业性知识的同时,可以看看一些无强相关性的书,有助于开阔我们的思路。多做总结,多做无关性联想,或许,就会碰撞出一些不一样的火花。




最近看了本书《微创新-5种微小改变创造伟大产品》,创新界非常有名的一本书(别问我为什么突然看这书,问就是老婆大大推荐的)。在通读了一遍之后,我被书中的案例完成吸引住了,这里不展开讲如何创新,有兴趣的朋友可以自己找来看看。但是书中的创新方案给了我很大的启发,我们不一定要用这些策略来做创新,但是它能提供一些不一样的解决问题思路。

640.png

书中提到的5种创新策略

     给我感触最深的,是书中对矛盾问题的阐述。在DevOps的理论体系中,也有针对矛盾(冲突)的处理方案。简单来中,在DevOps的文化中,处理矛盾(冲突)的策略有以下5种:

      1. 协作:最佳方案,找到平衡点,让双方都达成所希望的目(需要更多的智慧和能力)

      2. 竞争:不错的方案,大家公平竞争,职场上只看结果,在不打破底线的前提下,适者生存

      3. 妥协:没有办法,牺牲一部分利益,换取一部分利益。

      4. 退让我不要了,如果自己的机会不大,那么就优雅的退出,给对方留下好的印象

      5. 回避:鸵鸟政策,先搁置争议,下次再说。

但是在《微创新》这本书中,作者对矛盾给出了一个新的解决方案。学会区分真假矛盾,尝试找出看似矛盾的结论中找联系。书中提到矛盾由三个部分组成:两个论点及一个限定词。两个论点通常表现为:1.需要利益或者好处,2 获得这一利益所需要的代价(用【】表示),并通过限定词连接起来(用黑体表示)。例如:

案例一:某公司中标一个项目,项目标承包人设计并生产只接收数据的天线,使其适用于冬季气温低于零下12度且大风频发的地区,因为天线的安装高度必须达到地面9.8米以上,所以承载它的天线杆必须足够坚固,以防天线在大风天气中剧烈晃动。同时,对天对天线的安装,他们只能派出一支三人的小分线步行将天线杆运到不同的战略要地。这支小分队要安装天线杆,将天线架设在其顶部,结束这一切任务后,才能收工回家,这就意味着天线杆一方面要足够轻巧以便方便运输,另一方便呢,又要足够坚固,以保证天线在无现场人员维护和看管的情况下正常工作。

根据矛盾的组成部分,我们把案例精简如下:天线架必须【足够结实】(得到利益)以便在风雪的天气中承受天线的重量,同时,携带要【足够轻便】(代价),方便安装人员可以扛着天线架进山

        案例二:在一次面试中,面试官问题你:当留给你执行全部用例的时间不够时,你将如何保障产品上线的质量?我们可以接受一定的风险,但希望以后能够改善这种情况。

根据矛盾的组成部分,我们把案例精简如下:我想要【执行全部用例】(得到利益),但是我的【时间不够用】(代价)

(注:第一个例子是书中的,第二个是我想到的,方便后续的阐述)

从表面上看,以上两个例子都是矛盾的,双方的需求存在冲突。我们当然可以用上面的5种策略来解决问题。但是,这些真的是矛盾的么?(可以先思考下,再往下看)。

      留给你的思考空间









在第一个例子中,双方的冲突点在于天线架既要坚固(支撑天线)又要轻便(方便搬运)。从工程学的角度讲,增加承重需要额外的重量支撑。当然,你可以通过研究新材料来解决这个问题。但是,我们细想下,这个矛盾的本质原因是什么呢?是因为“同时”这个限定词,那么,如果“不同时”呢?那矛盾是不是就不存在了,打破这个限定词后,我们看到的矛盾,实际上并不是真的矛盾?这个案例的最终解决方案是:在运输端,采用更轻便的材料设计天线架。但是把天线架的表面设计成凹凸不平的样子,这样,当天线架起来后,天线杆会被飘雪依附,结成冰块。而冰块的紧固程度足以支持天线的重量。(篇幅有限,看原书更精彩哟)

再看看第二个案例,这个是我们测试人员在面试时,经常被问到的问题。利用上面的思路,我们来分析下,这个矛盾的限定词是“我的”。通常我们的做法是裁剪策略、增加人员,识别风险等,用到的是上面5种解决矛盾的策略(有更好的思路,欢迎留言)。但是,执行全部用例和时间不够真的矛盾么?其实并不是,因为我们最终的目标是保障质量。所以,执行用例我们完全可以用自动化的方式来解决,提升效率。当团队引入自动化后,就不存时间不够的问题了。所以,这个问题我会这么回答:在当前版本,我们可以临时通过一些策略来解决问题,但是在后续的版本中,我会提升自动化的覆盖率,提升测试用例的有效性,减少重复的用例。让测试更有效率,从根本上解决这个问题。这样,矛盾是不是就不存在了?



   通过这些案例,我受到的启发是:我们往往认为的矛盾,在打破限定条件后,其实并不是矛盾的。这种思路为我们以后解决问题提供了另一种不一样的思考方向。当我们遇到矛盾后,尝试用两个论点及一个限定词来描述当前矛盾,然后去掉这个限制定词(有时候我们写的限制定并不是核心问题,可以通过有效沟通让这个词显示出来 ),尝试用别的方案来解决这个“矛盾”。



书中提到的“乘法策略”,其实在我们的测试中也有相关的实践。比如我们的分层测试,就是把测试活动增加到多份(从集成测试,增加到单元测试、接口测试、端到端测试、验收测试等等),然后通过一定的改变(测试目标不同),达到解决问题(提升产品质量)的目的。

他山之石,可以攻玉。我们在提升专业性知识的同时,可以看看一些无强相关性的书,有助于开阔我们的思路。多做总结,多做无关性联想,或许,就会碰撞出一些不一样的火花。

相关文章
|
人工智能 算法 定位技术
元宇宙房地产:虚拟土地的价值评估
【10月更文挑战第28天】随着科技发展,元宇宙成为融合虚拟现实、增强现实和区块链技术的数字世界。本文探讨元宇宙房地产中的虚拟土地价值评估,分析其影响因素、评估方法及未来发展趋势,包括地理位置、平台流量、土地用途、用户基础、技术创新等方面。未来,元宇宙房地产将呈现跨平台交易、定制化城市建设及金融产品创新等趋势。
|
存储 缓存 Cloud Native
阿里云 ClickHouse 企业版云原生 ClickHouse 技术揭秘
云数据库 ClickHouse 企业版是阿里云和 ClickHouse, Inc 战略合作打造的云原生ClickHouse 产品。企业版推出专属 SharedMergeTree 云原生引擎,支持存算分离,Serverless 秒级实时弹性,集群吞吐和查询效率线性扩展及 Lightweight update 实时更新能力。本文将详细揭秘 SharedMergeTree 实现机制,实时弹性扩展实现原理,lightweight update 技术实现原理,同时对企业版和开源版进行详细的性能测试对比。
2227 1
阿里云 ClickHouse 企业版云原生 ClickHouse 技术揭秘
|
SQL Java 关系型数据库
JDBC技术【SQL注入、JDBC批量添加数据、JDBC事务处理、其他查询方式】(三)-全面详解(学习总结---从入门到深化)
JDBC技术【SQL注入、JDBC批量添加数据、JDBC事务处理、其他查询方式】(三)-全面详解(学习总结---从入门到深化)
333 0
|
存储 人工智能 算法
【数据结构基础】之树的介绍,生动形象,通俗易懂,算法入门必看
【数据结构基础】之树的介绍,生动形象,通俗易懂,算法入门必看
359 0
【数据结构基础】之树的介绍,生动形象,通俗易懂,算法入门必看
|
监控
jmeter常用逻辑控制器(事务控制器,循环控制器)
jmeter常用逻辑控制器(事务控制器,循环控制器)
395 0
|
Kubernetes Cloud Native 网络协议
企业级运维之云原生与Kubernetes实战课程 - 第一章第7讲 实验一:从0开始创建云原生应用
本小节主要讲解从0开始创建云原生应用的实验部分,以及Pod的几种状态、Pod在宿主机上体现方式。
企业级运维之云原生与Kubernetes实战课程 - 第一章第7讲 实验一:从0开始创建云原生应用
|
存储 前端开发 算法
LeetCode只出现一次的数字使用JavaScript解题|前端学算法
LeetCode只出现一次的数字使用JavaScript解题|前端学算法
241 0
|
容灾
服务运行过程中磁盘坏道引起的思考
服务运行过程中磁盘坏道引起的思考
服务运行过程中磁盘坏道引起的思考
|
网络协议 算法 Unix
Windows下libevent C++封装类实现
题记 windows平台下对于服务器高并发的网络模型选型中,使用libevent是个不错的选择。 本文的背景基于:国内博客对于libevent大多介绍linux实现,大多是c语言的实现,Windows平台下C++相对较少或者较旧。 本文针对libevent从服务端、客户端两个角度实现了封装类,真正做到,我们在使用封装类时候,只需要关注业务逻辑的处理,不需要关注socket的通信的细节。
Windows下libevent C++封装类实现
|
Oracle 关系型数据库 中间件