当前位置: 首页 > 质量专栏 > 软件精度效率测试主要测试哪些内容?
软件精度效率测试主要测试哪些内容?
2026-10-29 作者:cwb 浏览次数:5

软件精度和效率测试是测试软件质量的两个重要非功能方面。精度测试测试算得对不对、准不准,效率测试测试跑得快不快、省不省资源。


精度测试看测试算得准不准

精度测试是将软件的计算输出和数学真实的结果进行比对,并判断误差是不是在可接受范围内。


1. 和真值的比对

测试需要确立一个高精度的参考标准(如使用无限精度数学包或高精度参考实现计算出的真值),将被测软件的计算结果和之对比。不是结果是不是完全相等而是误差是不是小于预设的容差。如对于sqrt() 这类标准函数,容差要求可能是0,但对于复杂的数值算法,则需要根据函数特性和输入值设定合理的容差范围。


2. 误差度量标准

为了量化精度会使用一系列误差标准:

绝对误差:计算值和真值之差的绝对值。

相对误差:绝对误差和真值之比,更能反映在数值较大时的精度水平。

平均相对误差:在一批测试用例上相对误差的平均值,用于测试整体精度。

3. 边界极端情况测试

测试必须包括那些最容易暴露精度问题的输入:

特殊值:零、负零、无穷大、非数字。

极小/极大值:接近浮点数精度下限的非常小的数以及极大的数。

定义域边界:函数定义域的临界点,如 asin(1) 或刚好超出定义域的 asin(1.0000001)。

条件数高的区域:某些函数在特定输入区间会对微小扰动极其敏感(条件数很大),需要测试如一个函数在x接近1时,舍入误差可能被急剧放大。


4. 有效位和舍入测试

测试计算结果的有效数字位数是不是符合需求规格,以及舍入规则(如四舍五入)是不是正确。


效率测试是测试跑得快不快、省不省资源

在国家标准(GB/T 25000系列)中,这一般对应性能效率特性,主要测试在指定条件下软件的时间表现和资源消耗。


1. 时间特性

测量软件处理任务的速度。

响应时间:从用户发起请求到收到完整响应所经历的时间,是用户感知最直接的标准。

处理时间:系统内部完成一项特定任务所耗费的时间。

吞吐量/TPS(每秒事务数):单位时间内系统成功处理的请求或事务的数量,反映系统的整体处理能力。


2. 资源利用性

考虑软件在执行功能时对系统资源的消耗水平。

CPU占用率:计算资源消耗水平。

内存占用率:内存消耗量及其增长趋势,可用于发现内存泄漏。

磁盘I/O:读写操作的速率和等待时间。

网络带宽占用:数据传输对网络资源的消耗。


3. 容量和可扩展性

系统承载极限。

并发用户数:系统在满足性能标准的前提下,能同时支持的最大用户规模。

负载拐点:随着负载增加,性能标准开始显著劣化的临界点,用于确定系统的容量上限。


4. 稳定性和恢复能力

系统在压力下的持久性和韧性。

稳定性:在长时间不断负载下,各项性能标准是不是能保持平稳。

恢复时间:系统从过载或故障状态恢复到正常服务水平所需的时间。


精度测试数值计算的正确性,通过比对真值、度量误差并包括边界条件来保证结果的可靠性。效率测试测试运行时的性能表现,量化考虑速度、资源消耗和容量极限。在一些计算密集型场景(如AI算子、科学计算)中需要联合考虑,在可接受的精度损失范围内追求极致的效率提升。


文章标签: 软件测试
咨询软件测试