一:GitHub地址

 

https://github.com/CoolWC/wcPro

 

二:PSP表格

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

合计

490530

三:接口的实现

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

四:测试用例设计

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

白盒测试:

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

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

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

黑盒测试:

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

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

设计测试用例:

等价类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);
    }

截图 :

 

 

转载于:https://www.cnblogs.com/syysumuro/p/8748935.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