软件工程综合_第1页
软件工程综合_第2页
软件工程综合_第3页
软件工程综合_第4页
软件工程综合_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

13、估算完成该项目的规模及其成本软件规模估计:代码行技术;功能点技术软件成本估算:专家判断;类比估算;COCOMO模型4、制定合理的软件项目计划,包括进度、成本、质量等方面的预测。(参考:项目规划及软件项目任务书案例)软件项目规划2软件规模估算1、代码行技术代码行技术是从过去开发类似产品的经验和历史数据出发,估算出所开发软件的代码行数。采用代码行数以LOC,常用千行代码数KLOG来度量。(1KLOG=103LOC)代码行技术方法首先给出软件的范围描述;将项目分解的尽可能小,且可独立估算的子功能,估算每一个子功能并将其代码行累加得到整个系统的代码行数。3代码行技术方法:为了更客观、准确,代码行估算可以由多名有经验的开发人员分别给出,最终计算出所有估算的平均值。开发人员还可以提出一个有代表性的估算值范围,分别按照最佳(a)、可能(m)、悲观(b)给出估算值。利用下列公式计算期望值:代码行期望值:L=(a+4m+b)/6其中:a:最佳值;m:可能值;b:悲观值软件规模估算4进一步度量软件开发的其他规模指标软件生产率:P=kLOC/PM,

其中:PM为软件开发总的工作量,常用人月(PM)度量,这样P就为每人月完成的千行代码数。每千行代码的平均成本:C=S/kLOC,

即:软件每行代码的平均成本,S用人民币(或其它货币)进行表示。注意:工作量和成本是指整个软件工程活动(包括分析、设计、编码和测试)的工作量和成本,而不仅仅指编码活动,文档代码比D=Pe/kLOC;Pe为软件项目相关文档页数代码错误率EQR=N/kLOC;N为代码中的总错误数。软件规模估算5软件规模估算优点简单方便,在历史数据可靠的情况下可以很快估算出比较准确的代码行数。可度量软件代码的生成率、开发每行代码的平均成本、文档与代码的比例关系、每千行代码的软件错误数等缺点需要依赖比较详细的功能分解,难以在开发初期进行估算估算结果与所用开发语言紧密相关,无法适用于非过程语言6例如:某软件公司统计发现该公司每一万行C语言源代码形成的源文件约为250K。某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资,福利,办公费用公滩等),

则该项目中1LOC的价值为:(240×10000)/150000=16元/LOC

那么,项目的人月均代码行数为:

150000/240=625LOC/人月。软件规模估算7在软件公司中,常用一个表格来记录项目中面向规模的度量。表1软件项目记录表2软件项目规模估算示例

项目工作量(人月)成本(千元)代码行KLOC文档页数错误审计项目609002002500300书店管理24150145123089酬金管理101205585021项目代码行KLOC每行代码成本C文档代码比D代码错误率EQR审计项目2004.512.51.5书店管理1451.038.480.61酬金管理552.1815.450.38软件规模估算8软件规模估算2、功能点技术:依据软件信息域的基本特征和对软件复杂性的估计,估算出软件规模。软件信息域的5个基本特征,包括:外部输入、外部输出、外部查询、内部逻辑文件和外部接口。外部输入:用户进行添加或修改数据的屏幕或表格外部输出:软件为用户产生的输出屏幕或报表外部查询:软件以联机输出方式产生的独立查询内部逻辑文件:软件修改或保存的逻辑记录集合外部接口:与其他系统进行信息交换或共享的文件这种方法适合于在软件开发初期进行估算,并以功能点为单位度量软件规模。9功能点估计方法步骤:1)计算外部输入、外部输出、外部查询、内部逻辑文件和外部接口的数目;2)每类特征划分为简单、中等和复杂三个等级,每一个特征在不同等级上将分配不同的加权因子。如,每类特征加权因子确定为:

