WordCount---结对编程
结对项目---WordCount
合作人员:201631021308 201631054301
码云地址:https://gitee.com/ZK154/pair_programming.git
本次作业链接:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187
一、互审代码
1.代码互审前
在代码互审前,我们彼此将自己的模块整理列出,每个功能互相对应,这样很容易判断出两种模块优越性。然后彼此进行测试,在确定无误后,开始互审代码。
2.复审过程中
在复审时,我们对互相代码的变量名提出了统一要求,互相分析代码的执行流程,检查是否存在冗余度过高、缺乏健壮性判断的过程,之后我们统一相互意见,制定成WordCount的代码规范,复审中我发现代码冗余度较高,我们一直决定重构主要模块,重构后代码的可读性的到大大提高。
3.复审结果
选择出各个模块的最优处加以汇总,编写出现在新的WordCount。
二、设计过程
1.确定编程语言及编程工具
由于都是用java编写的,所以都用eclipse编写程序
2.增加新模块个数
由于要添加三个功能:‘-s’‘-e’‘-a’,所以决定再添加三个模块 codeNum( )、referWord( )、circleNum ( );
3.新模块功能实现
(1)空行/代码行/注释行
(2)递归文件
(3)停用词表
4.功能实现情况
(1)-a功能
(2)-s功能
(3)-e
三、静态代码检查
本次使用的是findbugs用来检查代码,经过测试发现两个提示
经过检查发现有一个变量命名格式有误,其次对文件是否存在没有健壮性的判断,修改后提示去除
四、单元测试
项目使用的是junit3测试框架,junit3操作简单快捷。
1.测试代码
1 public class AddMethodTes extends TestCase { 2 //初始化 3 word wd; 4 String filename ="123.c"; 5 protected void setUp()throws Exception{ 6 System.out.println("测试前"); 7 wd = new word(); 8 super.setUp(); 9 } 10 public void testchar() throws IOException { 11 12 String ch = wd.characterNum(filename); 13 14 } 15 16 public void testword() throws IOException { 17 18 String ch = wd.wordNum(filename); 19 20 } 21 public void testline() throws IOException { 22 23 String ch = wd.lineNum(filename); 24 25 } 26 public void testcode() throws IOException { 27 28 String ch = wd.codeNum(filename); 29 30 } 31 public void testrefer() throws IOException { 32 String ch = wd.referWord(filename, "refer.txt"); 33 34 } 35 //结束 36 protected void tearDown()throws Exception{ 37 System.out.println("测试后"); 38 super.tearDown(); 39 } 40 }
2.测试结果
结果无误,通过单元测试
五、项目感悟
经过本次作业,初步掌握java的单元测试工具junit的使用,对静态检查工具findbugs也有了一些了解,可以说是收获多多,同过与队友的互审检查对软件项目的开发过程的认识也有了一个新的提高。功能实现很重要,但代码的规范也很重要。在编写过程中有不清楚的地方通过翻阅手册也都逐个弄懂。
在项目的开始我们的小组分工就很明确,队友查资料,我负责实现。两个人的力量终归比一个人大。在编程过程中,我发现我并没有像其他人一样有很多bug,经过我的总结是因为我的模块独立性很高,拿过来就可以用,真正实现高内聚低耦合,从这之中给了我很大启示,在今后的学习中也将依此进行。