第四周小组作业
---恢复内容开始---
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