软件测试:实践者方法
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6 时间问题

软件质量及其度量、分析、预测、评价等无不与时间密切相关。对于不同对象,时间含义不一样。通常,软件运行、测试、维护等过程中,使用执行时间(Execution Time)、时钟时间(Clock Time)、日历时间(Calendar Time)三种时间度量。执行时间是指软件运行时实际占用CPU的时间;时钟时间是软件从运行开始到运行结束所经历的时长,包括等待时间和辅助时间,但不包括停机时间;日历时间是日常生活中所使用的时间。如果计算机资源被软件连续占用,该软件占用CPU的一个时间段,则执行时间与时钟时间成正比。

对于上述三种时间单位,较日历时间,执行时间能更好地表征软件系统的运行行为,是软件测试及软件质量度量常用的时间度量,但为了便于理解及使用,最终与日历时间关联,尤其是不同系统之间进行比较时,尤为如此。因此,需要在日历时间与执行时间之间进行转换。如果难以得到执行时间,可用其他时间的近似值,如时钟时间、加权时钟时间、主要运行时间或其他计时单位代替。

在软件系统运行、维护、测试等过程中,一旦确定时间基准,即可用累积失效函数(Cumulative Failure Function,CFF)、失效密度函数(Failure Intensity Function,FIF)、失效平均时间函数(Mean Time to Failure Function,MTFF)、平均无故障间隔时间(Mean Time Between Failure,MTBF)、平均失效时间(Mean Time To Failure,MTTF)、平均修复时间(Mean Time To Repair,MTTR)等任一种描述软件失效行为。CFF表示与每一时间点相关的平均累积失效;FIF表示累积失效函数的变化率;MTFF表示观察到下次失效的期望时间。这三种度量密切相关且可以相互转化。例如,失效密度是累积失效函数相对于时间的瞬时值,如果可靠性函数呈指数分布,其平均失效时间即为失效密度函数的导数。