一、项目GitHub地址
二、项目PSP表格
PSP2.1表格
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
||
· Estimate |
· 估计这个任务需要多少时间 |
425 | 400 |
Development |
开发 |
||
· Analysis |
· 需求分析 (包括学习新技术) |
30 | 30 |
· Design Spec |
· 生成设计文档 |
60 | 45 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30 | 20 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
30 | 30 |
· Design |
· 具体设计 |
30 | 30 |
· Coding |
· 具体编码 |
45 | 30 |
· Code Review |
· 代码复审 |
30 | 30 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 | 75 |
Reporting |
报告 |
||
· Test Report |
· 测试报告 |
60 | 45 |
· Size Measurement |
· 计算工作量 |
20 | 20 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 | 30 |
合计 |
425 | 400 |
三、个人接口及其实现
我主要负责将排序后的单词和词频输出到文件。代码实现:
public class Output { public static void output(ArrayList> list, File outputFile) throws IOException{ if(outputFile==null){ outputFile=new File("result.txt"); } //FileWriter fW=new FileWriter(outputFile,true); FileWriter fW=new FileWriter(outputFile); BufferedWriter bw=new BufferedWriter(fW); bw.close(); } }
测试用例设计:
Test Case ID测试用例编号 |
Test Item 测试项(即功能模块或函数) |
Test Case Title 测试用例标题 |
Test Criticality重要级别 |
Pre-condition预置条件 |
Input 输入 |
Procedure 操作步骤 |
Output预期结果 |
Result实际结果 |
Status是否通过 |
Remark备注(在此描述使用的测试方法) |
1-5 |
输出控制模块 |
单词种类<=5,词频<=10 |
H |
无 |
wcPro.exe |
无 |
参数数量错误 |
参数数量错误 |
是 |
黑盒测试 |
6-10 |
输出控制模块 |
单词种类<=5,词频不定 |
H |
无 |
wcPro.exe -a test.txt |
无 |
参数数量错误 |
参数数量错误 |
是 |
黑盒测试 |
11-15 |
输出控制模块 |
单词种类>=6,词频<=10 |
H |
无 |
wcPro.exe -a |
无 |
参数数量错误 |
参数数量错误 |
是 |
黑盒测试 |
16-20 |
输出控制模块 |
单词种类>=6,词频不定 |
H |
无 |
wcPro.exe test.c |
无 |
输入格式错误 |
输入格式错误 |
是 |
黑盒测试 |
代码实现:
package wcProTest;
import static org.junit.Assert.*;
import java.util.ArrayList;
import org.junit.Test;
import wcPro.*;
public class HDTest {
//测试用例设计:
//print_01-05
//单词种类<=5,词频<=10
//print_06-10
//单词种类<=5,词频不定
//print_11-15
//单词种类>=6,词频<=10
//print_16-20
//单词种类>=6,词频不定
//单词种类<=5,词频<=10
@Test
public void print_01() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "five 5\r\n" + "four 4\r\n" + "one 1\r\n";
arr.add("five");
arr.add("5");
arr.add("four");
arr.add("4");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_02() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "five 5\r\n" + "four 4\r\n" + "three 3\r\n"
+ "one 1\r\n";
arr.add("five");
arr.add("5");
arr.add("four");
arr.add("4");
arr.add("three");
arr.add("3");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_03() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "five 5\r\n" + "four 4\r\n" + "two 2\r\n";
arr.add("five");
arr.add("5");
arr.add("four");
arr.add("4");
arr.add("two");
arr.add("2");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_04() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "five 5\r\n" + "four 4\r\n" + "two 2\r\n"
+ "one 1\r\n";
arr.add("five");
arr.add("5");
arr.add("four");
arr.add("4");
arr.add("two");
arr.add("2");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_05() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "ten 10\r\n" + "nine 9\r\n" + "eight 8\r\n"
+ "five 5\r\n" + "one 1\r\n";
arr.add("ten");
arr.add("10");
arr.add("nine");
arr.add("9");
arr.add("eight");
arr.add("8");
arr.add("five");
arr.add("5");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
//单词种类<=5,词频不定
@Test
public void print_06() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "thirty-two 32\r\n" + "thirty-one 31\r\n"
+ "seventeen 17\r\n"+"five 5\r\n";
arr.add("thirty-two");
arr.add("32");
arr.add("thirty-one");
arr.add("31");
arr.add("seventeen");
arr.add("17");
arr.add("five");
arr.add("5");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_07() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "forty-eight 48\r\n" + "forty-one 41\r\n"
+ "thirty-eight 38\r\n"+"eleven 11\r\n";
arr.add("forty-eight");
arr.add("48");
arr.add("forty-one");
arr.add("41");
arr.add("thirty-eight");
arr.add("38");
arr.add("eleven");
arr.add("11");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_08() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "thirty-four 34\r\n" + "twenty-three 23\r\n"
+ "fourteen 14\r\n"+"nine 9\r\n";
arr.add("thirty-four");
arr.add("34");
arr.add("twenty-three");
arr.add("23");
arr.add("fourteen");
arr.add("14");
arr.add("nine");
arr.add("9");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_09() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "forty-nine 49\r\n" + "forty-two 42\r\n"
+ "sixteen 16\r\n"+"eleven 11\r\n";
arr.add("forty-nine");
arr.add("49");
arr.add("forty-two");
arr.add("42");
arr.add("sixteen");
arr.add("16");
arr.add("eleven");
arr.add("11");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_10() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "thirty 30\r\n" + "twenty-eight 28\r\n"
+ "sixteen 16\r\n"+"seven 7\r\n";
arr.add("thirty");
arr.add("30");
arr.add("twenty-eight");
arr.add("28");
arr.add("sixteen");
arr.add("16");
arr.add("seven");
arr.add("7");
assertEquals(str_exp, ex1.print(arr));
}
//单词种类>=6,词频<=10
@Test
public void print_11() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "nine 9\r\n" + "six 6\r\n" + "five 5\r\n"
+"three 3\r\n" + "two 2\r\n" + "one 1\r\n";
arr.add("nine");
arr.add("9");
arr.add("six");
arr.add("6");
arr.add("five");
arr.add("5");
arr.add("three");
arr.add("3");
arr.add("two");
arr.add("2");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_12() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "ten 10\r\n" + "eight 8\r\n" + "seven 7\r\n"
+"six 6\r\n" + "three 3\r\n" + "two 2\r\n";
arr.add("ten");
arr.add("10");
arr.add("eight");
arr.add("8");
arr.add("seven");
arr.add("7");
arr.add("six");
arr.add("6");
arr.add("three");
arr.add("3");
arr.add("two");
arr.add("2");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_13() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "ten 10\r\n" + "eight 8\r\n" + "seven 7\r\n"
+"six 6\r\n" + "five 5\r\n" + "two 2\r\n";
arr.add("ten");
arr.add("10");
arr.add("eight");
arr.add("8");
arr.add("seven");
arr.add("7");
arr.add("six");
arr.add("6");
arr.add("five");
arr.add("5");
arr.add("two");
arr.add("2");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_14() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "eight 8\r\n" + "seven 7\r\n"+"six 6\r\n"
+ "five 5\r\n" + "four 4\r\n" + "three 3\r\n";
arr.add("eight");
arr.add("8");
arr.add("seven");
arr.add("7");
arr.add("six");
arr.add("6");
arr.add("five");
arr.add("5");
arr.add("four");
arr.add("4");
arr.add("three");
arr.add("3");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_15() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "nine 9\r\n" + "eight 8\r\n" + "six 6\r\n"
+"five 5\r\n" + "four 4\r\n" + "one 1\r\n";
arr.add("nine");
arr.add("9");
arr.add("eight");
arr.add("8");
arr.add("six");
arr.add("6");
arr.add("five");
arr.add("5");
arr.add("four");
arr.add("4");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
//单词种类>=6,词频不定
@Test
public void print_16() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "fourteen 14\r\n" + "twelve 12\r\n" + "ten 10\r\n"
+ "eight 8\r\n" + "seven 7\r\n" + "five 5\r\n" + "three 3\r\n"
+ "one 1\r\n";
arr.add("fourteen");
arr.add("14");
arr.add("twelve");
arr.add("12");
arr.add("ten");
arr.add("10");
arr.add("eight");
arr.add("8");
arr.add("seven");
arr.add("7");
arr.add("five");
arr.add("5");
arr.add("three");
arr.add("3");
arr.add("one");
arr.add("1");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_17() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "seven-eight 78\r\n" + "sixty 60\r\n"
+ "fifty-four 54\r\n" + "fifty 50\r\n" + "forty-five 45\r\n"
+ "thirty-nine 39\r\n" + "thirty-three 33\r\n"
+ "twenty-five 25\r\n" + "seventeen 17\r\n" + "nine 9\r\n";
arr.add("seven-eight");
arr.add("78");
arr.add("sixty");
arr.add("60");
arr.add("fifty-four");
arr.add("54");
arr.add("fifty");
arr.add("50");
arr.add("forty-five");
arr.add("45");
arr.add("thirty-nine");
arr.add("39");
arr.add("thirty-three");
arr.add("33");
arr.add("twenty-five");
arr.add("25");
arr.add("seventeen");
arr.add("17");
arr.add("nine");
arr.add("9");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_18() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "seven-eight 78\r\n" + "sixty 60\r\n" + "fifty 50\r\n"
+ "thirty-nine 39\r\n" + "thirty-three 33\r\n" + "nine 9\r\n";
arr.add("seven-eight");
arr.add("78");
arr.add("sixty");
arr.add("60");
arr.add("fifty");
arr.add("50");
arr.add("thirty-nine");
arr.add("39");
arr.add("thirty-three");
arr.add("33");
arr.add("nine");
arr.add("9");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_19() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "seven-eight 78\r\n" + "sixty 60\r\n"
+ "fifty-four 54\r\n" + "fifty 50\r\n" + "forty-five 45\r\n"
+ "thirty-nine 39\r\n" + "thirty-three 33\r\n"
+ "twenty-five 25\r\n" + "seventeen 17\r\n" + "nine 9\r\n";
arr.add("seven-eight");
arr.add("78");
arr.add("sixty");
arr.add("60");
arr.add("fifty-four");
arr.add("54");
arr.add("fifty");
arr.add("50");
arr.add("forty-five");
arr.add("45");
arr.add("thirty-nine");
arr.add("39");
arr.add("thirty-three");
arr.add("33");
arr.add("twenty-five");
arr.add("25");
arr.add("seventeen");
arr.add("17");
arr.add("nine");
arr.add("9");
assertEquals(str_exp, ex1.print(arr));
}
@Test
public void print_20() {
wcPro ex1 = new wcPro();
ArrayList
String str_exp = "seven-eight 78\r\n" + "sixty 60\r\n" + "fifty 50\r\n"
+ "thirty-nine 39\r\n" + "thirty-three 33\r\n" + "nine 9\r\n";
arr.add("seven-eight");
arr.add("78");
arr.add("sixty");
arr.add("60");
arr.add("fifty");
arr.add("50");
arr.add("thirty-nine");
arr.add("39");
arr.add("thirty-three");
arr.add("33");
arr.add("nine");
arr.add("9");
assertEquals(str_exp, ex1.print(arr));
}
}