这里说的测试不单纯是某些测试书上常说的测试, 也包括测试开发。我理解测试的职责主要包括:
2V+EP: validition+verification+Engineer productivity
流程管理: 介绍下传统流程和敏捷流程
从这两方面介绍下测试需要做的事情。
validition即正确性检查
可以概括为以上几点,每个工作都可以做很多事情
verification+Engineer productivity 效果验证和工程师生产力(效果级别的目前接触的不多, 所以放在一起说了)
这里面的效果验证一直没有挖掘出太多可以做的地方, 我针对的是后台测试相关的, 作为后台的一个模块或者一些算法, 很难直接在用户的层面验证程序的效果。 所以大多只是所一些监控。
EP解释下,就是能节约人力成本的工作。这方面有很多工作可以做, 还可以挖掘更多,通过自动化减少手工的工作;服务化让qa的工作前置,避免bug发现过晚;通过流程规范化可以在整个项目甚至整个公司对流程达成共识,减少因为流程的不规范导致的线上问题和时间浪费;敏捷可以让我们持续继承,持续发布, 迭代更快,效率更高。
项目流程方面:
传统的流程大概可以概括为:调研,立项,需求讨论,详设,详设评审,编码,自测,代码review,提测,测试设计,测试报告,根据上线单上线,最后线上进行确认和监控。不同的项目可以根据项目级别进行流程裁剪。比如D类项目或者小需求就不需要测试或者详设,直接自测了就上线等;不同公司略有差异。 上面所有的流程QA都需要参与, 并了解自己的职责,怎么样能更好的提高效率和避免风险。
在往敏捷方向发展的过程中,流程差不多是这样:
从我做的PPT中拷贝过来的,知道这个图画的挺丑,请原谅我的偷懒.
这里面的quick job 和slow job 即为比较快的自动化case, 例如单测,静态扫描,功能测试等。
slow job表示比较慢的case, 比如性能测试,系统测试,大数据测试等。
沙盒和预上线都是能模拟线上的mini环境,沙盒qa维护和测试使用,预上线环境op维护和预上线验证使用,预上线也可以成为ab test。 这里也因不同公司而有差异
因为迭代比较快,qa的压力也会更大, 整个过程中的自动化建设, 持续继承的case等都需要完善,才能更好的避免风险,并且加快项目发布。