![软件测试:实践者方法](https://wfqqreader-1252317822.image.myqcloud.com/cover/818/51893818/b_51893818.jpg)
2.5.2 软件失效
软件失效(Software Failure)是指软件运行过程中,规定功能的终止。该定义包含三方面的含义:一是软件系统不能在规定的时间内和条件下完成规定的功能,丧失对用户预期服务的能力;二是功能单元执行所要求功能的能力终结;三是软件操作偏离用户需求。与硬件不同,软件不会因为环境应力作用而疲劳,也不会随时间推移而磨损和耗散,软件寿命失效可能是因为硬件寿命失效所致,随机失效通常由设计过程中所遗留的内部缺陷所致。
2.5.2.1 软件失效与软件缺陷的关系
在特定的条件下,缺陷被激活,诱发软件失效。由于软件系统结构及缺陷产生机理的复杂性,执行路径不能完全准确刻画软件的失效行为。对于呈分立状态的软件系统,状态数往往比其驻留环境的非重复状态数大得多,软件失效可能是单个缺陷或缺陷组合所致。图2-16形象地给出了软件失效与软件缺陷的关系。
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_41.jpg?sign=1738824048-mpTXmnfmOfMtNreOR79aPRgJe9zCZIEf-0-34ed1cb524182831972978cc2008afa5)
图2-16 软件失效与软件缺陷的关系
软件缺陷是一种内在的物理及静态存在,而软件失效则是一种动态行为。如果软件存在缺陷,对于确定的输入或其组合,会将处于休眠状态的内部缺陷激活,导致软件失效。来源于系统的物理或人为环境错误等也是导致软件失效的重要原因。同一缺陷在不同条件下被激活,可能产生不同失效及组合。软件测试过程中,受输入制约,直观呈现出的往往是单点失效,从而掩盖了软件缺陷的本质。
对于大型复杂软件系统,因其结构的复杂性、系统的多功能性、运行场景的多变性、使用环境的极端性,支持这种复杂情形的开销往往存在显著的差异,尤其是对于智能软件系统,具有非确定性和确定性相结合的缺陷触发与传播机理,对软件缺陷及失效机理的认识将变得更加困难,似乎已无路可循,难道得另辟蹊径?
抽象系统功能模式是执行一个输入域I到输出域的映射。系统运行过程中,从输入域I中选择一个输入点序列,输入空间分别是错误输入子空间
及激活缺陷的输入子空间(Iafi) ,系统失效域为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_44.jpg?sign=1738824048-IehP6W4V5pmqi4sseL2tfhBGUBQQII5C-0-913cf964cec52bbd7e7e793b86e72dee)
(2-6)
当输入轨迹进入时,缺陷被激活,诱发系统失效。选择输入点时,对应一个非零的系统失效概率p,无论选择什么输入点,p都暂时不变。假设离散系统概率为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_46.jpg?sign=1738824048-sYRarw2FZyNAJo2tSV19zK8KxUCHAbwi-0-dae8eaa8bd274ac0f3a2f057a4d878eb)
(2-7)
若为与输入相关的执行时间,那么不论选择什么样的输入点,当te→0 时,失效率为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_48.jpg?sign=1738824048-Q1vnvJl5eO8WjXhoUFcUCNdEYPFAKHWx-0-3510f9fa97de28a5be0c461bee131ea0)
(2-8)
2.5.2.2 失效率
工程上,用失效率度量软件失效。软件失效率(Software Failure Rate)是指软件在时刻尚未发生失效的条件下,在t时刻之后的单位时间
内发生失效的概率,有时称之为风险函数(Hazard Function)。根据定义,可以得到
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_51.jpg?sign=1738824048-rCrn76pAUJU5llSmI3BMvnOGSMyaEQ3n-0-c2940259154d8508a6f535f6002a7311)
(2-9)
由于f(t) 是随机变量的密度函数,那么式(2-9)可表示为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_53.jpg?sign=1738824048-Zr7mJFMm9BZqfgoTcvgk4bU7dkl8dtqq-0-d6e84af235a16d63a286a7c18420ac0e)
(2-10)
在初始条件R(0)=1 时,求解该常微分方程可得到
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_54.jpg?sign=1738824048-rTGOaMunWCIaC0FF9g1vG5QtV1wRbenJ-0-19c8eb2e0a981a71b82d871cb6c0aff4)
(2-11)
如果λ(s) 为常数,则可以得到
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_55.jpg?sign=1738824048-4al5GRCEPnZGvG1pbWo8fkGjdQXyXs2L-0-79f8f87248f7034e33b30ed90a935dfa)
(2-12)
2.5.2.3 失效强度
失效强度(Software Failure Intensity)是指在单位时间内,软件失效的机会或可能性,即在时间区间上,当
时,软件故障数的期望值与该时间区间的长度
之比的极限值。在非齐次泊松过程模型中,用
表示故障数的期望值,f(t) 表示失效强度。有
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_60.jpg?sign=1738824048-mM3zlDQAiWdY7CWIfiZG4e8h2vk0p5sH-0-896d848ed7c6be8dde0ed2d7c9c61b15)
(2-13)