前段时间刚好部门老大也在问我如何把自动化测试加入到CI/CD里面,当时没有想清楚。在我思考了一段时间之后,我觉得还是可以通过部署流程中来添加自动化测试工作。我个人认为自动化测试需要在以下三点:
1.持久化存储测试结果。
2.可视化展示数据。
3.自动化回测。
例如在部署项目的时候,在部署脚本里面增加执行测试用例的命令,然后根据测试用例的结果进行分析,,如果不达到标准则发送邮件给研发和相关责任方。有时候测试结果非常不理想,还可以强制回归代码版本,当然这个是针对线上环境比较合理。因为如果是测试环境或者预发布环境,可以有更多的容错性。
关于测试用例,我思考的是,如果是前后端分离的项目,可以先针对后端接口来写测试用例,可以是基于接口的单元测试,也可以是基于服务流程的业务性测试用例。聊到单元测试,很多人都会讨论:到底这个应该测试人员来编写,还是研发工程师来编写。
各执一词,都有一定道理。支持由研发工程师编写的人认为,研发工程师对开发的相关业务最熟悉,那么为了代码更加可靠,去编写单元测试是非常合理的。另外一些人认为单元测试本身就属于测试类型中的一种,理应测试人员来编写。在我看来,成年人哪里还要单选呢,两个都要。这些都有一个前提,就是这些接口值得大家花时间精力编写单元测试代码,否则这个讨论就意义不大了。一方面研发工程师对代码质量和结果是有责任的,所以重要接口和功能,进行单元测试有助于把问题控制在最小范围内。另一方面由于研发人员可能存在思维盲区,对边界问题和特殊情况可能考虑不全面,所以测试人员也编写单元测试相当于双重验证,岂不美哉?
=============== 华丽分割线 ==========================
俗话说,纸上得来终觉浅,不如系统地学习一波自动化测试。刚好本人新书正在热销中,欢迎对自动化测试感谢的同学去看看,安利一波自己的作品,嘿嘿,请见下图,感谢支持。