系统分析第八讲_第1页
系统分析第八讲_第2页
系统分析第八讲_第3页
系统分析第八讲_第4页
系统分析第八讲_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

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

文档简介

系统分析课件第八讲第1页,课件共165页,创作于2023年2月本章重点程序设计系统测试系统调试系统安装系统维护第2页,课件共165页,创作于2023年2月8.1概述8.1.1主要任务根据系统设计所提供的控制结构图、数据库设计、系统配置方案及详细设计资料,编制和调试程序、调试系统、进行系统切换等工作,将技术设计转化为物理实际系统。其主要任务是:1)系统实施准备2)系统平台的硬、软件安装与调试3)程序的编制与调试4)信息系统调试(软、硬件结合)5)原始数据的建立6)组织系统测试7)系统转换8)试运行、验收与维护9)项目管理与实施进度控制第3页,课件共165页,创作于2023年2月系统实施的内容与步骤系统实现准备项目管理与实施进度控制实施队伍的组织软、硬件和配套设施的准备信息流程、业务规程的组织与修订实现方法、工具和数据的准备人员培训与宣传教育培训程序编制数据采集系统测试及调试系统试运行系统转换与验收系统运行维护第4页,课件共165页,创作于2023年2月8.1.2系统实施阶段的输出文档程序文档程序设计报告源程序清单程序调试报告系统实施报告实施计划设备采购及安装验收报告业务规程及有关制度系统调试及试运行报告系统转换及验收报告系统的操作使用手册第5页,课件共165页,创作于2023年2月8.2程序模块的设计程序设计的基本任务根据系统设计说明书中关于模块的详细描述和处理过程的描述,选择合适的计算机语言来编制程序的工作。第6页,课件共165页,创作于2023年2月正确性:语法正确、逻辑正确、需求正确可维护性:可靠性:可理解性:效率:指计算机资源(如时间和空间)能否被有效地使用。对程序的基本要求:第7页,课件共165页,创作于2023年2月(1)结构化程序设计方法三种基本结构顺序选择循环模块化自顶向下,逐步求精程序设计方法第8页,课件共165页,创作于2023年2月(2)面向对象程序设计方法封装继承多态程序设计方法第9页,课件共165页,创作于2023年2月程序设计风格程序实际上也是一种供人阅读的文章,有一个文章的风格问题。应该使程序具有良好的风格。源程序文档化数据说明语句结构输入/输出方法第10页,课件共165页,创作于2023年2月1.源程序文档化符号名的命名程序的注释视觉组织空格、空行和移行第11页,课件共165页,创作于2023年2月2.数据说明为了使程序中数据说明更易于理解和维护,必须注意以下几点。

数据说明的次序应当规范化说明语句中变量安排有序化使用注释说明复杂数据结构第12页,课件共165页,创作于2023年2月3.语句结构语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。在一行内只写一条语句程序编写首先应当考虑清晰性程序要能直截了当地说明程序员的用意除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。首先要保证程序正确,然后才要求提高速避免使用临时变量而使可读性下降。第13页,课件共165页,创作于2023年2月程序设计语言程序编码阶段的任务是将软件的详细设计转换成用程序设计语言实现的程序代码,即把用PDL伪码写成的程序,翻译成计算机能接受的诸如FORTRAN、C、汇编之类程序设计语言的程序。因此,程序设计语言的性能和设计风格对于程序设计的效能和质量有着直接的关系。第14页,课件共165页,创作于2023年2月1.程序设计语言的基本成分数据部分:程序中能构造的数据类型,用以描述程序中使用的各种类型的数据,如变量、数组、指针、文件等。运算部分:程序中允许执行的运算,用以描述程序中所需执行的运算。控制部分:程序中允许使用的控制结构,用它们构造程序的控制逻辑。传输部分:程序中用以传输数据的方式,如输入/输出语句。第15页,课件共165页,创作于2023年2月2.程序设计语言的层次从三个层次讨论程序设计语言:语法

用来表示构成语言的各个记号间的组合规则。如C语言中for语句的构成规则为

for(表达式1;表达式2;表达式3)语句程序中出现的for语句必须符合上述构成规则。语法不涉及这些记号的含义,也不涉及使用者。第16页,课件共165页,创作于2023年2月语义

用来表示按照各种表示方法所表示的各个记号的特定含义。但它不涉及使用者。如在for语句中,表达式1设置循环初值,表达式2控制循环结束,表达式3增减循环变量。语句是循环体。for

语义为:计算表达式1;计算表达式2;若结果为0,循环结束,否则继续第步;执行循环体;计算表达式3;转向第步。第17页,课件共165页,创作于2023年2月语用

