程序验证与测试全解析
1. 程序代码优化与指令集
在程序设计中,减少指令数量是优化程序的重要目标。通过合理使用子例程可以有效减少程序指令数。若程序中存在重复执行的相同操作,这些操作就很适合封装成子例程。即便操作存在一定差异,也可构建参数化子例程来节省空间,但要注意将子例程的链接代码纳入考量。
此外,部分微处理器架构支持密集指令集,如 ARM Thumb 指令集和 MIPS - 16 指令集。使用这些指令集可缩短指令编码格式,在许多情况下,支持密集指令集的微处理器也支持普通指令集。特殊编译模式能生成基于密集指令集的程序,此类程序大小通常为标准指令集程序的 70% - 80%。
2. 程序验证与测试的必要性
复杂系统需要进行测试以确保其按预期运行。然而,软件中的错误可能十分隐蔽,特别是在嵌入式系统中,由于专用硬件和实时响应性的要求,编程挑战更大。幸运的是,有许多软件测试技术可帮助我们生成全面的测试集,确保系统正常工作。
我们首先要思考的是,多少测试才算足够。显然,我们无法对程序的所有可能输入组合进行测试。软件测试的一个重要贡献是为我们提供合理的测试彻底性标准。遵循这些标准虽不能保证找出所有错误,但通过将测试问题分解为子问题并逐一分析,我们能确定在合理时间内提供足够测试量的方法。
测试策略主要分为两类:
- 黑盒测试 :在不查看程序内部结构的情况下生成测试用例。
- 白盒测试 :基于程序结构生成测试用例。
这两种测试方法相互补充,以不同方式对程序进行测试。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



