一:GitHub地址

 

https://github.com/CoolWC/wcPro

 

二:PSP表格

PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 10
Estimate 估计这个任务需要多少时间 5 5
Development 开发 60 70
Analysis 需求分析(包括学习新技术) 100 100
Design Spec 生成设计文档 10 15
Coding Standard 代码规范(为目前的开发制定合适的规范) 20 15
Design 具体计划 20 20
Coding 具体编码 60 60
Coding Review 代码复审 20 20
Test 测试(自我测试,修改代码,提交修改) 80 100
Reporting 报告 20 20
Test Report 测试报告 60 60
Size Measurement 计算工作量 5 5
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 20 30
 

合计

490 530

三:接口的实现

本次小组作业我负责输入模块,解析用户的输入进行正确性判断,并返回一个file给功能模块。

四:测试用例设计

处理输入模块的方法集中在一个函数中,因此只需要对inputHandler(String[] args)方法进行测试用例的设计

白盒测试:

程序的整体结构如下图所示:

该函数有五个出口,五种可能的情况,因此设计五种测试用例即可:

测试用例设计(参数输入) 预期函数输出 函数实际输出
请输入参数!(错误) 请输入参数!
test1.txt test2.txt 输入参数过多!(错误) 输入参数过多!
test.c 输入文件格式不正确!(错误) 输入文件格式不正确!
test1.txt(文件不存在) 文件不存在(错误) 文件不存在!
test2.txt(文件存在) 返回inputName 返回inputName

黑盒测试:

需求中要求只处理单个txt文件,因此可以划分为五个等价类

等价类 具体情况
等价类1 没有输入
等价类2 输入多于一个参数
等价类3 输入文件格式错误
等价类4 txt文件不存在
等价类5 txt文件存在

设计测试用例:

等价类1:{}

等价类2:{"text1.txt","text2.txt"}

等价类3:{"text.c"}

等价类4:{"noFile.txt"}

等价类5:   {"rightFile.txt"}

五:单元测试

单元测试:

使用参数化的方法构建测试脚本。

函数Collection()用于构造输入的测试用例集,以参数的形式传递到测试用例中。

@Rule用于声明ExpectedException异常,用来在测试的时候指定预期抛出的异常的类型和相应异常信息。

public class InputTest extends TestCase{
    //文件名
    private String[] fnameParam;
    //异常信息
    private String errorMesg;
    public InputTest(String[] fnameParam,String errorMesg){
        this.fnameParam=fnameParam;
        this.errorMesg=errorMesg;
    }
    @Parameterized.Parameters
    public static Collection data(){
        return Arrays.asList(new Object[][]{
                {new String[]{"noFile.txt"},"文件不存在!"},
                {new String[]{},"请输入参数!"},
                {new String[]{"text1.txt","text2.txt"},"输入参数过多!"},
                {new String[]{"text.c"},"输入文件格式不正确!"}
        });
    }
    //声明ExpectedException异常,方便测试的时候指定异常的类型和相应异常信息
    @Rule
    public ExpectedException thrown= ExpectedException.none();
    /**
     *
     * Method: inputHandler(String[] args)
     *
     */
    @Test
    public void testInputHandler() throws Exception {
        Method method=new Method();
        //对于抛出异常的测试
        thrown.expect(Exception.class);
        thrown.expectMessage(errorMesg);
        method.inputHandler(fnameParam);
    }

截图 :

 

 

posted on 2018-04-08 23:36  sumuro  阅读(187)  评论(7)    收藏  举报