当测试遇上微创新
他山之石,可以攻玉。我们在提升专业性知识的同时,可以看看一些无强相关性的书,有助于开阔我们的思路。多做总结,多做无关性联想,或许,就会碰撞出一些不一样的火花。
最近看了本书《微创新-5种微小改变创造伟大产品》,创新界非常有名的一本书(别问我为什么突然看这书,问就是老婆大大推荐的)。在通读了一遍之后,我被书中的案例完成吸引住了,这里不展开讲如何创新,有兴趣的朋友可以自己找来看看。但是书中的创新方案给了我很大的启发,我们不一定要用这些策略来做创新,但是它能提供一些不一样的解决问题思路。
书中提到的5种创新策略
给我感触最深的,是书中对矛盾问题的阐述。在DevOps的理论体系中,也有针对矛盾(冲突)的处理方案。简单来中,在DevOps的文化中,处理矛盾(冲突)的策略有以下5种:
1. 协作:最佳方案,找到平衡点,让双方都达成所希望的目(需要更多的智慧和能力)
2. 竞争:不错的方案,大家公平竞争,职场上只看结果,在不打破底线的前提下,适者生存
3. 妥协:没有办法,牺牲一部分利益,换取一部分利益。
4. 退让:我不要了,如果自己的机会不大,那么就优雅的退出,给对方留下好的印象
5. 回避:鸵鸟政策,先搁置争议,下次再说。
但是在《微创新》这本书中,作者对矛盾给出了一个新的解决方案。学会区分真假矛盾,尝试找出看似矛盾的结论中找联系。书中提到矛盾由三个部分组成:两个论点及一个限定词。两个论点通常表现为:1.需要利益或者好处,2 获得这一利益所需要的代价(用【】表示),并通过限定词连接起来(用黑体表示)。例如:
案例一:某公司中标一个项目,项目标承包人设计并生产只接收数据的天线,使其适用于冬季气温低于零下12度且大风频发的地区,因为天线的安装高度必须达到地面9.8米以上,所以承载它的天线杆必须足够坚固,以防天线在大风天气中剧烈晃动。同时,对天对天线的安装,他们只能派出一支三人的小分线步行将天线杆运到不同的战略要地。这支小分队要安装天线杆,将天线架设在其顶部,结束这一切任务后,才能收工回家,这就意味着天线杆一方面要足够轻巧以便方便运输,另一方便呢,又要足够坚固,以保证天线在无现场人员维护和看管的情况下正常工作。
根据矛盾的组成部分,我们把案例精简如下:天线架必须【足够结实】(得到利益)以便在风雪的天气中承受天线的重量,同时,携带要【足够轻便】(代价),方便安装人员可以扛着天线架进山
案例二:在一次面试中,面试官问题你:当留给你执行全部用例的时间不够时,你将如何保障产品上线的质量?我们可以接受一定的风险,但希望以后能够改善这种情况。
根据矛盾的组成部分,我们把案例精简如下:我想要【执行全部用例】(得到利益),但是我的【时间不够用】(代价)
(注:第一个例子是书中的,第二个是我想到的,方便后续的阐述)
从表面上看,以上两个例子都是矛盾的,双方的需求存在冲突。我们当然可以用上面的5种策略来解决问题。但是,这些真的是矛盾的么?(可以先思考下,再往下看)。
在第一个例子中,双方的冲突点在于天线架既要坚固(支撑天线)又要轻便(方便搬运)。从工程学的角度讲,增加承重需要额外的重量支撑。当然,你可以通过研究新材料来解决这个问题。但是,我们细想下,这个矛盾的本质原因是什么呢?是因为“同时”这个限定词,那么,如果“不同时”呢?那矛盾是不是就不存在了,打破这个限定词后,我们看到的矛盾,实际上并不是真的矛盾?这个案例的最终解决方案是:在运输端,采用更轻便的材料设计天线架。但是把天线架的表面设计成凹凸不平的样子,这样,当天线架起来后,天线杆会被飘雪依附,结成冰块。而冰块的紧固程度足以支持天线的重量。(篇幅有限,看原书更精彩哟)
再看看第二个案例,这个是我们测试人员在面试时,经常被问到的问题。利用上面的思路,我们来分析下,这个矛盾的限定词是“我的”。通常我们的做法是裁剪策略、增加人员,识别风险等,用到的是上面5种解决矛盾的策略(有更好的思路,欢迎留言)。但是,执行全部用例和时间不够真的矛盾么?其实并不是,因为我们最终的目标是保障质量。所以,执行用例我们完全可以用自动化的方式来解决,提升效率。当团队引入自动化后,就不存时间不够的问题了。所以,这个问题我会这么回答:在当前版本,我们可以临时通过一些策略来解决问题,但是在后续的版本中,我会提升自动化的覆盖率,提升测试用例的有效性,减少重复的用例。让测试更有效率,从根本上解决这个问题。这样,矛盾是不是就不存在了?
书中提到的“乘法策略”,其实在我们的测试中也有相关的实践。比如我们的分层测试,就是把测试活动增加到多份(从集成测试,增加到单元测试、接口测试、端到端测试、验收测试等等),然后通过一定的改变(测试目标不同),达到解决问题(提升产品质量)的目的。
他山之石,可以攻玉。我们在提升专业性知识的同时,可以看看一些无强相关性的书,有助于开阔我们的思路。多做总结,多做无关性联想,或许,就会碰撞出一些不一样的火花。