来自大师关于2021测试的灵魂拷问

    上周参加了一场自疫情以来收获最大的线上研讨会,主题是“
What Is Good Testing in 2021?
”一个小时的时间里,三位通过自己的实践和著作重塑了现代软件测试法的
Michael Bolton, James Bach, 

Eran Kinsbruner
,分享了他们对当今一些有争议测试问题的看法。

   

三位测试大师和他们的代表著作


    BoltonBach是两位是我一直关注的软件质量牛人,他们是温伯格众多接班人中十分突出的两位。这次线上研讨会时间虽短,但还是就一些当下和永恒的测试话题,比如测试工具化,测试定位,测试的明天等等,给出了许多值得我们深思的真知灼见,引起了我的强烈共鸣。现将会议很多互动环节整理一下和大家分享。


今天的软件测试和五年前有何不同?

       

    2021年的软件测试有三个重要新领域:AI
robotic process automation
(机器人流程自动化),信息安全和数据隐私的常态化。
    AI和追求一切自动化,给测试人员极大的压力,很多人希望专业人工测试被算法完全取代,三位对此深不以为然。他们以无人驾驶车为例,指出算法无法替代专业测试人员。
    各种新出炉的法律、法规让信息安全和数据隐私成了系统必备的质量属性,自然也成为测试的核心工作之一。
在今年做
几个评估中,很高兴看到组织内都建立了独立的信息安全测试团队以及标准信息安全测试。

 

如何看待测试在持续交付、测试自动化的定位?

    
业界有两个极端想法:不少人相信持续交付真的可以绵绵不断、不间断的将完成的功能放到用户手中,也就是说一切测试都自动化;少数人认为每个环节都需要实验性测试,所以质量基本还是要靠人工测试保证。

    这三位认为,负责任的测试团队都会使用工具,但不会把应负的责任完全扔给工具。就像父母会让一个9岁的孩子独立做很多事,但孩子的安全成长的最终责任在父母,自动化环境下的测试应该有类似的定位。
    可惜在不合理往往又是随意的交付进度压力下,测试自动化有时成了掩耳盗铃的工具,好像用了工具就能质量、进度一并收。这反而让测试团队很难完成负责任的测试。
    全面理解测试工具的局限性十分重要,在复杂的运行环境下,许多点的测试无法做到自动化,我们不能假设这些点都不存在隐患。

 

什么是好的测试工具?

        

  
  核心不是工具的好坏,而是它们在哪些方面可以延伸测试人员能力,扩展他们的能力,比如,我们希望评估阻止实现软件价值的隐患,帮助收集数据的工具会很有用,但判断质量隐患还是人的工作。
    同样重要的是理解工具可能带来的负面效果,就像汽车是好东西,但所有人开始开车时,堵车就成了现实问题。
    好的工具不仅仅是将测试自动化,也可以帮助测试人有更好记忆力,讲故事的能力,可以让他们变得强大。

 

什么是测试的正确思维?

        

    
对测试特别糟糕的一个思维是,测试就是要证明软件是对的!一大批人已经在做这件事了,所以测试正相反,要做的是努力证明的是这个假设是错误的。测试就是要找麻烦的,可惜越来越多的人不尊重测试的这个职责。

 

什么是点透了测试的四个假设?

         

    
不合理的假设是很多人指向测试的一个问题,BoltonBach牛就牛在有能力深入两个层次去探讨这个问题。他们指出测试中的假设是不可避免的,但可以将假设分成下面四类:
 没有根据的假设
 有风险的假设
 安全的假设
 必要的假设
    尽量避免没有根据和高风险的假设,注意一些安全假设很可能并不是那么安全,没有必要的假设,什么事也很难完成。
    这四个假设分类分析对测试团队制定自己的测试策略会很有帮助,值得单独拿出来深入探讨。

 

在追求测试自动化的时代,优秀测试人员是什么样的?

         

   
 优秀的测试人员具备对软件产品批判性思维的能力,能想到可能的问题场景,同时具备全面分析能力,有能力将软件产品做分解,搞清楚不同模块之间的逻辑关系,能梳理出一张模块及相关质量属性之间的关联图,并理解多维质量要求的平衡。好的测试人员能够跳出开发的套路(和开发保持critical distance),将自己融入到用户的世界,理解软件给用户带来的价值,用工具帮助找到阻碍实现这些价值的雷。
    貌似中国软件组织很少对测试人员有如此的要求。
 

如何看测试是所有人的责任,测试左移?

         

   
 这是非常糟糕的思路,完全由一群不懂测试的人在推动。也显示出测试群体的弱势,不能理直气壮地说明自己为什么是不可替代的。
    想象一下这些场景:报纸没有编辑,写的东西随便发;政府没有监督,可以随意做任何事情;医生的工作无人监督;科学研究不需要证明研究成果。任何有风险的行业,都需要有严格批判性思维的监督,软件行业也不例外。
    当我们在喊“测试是所有人的责任”时,谁能讲清楚你到底要开发人员具体额外做什么?设计人员具体额外做什么?管理人员具体额外做什么?到目前没有人能讲清楚。
    就像如果某人说“道德是所有人的责任”时,表面上是强调集体的作用,却忽略了只有个人才是道德的承担者。
    为什么我们不说“管理是所有人的责任”,“开发是所有人的责任”,“HR是所有人的责任”?因为当你说这是所有人的责任时,你也在轻视它,暗示它是可以替代的。
    在回答“测试是所有人的责任”问题时,首先必须回答“掌握测试技能是所有人的责任吗?”可惜从来没有人问这些问题。

 

如何让管理层了解测试的必要性和重要性?

         

    给他们讲故事,讲自己公司质量问题痛苦故事,讲业界软件质量灾难的故事,这是比较有效的方法。要让管理层看到极其负面的东西,否则在降本增效的旗帜下,就像砍技术支持,砍技术文档支持一样,两个都变成了开发的这责任,刀也会伸向测试。

 

质量和风险是所有人的责任吗?

        

不是,都是管理者的责任,只能是管理者的责任。

 

什么是合理的自动化和手工测试比例?

         

    
这是许多人问的问题,但却是一个毫无意义的问题。正确的问题应该是“如何使用工具帮助发现有危害的问题?

 

谁在测试AI

       

  
  当然希望是一群聪明的测试人员,而实际上呢?鬼知道!

 

Code还是no code测试?

    Code

 

对未来测试的期望是什么?

    

  
  期待一个有批判思维的强大测试群体出现,虽然目前还没看到。期待着社会对测试的真正认可,理解我们的工作保存了价值,避免了对人的伤害,虽然目前也没看到。

 

 
    我个人非常喜欢这种线上研讨模式,也期待我们国内组织一下这样的CMMI专题的线上活动,可以互动深入探讨改进和评估中的问题,不仅吐槽问题,更重要的是探讨解决思路,特别是理念层次上清除错误的偏见,达成原则层面的共识。要是哪个协会或者组织有意向组织,我报名参加。

来自大师关于2021测试的灵魂拷问》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/1700.html