第4周小组作业:WordCount优化
github地址
https://github.com/fqd332/wcPro
PSP表格
PSP2.1 |
PSP阶段 |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
10 |
· Estimate |
· 估计这个任务需要多少时间 |
10 |
10 |
Development |
开发 |
30 |
60 |
· Analysis |
· 需求分析 (包括学习新技术) |
80 |
100 |
· Design Spec |
· 生成设计文档 |
60 |
60 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30 |
60 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
5 |
10 |
· Design |
· 具体设计 |
40 |
30 |
· Coding |
· 具体编码 |
240 |
120 |
· Code Review |
· 代码复审 |
10 |
15 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
200 |
200 |
Reporting |
报告 |
100 |
120 |
· Test Report |
· 测试报告 |
40 |
50 |
· Size Measurement |
· 计算工作量 |
10 |
20 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
30 |
|
合计 |
885 |
895 |
接口设计
根据实验前的调查与讨论,本次实验分为四个模块,分别为main,scan,sort,writetxt。其中main负责接受输入,scan用来统计单词的数量,sort用来排序,writetxt用来实现文本输出。我负责的模块为writetxt,根据讨论的结果,输入的接口为sort返回的两个string,其中一个是要输出的内容,另一个是输出的路径,无异常时无返回。
代码如下:
public static void writetxt(String res,String path) throws IOException { //输出到文本 File myFile=new File(path); BufferedWriter out = new BufferedWriter(new FileWriter(myFile)); out.write(res); out.close(); }
测试设计过程
测试用例的设计根据需求来设计,我负责的模块是根据输入的字符串,和路径,来产生输出,保存在目标路径下,更改不同的输入,来检测输出是否成功即可,采用黑盒测试:
Test Case ID 测试用例编号 |
Test Item 测试项 (功能模块或函数) |
Test Criticality 重要级别 |
Pre-condition 预置条件 |
Input 输入 |
Procedure 操作步骤 |
Output 预期结果 |
Result |
Status |
Remark 备注 (在此描述使用的测试方法) |
testData1 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData2 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData3 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData4 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData5 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData6 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData7 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData8 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData9 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData10 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData11 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData12 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData13 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData14 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData15 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData16 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData17 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData18 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData19 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
testData20 |
output |
M |
无 |
2个string |
无 |
true |
true |
Y |
黑盒测试 |
单元测试截图
????可能因为在提交的测试用例中,数据量均不够大。
开发规范说明
选择的是Google Java编程风格指南
中文版链接:https://blog.csdn.net/zen99t/article/details/50763231
静态代码检查工具
采用了多种工具,并比对发现各种工具的检测规则不尽相同。
有PMD,findbugs,checkstyle,所需插件均能在该站点找到:http://sourceforge.net/
工具扫描结果
PMD和Checkstyle扫描结果都均无错误
PMD:
Checkstyle:
小组代码分析
本次小组实验的代码基本还是比较符合规范的,就是接口的设计不够好,模块划分的不够严谨,导致部分模块的代码可读性不够高。
数据集的设计思路
给一个足够深的路径(无必要)和一个足够长的res即可带来压力(很难)。
性能指标
采用的性能指标为整个工程运行时间的长短。
数据加倍之后:
同行评审
该模块未参与评审(sort和scan参与了评审)
实践总结
保证软件质量,是一个贯穿整个软件生存周期的重要问题.在早期,由于忽视了质量管理,导致软件项目管理的严重问题,以至于在软件开发中出现软件危机.重视软件质量管理,规范软件质量管理体系,对整个软件项目管理起到非常重用的促进作用.
小组贡献
根据全员的讨论结果,我的小组贡献分为0.25
参考文献
http://www.cnblogs.com/FangStar/p/8735457.html
http://www.cnblogs.com/ningjing-zhiyuan/p/8654132.html
http://www.cnblogs.com/handsomesnail/p/8687172.html
https://wenku.baidu.com/view/87c4d56c7e21af45b307a88d.html