软件测试第三次作业

合作者:201631054322,201631063127

代码地址:https://gitee.com/qlqaq/test

作业链接地址:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187

编码规范

参考了很多大型公司给的代码规范过后,和伙伴多次的线上线下讨论后最终达成了一致意见,决定采用阿里巴巴公司 java 规范作为自己的规范,阿里巴巴的Java规范很好,解释也很详细,所以就不再对其规范进行任何的更改

阿里巴巴公司 java 规范的官方网站https://github.com/alibaba/p3c

扩展功能

本次博客主要是对上次功能的补充和完善,此次代码实现了WordCount的扩展功能有以下几点:

wc.exe -s            //递归处理目录下符合条件的文件

wc.exe -a file.c     //返回更复杂的数据(代码行 / 空行 / 注释行)

wc.exe -e stopList.txt  // 停用词表,统计文件单词总数时,不统计该表中的单词

[file_name]: 文件或目录名,可以处理一般通配符。

其中,

代码行:本行包括多于一个字符的代码。

空   行:本行全部是空格或格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“{”。

注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释。

 代码互审

在和同学的合作过程中,发现了很多的问题,比如说命名不规范,代码不简洁,无注释等诸多情况。

1变量命名不规范

定义的名称不能很好的诠释变量的用途

2函数名命名不规范

函数的命名未采用驼峰的格式

 

暂时只发现了以上的代码命名不规范情况……

静态代码检查

静态代码审查工具:PMD

检查结果如下:

出现了一个错误,诸多警告

 

 错误的原因:正则表达式书写有问题,应该将“//”改为"\\"

修改过后再次进行静态代码检查,结果如下:

静态代码检查无任何错误

 单元测试

1.代码功能测试

由于用的是Java开发,所以用的单元测试工具为:Junit

Junit单元测试工具使用很简单,在想要测试的功能模块上加上@Test,然后再导入依赖即可进行测试

好处:避免了程序员因测试功能模块而去写繁杂的测试代码

经过测试,发现了一些功能的编码错误和逻辑错误,经过修改、完善后,顺利的通过了单元测试

2.黑盒测试

目录结构

/testfile.c下的文件

file.c,file1.c,file2.c的内容分别为

 

wc.exe -s  -a  *.c           //递归处理目录下符合条件的文件

 

wc.exe -e stopList.txt  // 停用词表,统计文件单词总数时,不统计该表中的单词

统计指定目录下的文件代码行/空行/注释行

 性能优化

 性能优化工具:JProfiler

简介:JProfiler是一个全功能的 Java 剖析工具( profiler ),专用于分析 J2SE 和 J2EE 应用程序。它把CPU 、执行绪和内存的剖析组合在一个强大的 应用中。 JProfiler 可提供许多 IDE 整合和应用服务器整合用途。 JProfiler直觉式的 GUI 让你可以找到效能瓶颈、抓出内存漏失 (memory leaks) 、并解决执行绪的问题。它让你得以对 heap walker作资源回收器的 root analysis ,可以轻易找出内存溢出; heap 快照( snapshot )模式让未被参照( reference )的对象、稍微被参照的对象、或在终结( finalization )队列的对象 都会被移除;整合精灵以便剖析浏览器的 Java 外挂功能。

在本次实践的过程中,主要使用到了JProfiler的堆遍历器(Heap walker)、类Classes(显示所有类和实例),由于代码量比较小,目录结构的单一性,所以测试结果很理想,性能很好!运行程序的反应时长很短!

总结

通过此次作业的实践,学会了如何借助测试工具进行代码检查,在日常生活中难免会存在自己找不到自己代码错误的情况,但是借助工具我们可以很好的找到自己代码的不足;借助工具可以为我们省下很多的时间,提高了代码的可读性、健壮性,让我们有更多的时间花费在编码上而不是在测试及性能分析上!

posted @ 2018-10-19 20:39  QAQqiulin  阅读(169)  评论(0编辑  收藏  举报