https://github.com/JarrySmith/WordCountPro
在包project中创建输入类InputProcess,其包含方法processInput(),该方法会抛出异常IOException和IllegalArgumentException,该方法输入参数为一个String[]类型字符串数组,返回值为一个String类型字符串。
根据接口定义搭建框架如下:
package project; public class InputProcess{ public String processInput (String[] args) throws IOException,IllegalArgumentException{ String filePath=null; //一系列判断args是否符合规范的条件判断语句 ......; return filePath; } }processInput方法仅判断输入参数是否合法,判断传入的文件是否包含非法字符。
通过if语句判断字符串数组args的个数是否为一,args[0]内是否存放合法的文件名,而后按字符读取文件内容,通过对每个字符的ASCII码进行处理来判断文件内的字符是否都是合法字符。
若args不符合规定,或文件内包含非法字符,则抛出异常:
...... throw new IllegalArguementException("参数个数只能为1"); ...... throw new IllegalArgumentException("待处理文件不是txt类型"); ...... throw new IllegalArgumentException("待处理文件内包含非法字符"); ......本项目使用集成开发环境IntelliJ IDEA进行开发,使用junit4测试框架进行测试
根据白盒测试的思想,尽量实现条件覆盖和语句覆盖,设计了编号为1、4、13、15的测试用例,根据黑盒测试的思想设计了其余的测试用例。
因为被测试的模块较为简单,在对测试效率上可以不做特别要求。 测试用例详见GitHub内的测试脚本和测试用例EXCEL表格。
运行测试用例的结果如图所示:
被测模块的质量较高,由测试结果可知测试效率较高,但没有检测所有非法字符输入情况,因此测试质量一般。
项目开发语言是Java,选定《阿里巴巴Java开发手册》作为开发规范。
评审同组成员徐江南的代码,除了发现一处变量命名不符合lowerCamelCase命名风格外,没有发现其它不符合规范的地方。
使用的扫描工具是“Alibaba Java Coding Guidelines”。 该工具是一个idea插件,其GitHub项目地址:https://github.com/alibaba/p3c/tree/master/idea-plugin 工具的下载地址:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
使用扫描工具扫描个人全部代码后运行结果如图所示:
依据扫描结果改进代码后再次运行单元测试,发现结果没有明显区别,可能是模块简单所致,但修改后的代码的可读性的确大为提高。
使用扫描工具进行代码检测后发现小组代码存在多处不规范。这些不规范的地方虽然暂时不妨碍项目的正确运行,但它阻碍了其他开发人员阅读代码,让项目的维护变难了。修改过后的代码更符合规范,也更容易找出代码中隐藏的bug。
考虑到"WcPro.exe"的功能是统计词频,因此用一个12MB的txt文本作为输入,进行测试。
由全体组员参与,组员徐江南主持,所有人一同评审小组的全部代码,经过讨论,一致认定在循环内定义变量会增加额外开销。另外,在读取txt内容时只会读取合法字符,对非法字符判断反而会影响效率。
将代码循环内定义的变量外提,删去对非法字符判断等工作后,程序效率大约提升了20%,与同行评审的结论一致。
在软件开发之中,只有自始至终贯彻软件测试,才有可能在项目临近结尾时得到一个过得去的项目成果。
经讨论,小组贡献分为0.22
转载于:https://www.cnblogs.com/zhiwei97/p/8733872.html
相关资源:微信小程序源码-合集4.rar