简单:输入3、输出4、查询3,主控文件7、接口5;中等:输入4、输出5、查询4,主控文件10、接口7;复杂:输入6、输出7、查询6,主控文件25、接口10然后,将这些数据进行加权乘软件规模估算103)估计者根据软件受到的多种技术因素的影响,如:性能、数据处理、可维护性等多种技术的影响,再对计算出的未调整功能点总数(UFP)进行适当的调整。如P52表列出的14种技术因素,Fi的取值为0~5,:F1:系统需要可靠的备份和恢复吗?F2:系统需要数据通信吗?…Fi,定义为:1:偶然影响、2:轻度影响、3:一般影响:4:重要影响、5:非常重要影响软件规模估算11软件规模估算12举例:软件规模估算例:某公司大约有3000名员工,准备开发一个简单的工资系统系统要求用户从屏幕上输入员工的基本信息(包括员工编号、基本工资、所在等级、所属部门等)和每月的考勤情况,这两个屏幕输入的复杂度为“复杂”;另外,还有一个所得税信息的输入,其复杂度为“中等”。系统生成员工的工资单,列出工资的所有收入项和纳税扣除额,并在屏幕上显示工资单,工资单的功能复杂度是“复杂”;另外,系统产生7个报表,每个报表的复杂度是“简单”。系统提供20个查询,每个查询的复杂度是“简单”。系统内部维护一个员工信息文件,该文件的复杂度是“复杂”。系统引用了3个数据表,包括员工基本信息、部门信息和所在等级,其中员工基本信息的复杂度是“中等”,其他两个的复杂度是“简单”。13举例:软件规模估算计算未调整功能点14举例:软件规模估算计算调整后的功能点15举例:软件规模估算部分开发语言中一个功能点对应的代码行数行(LOC)/功能点(FP)假设用VB开发,源程序行数SLOC=24×138=331216软件成本估算软件成本估算一般包括:专家判断、类比估算和经验模型等3种技术。自上而下方法对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配;自下而上方法分别估算各工作单元所需的开发时间,然后汇总得出总的工作量和开发时间。17专家判断专家判断是依靠一个或多个专家对项目成本作出估计,这是一种近似的猜测,要求专家具有专门知识和丰富的经验。Delphi方法是最流行的专家评估技术,它鼓励参与者就问题相互讨论,互相说服对方,最终达成共识。步骤:协调人向各专家提供项目规格和估计表格;专家匿名填写迭代表格;协调人汇总,返回专家;如估计差异较大;专家复查估计,总结、迭代,重新提交估计;重复,直到达到一个最低和最高估计的一致。软件成本估算18软件成本估算19软件成本估算类比估算类比估算适合评估一些与历史项目在应用领域、环境和复杂度上相似的项目,通过新项目与历史项目的比较得到成本估算。类比估算的精确度取决于历史项目数据的完整性和准确度。步骤:整理出项目功能列表和实现每个功能的代码行;标识出每个功能与历史项目的相同点/不同点;通过步骤1和2得出各个功能的估计值,产生成本的估计。注:软件项目中的类比法,往往还要解决可重用代码的估算问题。20重用代码量的估计:由程序员或系统分析员详细地考查已存在的代码。新项目可重用的代码中需重新设计的百分比;需重新编码或修改的百分比;需重新测试的百分比。利用计算公式计算等价新代码行:等价代码行=[(重新设计%+重新编码%+重新测试%)/3]×已有代码行

软件成本估算21

例如:有10,000行代码重用,假定30%要重新设计,50%要重新编码,70%要重新测试,那么其等价的代码行可以计算为:

[(30%+50%+70%)/3]×10,000=5,000等价代码行.

意即:重用这10000代码相当于编写5000代码行的工作量。软件成本估算22软件成本估算COCOMO模型结构性成本模型COCOMO(ConstructiveCostMOdel)是一种利用经验模型进行成本估算的方法基本COCOMO模型这是一个静态单变量模型,用一个以源代码行数为自变量的经验函数来计算软件开发工作量。计算公式:E=aLbD=cEdE:开发工作量(人月),D:开发时间(月),L:千行代码数,a,b,c与软件系统有关。23软件成本估算中间COCOMO模型中间COCOMO模型以基本COCOMO模型为基础,通过对影响工作量的若干因素进行估计,确定出调节因子,再对工作量估算公式进行修正。计算公式E=aLbFE:开发工作量(人月),F是调节因子,与计算机环境、人员和项目等因素有关,见表3-9,L:千行代码数,a,b取值见表3-8。24软件成本估算25举例:软件成本估算如:工资系统用Vb开发,代码行数331226软件项目计划软件项目计划是一个用来协调所有其他计划、以指导项目实施和控制的文件,它应该随着项目的进展和信息的补充进行定期完善。软件项目计划包括项目可用的资源、工作分解以及完成工作的进度安排,另外还有各种支持性计划。质量计划:描述质量过程和质量标准确认计划:描述系统确认的方法、资源和进度配置管理计划:描述配置管理的过程和结构维护计划:预期系统维护需求和所需的成本与人力人员开发计划:描述如何开发项目人员的技能和经验27软件项目计划项目进度计划的过程工作分解将项目整体分解成较小的、易于股哪里和控制的若干子项目或工作单元,直到可交付成果定义的足够详细,足以支持将来的活动28项目工作分解模板:按照项目实施过程的顺序分解29甘特图30SPMP(IEEE1058-1998)软件项目管理计划(SoftwareprojectManagementPlan,SPMP)用来协调所有其他计划、以指导项目实施和控制的文件记录计划的假设条件以及方案选择;确定关键管理审查的内容、范围和时间;为进度评测和项目控制提供一个基线。31SPMP(IEEE1058-1998)32本节掌握内容软件项目规划三步需求分析;分解任务、估算规模、成本,写出计划书规模估算代码行技术步骤:确定范围、分解功能、估算千行代码数期望值:L=(a+4m+b)/6软件生产率:P=kLOC/PM;千行代码成本:C=S/kLOC文档代码比:P=Pe/kLOC;错误代码率:EQR=N/kLOC功能点技术5个基本特征数:外部输入、外部输出、外部查询、内部逻辑文件、外部接口步骤:计算特征数;划分等级加权乘;

