第四周小组作业

---恢复内容开始---

github地址:https://github.com/yo123abxd/wordcount2.git

psp2.1表格:

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 360  180

· Estimate

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

 1440  2880

Development

开发

800  1440

· Analysis

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

 180  360

· Design Spec

· 生成设计文档

 60  30

· Design Review

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

 60 30 

· Coding Standard

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

120   150

· Design

· 具体设计

120   60

· Coding

· 具体编码

 720  720

· Code Review

· 代码复审

160   60

· Test

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

 180  120

Reporting

报告

 120  80

· Test Report

· 测试报告

 60  80

· Size Measurement

· 计算工作量

60   30

· Postmortem & Process Improvement Plan

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

 60 40 
 

合计

   

模块编写和测试

 

 

模块设计:

由于不区分大小写,所以把所有大写字母转换为小写字母,实现了swicther这个类。

因为要读取所以实现了input这个类。

识别单词后排序是count实现的。

到最后输出是由output实现的。

主要是通过sort函数来进行排序,主要的代码如下:

sort(sortedAns.begin(), sortedAns.end(), [] (const std::pair<std::string, int>& pa1, const std::pair<std::string, int>& pa2) {
return pa1.second > pa2.second || (pa1.second == pa2.second && pa1.first < pa2.first);
});

测试用例设计:

将一个文本的答案人工得到后不断将其本身字符粘贴在本身字符之后,然后得到大文件来测试效率

 

Test Case ID 测试用例编号 Test Item 测试项(即功能模块或函数) Test Case Title 测试用例标题 Test Criticality重要级别 Input 输入 Procedure 操作步骤 Output 预期结果 Result
实际结果
Status
是否通过
Remark备注
case1 Count::count test.cpp High aaa aaa ccc cc a s d a s _ - asd sa -asda -asd a-asd EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 大量数据测试
case2 Count::count test1.cpp High 123231aaa 12321321aaa 78798708ccc ****cc a s d a s _ - asd sa -asda -asd a-asd EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case3 Count::count test2.cpp High aaa aaa12387310 ccc31270372180 108208c a s d a s _ - asd sa -asda123 -asd1 a-asd EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case4 Count::count test3.cpp High aa123821973 aaa ccc cc a4567896567892130127 s d a s _ - asd sa -asda -asd a-asd EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case5 Count::count test4.cpp High aaa EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 单个单词多字符测试
case6 Count::count test5.cpp High b EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 单个单词耽搁字符测试
case7 Count::count test6.cpp High 123 456 789 EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 数字测试
case8 Count::count test7.cpp High      123 456 EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 前置空格数字测试
case9 Count::count test8.cpp High    a EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 前置空格单词测试
case10 Count::count test9.cpp High    a   a EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 前置空格多词测试
case11 Count::count test10.cpp High adhuao dauc asdhu cac ca ca c a cac c a c a c a ca  1231231dasds ***dasd*ds -ads9sada-asd-casd-231 EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case12 Count::count test11.cpp High adhuao dauc asdhu cac ca ca c a cac c a c a c a ca EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case13 Count::count test12.cpp High adhuao dauc asdhu cac ca ca c a cac c a c a c a ca EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case14 Count::count test13.cpp High asdcnas dasd 23123 as d as d asd ad d as d c as d EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case15 Count::count test14.cpp High vbasdijas das s d asd ad d as d c as d EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case16 Count::count test15.cpp High      asd ad as d ad  as d c as d EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 前置空格多词测试
case17 Count::count test16.cpp High     EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 空格测试
case18 Count::count test17.cpp High null EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 空字符测试
case19 Count::count test18.cpp High a EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试
case20 Count::count test19.cpp High a b c EXPECT_EQ(s, Count::count(vec)); TRUE TRUE YES 等价类测试

Count类测试:

测试了空字符串与开始为空格与结束为空格,还有全为空格等特殊情况。

使用了googletest来对Count类进行单元测试。(为test.cpp-test19.cpp)

扩展任务:

代码规范说明:

代码规范参考了google c++风格指南

同组代码评审:

都运行通过了,没有遇到问题。

静态代码扫描:

使用了cpplint来进行静态代码扫描。

 

小组贡献分0.25

posted @ 2018-04-07 14:06  Sssword  阅读(212)  评论(1编辑  收藏  举报