最近在研究测试左移,主要的想法就是 每次 build 就触发自动化测试,这么一说感觉特别的 low,我就很纳闷,别人能长篇大论的说一大堆,而我只能说一句,而且我感觉我一句话就说到了本质,触及到了灵魂。
不知道大家左移都做得怎么样?移到什么地步了?有没有移出屏幕外面去?
你的自动化测试能覆盖所有测试特性
最近在测小程序,发现开发在微信权限,一次性消息订阅上的逻辑全错了,服务端居然还出了个用户是否授权头像的接口给客户端调用。
那么我反思,如果我参与到他们调研这块的时候,或者接口设计评审,就可以发现这个问题,而不是等到测试时,这是不是测试左移呢,但这根本不关自动化的事情,所以我觉得 “每次 build 就触发自动化测试” 并没有触及本质
左移不是针对研发流程来说的吗,往源头移啊,移到需求产生
提测前做的、和质量保障相关的事情,个人理解都是左移。左移是相对于传统的测试主要在测试阶段才开始介入而提的概念。
比如需求评审时能提出更多提高需求质量的意见并推进让产品采纳;技术方案评审时能及时提出一些方案存在的风险缺陷(比如和第三方交互是否有充分可靠的补偿重试机制)并进行修正;代码提交时能通过一些自动检测工具自动发现那些低级的空指针错误;开发提测时可以通过 code review 来了解整体实现细节以及评估是否有风险(比如同时更新两个表有没有用事务避免脏数据等)等等。包括 TDD 、ATDD 这类测试驱动开发的方式个人理解也算是测试左移(比正常测试阶段提前了很多开始进行测试)
每次 build 就触发自动化测试这个是持续集成的概念,目的是及早集成和测试,确认每次提交代码后,软件达到最低限度的质量要求(能编译通过、最基本的测试可以通过)。也算是左移的一部分(正常迭代软件,在建立新分支的时候就开始做持续集成了)
左移其实挺难的,主要相关实践基本都离不开技术实践,对人员要求比较高。团队内有这样能力的人不多的话,安排做测试提效工具可能产出比弄左移要明显不少(而且一般开发水平不是太差的话,前期阶段能发现明显缺陷的概率并不高)。个人建议与其研究这些概念性的东西,还不如去审视下自己现在业务还存在什么问题,有什么合适东西可以去实践解决问题。现在已经是一个精细化的年代,很多实践并不见得都适合自己,按自己需要选择即可。
有左移清单,可以搜索看看
额,没必要背。我也只是想到哪写到哪。
对这些名词有个大致概念就行,一般是发现提测质量不好或者测试阶段经常返工,才需要开始关注和实施左移的。左移的核心个人理解是尽早发现甚至预防缺陷,避免都积压在测试阶段。
左右移思路上是做盘点枚举。
从版本生命周期或者研发流程出发:
需求提出与评审->技术设计&评审->测试设计&评审->代码合入&测试->灰度上线->全量上线
从这里面逐个环节去看,质量和效能层面分别能做什么……就不会再说【每次 build 就触发自动化测试】而且还自我感觉说到本质了
楼主哪个公司的?感觉跟我同一个