天津专接本2013软件工程导论(3)

2018-11-23 22:25

条件组合覆盖 A=.T. ^ B=.T. A=.T. ^ B=.F. A=.F. ^ B=.T A=.F. ^ B=.F. 12)条件组合覆盖测试: 条件组合覆盖

四个条件的组合A>5、 B>6、 C>A、 D

把两个判断组合在一起构成条件组合覆盖(有多种组合情况,写出一种即可,如下) A B C D X Y

TTTT (10, 10, 15, 5, 20, 10) TFTF (10, 5, 15, 10,15, 15) FTFT (5, 10, 5, 5, 15, 10) FFFF (5, 5, 5, 5, 0, 10) 13)条件测试路径选择:

? 当程序中判定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型

分支结构。

? 对于嵌套型分支结构,若有n个判定语句,需要n+1个测试用例;

? 对于连锁型分支结构,若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径 14)循环测试路径选择:循环分为4种不同类型:简单循环、连锁循环、嵌套循环和非结构循环。

(1) 简单循环(测试集)

① 零次循环:从循环入口到出口 ② 一次循环:检查循环初始值 ③ 二次循环:检查多次循环 ④ m次循环: 检查再多次循环

⑤ 最大次数循环、比最大次数多一次、少一次的循环 (2) 嵌套循环

① 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值;

② 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。 ③ 反复进行,直到所有各层循环测试完毕。

④ 对全部各层循环同时取最小循环次数,或者同时取最大循环次数 (3) 连锁循环

如果各个循环互相独立,则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。 (4) 非结构循环

这一类循环应该使用结构化程序设计方法重新设计测试用例

15)黑盒测试技术可以发现白盒不易发现的错误:①功能不正确或遗漏了功能;②界面错误;③数据结构错误或外部数据库访问错误;④性能错误;⑤初始化和终止错误 【1、等价划分2、边界值分析3、错误推测4、因果图法】

16)调试途径:1. 蛮干法;2. 回溯法;3. 原因排除法【对分查找法、归纳法和演绎法】

17)软件可靠性的定义:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率

18)软件可用性的定义:软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率

19)可靠性、可用性二者比较:可靠性和可用性之间的主要差别是,可靠性意味着在0到t 这段时间间隔内系统没有失效,而可用性只意味着在时刻t,系统是正常运行的

如果在一段时间内,软件系统故障停机时间分别为td1,td2,…,正常运行时间分别为tu1,tu2,…,则系统的稳态可用性为:Ass=Tup/(Tup+Tdown) (7.1),其中Tup=∑tui,Tdown=∑tdi 如果引入系统平均无故障时间MTTF和平均维修时间MTTR的概念,则(7.1)式可以变成Ass=MTTF/(MTTF+MTTR) (7.2) 20)估算MTTF的过程:

ET——测试之前程序中错误总数; IT——程序长度(机器指令总数); τ——测试(包括调试)时间;

Ed(τ)——在0至τ期间发现的错误数; Ec(τ)——在0至τ期间改正的错误数

21)估算平均无故障时间的基本假定:根据经验数据,可以作出下述假定。

(1) 在类似的程序中,单位长度里的错误数ET/IT近似为常数。一些统计数字表明,通常0.5×10-2≤ET/IT≤2×10-2也就是说,在测试之前每1000条指令中大约有5~20个错误。 (2) 失效率正比于软件中剩余的(潜藏的)错误数,而平均无故障时间MTTF与剩余的错误数成反比

(3) 此外,为了简化讨论,假设发现的每一个错误都立即正确地改正了(即,调试过程没有引入新的错误)。因此Ec(τ)=Ed(τ),剩余的错误数为Er(τ)=ET-Ec(τ) (7.3) 单位长度程序中剩余的错误数为εr(τ)=ET/IT-Ec(τ)/IT (7.4) 22)估算平均无故障时间:

