![软件测试:实践者方法](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=1738910210-jtIDfdCEmnwJQzqyr8epDhgrtFWYD8rE-0-6cb3068481ce0df079d3e9794ffb23b6)
图2-16 软件失效与软件缺陷的关系
软件缺陷是一种内在的物理及静态存在,而软件失效则是一种动态行为。如果软件存在缺陷,对于确定的输入或其组合,会将处于休眠状态的内部缺陷激活,导致软件失效。来源于系统的物理或人为环境错误等也是导致软件失效的重要原因。同一缺陷在不同条件下被激活,可能产生不同失效及组合。软件测试过程中,受输入制约,直观呈现出的往往是单点失效,从而掩盖了软件缺陷的本质。
对于大型复杂软件系统,因其结构的复杂性、系统的多功能性、运行场景的多变性、使用环境的极端性,支持这种复杂情形的开销往往存在显著的差异,尤其是对于智能软件系统,具有非确定性和确定性相结合的缺陷触发与传播机理,对软件缺陷及失效机理的认识将变得更加困难,似乎已无路可循,难道得另辟蹊径?
抽象系统功能模式是执行一个输入域I到输出域的映射。系统运行过程中,从输入域I中选择一个输入点序列,输入空间分别是错误输入子空间
及激活缺陷的输入子空间(Iafi) ,系统失效域为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_44.jpg?sign=1738910210-iG5vtRjGKTFvO5R6iykr5YB4gmFd0gMp-0-73e40820848390062ac07449fa66e94d)
(2-6)
当输入轨迹进入时,缺陷被激活,诱发系统失效。选择输入点时,对应一个非零的系统失效概率p,无论选择什么输入点,p都暂时不变。假设离散系统概率为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_46.jpg?sign=1738910210-HfVuvgvOLxXOjlFUdk60C3jvKqCjDrPg-0-1867bd34c47172914f3fbbf846ac3fd9)
(2-7)
若为与输入相关的执行时间,那么不论选择什么样的输入点,当te→0 时,失效率为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_48.jpg?sign=1738910210-FDCbgm4MCFRACFeNLGJOuJv4G1VSirhW-0-856c315bb8928e4fc623ca6d82d7cd85)
(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=1738910210-w403Vf4Cta8Cf3spGzXmAr1F3W6vXwaV-0-c33e71e952cb0f177abbff489faa948e)
(2-9)
由于f(t) 是随机变量的密度函数,那么式(2-9)可表示为
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_53.jpg?sign=1738910210-XS7CrFLZbVUeXbsG7AOKPAUt98WK2JST-0-0d0ce5f285757f129fbb8c763db0c689)
(2-10)
在初始条件R(0)=1 时,求解该常微分方程可得到
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_54.jpg?sign=1738910210-3Luva0DfKgW0O3xd9J2BWrYTElQlNJlZ-0-1fd6976f016d2e8d4670bc8301d5afe8)
(2-11)
如果λ(s) 为常数,则可以得到
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_55.jpg?sign=1738910210-uWjKnBlnN2NQni68n3gRkU1tggoRWzP9-0-f65073c641a203c4bfc5cc238188cb7b)
(2-12)
2.5.2.3 失效强度
失效强度(Software Failure Intensity)是指在单位时间内,软件失效的机会或可能性,即在时间区间上,当
时,软件故障数的期望值与该时间区间的长度
之比的极限值。在非齐次泊松过程模型中,用
表示故障数的期望值,f(t) 表示失效强度。有
![](https://epubservercos.yuewen.com/933236/30655029503101206/epubprivate/OEBPS/Images/txt002_60.jpg?sign=1738910210-vVOSQKE81B7jHRELA3z6TIdgnhKM9oUe-0-94f7365f9c285feed7f62f7c9f9e19c0)
(2-13)