Wordcount
一、开头:
(1)合作者:201631062509,201631062609
(2)代码地址:https://gitee.com/zhangyangjing/learngit/blob/master/wordcount.jar
(3)本次作业的链接地址:https://edu.cnblogs.com/campus/xnsy/Test/homework/2203
二、正文:
(1)互审代码情况
模块:
模块1:输入 -c 获得当前文件字符数
模块2:输入 -w 获得当前文件单词数
模块3: 输入 -l 获得当前文件行数
模块4:输入 -e 获得当前文件所有信息
模块5:输入 -s 遍历当前文件夹下所有文件的信息
模块6:输入 -x:end结束
完成情况:
1.基本功能(完成)
统计文件的字符数(实现)
统计文件的单词数(实现)
统计文件的行数(实现)
2.拓展功能(完成)
递归处理目录下符合类型的文件(实现)
显示代码行、空行和注释行的行数(实现)
3.高级功能(未完成)
发现的问题:自己还是实现了大部分的功能,但是因为是初学,所以在有些地方还是会出一些错,而搭档的代码相对我来说就感觉更加完善,也没有较大的错误,就只有一些比如变量命名过于随意等小问题,最后整合的时候相对进行了处理。
(2)静态代码检查情况
输入 -c 获得当前文件字符数
输入 -w 获得当前文件单词数
输入 -l 获得当前文件行数
输入 -e 获得当前文件所有信息
输入 -s 遍历当前文件夹下所有文件的信息
输入 -x:end结束
等价类:
有效等价类 |
(1)字符串(-c,-w,-l,-e )+文件路径 (2)字符串 -s + 文件夹路径 (3)字符串 -x + end |
无效等价类 |
(4)数字 (5)空格 (6)字符串 (7)其他字符串 + 文件路径 (8)文件路径 (9)文件夹路径 |
测试用例:
测试用例 |
覆盖等价类 |
运行结果 |
-c D:\测试\ wordCount.docx |
(1) |
有效 |
-w D:\测试\ wordCount.docx |
(1) |
有效 |
-l D:\测试\ wordCount.docx |
(1) |
有效 |
-e D:\测试\ wordCount.docx |
(1) |
有效 |
-s D:\WeChat |
(2) |
有效 |
-x end |
(3) |
有效 |
201631062509 |
(4) |
无效 |
(空格) |
(5) |
无效 |
Yg |
(6) |
无效 |
Yg D:\测试\ wordCount.docx |
(7) |
无效 |
D:\测试\ wordCount.docx |
(8) |
无效 |
D:\WeChat |
(9) |
无效 |
(3)单元测试情况
单元测试采用Junit5作为测试工具,首先在网上找到junit的包然后将其导入到项目中,建立各个模块的测试@text包
在进行单元测试时
发生下列情况
这个情况是因为我们测试的模块是含参数的,要进行Junit5参数化测试,
步骤如下
JUnit参数化测试的五个步骤:
1.为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized。
2.为测试类声明几个变量,分别用于存放期望值和测试所用数据。
3.为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
4.为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对。
5.编写测试方法,使用定义的变量作为参数进行测试。
(4)性能测试和优化
性能测试工具选择JProfiler。JProfiler很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程序。不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会提供几个选项,它可以记录内存的使用和CPU的使用率。在查看CPU使用率的同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们可以将IntelliJ插件安装到IDE上,那么运行JProfiler会更加便利。
三、实验心得
因为自己是初学JAVA,想尝试用JAVA写代码,刚好搭档也说JAVA比较简单实现。在一开始分开写代码的时候,自己会遇到一些问题,通过查阅资料那些方式算初步解决了问题。然后在代码互审的时候,就看了搭档的代码,比自己的要完善些,基本就只有一些变量命名比较随意简单这种错误,把代码整合后也出现了一些问题,但是在我们共同努力下解决了。单元测试我们选择了Junit5,但是在测试时出现了一些错误,最后发现是因为我们的测试模块是含参数的,需要进行Junit参数化测试。性能测试工具我们选择了JProfiler,还安装了IntelliJ插件,使得运行Jprofiler运行变得更加便利。