最近参与的拥有7大模块的系统项目,从去年11月开始开发,共5个月左右。
该项目是用Java+Node.js开发,开发人员含外包将近10位,测试人员A从头跟到尾,其他测试人员都是紧急时刻从其他项目临时调来,包含兄弟部门开发人员B、刚毕业测试人员C,仅有的1位10多年测试经验的外援同学也只加入3天时间。
部署到预生产环境后,甲方项目经理发来了3封bug邮件,让我对自己产生了怀疑和失望。于是对出现的问题进行分类,总结原因主要有以下几点:
与项目经理沟通不充分
-
项目经理发给甲方在预生产环境试用的测试账号是我曾经发给项目经理的在测试环境的账号。
-
甲方项目经理在预生产环境试用前,项目经理未同步消息给组员预先进行预生产环境内测。
测试流程未切实贯彻好
预生产环境未做确认。测试测试环境测试通过后,未在预生产环境与业务人员一起做回归测试,暴露出明显的bug,比如“列表页有数据但是导出Excel中数据是空的”,“测试帐号全部出现权限配置错误”。
由于测试人员病假,预生产(包括账号权限配置)未做确认测试就被上线到生产环境。
功能缺陷
-
开始日期和结束日期逻辑关系未做校验;
-
含税和不含税金额逻辑关系未做校验;
-
文本字段输入超长字符(前端未做限制+数据表字段未设置合适的字段类型与长度)。
预生产环境缺少铺底测试样例数据
预生产环境样例数据不够,更加不足以支撑后期性能测试。
针对以上出现的问题,吸取前期的经验教训,便于在后续模块及发布版本中做出如下改进。
与项目经理充分沟通
像这次项目经理要求提供账号时,应该问清楚需要哪个环境的,测试、预生产还是生产环境,能避免因为账号使用问题让甲方试用时受阻。
在预生产环境做确认测试
测试环境测试通过后,需要在预生产环境做确认测试。举个例子,台账数据的列表页导出功能,在测试环境上点击导出,可以导出Excel数据到本地,而在预生产环境上导出数据却是空的。
如果在预生产上严格执行这步测试流程,不至于出现这样的功能缺陷。
这里也提醒读者,工作中出现个人原因缺席可能会影响上线等重点里程碑事件时,一定要提前跟所有干系人沟通到位,争取得到各方支援,或延迟上线或缩减上线功能,总之保证把好质量这一最后一关。
即使后期出现质量事件,也有个交代。
确认产品需求
由于项目的需求文档是乙方设计同学D编写的,其颗粒度很粗。举个简单的例子,页面的导出功能,一句话描述如下所示:“导出数据为EXCEL文档格式,数据范围与系统权限一致。”
提供的原型如下图:
除了表明导出格式这个重点信息外,其他限制未作说明,比如列表页数据表第一列是复选框,那么用户勾选某些复选框后执行导出操作,系统是导出勾选的数据还是依然导出的是列表页上的所有数据?
诸如这样的例子不计其数,几乎每个功能在需求文档上都不能完整地呈现。
这种情况下,要对功能进行多次确认,找开发、找乙方需求D,如果推不动,向上推,找到项目经理,让项目经理找D的上级,能不能解决那也是上层商务的事情了。
编写完备的测试用例集
需求确认后,测试用例编写的颗粒度需要细到单个按钮。不能急于求成,不能因为项目经理的催促或是需求的不明确或是开发同学的低水平而减少测试用例编写的详细度,囫囵吞枣,必然会造成产品质量的低劣,尤其需要重视异常场景的覆盖。
这次用户大批量试用过程中,反馈系统导入功能体验较差。分析了需求文档和测试用例后,发现异常场景除了必填项校验外几乎没有覆盖到。导入功能总结有如下的异常场景:
1、填写必填项,不填写非必填项,应该可导入成功;
2、未填必填项,填写非必填项,应该不能导入;
3、填写的日期字段不符合系统支持的格式,日期字段异常校验(日期=32,2月有30日,这些百度能搜到更详细的,不在本文叙述重点内,感兴趣的同学自行搜索);
4、填写的数字字段填写为非数值格式,比如对demical类型的字段填写成文本型;
5、填写的金额字段超出数据表设计的长度;
6、选择的下拉选项超出模板给定的下拉列表范围;
7、填写的文本字段长度超过前端限制的字符或者数据表设计的字段长度。
预生产环境添加铺底数据
通过权限配置表在后台配置各角色账号权限,每个模块每个列表页分别以不同级别的账号录入不少于11条数据(系统默认每页显示条数=10),随着每次更新迭代加入验证数据的累积,也是在积累后期性能测试的基础数据。当然,这些基础数据的子页面也是需要有各种明细数据的。
不经历风雨怎能见彩虹,希望每一位热爱测试的读者能吸取前期经验教训,在测试之路跌倒爬起来,越战越勇!
粉丝福利
为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】