第四周小组作业-wordcountpro
Posted 罗子璇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周小组作业-wordcountpro相关的知识,希望对你有一定的参考价值。
一.小组Github 地址
https://github.com/ChenSilence/wcPro
二.PSP表格
PSP2.1 | PSP阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 60 |
Estimate | 估计任务需要多少时间 | 30 | 60 |
Development | 开发 | 180 | 240 |
Analysis | 需求分析 | 20 | 30 |
Design Spec | 生成设计文档 | 20 | 30 |
Design Review | 设计复审 | 20 | 30 |
Coding Standard | 代码规范 | 30 | 10 |
Design | 具体设计 | 30 | 50 |
Coding | 具体编码 | 30 | 40 |
Code Review | 代码复审 | 30 | 40 |
Test | 测试 | 50 | 10 |
Reporting | 报告 | 90 | 240 |
Test Report | 测试报告 | 30 | 120 |
Size Measurement | 计算工作量 | 20 | 60 |
Postmortem | 总结 | 20 | 80 |
合计 | 360 | 560 |
三.模块编写
本次小组作业我所负责的模块是输入控制,基本上与上一次作业的输入控制差不多,只是多了一个只能读txt文本文件的判断,因此我的就考虑了比较多的判断分支情况。我所编写的只有一个Begin类,功能即是分析main函数中的args数组参数,判断参数正确之后,将参数传给下一个模块,代码如下:
package javatest; import java.util.Scanner; import java.lang.String; public class Begin { public static void main(String[] args) { //解析args数组中的参数 int i=0; if (args.length == 0) { //提示未输入参数 System.out.println("请输入参数"); return; }else if (args.length==1){ String name =args[0]; //args数组中的最后一个参数为读取文件 boolean doo=args[0].contains("."); if(doo){ String[] mode=name.split("\\\\."); //将文件名在"."处分裂开并存入mod数组中,判断文件格式 if (mode[1].equals("txt")){ System.out.printf("everything is right!"); new CountNumber().count(name); }else{ System.out.printf("文件格式不对,请重新输入!"); } }else { System.out.printf("请输入正确文件名!"); } }else{ System.out.printf("请输入正确文件名"); } } }
四.测试模块设计
因为我的输入控制模块中只有一个main函数,不存在其他的方法,因此设计测试时,我改了一部分我的相应代码,为了能在Junit框架中使用assertEquals函数判断是否运行正确,改了之后的代码如下:
package word; import java.util.Scanner; import java.lang.String; public class Begin { static String[] str = new String [8]; public static void main(String[] args) { //解析args数组中的参数 int i=0; if (args.length == 0) { //提示未输入参数 //System.out.println("请输入参数"); str[i]=("请输入参数"); return; }else if (args.length==1){ String name =args[0]; //args数组中的最后一个参数为读取文件 boolean doo=args[0].contains("."); if(doo){ String[] mode=name.split("\\\\."); //将文件名在"."处分裂开并存入mod数组中,判断文件格式 if (mode[1].equals("txt")){ System.out.printf("everything is right!"); str[i]=("everything is right!"); //new CountNumber().count(name); }else{ //System.out.printf("文件格式不对,请重新输入!"); str[i]=("文件格式不对,请重新输入!"); } }else { //System.out.printf("请输入正确文件名!"); str[i]=("请输入正确文件名!"); } }else{ // System.out.printf("请输入正确文件名"); str[i]=("请输入正确文件名"); } } public static String[] getOutput() { return str; } }
根据黑盒白盒测试设计的测试表格如下:
Test Case ID 测试用例编号 | Test Item 测试项(即功能模块或函数) | Test Case Title 测试用例标题 | Test Criticality重要级别 | Pre-condition 预置条件 | Input 输入 | Procedure 操作步骤 | Output 预期结果 | Result 实际结果 |
Status 是否通过 |
Remark 备注(在此描述使用的测试方法) |
1 | 输入控制 | testread1 | Medium | 无 | text.txt | 运行Junit函数 | everything is right! | everything is right! | OK | 黑盒测试 |
2 | 输入控制 | testread2 | Medium | 无 | text.tt | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 白盒测试 |
3 | 输入控制 | testread3 | Medium | 无 | texttxt | 运行Junit函数 | 请输入正确文件名! | 请输入正确文件名! | OK | 白盒测试 |
4 | 输入控制 | testread4 | Medium | 无 | text.cpp | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
5 | 输入控制 | testread5 | Medium | 无 | test.txt text2.txt | 运行Junit函数 | 请输入正确文件名 | 请输入正确文件名 | OK | 白盒测试 |
6 | 输入控制 | testread6 | Medium | 无 | 空输入 | 运行Junit函数 | 请输入参数 | 请输入参数 | OK | 白盒测试 |
7 | 输入控制 | testread7 | Medium | 无 | abc.c.txt | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 白盒测试 |
8 | 输入控制 | testread8 | Medium | 无 | asdhaiudhiwahidwahiawuhdawiuhdw.txt | 运行Junit函数 | everything is right! | everything is right! | OK | 黑盒测试 |
9 | 输入控制 | testread9 | Medium | 无 | text.doc | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
10 | 输入控制 | testread10 | Medium | 无 | txt.txt | 运行Junit函数 | everything is right! | everything is right! | OK | 白盒测试 |
11 | 输入控制 | testread11 | Medium | 无 | ....c | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 白盒测试 |
12 | 输入控制 | testread12 | Medium | 无 | 空格符 | 运行Junit函数 | 请输入正确文件名! | 请输入正确文件名! | OK | 黑盒测试 |
13 | 输入控制 | testread13 | Medium | 无 | text.java | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
14 | 输入控制 | testread14 | Medium | 无 | text.sql | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
15 | 输入控制 | testread15 | Medium | 无 | text.word | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
16 | 输入控制 | testread16 | Medium | 无 | text.png | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
17 | 输入控制 | testread17 | Medium | 无 | text.py | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
18 | 输入控制 | testread18 | Medium | 无 | text.jpg | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
19 | 输入控制 | testread19 | Medium | 无 | text.gif | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
20 | 输入控制 | testread20 | Medium | 无 | text.exe | 运行Junit函数 | 文件格式不对,请重新输入! | 文件格式不对,请重新输入! | OK | 黑盒测试 |
相应的测试脚本运行结果如下:
五.扩展任务
1.交叉互评
我们小组所用开发规范参考了阿里巴巴的JAVA风格指南手册。我评审的是组员17001代码,他的代码符合缩进、断行风格整洁,命名简单明了,逻辑清晰易读,较好地遵守了设计规范。这里我就不在放出他的代码了,可在文首的小组github中查找。
2.静态测试
本次的静态测试是采用eclipse的checkstyle来进行扫描的,对我的代码扫描之后主要发现以下三个问题:
1)代码缩进问题较多
2)注释较少
3)“{”前差空格,“}”后差空格
在改进这些问题的过程中也慢慢提高了我对代码规范的理解程度,以后也能提高我的代码整洁度。参考链接:
https://blog.csdn.net/maritimesun/article/details/7668718
六.高级任务
在最后检测我的代码性能过程中,由于我的代码本身就不是特别复杂,因此优化过程中也没有较多地方可供优化,我减少了一部分多余的分支判断,也提高了一定的运行速度。改后的代码也可在小组github中查看。
七.小组贡献分
在本次作业中,我的工作量较少,因此小组贡献分评价为0.2。
以上是关于第四周小组作业-wordcountpro的主要内容,如果未能解决你的问题,请参考以下文章