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

目录

一、软件测试

二、测试用例

三、测试优先的编程

四、单元测试

五、使用JUnit进行单元测试

六、黑盒测试

七、白盒测试

八、代码覆盖度

九、自动化测试和回归测试

十、记录测试策略


一、软件测试

测试是提高软件质量的重要手段,但即使是最好的测试也无法达到100%的无错误。测试的目的就是达到用户需求。

残留缺陷率(每千行代码):

1-10个缺陷——典型的工业软件

0.1-1个缺陷——高质量

0.01-0.1个缺陷——最好的最安全的(例如NASA

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

测试等级:单元测试、集成测试、系统测试、回归测试

静态测试:能找出80%的bug,即通过看代码

动态测试解决剩下的问题,即通过运行debug

(测试时发现是否存在错误,调试是识别错误根源,消除错误)

白盒测试:对程序内部代码结构的测试

黑盒测试:对程序外部表现出来的行为的测试

二、测试用例

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

三、测试优先的编程

先写spec→再写符合spec的测试用例→写代码、执行测试、修改问题、再执行测试……

(spec描述功能函数的输入和输出等:parameters 、 return)

四、单元测试

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

五、使用JUnit进行单元测试

六、黑盒测试

黑盒测试:用于检查代码的功能,不关心内部实现细节

检查程序是否符合spec,用尽可能少的测试用例,尽快运行,并尽可能大的发现程序的错误

1.等价类划分选择测试用例

基于等价类划分的测试:将被测函数的输入域划分为等价类,从等价类中导入测试用例

针对每个数据需要满足的约束条件,划分等价类

2.边界分析

大量的错误发生在输入域的边界而非中央,边界值分析方法是对等价类划分方法的补充

七、白盒测试

白盒测试要考虑内部实现细节,根据程序执行路径设计测试用例(白盒测试一般较早进行

独立/基本路径测试:对程序所有执行路径进行等价类划分,找出有代表性的最简单路径,设计测试用例使每一条基本路径至少被覆盖一次

八、代码覆盖度

代码覆盖度:已有的测试用例有多大程序覆盖了被测程序

包括:函数覆盖、语句覆盖、分支覆盖、条件覆盖、路径覆盖etc.

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

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

九、自动化测试和回归测试

1.自动化测试:

手工测试的代价太高,最好达到完全的自动化

自动调用被测函数、自动判定测试结果、自动计算覆盖度

只是测试用例的自动执行,并非自动生成测试用例

2.回归测试:

一旦程序被修改,重新执行之前的所有测试,一旦发现bug,要马上写一个可重现该bug的测试用例,并将其加入测试库

十、记录测试策略

测试策略:根据什么来选择测试用例——非常重要,需要在程序中显式记录下来

目的:在代码评审过程中,其他人可以理解你的测试,并评判你的测试是否足够充分

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值