代码大全(9)之软件测试及调试

本文详述了单元测试要点,包括对需求、设计的测试,以及如何构造有效的测试用例。同时,介绍了调试方法,如重复实验、建立假设、设计实验等。还探讨了优秀集成的优势和递增集成策略,以及提高代码效率的技术,如循环优化、逻辑简化、数据转换和表达式优化。最后,强调了修改程序时遵循的策略和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单元测试要点:

对每个需求进行测试,以便确保需求得到实现

对和设计有关程序进行测试以确保设计得到了实现

在详细测试的基础上对需求和设计测试增加基本测试


不完全测试

善于结构的测试

数据流测试(数据的状态:已定义数据、已使用数据、已无效的数据)


测试用例:

每个子程序的要求是否有自己的测试用例

子程序结构的每个部分是否都有自己的测试用例

程序中每一行代码都是否至少被一个测试用例所测试过,这是否由通过计算测试每一行代码所需的最少用例来确定的

所有定义,使用数据流路径是否被至少一个测试用例所测试过

代码是否被看起来不大正确的数据流模式所检查过,比如定义-定义,定义-退出,定义-失效

是否使用常见错误表以便编写测试用例来发现过去常出现的错误

是否所有得简单边界都得到了测试,最大最小或易混淆边界

是否所有复合边界都得到了测试

是否对各种错误类型的数据都进行了测试

是否所有典型的中间数都得到了测试

是否对最小最大正常配置进行了测试

是否测试了和旧数据的兼容性,是否所有保留下来的硬件、操作系统旧的版本,以及其他软件旧版本的接口都得到了测试

测试用例是否便于手工检查


结构错误 25%

数据错误 22%

功能实现错误 16

实现错误 10%

系统错误 9%

功能需求错误 8%

测试定义或执行 3%

系统、软件结构错误 2% 


调试方法及步骤:

通过重复实验收集数据

建立假设以解释尽可能多的相关数

设计实验以便证实或否定假设

证实或否定假设

按要求重复以上步骤


发现错误的方法:

使用所有数据建立假设

求精产生错误的测试用例

通过不同的方法再生错误

产生更多的数据以生成更多的假设

使用否定测试结果

提出尽可能多的假设

缩小可疑代码区

检查最近做过修改的代码

扩展可疑代码区

逐步集成

怀疑以前出过错的子程序

耐心检查

为迅速的草率的调试设定最大时间

检查一般错误

使用交谈调试法

中断对问题的思考


优秀集成的好处:

易于诊断错误

更少的错误

少量连接框架

在短期内形成首次可工作系统

短期的全面开发计划

良好的用户关系

增强信心

增加工作完成的机会

更可靠的预测计划

更准确的了解工程情况

提高代码质量

减少文件

递增集成策略:

是否能辨别出程序或模块的最佳集成顺序

集成次序是否和结构次序相同,以致于结果程序只能在适当的时候被集成

易于故障诊断吗

是否需要最少的搭架程序

各部分间的接口是否已经被指定好了


功能与代码调整,从以下几点考虑提高效率:

程序设计

模块和子程序设计

操作系统相互作用

代码编译

硬件

代码调整程序设计

代码调试技术:

1、循环:

避免开关

冲突

展开

循环内工作量的最小化

标志值

将最忙的循环放在里面

降低运算强度

2、逻辑:

知道答案时就停止判断

根据频率确定判断工序

查表法代替复杂判断

偷懒改进法

3、数据转换

尽量用整型数不用浮点数

尽量减少数组维度

减少数组访问

运用辅助索引

高速缓存运用

4、表达式

充分利用数学中的等价关系

运用强度削减

编译期间初始化

密切注意系统程序

正确使用常数类型

预先计算结果

消除常用的子表达式


修改程序:

每次改变都是按修改策略吗

变动是否彻底检查过了

软件是否做了重测试,确保修改未使性能变坏

修改是否提高了程序的内在质量

是否尽可能将程序拆分子程序从而模块化

是否尽可能较少了全局变量

是否改进了程序风格

如果为了共享代码,必须做些改动,是否考虑过共享代码在高层程序上而非在低层程序上

如此改动后,是否为以后的修改创造便利

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值