目标
- 测试优先
- 模块设计:等价划分、边界值分析
- 覆盖度
本节内容如下
Software testing
测试是为了“破坏”
好的测试?
- 能发现错误
- 不冗余
- 有最佳特性
- 别太复杂也别太简单
测试等级
回归测试包含三类
单元、集成、系统,对应不同的级别
一些概念
- 静态和动态测试:静态只能发现一些语法错误或者死循环(IDE的代码检查),而动态测试检查逻辑上的问题,通过结果来执行
- 测试和Debug:发现错误和消除错误
- 白盒测试对内部代码结构进行测试,黑盒测试对程序表现的东西测试,比如输入得到什么输出
软件测试是困难的
- 穷举+暴力不行,不可能全覆盖
- 偶然测试不能覆盖所有可能性
- 靠统计数据也不行,产生错误的往往是极少出现的数据
- bug出现不符合概率分布,没有统计规律
Test Case
测试用例:输入+执行条件+期望结果
最可能发现错误,且不重复冗余
测试优先的编程
步骤
- spec
- 根据spec写测试用例
- 写代码
Spec
- 参数的类型及约束,比如sqrt()的参数得是非负数(前置条件)
- 返回值的类型,以及它和输入有什么关系(后置条件)
- 异常说明
- 描述本函数的功能
写测试用例就是找出spec的bug
标签:denominator,divide,覆盖,Testing,Programming,等价,测试用例,测试,Test From: https://www.cnblogs.com/Ch1ldKing/p/18213147