表示构成语言的各个记号和使用者之间的关系。例如,在某种程序设计语言中是否允许递归。若允许递归,递归层数的上界是多少,这些都是语用方面的问题。第18页,课件共165页,创作于2023年2月3.广泛使用的程序设计语言比较:1)汇编语言:面向机器,涉及计算机的结构,特别适用于一些实时的过程控制程序,能够设计出执行效率最优的程序代码。2)Fortran:是一个编译性语言,产生目标代码,运行速度快,支持局部变量的概念,因而能够实现信息隐蔽的原则,进行模块设计,主要用于科学计算领域。3)COBOL语言:面向商业应用的语言,能够定义和处理复杂的数据结构,具有较强的文件存取能力和报表处理能力。一定程序的支持模块化设计。第19页,课件共165页,创作于2023年2月4)C语言:具有低级语言的一些特点:访问寄存器进行位操作等,又具有高级语言的全部优点:支持变量局部化,定义和操作复杂的数据结构,能够进行模块化程序设计,可用于实时程序设计,系统软件设计和工具软件设计。5)Ada语言:具有C语言的主要优点外,还具备支持抽象数据类型的概念,即具有面向对象程序设计的一些特征,是军队的标准语言。第20页,课件共165页,创作于2023年2月6)4GL面向应用面向应用开发人员非过程化语言一体化语言高效率语言开放式语言第21页,课件共165页,创作于2023年2月4.程序设计语言的选择项目的应用领域用户的要求可以使用的编译程序或开发环境程序员的经验知识软件可移植性要求第22页,课件共165页,创作于2023年2月8.3软件测试软件测试的目的和原则测试方法与测试用例设计软件测试的策略软件测试的种类程序的静态测试第23页,课件共165页,创作于2023年2月

软件产品最大的成本是检测软件错误、修正软件错误的成本。在整个软件开发中,测试工作量一般占30%~40%,甚至≥50%。在人命关天的软件(如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍例:Exchange2000和Windows2000项目组人员构成项目组角色Exchange2000Windows2000项目经理约25人约250人开发人员约140人约1700人测试人员约350人约3200人测试/开发人员比例2.5:11.9:1第24页,课件共165页,创作于2023年2月软件测试背景软件是人编的—所以不完美实例:1994-1995,迪斯尼的狮子王系统不支持问题Intel的pentium处理器1994年浮点除法缺陷2000年8月28日,1.13MHZ处理器一个可能导致运行程序被挂起的执行指令问题1999年12月3日,美国航天局火星极地登陆飞船失踪1991年爱国者导弹防御系统系统时钟错误积累造成跟踪系统失去精确度千年虫,世界各地解决2000年错误超过数亿美元第25页,课件共165页,创作于2023年2月软件测试的问题:谁执行测试?开发者?单独的测试人员?两方面人员?测试什么?每个部分都测试?测试软件中高风险部分?什么时候测试?怎样测试?测试应进行到什么程度?

第26页,课件共165页,创作于2023年2月8.3.1软件测试的目的和原则

1、描述软件失败的术语软件错误软件缺陷软件故障软件失效第27页,课件共165页,创作于2023年2月2.软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求。第28页,课件共165页,创作于2023年2月Myers软件测试目的Myers在其名著“TheArtofSoftwareTest”中强调:测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。第29页,课件共165页,创作于2023年2月换言之,测试的目的是想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。第30页,课件共165页,创作于2023年2月“测试的目的是说明程序正确地执行它应有的功能”

这种说法正确吗?例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。

为说明其能正确执行它的功能,可使用“测试用例”:

(3,4,5)(5,5,6)(6,6,6)程序都能给出正确结果,是否就可认为程序是正确的?第31页,课件共165页,创作于2023年2月3.软件测试的原则应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。测试用例应由测试输入数据和对应的预期输出结果这两部分组成。程序员应避免检查自己的程序。在设计测试用例时,应包括合理的输入条件和不合理的输入条件。所有的测试都应当追溯到用户要求,导致程序不能满足用户要求的错误是严重错误。第32页,课件共165页,创作于2023年2月充分注意测试中的群集现象。经验表明,测试发现错误的80%很可能出自20%的模块,换句话说,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。严格执行测试计划,排除测试的随意性。应当对每一个测试结果做全面检查。妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。第33页,课件共165页,创作于2023年2月4.软件测试的对象软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。测试的两个方面:缺陷测试V&V(验证和确认)第34页,课件共165页,创作于2023年2月验证(Verification),检查软件生存期各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认(Validation),是比验证更广泛的过程活动。目的是想证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。Boehm给出两者的区分:验证:我们是否在正确地建造一个产品确认:我们是否在建成一个正确的产品第35页,课件共165页,创作于2023年2月

静态和动态的V&V需求规约概要设计形式规约详细设计程序原型静态验证动态确认第36页,课件共165页,创作于2023年2月5.测试信息流可靠性分析测试软件配置测试配置测试工具结果分析测试结果预期结果出错率数据预测的可靠性错误调试修改后的软件第37页,课件共165页,创作于2023年2月软件配置:软件需求规格说明、软件设计规格说明、源代码等;测试配置:测试计划、测试用例、测试程序等;测试工具:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库等等。测试结果分析:比较实测结果与预期结果,评价错误是否发生。第38页,课件共165页,创作于2023年2月排错(调试):对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。修正后的文档再测试:直到通过测试为止。通过收集和分析测试结果数据,对软件建立可靠性模型利用可靠性分析,评价软件质量。如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。第39页,课件共165页,创作于2023年2月6.测试模型软件开发过程是一个自顶向下,逐步细化的过程软件计划阶段定义软件范围(作用域)软件需求分析阶段建立软件信息域、功能和性能需求、约束等软件设计阶段建立软件体系结构、用户接口、数据结构和细部设计程序编码阶段把设计用某种程序设计语言转换成程序代码第40页,课件共165页,创作于2023年2月可行性研究需求分析概要设计详细设计编码与调试单元测试组装测试确认测试运行

详细设计说明书概要设计说明书需求规格说明书可行性报告·项目实施计划测试过程是依相反顺序安排的自底向上,逐步集成的过程。第41页,课件共165页,创作于2023年2月软件生存期各阶段间需保持的正确性用户要求用户:我要什么?运行结果计算机:程序运行得到的结果源程序程序员:我要让计算机什么做?设计说明书设计员:我要让软件做什么?需求说明书分析员:我可以提供什么?12345理解正确性表达正确性理解正确性设计正确性表达正确性理解正确性编码正确性运行正确性输入正确性相符吗?ABCDABCBCCB?第42页,课件共165页,创作于2023年2月7.软件测试流程测试流程:制定测试计划设计测试实施测试执行测试评估测试回归测试第43页,课件共165页,创作于2023年2月7.软件测试流程3)实施测试 准备测试环境 获得测试数据 测试脚本概要4)执行测试:执行测试用例并记录测试结果5)评估测试 覆盖评测:测试的完全程度 质量评测:测试过程中已发现的缺陷的评估。

