静态自动化测试

发表于:2012-3-26 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wangheng    来源:TaoBao QA Team

分享:

  当MAP中不存在” bob”的key值时,name就会取到空指针。

  2、资源连接未关闭,比如文件,数据流,DB的连接操作完成后,

try {

                            fr = new FileReader(“D:/userSecondCheckRecoder.txt”);

                   } catch (FileNotFoundException e1) {

                            e1.printStackTrace();

                   }

  需要补充关闭IO语句,fr.close()

  3、性能处理技巧,减少内存无谓的耗损

String s = “”;

  for (int i = 0; i < field.length; ++i) {

    s = s + field[i];

  }

  以上代码功能上是通过的,但存在性能上不必要的耗损,在每次迭代中,字符串转换为stringbuffer/Builder,并转换回一个字符串。随着越来越多的字符串中的每一次迭代中,这会增加二次迭代的次数,使用StringBuffer效率更高。

  更改为以下方式更好:

StringBuffer buf = new StringBuffer();

  for (int i = 0; i < field.length; ++i) {

    buf.append(field[i]);

  }

  String s = buf.toString();

  4、规范:包含命名规范(类名,方法名,常量变量名),未被使用的变量或者方法,硬编码绝对路径等。比如

File file = new File(“D:/ CheckRecoder.txt”);

  5、非法的参数和计算

List<Long> a = new ArrayList<Long>();

       a.add(10L);

       a.add(11L);

       System.out.println(a.contains(10));

  应该修改为:

System.out.println(a.contains(10L));

  或者比如荒谬的计算:

code = code – code;

  从例子可以看出,代码检查比动态测试更有效率,能快速找到缺陷,发现30%~70%的逻辑设计和编码缺陷;静态测试具有发现缺陷早、降低返工成本、覆盖重点和发现缺陷的概率高的优点。自动化维护成本低,且测试较为提前,对缺陷预防很有帮助。

  四、主流静态测试工具介绍

  主流的JAVA代码静态自动化扫描工具:FINDBUGS介绍

  FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。FindBugs可以在ECLIPSE插件,构建工具(MAVEN,ANT),命令行等方式运行。FindBugs自带了丰富的故障探测器,且支持用户自定义规则探测器。运行FindBugs对代码扫描后根据故障类型结果如图:

  关于更多故障类型的解读和检测器的自定义方式,将在后面的博文中总结。

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号