公司要求 sit阶段不能写 bug,合理吗
隔壁组小张还在吐槽,说公司现在要求SIT阶段不能有bug,说什么要是测出来就要追责,搞得大家都跟上刑场一样,气氛一下就炸了。你说咱们写Java后端的,平时自测谁不自测?但你真让我保证SIT一个bug都没有,这事儿我觉得...怎么说呢,有点离谱。
你看,像我上个礼拜,写个支付接口,明明本地都测通了,Mock数据也没问题,Postman一打一切正常,结果一到SIT,环境数据一换,网关多了一层拦截,认证头丢了,直接就401了。我总不能为了自测跑到SIT环境模拟全链路吧?这跟让你猜彩票号码差不多,真不现实。
再说,有些问题根本不是你自己能发现的,比如联调,像前端突然字段多传了个空格,接口签名直接校验失败,你说这个是我自测能测出来的吗?你要说单测覆盖率要高,这个我认,但让自测100%无bug,SIT查出来就追责,太理想化了。
你说有没有必要自测?那必须有,我平时写完代码,肯定自己拉起来本地测,写几个Junit用例,比如:
@Test
publicvoidtestOrderCreate(){
Order order = new Order();
order.setAmount(new BigDecimal("99.99"));
order.setUserId(12345L);
OrderService service = new OrderService();
boolean result = service.createOrder(order);
assertTrue(result);
}
像这种主要流程,自己不测清楚,SIT测出来就丢人。但像刚才说的,环境、配置、依赖方接口随时变,有时候SIT一打才暴露出来。我有次还遇到Redis Key在预发没权限,生产才出错,你说这锅谁背?
你想想,就算是Google、阿里那些大厂,线上都天天出bug,什么“全栈自测全通过”,都是理想化。你让我尽量少bug可以,追责?那以后大家都写点死代码,什么都不敢动,创新点全没了。
我感觉公司可能是想让大家重视自测这个环节,别什么都丢给测试。但你说得太绝对反而让人有逆反心理。其实最好的方式是,你出问题了,看看是不是常规流程疏忽,比如明显空指针没防住,这个确实得好好说。但如果是环境、配置、第三方接口那种不可控,真的很难要求全自测覆盖。
那天还跟我们组小李聊到这事,他说之前在银行那边做项目,明文规定UAT阶段允许有低级bug出现,但生产前必须全清零。这样大家都知道各阶段重点,反而更有效率。
所以说,SIT不能有bug这事,要求可以提,追责真没必要。还不如多花点精力去把自测、自动化测试流程搞扎实。你要真想无bug,还不如用点像Arthas那种工具,线上出了bug还能直接远程诊断,谁还没遇到点稀奇古怪的问题呀?
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html