第44页,课件共165页,创作于2023年2月8、测试的方法与技术软件测试技术的发展20世纪60年代:主要以代码调试为主;70年代:以演示软件系统的正确性为主;80年代90年代中期:主要以检查程序错误为主;90年代中期以后:开始更注重软件质量特性的整体评估目前软件测试最主要的目标是评估软件功能,但一般也要测试软件的非功能属性。

第45页,课件共165页,创作于2023年2月测试技术分类按功能分:白盒测试(Whitetest)黑盒测试(BlackTest)按测试时间来分:单元测试(UnitTest)集成测试(IntegrateTest)确认测试(ValidationTest)系统测试(SystemTest)

按运行状态分:静态测试(Static

Test)动态测试(DynamicTest)

按方向来分:正向测试逆向测试

第46页,课件共165页,创作于2023年2月8.3.2测试方法与测试用例设计黑盒测试等价类划分边界值分析错误推测法因果图接口测试白盒测试逻辑覆盖判定结构分析循环结构分析基本路径覆盖一、测试方法第47页,课件共165页,创作于2023年2月黑盒测试(Black-BoxTest)这种方法是把测试对象看做一个黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。黑盒测试叫做功能测试或数据驱动测试。第48页,课件共165页,创作于2023年2月黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?

第49页,课件共165页,创作于2023年2月动态黑盒测试

闭着眼睛测试软件软件输入不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。输出第50页,课件共165页,创作于2023年2月白盒测试(White-BoxTest)此方法把测试对象看做一个玻璃盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。第51页,课件共165页,创作于2023年2月软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次—路径覆盖测试;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次—逻辑覆盖测试;在循环的边界和运行界限内执行循环体—控制流测试;测试内部数据结构的有效性—数据流测试、领域测试等。第52页,课件共165页,创作于2023年2月动态白盒测试

带上X光眼镜测试软件??????????????3581322.293419985680302829734315250*(1+0.015)*((1+0.015)^360-1)/0.015250*(1+0.015)*((1+0.015)^360-1)/0.015假如知道一个盒子包含一台计算机,而另一个盒子是人用纸笔计算,就会选择不同的测试用例第53页,课件共165页,创作于2023年2月循环20次第54页,课件共165页,创作于2023年2月黑盒测试与白盒测试比较黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。

白盒测试是根据程序内部逻辑结构进行测试。CBADA-只能用黑盒测试发现的错误B-只能用白盒测试发现的错误C-两种方法都能发现的错误D-两种方法都不能发现的错误黑盒测试与白盒测试能发现的错误第55页,课件共165页,创作于2023年2月

黑盒测试与白盒测试优缺点比较

黑盒测试

