第一次个人编程作业
代码链接
PSP表-预估
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) |
---|---|---|
Planning | 计划 | 60 |
Estimate | 估计这个任务需要多少时间 | 2130 |
Development | 开发 | 600 |
Analysis | 需求分析 (包括学习新技术) | 300 |
Design Spec | 生成设计文档 | 30 |
Design Review | 设计复审 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 |
Design | 具体设计 | 60 |
Coding | 具体编码 | 600 |
Code Review | 代码复审 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 120 |
Reporting | 报告 | 60 |
Test Report | 测试报告 | 60 |
Size Measurement | 计算工作量 | 60 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 |
合计 | 2130 |
设计与实现
流程图
性能改进
为了增加准确度 在第四级地址分词中使用了40000条左右的town数据进行匹配,缺点是降低了速度
单元测试
代码覆盖率报告:
Coverage report: 93%
Module | statements | missing | excluded | coverage |
---|---|---|---|---|
031702345.py | 149 | 11 | 0 | 93% |
PS:使用coverage统计代码覆盖率的步骤:
1.安装coverage包: pip install coverage
2.coverage run xxx.py
3.coverage html -d report
使用了大量的数据进行测试,数据量大仅展示部分:
我认为测试不能盲目提高代码覆盖率,而应该想办法设计更多的异常处理
因为按照输入格式要求,有一些输入不会出现在测试数据里,所以覆盖率较低
测试数据
1!马一江苏省泰州靖江市西来镇泥桥新村集13777775108居3区.
1!马二,北京18605763052市昌平区温泉花园A区9号楼.
1!马三,天津市西青区津涞公路与外环线12号桥交口金旺佳园13296124702.
1!马四,江苏省徐州市徐州经济技术开发区徐庄镇经济技13903126556术开发区吴集村邮局西隔壁华德堡.
1!马五,山西省临汾市侯马市新田乡地勘东巷宋郭村15717141000二区宋郭村村委会.2!象一,北京市东城区安定门街道琉璃寺13997517355胡同8号宝钞南社区服务站.
2!象二,四川省成都邛崃市火井镇状元路185号高场社区居委15182872302会.
2!象三,天津河东区唐家口街道成林道63号天津工业大学15755715952.
2!象四,青海海西蒙古族藏族自治州乌18958237812兰县茶卡镇交通街6-2号扎布寺村村委会.
2!象五,上海长宁区仙霞新村街道虹古路261号虹古小区4号楼13345422905.3!炮一,咸宁市陆水15728814476湖街道桂花树路2号泉门社区卫生站.
3!炮二,广东省珠海市斗门区同心路143号白蕉派出18794091546所.
3!炮三,河北省衡水市13287435790桃城区永兴西路122号赵家庄居民1区.
3!炮四,福建莆田市仙游县仙东13327922135村仙东小学.
3!炮五,固原市泾源县兴盛乡13043995904园兴路下金村卫生室.
附加测试
cpca测试可能有问题的输入数据如下:
1!米舍凛,18924734838吉林白山市浑江区三道沟镇085县道三道沟卫生院.
1!刘湖,吉林白山市浑18694520738江区六道江镇西村药店.
开源代码质量测试
异常处理
1.处理了空手机号、空姓名的异常
2.处理了输入的EOFERROR异常
3.处理了无难度情况的异常
PSP表-实际
PSP2.1 | Personal Software Process Stages | 实际耗时(分钟) |
---|---|---|
Planning | 计划 | 90 |
Estimate | 估计这个任务需要多少时间 | 3330 |
Development | 开发 | 600 |
Analysis | 需求分析 (包括学习新技术) | 300 |
Design Spec | 生成设计文档 | 60 |
Design Review | 设计复审 | 60 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 60 |
Design | 具体设计 | 120 |
Coding | 具体编码 | 1200 |
Code Review | 代码复审 | 120 |
Test | 测试(自我测试,修改代码,提交修改) | 240 |
Reporting | 报告 | 120 |
Test Report | 测试报告 | 120 |
Size Measurement | 计算工作量 | 120 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 120 |
合计 | 3330 |
总结
发布作业、改评测程序bug和回答问题忙到窒息,自己的程序都没怎么好好写,我想用大佬给的7级数据库肯定能评测取得更高的准确度。尤其是改评测程序bug遇到SB的微软控制台编解码问题差点被玩坏了,一度以为是打包程序有问题,chcp指令是假的,JB的控制台很nb默认UTF8没问题是真的nb。cpca虽然准确度不是特别高还是可以凑合用用,不过每级的地址匹配起来奇葩情况也真的多,不懂不用字典或者数据库的怎么搞高划分准确度,jieba这个分词也是很奇妙,总有奇奇妙妙的情况。