当前位置:首页 > 经验总结 > 正文

自测代码覆盖率问题总结

作为一名web开发,尤其在偏向于前端的时候,其中一旦涉及到和用户的交互,都会有很多种不同的异常发生,
如何做到代码自测覆盖率全面,是我深深需要研究的问题;

不成熟的表现经常有:
(1)当某个bug出现的时候,只是专注于当前bug,修改了,没有理解该改动是否会对其他的问题造成影响?
产生这个问题的原因,很大情况是测试场景覆盖不全;
举个实际例子:
有文件夹文件列表

没文件夹文件列表

这个是用户上传一个文件夹出现的情况:有文件夹或者没有文件夹;有文件夹用户点击进入下一步的时候,是通过js生成的一个表格table的效果;如果没有文件夹,则是在服务器端直接通过页面渲染出来的table;
这样相当于是用户操作的一个列表有2个数据源;用户开发想将一些列表的数据写入到tr的时候,除了要修改js中的代码,势必也需要记得修改html模版中的代码;这样其实带来了很多不便;
实用方式包括:

(1)让数据源唯一,修改一处,其他地方都可以生效;不要同时兼顾JS客户端的服务器端模版;一不小心就容易遗漏忘记在模版中添加相应的属性导致bug(因为JS的逻辑是按照JS添加了某个相应属性后进行的操作,模版
没有添加,在如果只有文件夹出现的时候,不会出现bug,因为点击进入文件夹,列表数据是js渲染出来的;可是一旦是文件列表出现的方式,这样JS逻辑执行就出现了bug,比如数据为undefined等);
如何能保证自测情况覆盖度呢?
分析很多写了带有bug的JS代码后,很多原因是因为JS的数据源不唯一导致的;在js代码量一复杂,可能就需要按照模块进行细致的拆分,这样可以有效的防止各种耦合;

(2)在写代码前,先做好充分的分析和数据流转图;我记得我上个老大还专门要我在开发之前先画一些图,类似mindJet这样的软件分析下数据流和数据流转,这样可以方便进行思路分析;

(3)JS的一个很重要的特性是引用传递,当然也要仔细分析引用传递的概念;

下一篇介绍下js的按值传递和按引用传递;

暂无评论

发表评论