在很多的错误观念中认为产品的质量是QA的事,这也就导致了关于产品质量的所有问题,QA承担责任成为一种规则,其实抛开这些不管是正确的观点还是错误的理念,这些都不重要,也是很难在某些局面能够改变的,因为不同的观点是在不同的认知维度上,这种路径依赖是很难打破的,除非在更高的一个认知维度来更加宏观的思考。不可否认,自动化测试已经是一种主流趋势,也是现在软件开发中必不可少的一个环节,这个环节很多时候是测试来承担,虽然DDT的模式很好,但是真正践行它的理念的也是属于少数,里面有太多的因素。产品始终是核心,做的所有的努力都是在打造一个好的产品,而作为一个好的产品,不管是它的品牌,还是它的影响力,知名度,以及营销和市场生态链,在这些综合的因素中,产品质量是核心,好的产品质量它首先是好的用户体验,如果一个质量很差的产品,不管宣传力度多么的好,投入的多少营销的手段,抓住了多少用户的心,最终也会被市场所淘汰的,因为市场有太多同类化的产品会存在。所以产品质量不旦旦是QA的事,它应该更多的是一个公司的事,是所有关心这个产品的人的事。克劳士比说质量不是工人的职责,很多劣质的产品来自管理层设定的标准。建立质量文化坦白说不事一件很轻松的事,正如前面开头说的,是很难改变一些看法和认知的,也很难改变一些心智上的事情。
而作为测试部门,不得不在产品质量与测试效率之间做出选择,很多时候我们想要的是鱼和熊掌是兼得的,至少在这样的一个特定的情况下,这个也是合情合理的。好的产品质量在于好的设计,这个设计更多值的是测试策略和对所要测试的产品把控维度。如果只是单纯的手工测试,并且做的很认真,不管是否承认,这样并不能提高产品质量,因为我们不能在UI测试层面找出所有程序存在的潜在风险和隐含的程序bug,第二个是基于saas化的情况,很多时候是对底层的API进行了底层的封装,最后才会被应用层调用,那么如果只是在最上层的对API测试,即使覆盖了某一个上层应用的所有业务,也是很难保证底层的API它是正确的,这是一种套路,就像刚才说的,底层的API是经过多层封装提供给上层的产品,而需要测试的更多的是底层的API,只要它是可访问并且是无误的,那么上层的应用至少不会出问题,如下图所示:
这是一种策略,并不是最好的方案,最好的方案应该是金字塔的模型,基于单元测试,组件测试,集成测试,和端到端的测试模式。在测试效率方面,手工测试的效率是最低的,自动化测试的方式也是目前对测试而言是测试效率最好的一种方式,这地方说的自动化测试更多指的是接口自动化测试,从产品的最开始界入,一直到产品的上线,持续的引入各个层次的自动化测试,以及打造流水线式的测试方式,如代码自动部署后自动开始执行单元测试,单元测试符合要求通过自动执行接口自动化测试,持续的往后推进。这中间有更多的话题需要思考和探讨。