软件质量与测试第4周小组作业:WordCount优化

GitHub项目地址


https://github.com/Guchencc/WordCounter

 

组长:

  陈佳文:负责词频统计模块与其他模块 

组员:

  屈佳烨:负责排序模块

  苑子尚:负责输出模块

  李一凡:负责输入模块  

PSP表格


 

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

   

· Estimate

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

20  20

Development

开发

   

· Analysis

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

 180  200

· Design Spec

· 生成设计文档

 30  30

· Design Review

 30  30

· Coding Standard

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

 30  20

· Design

· 具体设计

 120 130

· Coding

· 具体编码

 120 150

· Code Review

· 代码复审

 60  60

· Test

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

 60  60

Reporting

   

· Test Report

· 测试 告

 60  60

· Size Measurement

· 计算工作量

20  10

· Postmortem & Process Improvement Plan

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

 20  10
 

合计

 750  780

 

词频统计模块设计与实现


 

该模块由三个函数组成:

  ArrayList countFrequency(String filename)

  

  原理:

  Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式,轮到Matcher类登场了,Pattern.matcher(CharSequence input)返回一个Matcher对象. 

  find()对字符串进行匹配,匹配到的字符串可以在任何位置. group()返回匹配到的子字符串

  利用Pattern类创建定义单词的正则表达式,在本程序中即

  matcher.find()对字符串进行匹配,若匹配到符合正则表达式的单词则返回true进入循环。

  如果匹配的单词类型是“单词-”,则将单词中的“-”符 去掉。

  如果当前匹配到的单词,动态数组wordInfos中已经存在,则将该单词频数加一,否则将该单词加入动态数组。

 

  int hasWord(ArrayList wordInfos, String word)
  功能:接受动态数组wordInfos和字符串word,判断word是否存在于wordInfos中,若存在则返回其具体位置,否则返回-1。

  原理:遍历动态数组,寻找word,若存在则返回其index,否则返回-1。

 

  原理:逐行读取文件内容,不读取换行符和末尾的空格。将各行链接起来组成一个字符串。

 

测试用例的设计


保证设计的测试用例应至少覆盖函数中所有的可执行语句,同时主要针对、、、 的出现设计测试用例。

 

单元测试结果


 下图为单元测试截图,由图可知,该模块通过了所有测试用例,且时间很短,因此该模块测试质量还是很上乘的。

软件质量与测试第4周小组作业:WordCount优化 

小组贡献


 

经讨论组员评分情况如下:

组长:

  陈佳文  0.40

组员:

  屈佳烨:0.35

  苑子尚:0.15

  李仪凡:0.10

   

相关资源:CPUZ1.69.2汉化版(32/x64).rar-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年3月6日
下一篇 2018年3月6日

相关推荐