软件构造第二章总结

2 Testing and Test-First Programming

软件测试与测试优先的编程
 

一.测试(Test)

1.1 什么是测试

提高软件质量的重要手段
发现bugs, 确认是否达到可用级别
关注系统的某一侧面的质量特性
注意:即使是最好的测试,也无法达到100%的无错误;再好的测试也无法证明系统里不存在错误

1.2 测试的级别

单元测试、集成测试、系统测试、回归测试(一旦程序被修改,重新执行之前的所有测试)

静态测试:眼睛看   动态测试:实际运行程序

黑盒测试、白盒测试

二.测试用例

测试用例 = 输入 + 执行条件 + 期望结果

好的测试用例:

三.测试优先编程

3.1 流程

3.2 好处

四. 单元测试

针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试

驱动模块和桩模块:

Junit:a widely-adopted unit testing framework for Java.

五. 黑盒测试

用于检查代码的功能,不关心内部实现细节

等价类划分:导出测试用例的手段

例:乘法计算 BigInteger × BigInteger -> BigInteger 函数,可从正/负角度进行等价类划分,同时考虑边界条件—— 0,1,-1,很小的正整数,很小的负整数,很大的正整数,很大的负整数

BVA(Boundary Value Analysis)边界值分析:是对等价类划分方法的补充

在等价类划分时,将边界作为等价类之一加入考虑

对等价类的覆盖方式:

六. 白盒测试

白盒测试要考虑内部实现细节
独立/基本路径测试:对程序所有执行路径进行等价类划分,找出有代表性的最简单的路径(例如循环只需执行1次),设计测试用例使每一条基本路径被至少覆盖1次。

代码覆盖度

函数覆盖、语句覆盖、分支覆盖、条件覆盖、路径覆盖

分支覆盖和条件覆盖:分支覆盖 a && b – true/false 条件覆盖:a True a False b True b False

语句覆盖:只需要让 a && b 语句执行一遍即可

条件覆盖和分支覆盖之间没有包含关系

测试效果:路径覆盖 > 分支覆盖 > 语句覆盖

测试难度:路径覆盖 > 分支覆盖 > 语句覆盖

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值