白盒测试优点缺点性质①适用于各阶段测试②从产品功能角度测试③容易入手生成测试数据①可构成测试数据使特定程序部分得到测试②有一定的充分性度量手段③可或较多工具支持①某些代码得不到测试②如果规格说明有误,则无法发现③不易进行充分性测试①不易生成测试数据(通常)②无法对未实现规格说明的部分进行测试③工作量大,通常只用于单元测试,有应用局限是一种确认技术,回答“我们在构造一个正确的系统吗?”是一种验证技术,回答“我们在正确地构造一个系统吗?”第56页,课件共165页,创作于2023年2月二、白盒测试用例设计逻辑覆盖判定结构分析循环结构分析基本路径测试第57页,课件共165页,创作于2023年2月1、逻辑覆盖语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。第58页,课件共165页,创作于2023年2月(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce第59页,课件共165页,创作于2023年2月

覆盖标准:使得程序中每个语句至少都能被执行一次。选择用例:[(2,0,4),(2,0,3)]用例格式,由输入数据和预期的输出结果两部分组成:[输入(A,B,X),输出(A,B,X)]1)语句覆盖a

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1bcdeYNYNX:=X/AX:=X+1第60页,课件共165页,创作于2023年2月覆盖标准使得程序中每个判定至少为TRUE或FALSE各一次。覆盖情况:共有两个判定,应执行路径:ace∧abd 或:acd∧abe选择用例,⑴⑵两组用例中任选择其一⑴[(2,0,4),(2,0,3)]ace[(1,1,1),(1,1,1)]abd⑵[(2,1,1),(2,1,2)]abe[(3,0,3),(3,1,1)]acd

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN2)判定覆盖注:符号∧表示“AND”运算,符号∨表示“OR”运算。第61页,课件共165页,创作于2023年2月覆盖标准:使得判定中的每个条件获得各种可能的结果。应满足以下覆盖情况:判定一:A>1,A≤1,B=0,B≠0判定二:A=2,A≠2,X>1,X≤1选择用例:[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)]注意:[(1,0,3),(1,0,4)][(2,1,1),(2,1,2)]满足条件覆盖,但不满足判断覆盖。3)条件覆盖

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN判定一判定二第62页,课件共165页,创作于2023年2月覆盖标准: 同时满足判定覆盖和条件覆盖。即使得程序中每个判定至少为TRUE或FALSE各一次,同时使得判定中的每个条件获得各种可能的结果。应满足以下覆盖情况:条件:A>1,A≤1,B=0,B≠0 A=2,A≠2,X>1,X≤1应执行路径ace∧abd 或acd∧abe选择用例:[(2,0,4),(2,0,3)](ace)[(1,1,1),(1,1,1)](abd)4)判定/条件覆盖

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN第63页,课件共165页,创作于2023年2月覆盖标准:使得每个判定中条件的各种可能组合都至少出现一次。满足以下覆盖情况:①A>1,B=0②A≤1,

B≠0③A>1,B≠0④A≤1,B=0⑤A=2,X>1

⑥A=2,X≤1

⑦A≠2,X>1

⑧A≠2,X≤1选择用例:[(2,0,4),(2,0,3)]覆盖情况①⑤[(2,1,1),(2,1,2)]覆盖情况③

⑥[(1,0,3),(1,0,4)]覆盖情况④

⑦[(1,1,1),(1,1,1)]覆盖情况②

⑧5)条件组合覆盖}判定一}判定二A>1X:=X/A

A=2X:=X+1abcdeB=0

X>1YNYNYNYN第64页,课件共165页,创作于2023年2月6)路径测试测试用例

通过路径【(2,0,4),(2,0,3)】ace(L1)

【(1,1,1),(1,1,1)】abd

(L2)

【(1,1,2),(1,1,3)】abe

(L3)

【(3,0,3),(3,0,1)】acd

(L4)覆盖标准:设计足够的测试用例,覆盖程序中所有可能的路径。

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN第65页,课件共165页,创作于2023年2月二、黑盒测试技术等价划分测试:边界值分析:基于图的测试:比较测试:正交数组测试:主要介绍基于对象关系的测试序列,用以发现错误利用冗余系统,对不同版本的测试比较对输入域采用正交数组测试,用比穷举输入域少得多的案例测试第66页,课件共165页,创作于2023年2月1.等价类划分测试等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数代表性的数据做为测试用例。使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。第67页,课件共165页,创作于2023年2月第一步:划分等价类

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其他值的测试。 等价类的划分有两种不同的情况:

①有效等价类:是对于程序规格说明来说,是合理的,有意义的输入数据构成的集合。

②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。第68页,课件共165页,创作于2023年2月划分等价类的原则:如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。如,在程序规格说明中对输入条件有一句话:

“……项数可以从1到999……”

则有效等价类是“1≤项数≤999”

两个无效等价类是“项数<1”或“项数>999”。第69页,课件共165页,创作于2023年2月在数轴上表示成:如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,在Pascal语言中对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。无效等价类有效等价类无效等价类1999第70页,课件共165页,创作于2023年2月如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。第71页,课件共165页,创作于2023年2月

因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

例如,Pascal语言规定“一个语句必须以分号‘;’结束”。这时可以确定一个有效等价类“以‘;’结束”,若干个无效等价类“以‘:’结束”、“以‘,’结束”、“以‘’结束”、“以LF结束”第72页,课件共165页,创作于2023年2月将程序的输入按数据类划分,根据数据类设计等价类的测试案例•输入是指定范围----定义一个等价的有效输入范围定义两个等价的无效输入范围•输入是特定值-----定义一个等价的有效输入值定义两个等价的无效输入值 •输入是某集合的元素---定义一个等价的有效输入元素定义一个等价的无效输入元素•输入是布尔值----定义一个等价的有效输入布尔值定义一个等价的无效输入布尔值总结:第73页,课件共165页,创作于2023年2月第二步:确立测试用例