修正偏差Fp=总计数*[0.65+0.01Fi]33掌握内容成本估算专家判断:Delphi方法(迭代方法)类比估算列出功能点和实现代码行;分析不同点/相同点,估算成本重码工作量计算COCOMO方法计算基本模型:E=aLbD=cEd修正:E=aLbF,a,b,c,d:应用程序、实用程序编译等;控制程序,操作系统。34内容提纲人员组织与管理软件项目组织形式、微软公司的开发团队项目沟通管理醒目沟通的复杂性与活动软件项目规划软件项目估算与计划软件风险管理风险识别、风险分析、风险规划、风险监控软件配置管理软件配置管理的概念与活动35软件风险管理项目风险是一种不确定的事件或情况,一旦的发生,就会对项目目标产生正面或负面的影响。风险分为两类:可预见风险:可以根据开发经验或逻辑推理来预见的,是可以计划和管理的。不可预见风险:不能根据所拥有的资料进行预见的,是不可计划和管理的,要求做好应急措施。风险管理是IT软件项目减少失败的一种重要手段。采取结构化风险管理来发现计划中的缺陷采取行动来减少潜在问题发生的可能性和影响在危机发生之前就对它进行处理这样就会提高项目成功的机会和减少不可避免风险所产生的后果36举例:软件项目的一些风险类型可能的风险技术数据库事务处理速度不够;拟采用的系统组件存在缺陷,影响系统功能。人员招聘不到所需技能的人员;关键的人员在项目的关键时刻生病或不在;无法进行所需的人员培训。组织组织结构发生变化;组织财政问题导致项目预算削减。工具CASE工具生成的代码效率低;CASE工具无法集成。需求需求变更导致主要的设计和开发重做;客户无法理解需求变更带来的影响。估算开发所需时间估计不足;缺陷修复估计不足;软件规模估计不足。软件开发项目由于自身的特点而具有极大风险37项目风险管理过程软件风险管理是贯穿在项目开发过程中的一系列管理步骤。通过主动而系统地对项目风险进行全过程的识别、分析和监控,最大限度地降低风险对软件开发的影响。38风险识别风险识别是试图采用系统化的方法,识别特定项目已知的和可预测的风险,项目管理者就有可能避免这些风险,必要时控制这些风险。常用的风险识别方法头脑风暴法由项目小组根据项目目标、项目的制约因素和假设条件,在项目具有的历史资料以及过去的经验教训等基础上综合判断项目的可能风险。风险检查表列出了所有可能的与每一个风险因素有关的提问,使项目管理者可以集中识别常见的、已知的和可预测的风险,诸如软件规模、商业影响、客户特性、软件过程、开发技术、开发环境、开发人员等方面的风险。39举例:头脑风暴法举例:识别举办短期培训班项目的风险列出项目的工作分解结构;项目小组一起进行头脑风暴,对每一项任务进行讨论,识别所有可能的风险,防止遗漏重要的风险。40举例:头脑风暴法可能的风险确定培训项目题目选择不当,可能招不来学生,导致亏本。寻找培训讲师讲师可能生病或者临时有重要事情来不了。招生可能没有学员报名。授课投影仪可能出问题。结束课程学员不满意,大闹课堂。问题:还有哪些可能的风险?41举例:风险检查表42举例:风险检查表43风险分析风险分析是对已识别的风险进行估计和评价,确定风险发生的概率与后果。定性分析评估已识别出的项目风险的影响和可能性,并按照可能产生的影响进行排序。定量分析量化分析每一风险的概率及其对项目目标造成的后果,并得出每种风险的大小和严重程度等。软件开发风险通常包括性能、成本、支持和进度等,这些风险对项目目标可能产生的影响可以划分为可忽略的、轻微的、严重的、灾难性的等四个级别。44举例:软件项目风险分析45风险规划在识别和分析项目风险之后,项目管理者应该关注那些影响较大的风险,并制定出具体的风险应对策略。常用的风险应对策略包括风险规避、风险缓解、风险转移、风险接受等。风险规避是设法降低风险出现的可能性风险缓解是设法减少风险产生的影响风险转移是将风险转移给第三方风险接受是采取应急方案应对风险的发生46举例:风险应对策略47风险监控风险监控是跟踪和监视项目的执行状态,洞察由于人员、技术、环境等方面的变化而给项目目标实现产生的影响。监控风险发生的情况,及早发现风险事件的征兆和苗头监控风险管理计划的落实情况,确保该计划的有效实施风险监控可能产生的结果随机应变措施纠正行动变更请求修改风险应对计划48举例:风险监控类型潜在的迹象技术硬件或支持软件拖延交付,许多技术问题暴露出来人员员工士气低落,团队成员关系不融洽,工作分配不当组织组织内流言蜚语,缺少高层管理的支持工具团队成员不愿使用工具,抱怨CASE工具需求很多需求变更请求和客户怨言估算无法达到规定的进度,无法消除已发现的缺陷49内容提纲人员组织与管理软件项目组织形式、微软公司的开发团队项目沟通管理醒目沟通的复杂性与活动软件项目规划软件项目估算与计划软件风险管理风险识别、风险分析、风险规划、风险监控软件配置管理软件配置管理的概念与活动白盒测试及测试用例设计

语句覆盖判定覆盖条件覆盖

判定—条件覆盖条件组合覆盖路径覆盖。常用的白盒测试方法:

逻辑覆盖测试,基本路径测试,数据流测试,循环测试。

(1)逻辑覆盖:以程序内部的逻辑结构为基础设计测试用例的方法,关注对程序逻辑的覆盖程度。例:PROCEDURESAMPAL(A,B:REAL;VARX:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/AIF(A=2)OR(X>1)THENX:=X+1END;例:对下列子程序进行测试白盒测试及测试用例设计入口(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce521)语句覆盖:

被测程序中每个语句至少执行一次入口(A>1)AND(B=0)(A=2)OR(X>1)

返回X=X/AX=X+1FFTTabdce语句覆盖是最弱的逻辑覆盖测试数据预期结果B=0,A=2,X=4,,X=3白盒测试及测试用例设计532)判定覆盖(分支覆盖):使每个判定的真假分支都至少执行一次测试数据预期结果执行路径判定1判定2A=2,B=1,X=1x=2abeftA=3,B=0,X=3x=1acdtf两组测试用例可覆盖所有判定的真假分支,满足判定覆盖标准。

入口(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce白盒测试及测试用例设计54

入口(A>1)AND(B=0)(A=2)OR(X>1)

返回X=X+1FFTTabdceX=X/A测试数据预期结果执行路径覆盖的条件A=2,B=0,X=1X=1.5aceA>1,B=0,A=2,X≤AA=1,B=1,X=2X=3abeA≤1,B≠0,A≠2,X>1未覆盖d分支,条件覆盖通常比判定覆盖强,但有时不满足判定覆盖的要求,条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖3)条件覆盖:使每个判定的每个条件的可能取值至少执行一次A>1,B=0,A=2,XAA1,B0,A2,X>1白盒测试及测试用例设计.4)判定/条件覆盖

选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。首先选择路径进行判定覆盖测试,同时考虑条件覆盖,这时就可能得到满足判定/条件覆盖标准的最少的测试用例。白盒测试及测试用例设计56测试数据预期结果执行路径判定1判定2覆盖的条件A=2,B=0,X=4X=3acettA>1,B=0;A=2,X>AA=1,B=1,X=1X=1abdffA≤1,B≠0;A≠2,X≤1满足判定-条件覆盖标准的测试用例个数总是大于等于满足判定覆盖标准和条件覆盖标准的测试用例个数中的最大数。

