之前接手一个后台管理系统的迭代版本,有人问功能测试包括哪些方面,当时脑子里不是书本上的条目,全是那天反复点页面的画面。需求文档堆在屏幕侧边,一边对照一边操作,一个模块卡住,就要停下来反复验证,很多东西不是单纯点按钮就能覆盖到。
最先碰的就是业务流程的校验,也就是正常路径下能不能完整跑通。新增一条数据,填完必填项提交,保存之后列表能不能刷新出来,点编辑能不能带出原来填写的内容,删除之后这条记录是不是真的消失。很多新手会只测单独按钮,忽略完整链路,那次我就踩过这个问题,新增功能单独点没问题,但是新增完直接跳转详情页就报错,单独测按钮根本发现不了这个问题。
然后是输入项相关的检查,这块琐碎又耗时间。必填字段空着提交,页面有没有弹出对应的提示文字;输入超长字符,系统会不会直接崩溃或者乱码;数字框里面输入汉字、特殊符号,能不能拦截住。还有边界值,比如规定最多填20个字,输入第20个字和第21个字分别看效果。有些页面提示语写的含糊,明明限制长度50,提示却写30,这类都属于功能层面要核对的内容。
异常操作的场景也不能漏掉。网络中途断开的时候提交表单,系统是卡住还是给出友好提示;重复快速点击提交按钮,会不会生成多条重复数据;权限不一样的账号登录,能不能看到不属于自己的菜单。低权限账号能不能直接访问高权限页面链接,这个点很容易被漏掉,上次测试就发现普通用户复制管理员页面地址,直接就能打开查看数据。
还有界面控件本身的基础功能。下拉框选项加载是否正确,单选多选切换之后取值对不对,复选框批量选中、批量取消,批量操作能不能生效。弹窗,确认框,关闭按钮,取消按钮各自的行为,点确认执行操作,点取消就放弃操作,不能出现点取消却提交数据的情况。
联动逻辑是另外一块,很多功能失效都出在这里。选择下拉框A的某个选项,下拉框B的选项跟着变化,切换A不同值,看B的选项是否同步更新。日期联动、地区联动,选省之后市跟着刷新,清空上级选项下级同步重置。联动逻辑一旦出错,用户填表单的时候会被误导,填错信息。
这只是我的个人感受,不是标准答案。不同项目的功能测试侧重点差异很大,小工具和复杂后台系统,覆盖范围完全不一样,不能直接照搬这套思路套在所有产品上面。
兼容性相关的功能校验也会顺带做,同一个操作,在不同浏览器里面,按钮点击、表单提交会不会出现行为不一致。有的浏览器下拉框选择之后不触发变更事件,换一个浏览器就正常,这属于功能在不同环境下的表现,也归到功能测试的范围里,和专门的兼容性测试边界有时候会混在一起。
数据的展示和回查也要看。提交的数据存入数据库之后,前端页面展示的内容和数据库里面存储的内容是否一致,有没有字符丢失,数字精度丢失。修改数据保存之后,刷新页面,展示内容要和修改后的内容保持一致。导出功能也是,导出文件里面的数据,要和页面列表数据对应,不能少行、错行。
还有一些隐藏场景,就是多次重复操作之后的状态。反复新增删除几十次,页面状态会不会错乱,缓存会不会干扰后续操作。比如删除一条记录之后,再新增同名记录,会不会拿错之前缓存的数据。这类问题不会每次都复现,需要反复操作才能偶现。
那天加班到很晚,把所有模块过一遍之后,又拉开发一起核对几个偶现的问题。本来以为测完主流程就差不多,后面才发现,大部分bug都藏在那些不常用的异常操作、联动逻辑里面。
关掉测试环境页面的时候,屏幕还停留在那条报错记录。没再继续往下写用例,只想喝口水歇一会。