经验表明,平均无故障时间与单位长度程序中剩余的错误数成反比,即MTTF=1/[K(ET/IT-Ec(τ)/IT)] (7.5)

其中K为常数,它的值应该根据经验选取。一些统计数字表明,K的典型值是200。

估算平均无故障时间的公式,可以评价软件测试的进展情况。此外,由(7.5)式可得Ec=ET-IT/(K×MTTF) (7.6) 23)估计错误总数的方法: (1) 植入错误法

使用这种估计方法,在测试之前由专人在程序中随机地植入一些错误,测试之后,根据测试小组发现的错误中原有的和植入的两种错误的比例,来估计程序中原有错误的总数ET。 假设人为地植入的错误数为Ns,经过一段时间的测试之后发现ns个植入的错误,此外还发现了n个原有的错误。N^=n/ns×Ns (7.7)其中N^即是错误总数ET的估计值。 (2) 分别测试法

由测试员甲和测试员乙分别测试同一个程序的两个副本,由另一名分析员分析他们的测试结果。用τ表示测试时间,假设 τ=0时错误总数为B0;

τ=τ1时测试员甲发现的错误数为B1; τ=τ1时测试员乙发现的错误数为B2;

τ=τ1时两个测试员发现的相同错误数为bc。 假定测试员甲发现的错误是有标记的,则有

B0^ /B1=B2/bc B0^ =B2/bc×B1 (7.8)

24)软件测试的目标:

测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

(1) 测试是为了发现程序中的错误而执行程序的过程;

(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3) 成功的测试是发现了至今为止尚未发现的错误的测试。 第八章 维护

1)软件维护的定义:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程

2)软件维护的四项活动:

? 诊断和改正错误的过程:改正性维护

? 为了和变化了的环境适当地配合而进行的修改软件的活动:适应性维护

? 为了满足在使用软件的过程中用户的建议和改进意见而作的维护:完善性维护 ? 为了给未来的改进奠定更好的基础而修改软件:预防性维护 3)维护的特点:1.非结构化维护;2.结构化维护; 4)软件维护的最明显的代价:维护费用 无形的代价:

? 因为可用的资源必须供维护任务使用,以致耽误甚至丧失了开发的良机。 ? 当看来合理的有关改错或修改的要求不能及时满足时将引起用户不满。 ? 由于维护时的改动,在软件中引入了潜伏的错误,从而降低了软件的质量。 ? 当必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱。 ? 生产率的大幅度下降。

5)维护工作量的一个模型:M= P+ K * exp(c - d) M是维护用的总工作量, P是生产性工作量, K是经验常数, c是因缺乏好的设计和文档而导致复杂性的度量) d是维护人员对软件的熟悉程度

6)维护过程的本质:修改和压缩了的软件定义和开发过程

7)决定软件可维护性的因素:可理解性;可测试性;可修改性;可移植性;可重用性 8)文档的分类:用户文档和系统文档两类

? 用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的。 ? 系统文档描述系统设计、实现和测试等各方面的内容。 9)用户文档包括:

? 功能描述——说明系统能做什么;

? 安装文档——说明怎样安装这个系统以及怎样使系统适应特定的硬件配置; ? 使用手册——简要说明如何着手使用这个系统;

? 参考手册——详尽描述用户可以使用的所有系统设施以及它们的使用方法,还应该解

释系统可能产生的各种出错信息的含义;

? 操作员指南(如果需要有系统操作员的话)——说明操作员应该如何处理使用中出现

的各种情况。

10)软件再工程过程:1.库存目录分析;2.文档重构;3.逆向工程;4.代码重构;5.数据重构;

6.正向工程;

第十三章 软件项目管理

1)估算方法:每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),分别算出这3种规模的平均值、和之后,再用下式计算程序规模的估计值:

L?a?4m?b6 单位:LOC或KLOC

2)代码行技术的优缺点: 优点:

? 代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数; ? 有大量参考文献和数据 。 缺点:

? 源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理; ? 用不同语言实现同一个软件所需要的代码行数并不相同; ? 不适用于非过程性语言。

3)功能点技术:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。 4)信息域特性:

? 输入项数(Inp):用户向软件输入的项数,这些输入给软件提供面向应用的数据。 ? 输出项数(Out):软件向用户输出的项数,它们向用户提供面向应用的信息,

? 查询数(Inq):查询即是一次联机输入,它导致软件以联机输出方式产生某种即时响应。 ? 主文件数(Maf):逻辑主文件的数目。

? 外部接口数(Inf):机器可读的全部接口的数量,用这些接口把信息传送给另一个系统 5)估算功能点的步骤:

(1) 计算未调整的功能点数UFP

首先,把产品信息域的每个特性都分类为简单级、平均级或复杂级,并根据其等级为每个特性分配一个功能点数。

然后,用下式计算未调整的功能点数UFP:UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf

其中,ai(1≤i≤5)是信息域特性系数,其值由相应特性的复杂级别决定,如表13.1所示。

(2) 计算技术复杂性因子TCF

这一步骤度量14种技术因素对软件规模的影响程度。在表13.2中列出了全部技术因素,并用Fi(1≤i≤14)代表这些因素。

根据软件的特点,为每个因素分配一个从0(不存在或对软件规模无影响)到5(有很大影响)的值。

14DI?然后,用下式计算技术因素对软件规模的综合影响程度DI:

?i?1Fi

技术复杂性因子TCF由下式计算:TCF = 0.65 + 0.01 × DI因为DI的值在0~70之间,所以TCF的值在0.65~1.35之间

(3) 计算功能点数FP FP = UFP × TCF 6)功能点技术优缺点:

优点:与所用的编程语言无关,比代码行技术更合理

缺点:在判断信息域特性复杂级别和技术因素的影响程度时主观因素较大,对经验依赖性较强

7)静态单变量模型总体结构形式如下: E = A + B × (ev) C 其中,A、B和C是由经验数据导出的常数, E是以人月为单位的工作量, ev是估算变量(KLOC或FP)。 1. 面向KLOC的估算模型

(1) Walston_Felix模型 E=5.2×(KLOC)

1.16

(2) Bailey_Basili模型 E=5.5+0.73×(KLOC)

1.05

(3) Boehm简单模型 E=3.2×(KLOC)

1.047

(4) Doty模型(在KLOC>9时适用) E=5.288×(KLOC) 2. 面向FP的估算模型

(1) Albrecht & Gaffney模型 E=-13.39+0.0545FP

(2) Maston,Barnett和Mellichamp模型 E=585.7+15.12FP

0.333

8)动态多变量模型形式如下: E=(LOC×B/P)3×(1/t)4 E 是以人月或人年为单位的工作量; t 是以月或年为单位的项目持续时间;

B 是特殊技术因子,它随着对测试、质量保证、文档及管理技术的需求的增加而缓慢增加,对于较小的程序(KLOC=5~15),B=0.16,对于超过70 KLOC的程序,B=0.39; P是生产率参数

开发实时嵌入式软件时,P的典型值为2000;开发电信系统和系统软件时,P=10000;对于商业应用系统来说,P=28000。可以从历史数据导出适用于当前项目的生产率参数值。 9)COCOMO2模型3个层次的估算模型分别是:

? 应用系统组成模型。这个模型主要用于估算构建原型的工作量,模型名字暗示在构建

原型时大量使用已有的构件。

? 早期设计模型。这个模型适用于体系结构设计阶段。

? 后体系结构模型。这个模型适用于完成体系结构设计之后的软件开发阶段。 10)COCOMO2模型计算

170.91

E?a?KLOCb?该模型把软件开发工作量表示成代码行数(KLOC)的非线性函数:

?i?1fi


天津专接本2013软件工程导论(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: