03 软件构造中的五个质量指标 总结

可读性易读性 面向复用的编程 低复杂度可维护 正确性健壮性 功能性

 

03 软件测试和测试优先的编程

框架

 

认可测试的价值

学会用等价类划分和边界值分析的方法为模块设计测试用例

覆盖度测试

测试的了解

知识点

 

什么是软件测试

提高软件质量的手段

发现bug

关注是否达到质量特性

不可能100%没有问题:残留缺陷率

常见的几个软件的缺陷率举例:

 

测试的特点

破坏、证明错误

再好的测试也不能证明系统中不存在错误

 

好的测试:发现错误、不冗余、最佳特性、不复杂也不太简单

分类

单元测试:最小单元的测试

集成测试:接口

系统测试:配置好后看达没达到质量目标

验收测试:用户来测试

回归测试:修复质量问题后看看修改部分是否出现新的错误

其他的测试方法:

 

动态测试和静态测试

静态测试:未编译时自动查找代码风格

动态测试:运行结果和现象等判断是否ok

黑盒测试和白盒测试

是否能看到代码

为什么测试很难

穷举+暴力=不可能

偶然测试没有意义

不同于实体产品,样品质量抽测没有意义

离散空间输入存在差异

没有统计规律可循

例子

奔腾芯片

阿丽亚娜火箭的解体

启示

让自己的代码尽快的出错

测试用例的设计

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

为特定目标设计

测试用例也是项目的资产

好的测试用例:发现错误、不冗余、最佳特性、不复杂也不太简单

相关研究

spec自动生成测试用例

测试用例最小化

回归测试的最小用例集

测试优先的编程

让程序先出错

先写spec=》代码=》测试直到通过

规约的构成

方法签名和注释(对输入和输出的规定)

好处

更好理解规约、尽早出错

前置条件和后置条件

单元测试

隔离各个模块,方便定位和测试

接口,测试输入输出

数据的一致性

语句是否完全被执行

异常处理

最好先写测试但是没有明确的规定

设计信息为测试用例的设计提供指导

驱动模块和桩模块

内容不完整的时候对上游和下游的模拟

Junit

Java的测试框架

在测试方法前面标注@test

参数顺序:期望结果写在前面,方法写在后面

测试方法之间互不影响

###

####

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值