在确立了等价类之后,建立等价类表,列出所有划分出的等价类。输入条件有效等价类无效等价类………………………………………………………………再从划分出的等价类中按以下原则选择测试用例:第74页,课件共165页,创作于2023年2月为每一个等价类规定一个唯一编号;设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。第75页,课件共165页,创作于2023年2月

用等价类划分法设计测试用例的实例在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。”并且规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至少必须有一个。”

第76页,课件共165页,创作于2023年2月用等价类划分方法,建立输入等价类表:输入条件有效等价类无效等价类说明语句中标识符个数1个(1),多个(2)0个(3)标识符中字符数1~8个(4)0个(5),>8个(6),>80个(7)标识符组成字母(8),数字(9)非字母数字字符(10),保留字(11)标识符第一个字符字母(12)非字母(13)标识符使用先说明后使用(14)未说明就使用(15)第77页,课件共165页,创作于2023年2月下面选取了9个测试用例,它们覆盖了所有的等价类。①VARx,T1234567:REAL;

BEGINx:=3.414;

T1234567:=2.732;

...…

(1),(2),(4),(8),(9),(12),(14)

②VAR:REAL;

(3)

③VARx,:REAL;

(5)

④VART12345678:REAL;

(6)第78页,课件共165页,创作于2023年2月⑤VART12345......:REAL;

(7)

多于80个字符⑥VART$:CHAR;

(10)⑦VARGOTO:INTEGER;

(11)⑧VAR2T:REAL;

(13)⑨VARPAR:REAL;

(15)

BEGIN......

PAP:=SIN(3.14*0.8)/6;第79页,课件共165页,创作于2023年2月例:某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。

如何用等价类划分法设计测试用例,

来测试程序的日期检查功能?第80页,课件共165页,创作于2023年2月第一步:等价类划分输入条件有效等价类无效等价类

报表日期的类型及长度6位数字字符(1)有非数字字符

(4)少于6个数字字符

(5)多于6个数字字符

(6)年份范围在2003~2008之间

(2)小于2003

(7)大于2008

(8)月份范围在1~12之间(3)“报表日期”输入条件的等价类表小于1

(9)大于12

(10)第81页,课件共165页,创作于2023年2月第二步:为有效等价类设计测试用例

测试数据期望结果覆盖范围200306等价类(1)(2)(3)输入有效对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖:第82页,课件共165页,创作于2023年2月第三步:为每一个无效等价类设计至少一个测试用例

测试数据期望结果覆盖范围003MAY等价类(4)输入无效20035等价类(5)输入无效2003005等价类(6)输入无效200105等价类(7)输入无效200905等价类(8)输入无效200300等价类(9)输入无效200313等价类(10)输入无效不能出现相同的测试用例本例的10个等价类至少需要8个测试用例第83页,课件共165页,创作于2023年2月例:对招干考试系统“输入学生成绩”子模块设计测试用例招干考试分三个专业,准考证号第一位为专业代号,如:1-行政专业,2-法律专业,3-财经专业.

行政专业准考证号码为:110001~111215法律专业准考证号码为:210001~212006财经专业准考证号码为:310001~314015第84页,课件共165页,创作于2023年2月例:准考证号码的等价类划分有效等价类:

(1)110001~111215(2)210001~212006(3)310001~314015

无效等价类:

(4)-

~110000(5)111216~210000(6)212007~31000(7)314016~+第85页,课件共165页,创作于2023年2月2.边界值分析边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