4)判定/条件覆盖A>1,B=0,A=2,X

AA≤1,B≠0,A≠2,X>1判定1:T,F判定2:T,Fc

入口(A>1)AND(B=0)(A=2)OR(X>1)

返回FFTTabdeX=X/AX=X+1白盒测试及测试用例设计5)条件组合覆盖

条件组合覆盖:选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的条件的所有可能组合都至少出现一次。

必须注意的是,这里的条件组合是指每个判定中的条件的所有可能组合,而不是整个程序的所有条件的所有可能组合。白盒测试及测试用例设计58判定1中条件结果的所有可能组合有如下四种情况:(1)A>1,B=0;

(2)A>1,B≠0;

(3)A≤1,B=0;

(4)A≤1,B≠0;

入口(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce白盒测试及测试用例设计5)条件组合覆盖

59

入口(A>1)AND(B=0)

(A=2)OR(X>1)

返回X=X/AX=X+1FFTTabdce判定2中条件结果的所有可能组合有如下四种情况:(5)A=2,X>1(或X>A);

(6)A=2,x≤1(或X≤A);

(7)A≠2,X>1(或X>A);(8)A≠2,X≤1(或X≤A)。

5)条件组合覆盖

白盒测试及测试用例设计60测试数据预期结果执行路径判定1判定2覆盖的条件A=2,B=0,X=4X=3acett①A>1,B=0⑤A=2,X>AA=2,B=1,X=1X=2abeft②A>1,B≠0⑥A=2,X≤1A=1,B=0,X=2X=3abeft③A≤1,B=0⑦A≠2,X>1A=1,B=1,X=1X=1abdff④A≤

1,B≠0⑧A≠2,X≤

1条件组合覆盖是上述五种覆盖标准中最强的一种,满足条件组合覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、判定/条件覆盖、语句覆盖标准。然而,条件组合覆盖仍不能保证程序中所有可能的路径都被覆盖,如:acd没有经过。6)路径覆盖路径覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每条可能执行到的路径都至少经过一次(如包含环路,则每条环路至少经过一次)本例中所有可能执行的路径有:ace(判断1为“t”且判断2为“t”)abd(判断1为“f”且判断2为“f”)abe(判断1为“f”且判断2为“t”)acd(判断1为“t”且判断2为“f”)。白盒测试及测试用例设计开始

(A>1)AND(B=0)

(A=2)OR(X>1)

返回

X=X/A

X=X+1FFTTabdce测试数据预期结果执行路径判定1判定2A=2,B=0,X=4X=3acettA=3,B=0,X=3X=1acdtfA=1,B=0,X=2X=3abeftA=1,B=1,X=1X=1abdff

路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,但它未必能覆盖判定中条件结果的各种可能情况。它是一种比较强的覆盖标准,但不能替代条件覆盖、判定/条件覆盖和条件组合覆盖标准。6)路径覆盖白盒测试及测试用例设计

逻辑覆盖测试强调“运行这些测试用例时”覆盖了被测程序的哪些判定、条件或路径。语句覆盖:对程序中每个语句至少执行一次;适合于简单的顺序语句;分支覆盖:使每个判定的分支都至少执行一次,满足语句覆盖适合于简单的分支语句;逻辑覆盖小结:条件覆盖:使每个判定的每个条件的可能取值至少执行一次条件覆盖通常比判定覆盖强,但条件覆盖与判定覆盖不一定相互包含;分支/条件覆盖使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。满足判定/条件覆盖的测试用例一定也满足判定覆盖、条件覆盖、语句覆盖,但条件组合欠缺逻辑覆盖小结:条件组合覆盖使得被测程序的每个判定中的条件结果的所有可能组合都至少出现一次。条件组合是指每个判定中的条件结果的所有可能组合,而不是整个程序的所有条件结果的所有可能组合。缺陷:没有覆盖所有的程序路径。逻辑覆盖小结:路径覆盖使得被测程序的每条可能执行到的路径都至少经过一次。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,但它未必能覆盖判定中条件结果的各种可能情况。它是一种比较强的覆盖标准,但不能替代条件覆盖、判定/条件覆盖和条件组合覆盖标准。逻辑覆盖小结:根据程序代码的情况选择合适测试方法;根据测试的重点选择合适的测试方法;基本路径测试:

基本路径测试是TomMcCabe提出的一种白盒测试技术,这种方法步骤:

