27、程序验证、测试与软件调制解调器设计

程序验证、测试与软件调制解调器设计

1. 程序验证与测试

在系统开发中,程序验证和测试是确保系统质量的关键环节。除非系统规格发生改变,新系统应该能够通过旧的测试。然而,旧的漏洞可能会重新潜入系统,比如不小心安装了软件模块的旧版本。另外,回归测试以不同于当前代码版本的方式执行代码,因此可能会暴露出不同的漏洞。

对于一些嵌入式系统,特别是数字信号处理系统,可以进行数值分析。为了节省硬件成本,信号处理算法通常采用有限范围的算术运算实现。可以生成激进的数据集来测试系统的数值精度,这些测试往往可以从原始公式生成,而无需参考源代码。

1.1 评估功能测试

多少测试才足够呢?Horgan和Mathur评估了TeX和awk这两个知名程序的功能测试覆盖率。他们使用了经过多年广泛测试而开发的功能测试,得到的代码覆盖率统计如下表所示:
| 程序 | Block | Decision | P-use | C-use |
| ---- | ---- | ---- | ---- | ---- |
| TeX | 85% | 72% | 53% | 48% |
| awk | 70% | 59% | 48% | 55% |

这些结果表明,功能测试并不能完全覆盖代码,因此需要显式地为代码的各个部分生成测试用例,以获得足够的代码覆盖率。

方法学技术对于理解测试质量很重要。例如,记录每天测试的漏洞数量,随着时间推移收集的数据可以显示每页代码的平均错误数量、某些类型的测试能捕获多少漏洞等趋势。

错误注入是一种有趣的分析测试覆盖率的方法。首先,在现有代码中添加漏洞,并记录添加位置,然后对修改后的程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值