《编码测试和维护》PPT课件.ppt_第1页
《编码测试和维护》PPT课件.ppt_第2页
《编码测试和维护》PPT课件.ppt_第3页
《编码测试和维护》PPT课件.ppt_第4页
《编码测试和维护》PPT课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章 编 码,编 码,编码概念 程序设计语言的选择 编码风格 编码工具,编码概念,编码把软件设计的结果翻译成计算机可以运行的形式(用某种程序设计语言书写的程序) 软件设计文档 源程序 (不可执行的) (可执行的),编码,程序设计实验P98,从实验结果可看出,要求清晰性好的程序一般效率较低,而要求效率高的程序往往清晰度不太好。 对于大多数模块,编码时应把简明清晰放在第一位。 如果个别模块要求特别高的效率,就应把具体的要求告诉程序员,以便做特殊的处理。,程序设计语言的选择,P102 选择适合应用领域的语言(表6.2 P104) 系统用户的要求 可以得到的软件工具 软件可移植性要求 人的因素 工程

2、规模,编码风格,代码文档化:注释 数据说明:统一规范 语句构造:简单、直接和可读性 I/O:人机交互、提示、出错处理 效率:程序运行时间、存储效率、 I/O效率,编码工具,编译程序 开发编译程序 优化编译程序 代码管理工具 MAKE SCCS RCS,第八章 测试,软件测试的重要性,无论怎样强调软件的重要性和它对软件可靠性的影响都不过分。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。 软件测试的工作量往往占软件开发总工作量的40%以上,在极端情况,测试那种关系生命安全的软件所花费的成本,可能相当于软件工程其他开发步骤总成本的35倍。,软 件 测 试,7.1

3、 软件测试概述 7.2 软件测试的组织与管理 7.3 测试方法,7.1 软件测试概述,软件测试的目的 软件测试的定义,软件测试的目的,基于不同的立场,存在着两种完全不同的测试目的。 从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。,软件测试目的,(1) 测试是程序的执行过程,目的在于发现错误; (2) 一个好的测试用例在于能发现至今未发现的错误; (3) 一个成功的测试是发现了至今未发现的错误的测试。,换言之,测试的目的

4、是 想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供了依据。 测试不能表明软件中不存在错误,它只能说明软件中存在错误。,软件测试的定义,为了发现程序中的错误而执行程序的过程。 P112,软件测试的定义(续),软件测试的依据是规格说明书、设计文档和使用说明书,如果设计有错误,测试的质量就难以保证。 较理想的做法是:对软件的开发过程,按软件工程各阶段形成的结果,分别进行严格审查。,7.2 软件测试的组织与管理,软件测试的人员

5、组织 软件测试的步骤,软件测试的人员组织,需求审查 系统分析员、软件开发管理者,软件设计、开发和测试人员以及用户 设计评审 系统分析员、软件设计人员、测试负责人 程序的测试 由具有一定的分析、设计和编程经验的专业人员组成,软件测试的步骤,单元测试 集成测试 确认测试 系统测试,单元测试,单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。,集成测试,集成测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。 非渐增式集成 渐增式集成,渐增式集成,自顶向下的渐增式集成 深度优先 广度优先 自底向上的渐增式集成,(1) 自顶向下

6、的集成方式,这种集成方式将模块按系统程序结构,沿控制层次自顶向下进行组装。 自顶向下的增殖方式在测试过程中较早地验证了主要的控制和判断点。 选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能。,(2) 自底向上的集成方式,这种组装的方式是从程序模块结构的最底层的模块开始组装和测试。,自顶向下增殖的方式和自底向上增殖的方式各有优缺点。 一般来讲,一种方式的优点是另一种方式的缺点。,确认测试,确认测试:则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。,系统测试,系统测试:把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试

7、。,7.3 测试方法,程序测试,静态测试,动态测试,代码会审,走查,办公桌检查,黑盒测试,白盒测试,黑盒测试,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 黑盒测试又叫做功能测试或数据驱动测试。,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受? 能否输出正确的结果? 是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误?,黑盒测试,用黑盒测试发现程序中的错误,必须在

8、所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。 但这是不可能的。,黑盒测试,假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 232232 264 如果测试一 组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。,白盒测试,此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。,

9、软件人员使用白盒测试方法,主要想对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。,白盒测试,对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。 给出一个小程序的流程图,它包括了一个执行20次的循环。,白盒测试,包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。,白盒测试,测试阶段的信息流,调试(Debug),软件调试是在进行了成功的测试之后才开始

10、的工作。它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。 调试活动由两部分组成: 确定程序中可疑错误的确切性质和位置。 对程序(设计,编码)进行修改,排除这个错误。,调试工作是一个具有很强技巧性的工作。 软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系。如果要找出真正的原因,排除潜在的错误,不是一件易事。 可以说,调试是通过现象,找出原因的一个思维分析的过程。,调试(Debug),调试的步骤,(1) 从错误的外部表现形式入手,确定程序中出错位置; (2) 研究有关部分的程序,找出错误的内在原因; (3) 修改设计和代码,以排除这个错

11、误; (4) 重复进行暴露了这个错误的原始测试或某些有关测试。,第八章 维 护,软件维护工作流程,决定软件可维护性的因素P153,1. 可理解性:软件可理解性表现为外来读者理解软件的结构、接口、功能和内部过程的难易程度。 2. 可测试性:诊断和测试的难易程度主要取决于软件容易理解的程度。良好的文档对诊断和测试是至关重要的。可用的测试工具和调试工具,以及以前设计的测试过程也都是非常重要的。 3. 可修改性:软件容易修改的程度设计原理和规则直接有关。耦合、内聚、局部化,控制域与作用域的关系等等,都影响软件的可修改性。 上述三个可维护性因素是紧密相关的。维护人员在正确理解一个程序之前根本不可能修改它;如果不能进行完善的诊断和测试,则表面正确的修改可能引进其他故障。,提高可维护性的方法,建立明确的软件质量目标 使用提高软件质量的技术和工具 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档,文 档,文档是影响软件可维护性的决定因素。由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档比程序代码更重要。,文档的分类p151,用户文档 用户手册 操作手册 维护修改建议 软件需求(规格)说明书 开发文档 项目开发计划 可行性研究报告 软件需求(规格)说明书 概要设计说明书 详细设计说明书,管理文档 测试计划 测试报告 开发进度月

温馨提示

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

评论

0/150

提交评论