HIT软件构造 软件测试 测试优先的编程

测试基本概念

测试等级

单元测试
集成测试
系统测试
验收测试
各部分测试内容见下图
在这里插入图片描述

Static vs. Dynamic testing

静态测试:用眼睛看,评审、走查、检查等
动态测试:使用测试用例集进行测试

测试套件

每个测试集的目标和说明
测试运行的配置说明
使用这些测试的前置条件

单元测试(unit test)

含义:针对软件的 最小单元模型开展测试,隔离各个模块,容易定位错误和调试
单元测试需要考虑的问题:模块接口、本地数据结构 、保证模块中的所有语句都被测试覆盖到、测试边界条件

junit使用

使用入门,点这里

覆盖度分析

含义

字面意思

测试内容

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

测试效果和难度

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

代码覆盖度测试工具

EclEmma,点这里

黑盒测试 vs. 白盒测试

白盒测试

定义

对程序内部代码结构的测试
根据程序的执行路径进行设计测试
白盒测试一般比较早进行

构造测试用例的方法

确保模块中所有独立路径至少被执行过一次
关于结果进行逻辑判断
在大多数情况下,循环执行少数此就可以了
在边界条件下,一定要执行所有的循环
测试内部数据结构

黑盒测试

定义

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

测试目的

不正确的或者是遗失的功能
接口错误
数据结构或者是外部数据库访问的错误
行为或者性能错误
初始化或者终止错误

构造测试用例的标准

测试用例来自于外部的对软件的描述
佣金坑鞥少的测试用例,尽快运行,并尽可能大的发现程序的错误

构造测试用例的方法
  1. 等价类划分
    将被测函数的输入域划分为等价类,从等价类中导出测试用例
    针对每个输入数据需要满足的约束条件,划分等价类(自反、传递、对称)
  2. 边界值分析
    大量的错误发生在边界而不是中央
    这是对等价划分方法的一个补充,将边界作为等价类之一进行考虑
    通常边界值的左右也是需要进行考虑的
  3. 两种比较极端的情况
    笛卡尔积,全覆盖策略:多个划分维度上的多个取值,要组合起来,每个组合要有一个测试用例(测试代价高)
    Cover each part 策略:每个维度上的每个取值,只要被覆盖过一次即可(测试代价低)

集成测试(integration testing)

测试的内容是多个模块之间的协作和整个程序

回归测试(regression testing)

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

记录测试策略

在代码评审过程中,其让人可以理解你的测试,并评判你的测试是否充分
欢迎关注公众号BBIT
让我们共同学习共同进步!

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值