软件复杂性(转有删减)
上一篇 /
下一篇 2007-06-08 16:07:57
/ 个人分类:软件测试
1 软件复杂性
{3[h[W"Va&Y0
1.1 软件复杂性的基本概念51Testing软件测试网
XPr AI-^(o7Z
软件复杂性度量的参数很多,主要有:51Testing软件测试网7C0d!A(Q] Z?1Q
T
(1) 规模,即总共的指令数,或源程序行数。51Testing软件测试网kDya!i
OJ9\d {.F
(2) 难度,通常由程序中出现的操作数的数目所决定的量来表示。51Testing软件测试网 z(x(v'm/z6qW
(3) 结构,通常用于程序结构有关的度量来表示。
y#v^2h
i1K;A }0 (4) 智能度,即算法的难易程度。
@R1{:`2rvuG0 软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少、开发周期长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。51Testing软件测试网 \t!n8QchZ+|2u6u
要求复杂性度量满足以下假设:51Testing软件测试网DG-R!dj
})`H
(1) 它可以用来计算任何一个程序的复杂性。
4R]*M-UyT(h"LS4Wm0 (2) 对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算。
5`QDbk@@0 (3) 如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。51Testing软件测试网'kt-}n%I
1.2 McCabe度量法
u3tYp1Ib)_0 McCabe度量法是由Thomas McCabe提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图。也就是说,把程序流程图的每一个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。
Q ^+L7_w @S0程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作分支和循环的具体条件。因此,它往往把一个简单的IF语句与循环语句的复杂性看成是一样的,把嵌套的IF语句与CASE的复杂性看成是一样的。下面给出计算环路复杂性的方法,
6o5ry
D$ov_-Gg0
在一个强连通的有向图G中,环的个数V(G)由以下公式给出:
Hk
[g^k'o W&m7LWJ0 V(G)=m-n+2p p=1
其中,V(G)是有向图G中环路数,m是图G中弧数,n是图G中结点数,p是图G中强连通分量个数。在一个程序中,从程序图的入口点总能到达图中任何一个结点,因此,程序总是连通的,但不是强连通的。为了使图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。这样就可以使用上式计算环路复杂性了。51Testing软件测试网F8]_^8w-SY:aT
2 软件可靠性51Testing软件测试网-@)ea@Z5tb
2.1 软件可靠性定义51Testing软件测试网q1n5n0tfu
软件可靠性定义表明了一个程序按照用户的要求和设计的目标,执行其功能的正确程度。一个可靠的程序应要求是正确的、完整的、一致的和健壮的。51Testing软件测试网&L+I)vJU0F`g%R
2.2 软件可靠性指标51Testing软件测试网_*P j7R%m:c rRK
软件可靠性与可用性的定量指标,是指能够以数字概念来描述可靠性的数学表达式中所使用的量。下面主要讨论常用指标平均失效等待时间MTTF与平均失效间隔时间MTBF。51Testing软件测试网3k1Y7Zxv$C
1. MTTF(Mean Time To Failure)51Testing软件测试网T\'@3z;WPk
平均失效等待时间MTTF定义为:51Testing软件测试网)lU4o
\!w4}.H-h4B
1Lz7]4z^:X0 2. MTBF(Mean Time Betmeen Failure)
`(d0}
t.k5OCqp0 MTBF是平均失效间隔时间,它是指两次相继失效之间的平均时间。
s#jB(VQ4BAC*~0
2.3 软件可靠性模型51Testing软件测试网:h:~_$YXn
软件可靠性是软件最重要的质量要素之一。
$D k&Qs#ad(Y:j)G%r0 令MTTF是机器的平均无故障时间,MTTR是错误的平均修复时间,则机器的稳定可用性可定义为:51Testing软件测试网NQZ9No7sLU
A=MTTF/(MTTF+MTTR)
hZ*vp2Pd1V)`0 软件可靠性模型通常分为如下几类:51Testing软件测试网k+{1?"\^%M;oNLurs/b,_
(1) 由硬件可靠性理论导出的模型。
}9ai Pn{
]|0 (2) 基于程序内部特性的模型。51Testing软件测试网Ma*P9C#z-So
(3) 植入模型。
{K6Z9W"f6qf`(sN0
相关阅读:
- 《软件测试》书中关于分裂和再现软件缺陷的建议 (caicai1724, 2007-5-16)
- 开始漫长QTP旅程 (higkoo, 2007-5-16)
- 《软件测试》 自动化测试学习笔记 (caicai1724, 2007-5-16)
- 软件测试术语 (飞翔天空, 2007-5-18)
- 软件测试的职业划分的介绍 (fanewoxiao, 2007-5-19)
- 测试者家园 (jfioe, 2007-5-21)
- WR和QTP的破解问题 (higkoo, 2007-5-25)
- [zt]我的目标,我的路 (elviamind, 2007-6-01)
- 软件测试 (Raymondzfy, 2007-6-02)
- 什么是软件测试 (believe, 2007-6-04)
收藏
举报
TAG:
软件测试