第4周小组作业:WordCount优化——C++实现

  • GitHub地址:https://github.com/decadeheart/WcPlus
  • PSP表格:

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 15  20

· Estimate

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

 15  20

Development

开发

60  60

· Analysis

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

 10  10

· Design Spec

· 生成设计文档

 5  5

· Design Review

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

 5  5

· Coding Standard

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

 5  5

· Design

· 具体设计

 5  5

· Coding

· 具体编码

 15  15

· Code Review

· 代码复审

 5  5

· Test

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

 10  10

Reporting

报告

 30  50

· Test Report

· 测试报告

 15  25

· Size Measurement

· 计算工作量

 10  15

· Postmortem & Process Improvement Plan

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

 5  10
 

合计

 105  130
  • 接口实现:getWordList()函数实现

  字符串str保存读取的单词,map word保存str中的单词及出现次数,使用map:;find方法确定单词是否在序列中,增加单词的出现次数。

  判断单词:从文件流中逐个读取字符,判断字符是否为字母:若是字母,则使用tolower函数将大小写统一改为小写,加入str末尾;若不是字母,则判断str是否为空,为空则跳过此字符,不为空则如果字符是'-'及下个字符为字母,将'-'加入str末尾,否则str中就保存了一个正确的单词。

  判断单词的要点:逐个读取字符时,要使用操纵符noskipws将文件流格式更改为不跳过空白符;读取完成后用skipws恢复默认设置,并关闭文件流。

  • 测试用例设计:

  测试用例从白盒测试的判定测试、路径测试,黑盒测试的边界值测试、等价类测试进行设计:

  判定测试:空文件,测试while循环读取字符到文件末尾的判定条件;无字母字符串,测试字符不是字母的if条件;字母字符串,测试字符是为字母的if条件;无字母字符串,测试str为空的if条件;字母字符串测试str不为空的if条件;字母+特殊字符字符串,测试字符不是'-'的if条件;字母+'-'+字母,测试字符是'-'及下个字符是字母的if条件;字母+'-'+特殊字符,测试字符是'-'及下个字符不是字母的if条件。

  路径测试:程序图第4周小组作业:WordCount优化——C++实现_第1张图片

 

  主路径:

  P1:A,B,C,F,G,测试用例字母+'-'+字母字符串;

  独立路径:

  P2:A,B,C,E,G,测试用例字母+特殊字符;

  P3:A,B,G,测试用例无字母字符串;

  P4:A,D,G,测试用例字母字符串。

  边界值测试:空文件,文件末尾边界测试;字母A、Z、a、z,字母判断边界条件;字母+'-'+字母,字母+'-'+特殊字符,横线判断边界条件。

  等价类测试:字母字符串,无字母字符串,字母+特殊字符字符串,特殊字符+字母字符串。

  第4周小组作业:WordCount优化——C++实现_第2张图片

 

  • 单元测试评价:

  第4周小组作业:WordCount优化——C++实现_第3张图片

  测试质量不完整;模块质。量效率很高

  • 小组贡献得分:

  小组贡献率0.28

 

你可能感兴趣的:(第4周小组作业:WordCount优化——C++实现)