第86页,课件共165页,创作于2023年2月如果在悬崖峭壁边可以自信地安全行走,平地就不在话下。如果软件在能力达到极限时能够运行,那么在正常情况下就不会出什么问题。软件边界与悬崖很类似第87页,课件共165页,创作于2023年2月边界值分析法与等价类划分法区别(1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况被测试子域测试内点测试外点第88页,课件共165页,创作于2023年2月

A、先划分等价类,划分等价类的方法与等价分类法基本相同,不同的是在划分等价类时,不仅要考虑输入条件,还要考虑输出条件。

B、选择测试用例,测试等价类边界。往往对同一边界需要选择一个或者多个测试用例。边值分析法分析步骤:第89页,课件共165页,创作于2023年2月按照输入值范围的边界。例如:输入值的范围是-1.0至1.0,则可选择用例–1.0、1.0、-1.001、1.001。按照输入/输出值个数的边界。例如:输入文件可有1-255个记录,则设计用例:文件的记录数为0个、1个、255个、256个。输出值域的边界。例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。输入/输出有序集(如顺序文件、线性表)的边界。应选择第一个元素和最后一个元素。边值分析法边界选择原则:第90页,课件共165页,创作于2023年2月输入条件报表日期的类型及长度1个数字字符5个数字字符7个数字字符有1个非数字字符全部是非数字字符6个数字字符显示出错显示出错显示出错显示出错显示出错输入有效日期范围月份范围“报表日期”边界值分析法测试用例测试用例说明测试数据期望结果选取理由52003520030052003.5MAY---200305月份为1月月份为12月月份<1月份>12200301200312200300200313200301200812200300200813输入有效输入有效显示出错显示出错输入有效输入有效显示出错显示出错在有效范围边界上选取数据仅有1个合法字符比有效长度少1比有效长度多1只有1个非法字符6个非法字符类型及长度均有效最小日期最大日期刚好小于最小日期刚好大于最大日期最小月份最大月份刚好小于最小月份刚好大于最大月份第91页,课件共165页,创作于2023年2月3.错误推测法人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。第92页,课件共165页,创作于2023年2月

错误推测法是一种简单易行的黑盒法,但由于该方法有较大的随意性,主要依赖于测试者的经验,因此通常作为一种辅助的黑盒测试方法。例1对一个排序的程序,可能出错的情况有:

1、输入表为空的情况。

2、输入表中只有一个一行。

3、输入表中所有的行都具有相同的值。

4、输入表已经排好序。错误推测法第93页,课件共165页,创作于2023年2月4、使用各种测试方法的综合策略在任何情况下都必须使用边界值分析法。用这种方法设计出测试用例发现程序错误的能力最强。必要时用等价类划分法补充一些测试用例。用错误推测法再追加一些测试用例。对照程序逻辑,检查已有测试用例的逻辑覆盖程度。如果未达到要求的覆盖标准,应再补充足够的测试用例。如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。第94页,课件共165页,创作于2023年2月8.3.3软件测试的策略测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试。开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。第95页,课件共165页,创作于2023年2月被测模块单元测试集成测试被测模块单元测试被测模块单元测试确认测试系统测试系统其他元素软件需求设计信息已集成的软件已确认的软件可交付的软件已经过测试的模块第96页,课件共165页,创作于2023年2月确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。第97页,课件共165页,创作于2023年2月一.单元测试(UnitTesting)单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。第98页,课件共165页,创作于2023年2月1)单元测试的内容在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。

第99页,课件共165页,创作于2023年2月模块出错处理独立路径模块接口局部数据结构边界条件第100页,课件共165页,创作于2023年2月2)单元测试的步骤模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其他模块。

驱动模块(driver)

桩模块(stub)──存根模块第101页,课件共165页,创作于2023年2月被测模块驱动模块桩模块桩模块桩模块测试用例测试用例第102页,课件共165页,创作于2023年2月如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。第103页,课件共165页,创作于2023年2月二.集成测试(IntegratedTesting)集成测试(即组装测试、联合测试)通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;全局数据结构是否有问题;第104页,课件共165页,创作于2023年2月

各个子功能组合起来,能否达到预期要求的父功能;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。子系统的集成测试特别称为部件测试,它所做的工作是要找出集成后的子系统与系统需求规格说明之间的不一致。第105页,课件共165页,创作于2023年2月

通常,把模块组装成为系统的方式有两种:

一次性集成方式增量式集成方式1)一次性集成方式(bigbang)它是一种非增量式集成方式。也叫做整体拼装。使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块集成在一起进行测试,最终得到要求的软件系统。第106页,课件共165页,创作于2023年2月ACDBEFd1Bs1d2Ds2d3Cd4Ed5FAs4s5s3ACDBEF原来结构分模块测试一次性集成第107页,课件共165页,创作于2023年2月2)增量式集成方式这种集成方式又称渐增式组装。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统在组装的过程中边连接边测试,以发现连接过程中产生的问题通过增量逐步加入,组装成为要求的软件系统。

第108页,课件共165页,创作于2023年2月(1)自顶向下的增量方式这种集成方式将模块按系统程序结构,沿控制层次自顶向下进行组装。自顶向下的增量方式在测试过程中较早地验证了主要的控制和判断点。选用按深度方向集成的方式,可以首先实现和验证一个完整的软件功能。第109页,课件共165页,创作于2023年2月As2s3s1As2s3Bs4ACs3Bs4ACDBs4s5ACDBEs5ACDBEF第110页,课件共165页,创作于2023年2月(2)自底向上的增量方式这种集成的方式是从程序模块结构的最底层的模块开始集成和测试。因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要桩模块。在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。

第111页,课件共165页,创作于2023年2月自顶向下增量的方式和自底向上增量的方式各有优缺点。一般来讲,一种方式的优点是另一种方式的缺点。d4BEd2DFd1Ed2Cd3FACDBEF第112页,课件共165页,创作于2023年2月(3)混合增量式测试衍变的自顶向下的增量测试首先对输入/输出模块和引入新算法模块进行测试;再自底向上组装成为功能相当完整且相对独立的子系统;然后由主模块开始自顶向下进行增量测试。第113页,课件共165页,创作于2023年2月自底向上自顶向下的增量测试首先对含读操作的子系统自底向上直至根结点模块进行集成和测试;然后对含写操作的子系统做自顶向下的集成与测试。回归测试这种方式采取自顶向下的方式测试被修改的模块及其子模块;然后将这一部分视为子系统,再自底向上测试。第114页,课件共165页,创作于2023年2月关键模块问题在集成测试时,应当确定关键模块,对这些关键模块及早进行测试。关键模块的特征:满足某些软件需求;在程序的模块结构中位于较高的层次(高层控制模块);较复杂、较易发生错误;有明确定义的性能要求。第115页,课件共165页,创作于2023年2月三.确认测试(ValidationTesting)确认测试又称有效性测试。任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。第116页,课件共165页,创作于2023年2月选择测试人员构造测试用例实际运行测试软件计划用户文档开发文档源程序文本支持环境软件配置审查有效性测试管理机构裁决软件配置测试报告专家鉴定会交付用户运行维护第117页,课件共165页,创作于2023年2月1)进行有效性测试(黑盒测试)有效性测试是在模拟的环境(可能就是开发的环境)下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。首先制定测试计划,规定要做测试的种类。还需要制定一组测试步骤,描述具体的测试用例。通过实施预定的测试计划和测试步骤,确定软件的特性是否与需求相符;所有的文档都是正确且便于使用;第118页,课件共165页,创作于2023年2月同时,对其他软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试在全部软件测试的测试用例运行完后,所有的测试结果可以分为两类:

测试结果与预期的结果相符。这说明软件的这部分功能或性能特征与需求规格说明书相符合,从而这部分程序被接受。

测试结果与预期的结果不符。这说明软件的这部分功能或性能特征与需求规格说明不一致,因此要为它提交一份问题报告。第119页,课件共165页,创作于2023年2月2)软件配置复查软件配置复查的目的是保证软件配置的所有成分都齐全;各方面的质量都符合要求;具有维护阶段所必需的细节;而且已经编排好分类的目录。应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。第120页,课件共165页,创作于2023年2月3)验收测试(AcceptanceTesting)在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用生产中的实际数据进行测试。第121页,课件共165页,创作于2023年2月在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。确认测试应交付的文档有:确认测试分析报告最终的用户手册和操作手册项目开发总结报告

第122页,课件共165页,创作于2023年2月四.系统测试(SystemTesting)系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。第123页,课件共165页,创作于2023年2月α测试和β测试在软件交付使用后,用户将如何实际使用程序,对于开发者来说是无法预测的。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FURPS(即功能、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。第124页,课件共165页,创作于2023年2月α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。第125页,课件共165页,创作于2023年2月在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。

β测试主要衡量产品的FURPS。着重于产品的支持性,包括文档、客户培训和支持产品生产能力。只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。第126页,课件共165页,创作于2023年2月8.3.4调试(Debug)软件调试是在进行了成功的测试之后才开始的工作。它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。调试活动由两部分组成:确定程序中可疑错误的确切性质和位置。对程序(设计,编码)进行修改,排除这个错误。调试工作是一个具有很强技巧性的工作。第127页,课件共165页,创作于2023年2月软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系。如果要找出真正的原因,排除潜在的错误,不是一件易事。可以说,调试是通过现象,找出原因的一个思维分析的过程。第128页,课件共165页,创作于2023年2月1.

调试的步骤从错误的外部表现形式入手,确定程序中出错位置;研究有关部分的程序,找出错误的内在原因;修改设计和代码,以排除这个错误;重复进行暴露了这个错误的原始测试或某些有关测试。

第129页,课件共165页,创作于2023年2月从技术角度来看,查找错误的难度在于:现象与原因所处的位置可能相距甚远。当其他错误得到纠正时,这一错误所表现出的现象可能会暂时消失,但并未实际排除。现象实际上是由一些非错误原因(例如,舍入不精确)引起的。现象可能是由于一些不容易发现的人为错误引起的。错误是由于时序问题引起的,与处理过程无关。第130页,课件共165页,创作于2023年2月现象是由于难于精确再现的输入状态(例如,实时应用中输入顺序不确定)引起。现象可能是周期出现的。在软、硬件结合的嵌入式系统中常常遇到。第131页,课件共165页,创作于2023年2月8.5.1几个名称项目与产品转换与发布客户化与初始化8.5系统转换第132页,课件共165页,创作于2023年2月8.5.2转换方式1.直接转换2.并行转换3.分段转换老系统新系统并行运行时间时间老系统新系统转换点时间老系统新系统转换过渡时间时间第133页,课件共165页,创作于2023年2月8.5.3系统转换注意的问题新系统的投入运行运行需要大量的基础数据,这些数据的整理与录入工作量大,应及时准备。系统转换不仅是机器的转换、程序的转换,更重要的是人们工作方式的转换,要提前做好人员的培训。系统运行时会出现一些局部性的问题,这是正常的现象,应做好记录并及时解决。第134页,课件共165页,创作于2023年2月8.6系统维护系统维护是指系统交付使用以后,为了改正错误或满足新的需求而修改系统的过程。5.6.1系统维护的目的对系统进行维护的目的是为了纠正系统开发过程未发现的错误,增强、改进和完善系统的功能和性能,以适应系统的发展,延长系统的寿命。第135页,课件共165页,创作于2023年2月遗留系统危机百分比20世纪70年代早期20世纪80年代早期20世纪80年代晚期20世纪90年代早期专用于系统演化的系统成本成本第136页,课件共165页,创作于2023年2月遗留系统更换遗留系统是有风险的业务策略,因为:遗留系统几乎没有完整的描述业务过程与遗留系统的操作方式紧密相关重要的业务规则隐藏在系统内部开发新系统有风险继续使用遗留系统,进行变更费用更高,因为:系统是由不同团队实现的,程序设计风格不一致系统使用过时的语言编写系统文档不充分、过时经多年维护,系统结构已破坏系统进行过优化,不可读系统数据过时、不完整第137页,课件共165页,创作于2023年2月演化遗留系统信息系统生命周期时间功能业务需求构建系统维护现代化改造第二个维护期第二个系统的维护系统替换系统1系统2第138页,课件共165页,创作于2023年2月8.6.2系统维护的类型完善性维护(PerfectiveMaintenance)纠错性维护(CorrectiveMaintenance)适应性维护(AdaptiveMaintenance)预防性维护(PreventiveMaintenance)一、按照不同的维护目的,维护工作可分成4类。第139页,课件共165页,创作于2023年2月序号维护的种类维护的内容1纠错性维护产品或项目中存在缺陷或错误,在测试和验收时未发现,到了使用过程中逐渐暴露出来,需要改正2适应性维护这类维护是为了产品或项目适应变化了的硬件、系统软件的运行环境,如系统升级3完善性维护这类维护是为了给软件系统增加一些新的功能,使产品或项目的功能更加完善与合理,又不致于对系统进行伤筋动骨的改造,这类维护占维护活动的大多数情况4预防性维护这类维护是为了提高产品或项目的可靠性和可维性,有利于系统的进一步改造或升级换代第140页,课件共165页,创作于2023年2月维护在系统生

存期所占比例维护工作量70%开发工作量30%适应性维护25%改正性维护20%完善性维护50%其他维护5%三类维护占总维护比例第141页,课件共165页,创作于2023年2月8.6.3系统的可维护性所谓系统的可维护性,就是维护人员理解、掌握和修改被维护软件的难易程度。可维护性的系统,它应具备下列四条性质:

(1).可理解性。

(2).可测试性。

(3).可修改性。

(4).可移植性。第142页,课件共165页,创作于2023年2月系统的可维护性序号名称可维护性内容1可理解性软件模块化、结构化,代码风格化,文档清晰化2可测试性文档规范化,代码注释化,测试回归化3可修改性模块间低耦合,高内聚,程序块的单入口和单出口,数据局部化,公用模块组件化4可移植性例如用ODBC、ADO来屏蔽对数据库管理系统的依赖,用三层结构来简化对客户浏览层的维护第143页,课件共165页,创作于2023年2月8.6.4维护的副作用(四个副作用)序号维护的方式副作用的表现1修改编码使编码更加混乱,程序结构更不清晰,可读性更差,而且有连锁反映2修改数据结构数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数据冗余与数据不一致方面,可能顾此失彼3修改用户数据需要与用户协商,一旦有疏忽,可使系统发生意外4修改文档对非结构化维护不适应,对结构化维护要严防程序与文档的不配匹第144页,课件共165页,创作于2023年2月维护的副作用

(1).很容易出现打补丁的现象;

(2).可能在维护中出现连锁反映现象。为了减少维护的工作量,防止维护的副作用,人们在长期的实践中积累了如下的经验:

(1).用CMMI体系来改善软件企业的软件过程管理;

(2).在开发和维护中,尽量使用CASE工具;

(3).维护完成后,一定要进行回归测试。第145页,课件共165页,创作于2023年2月8.6.5维护中的典型问题(1)难以跟踪软件版本的进化过程,软件的变化未在文档中反映出来.(2)难以跟踪软件的创建过程.(3)难以读懂他人程序.(4)无文档或不全.(5)软件人员流动性大.(6)设计时未考虑修改需要,修改困难.(7)维护工作无吸引力,缺乏成就感.第146页,课件共165页,创作于2023年2月8.7信息系统的监理和评估8.7.1信息系统监理1.信息系统监理的含义信息系统监理,是指具备相应资质的第三方,根据信息系统的开发规律以及国家法律法规、开发合同和监理合同的要求,对信息系统开发过程中的行为、事件和文档进行审查和监督,为用户方提供与项目有关的信息和信息处理能力的支持,以确保信息系统建设成功。工信部《信息系统工程监理暂行规定》第147页,课件共165页,创作于2023年2月8.7信息系统的监理和评估8.7.1信息系统监理2.信息系统监理的模式咨询式里程碑式监理全程式监理第148页,课件共165页,创作于2023年2月8.7信息系统的监理和评估8.7.1信息系统监理3.信息系统监理的内容协助用户组织信息系统建设的招标、评标协助用户与中标单位签订合同监督管理开发合同的履行根据监理合同的要求,为用户提供技术服务监理合同终止后,向用户提供监理工作报告。第149页,课件共165页,创作于2023年2月8.7信息系统的监理和评估8.7.1信息系统监理4.信息系统监理的程序和计划组建监理机构编制监理计划实施监理参与工程验收并签署监理意

温馨提示

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

最新文档

评论

0/150

提交评论