第四周个人作业:WordCount优化

一、GitHub地址  

  https://github.com/wzfhuster/software_test_tasks
二、PSP表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 20  20

· Estimate

· 估计这个任务需要多少时间

 20  20

Development

开发

 450  470

· Analysis

· 需求分析 (包括学习新技术)

 60  50

· Design Spec

· 生成设计文档

 40  30

· Design Review

· 设计复审 (和同事审核设计文档)

 60  40

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 40  30

· Design

· 具体设计

 40  40

· Coding

· 具体编码

 120  150

· Code Review

· 代码复审

 30  30

· Test

· 测试(自我测试,修改代码,提交修改)

 60  100

Reporting

报告

100  90

· Test Report

· 测试报告

 60  50

· Size Measurement

· 计算工作量

 20  10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 20  30
 

合计

 570  580

三、文件输出接口的实现

  输出功能是将count and sort模块产生的计数结果输出到指定文件或默认文件,实现代码如下:

 1 public void writeFile(String fileName)
 2     {
 3         try {
 4             FileWriter w = new FileWriter(fileName);
 5             int i=0;
 6             for(;i < sList.size();i++)
 7                 {
 8                     w.write(sList.get(i));
 9                     w.write("\r\n");
10                 }
11             w.close();
12         } catch (IOException e) {
13             System.out.println("呵呵,在写文件过程中出现了错误!!!");
14             e.printStackTrace();
15         }
16     }

  需求说明中对输出的要求:

  (1)输出单词词频从高到低排序的前100个(从1到100),每行分别给出一个单词及其词频,单词按小写形式给出,单词和词频之间空一格;

  (2)对于单词词频相同的情况,按照单词所包含的每个字母从a到z的次序依次排列;

  (3)输出文件末尾多余的换行符应去除。

  这些要求的实现均在main模块中得以实现。

四、测试用例设计

五、测试质量评价

  输出模块的测试较为简单,主要是因为这部分的要求比较少,用到的测试思想也不复杂,基本的边界值、等价类、判定等方法就可以解决绝大部分要求。

  另外,这部分的测试用例比较好覆盖,同时它的重复率也会比较高。

六、小组评价得分

  0.20分 

七、扩展任务

  (1)代码规范说明

    代码规范参考了参考了邹欣老师在讲义“现代软件工程讲义 3 代码规范与代码复审”中提到的规范其中对于类定义,变量名,注释等等部分的说明,同时也注重其中关于代码审查的部分。

  (2)静态代码扫描

       myEclipse开发环境的代码静态检查机制

  (3)同组代码评审

    我阅读了同组王志峰同学的代码,它的逻辑清晰,代码格式符合规范,文件分类和命名也让人一目了然,当然程序运行的也没有问题。

    但我感觉还是存在一些问题:

    他的注释不够详细,只在关键模块前加以说明注释,内部关键代码比如循环、条件判断,没有给出说明,不那么易懂。

八、小结

  这一次的作业比上一次的更体现了测试的作用,还记得在上一次作业中,我注重的还是怎么去实现这些功能,从而忽视了代码可能存在的bug,可能它们很隐蔽,所以在调试的时候没有被发现。

这一次作业中,我更注重测试用例的选取,再阅读一遍遍代码时,想想关键部分会不会出现bug,比如循环条件判断时的边界值问题等。这样一连串的搜索后,发现测试真的是很重要,像以前一样埋头写代码很可能出现一些未知的bug,从而不久后又需要回头重构代码,这样就会严重影响开发效率。

九、参考文献

  http://blog.csdn.net/tw19811220/article/details/41040937
       http://blog.csdn.net/etjnety/article/details/7842618
       http://www.cnblogs.com/math/p/se-tools-001.html

 

posted on 2018-04-08 19:59  疯疯锋  阅读(206)  评论(0)    收藏  举报

导航