哈工大软件构造第二章总结

        软件构造的第二章-测试与测试优先的编程,介绍了软件测试的概念、设计测试用例的方法、测试的一些策略和一些测试用的工具。主要包括图中的内容:

                

(一)软件测试

        发现错误但不能证明无错误,包括静态测试(观察代码等)和动态测试(结合程序运行过程)。与调试(debug)相比,调试偏向于寻找错误根源并排除,而测试则是检查发现是否发生错误。

        软件测试也可分为黑盒测试和白盒测试,黑盒针对行为,而白盒针对代码结构。

(二)测试用例

测试用例由输入、执行条件、预期结果三部分组成,一个好的测试用例需要满足:最能查错、不重复不冗余、最有效、不简单也不复杂的条件。

(三)测试优先编程

        先写规约,再写测试用例,最后写出代码并进行测试与修改,这样的步骤符合测试优先编程。

 (四)单元测试

        隔离各模块,针对最小单元模型展开测试。

(五)JUnit

        JUnit是一个被广泛使用的java测试框架,能够根据被测试的类的结构自动生成测试用例。所生成的测试类的每个测试方法前都有@Test作为标识,一般测试方法用assertEquals来判断,第一个参数是期望结果,第二个则是实际结果。

(六)黑盒测试

        黑盒测试是把被测试者的具体实现全部忽略,只关注最基本的代码功能,根据规约来编写。

        (1)通过划分选择测试用例

        等价类划分:将被测方法的所有输入可能性按照一定规则划分为数个等价类,并依据等价类编写测试用例,比如输入奇数,则可以划分为:正奇数,负奇数,以及不符合要求的输入。对于部分特殊的输入,比如0,+-1,空串等,在有需要时可单独进行判断。

        (2)在划分中考虑边界

        许多错误发生在输入域的边界,边界值分析法可以作为等价类划分的补充。

        (3)覆盖划分的两个端点

        笛卡尔积覆盖:不同维度划分的多个取值要结合起来,每个组合一个用例,测试完备,代价高。

        覆盖每个取值:每个维度的每个取值至少被测试用例覆盖一次即可,代价低,覆盖度未必高。

(七)白盒测试

        根据代码的具体实现来编写测试用例。对程序的基本执行路径进行等价类划分,测试用例要使得每个基本路径至少被覆盖一次。

(八)测试覆盖度

        一般指测试用例对代码的覆盖度,而代码覆盖度又包括函数、语句、条件、分支和路径覆盖。效果上路径>分支>语句,而测试难度上也是如此。

(九)自动测试与回归测试

        JUnit框架可以帮助建立自动测试。回归测试则是指在进行程序的修改后,要将所有测试重新执行。

(十)测试策略

        测试策略要在程序中显式地记录出来,便于他人理解自己的测试用例,一般在程序中用"/*****/"来表示出来,其中记录着测试用例如何划分输入并进行覆盖,以及其他的一些补充说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值