首先根据程序画出控制流图,并计算其区域数,然后确定一组独立的程序执行基本路径,最后为每一条基本路径设计一个测试用例。

在实际问题中,包含循环的程序其路径数往往非常多,测试常常难以做到覆盖程序中的所有路径,如何把测试的程序路径数压缩到一定的范围内?白盒测试及测试用例设计流图:由节点和边组成的一种简单的控制流表示方法。首先,将含复合条件的设计图转化为只含简单条件的设计图a)含复合条件的设计图a>borc>dx=1x=2tfy=0b)只含简单条件的设计图白盒测试及测试用例设计流图:其次设计图中一个连续的处理框(对应于程序中的顺序语句)序列和一个判定框(对应于程序中的条件控制语句)映射成流图中的一个节点;设计图中的箭头(对应于程序中的控制转向)映射成流图中的一条边。设计图中多个箭头的交汇点映射成流图中的一个节点:空节点

把流图中由节点和边组成的闭合部分称为一个区域,在计算区域数时,图的外部部分也作为一个区域。如流图的区域数为3在流图中独立路径至少包含一条在定义该路径之前未曾用到过的边。在基本路径测试时,独立路径的数目就是流图的区域数。例:导出程序流程图的拓扑结构-流图只包含独立路径的基本路径集path1:1-11path1:1-2-3-4-5-10-1-11path1:1-2-3-6-8-9-10-1-11path1:1-2-3-6-7-9-10-1-11区域个数=流图G的环路复杂度V(G),计算方法:

V(G)=区域个数=4V(G)=边的条数-节点个数+2=11-9+2=4V(G)=判定节点个数+1=3+1=4。等价类划分方法就是将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试用例。测试用例:该子集中的每个输入数据对发现软件中的错误都是等效的,可从每个子集中选取一组数据来测试程序。等价类划分等价类可分为:有效等价类:符合需求说明要求的合理的输入数据集合无效等价类:不符合需求说明要求的不合理的或非法的输入数据集合。划分等价类的标准:覆盖不相交代表性等价类划分划分等价类的规则:1)如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类。例:输入值是学生成绩,范围是0~1000100

有效等价类1≤成绩≤100无效等价类成绩>100

无效等价类成绩<0等价类划分2)如果输入条件规定了值的个数,则可以确定一个有效等价类(输入值的个数等于规定的个数)和两个无效等价类(输入值的个数小于规定的个数和大于规定的个数)。<33>3

有效等价类三角形边数=3无效等价类边数>3

无效等价类边数<3等价类划分3)如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值都是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)。专科本科硕士博士专科无效等价类:硕士本科博士等价类划分4)如果输入条件代表的集合是某个元素,则可定义一个有效等价类和一个无效等价类。例如:某项活动截至日期是07年12月31日07年12月31日前07年12月31日后活动正常进行

活动停止等价类划分5)如果输入条件规定了输入值必须遵循的规则,那么可以确定一个有效等价类(符合此规则)和若干个无效等价类(从各个不同的角度违反此规则)。例如,规定变量标识符以字母开头。有效等价类是“以字母开头”;无效等价类有“以数字开头”、“以标点符号开头”、“以特殊符号开头”……等。等价类划分等价类设计测试用例的方法:1.确定等价类根据软件规格说明,对每一个输入条件确定若干个有效等价类和若干个无效等价类。每一等价类和无效等价类规定一个唯一的编号,记录在下表中。等价类表输入条件有效等价类无效等价类(2)设计一个测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类;重复这一步骤,直到所有有效等价类均被测试用例所覆盖;(3)设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;等价类设计测试用例的方法:例1:某报表处理系统要求用户输入处理报表的日期,日期限制在2005年1月至2007年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。如何用等价类划分法设计测试用例,来测试程序的日期检查功能?等价类设计测试用例的方法:“报表日期”输入条件的等价类表输入等价类等价类无效等价类报表日期的类型及长度6位数字字符(1)有非数字字符(4)少于6个数字字符(5)多于6个数字字符(6)年份范围在2005~2007之间(2)小于2005(7)大于2007(8)月份范围在1~12之间(3)小于1(9)大于12(10)等价类设计测试用例的方法:第一步:等价类划分

对表中编号为(1),(2),(3)的3个有效等价类用一个测试用例覆盖:

测试数据期望结果覆盖范围200505等价类(1)(2)(3)输入有效第二步:为有效等价类设计测试用例等价类设计测试用例的方法:第三步:为每一个无效等价类设计至少一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论