软件工程 7. 实现.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 实现 编码 软件测试基础 单元测试 集成测试 确认测试 白盒测试技术 黑盒测试技术 调试 软件可靠性 本章知识结构 7.1 编码 选择程序设计语言 编码风格 选择程序设计语言 理想标准: 理想的模块化机制,以及可读性好的控制结构和数据结构; 完善的语言特点使编译程序能够尽可能多地发现程序中错误; 良好的独立编译机制。 实用标准: 系统用户的要求:系统由用户负责维护,则选用用户熟悉的语言书写程序; 用户应用环境可以使用的编译程序限制了可以选用的语言; 可以得到的软件工具:使用集成化的开发环境或者工具,容易实现和验证目标系统; 工程规模:基于软件规模,选择合适的程序设计语言; 程序员的知识:尽量选择开发团队内程序员共同熟悉的语言; 软件可移植性要求:满足系统的可移植的性能要求; 软件的应用领域:通用程序设计语言并不是对所有应用领域都适用。因此,选择语言时应该充分考虑目标系统的应用范围。 编码风格(一) 程序内部的文档: 标识符:确切的命名,并鲜明的标示所表示的程序对象;缩写规则一致; 注释: 在每个模块开始处有一段序言性的注解,简要描述模块的功能、主要算法、接口特点、重要数据以及开发简史; 程序中间与一段程序代码有关的注解,主要解释包含这段代码的必要性; 用空格或空行清楚地区分注解和程序。 布局:利用适当的阶梯形式使程序的层次结构清晰明显。 数据说明: 数据说明的次序标准化; 当多个变量名在一个语句中说明时,按字母顺序排列变量; 对于复杂的数据结构,则通过注解说明实现这个数据结构的方法和特点。 编码风格(二) 语句构造: 不要为节省空间而把多个语句写在同一行; 尽量避免复杂的条件测试; 尽量减少对“非”条件的测试; 避免大量使用循环嵌套和条件嵌套; 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。 输入输出: 检验所有的输入数据的合法性; 保持输入格式简单; 使用数据结束标记,不要求用户指定数据的数目; 明确提示交互式输入的请求,详细说明可用的选择或边界数值; 尽量保持输入格式一致; 设计良好的输出报表; 所有的输出数据加以说明。 编码风格(三) 效率: 程序运行时间: 简化算术的和逻辑的表达式; 仔细研究嵌套的循环,以确定是否有语句可以从内层往外移; 尽量避免使用多维数组; 尽量避免使用指针和复杂的表; 使用执行时间短的算术运算; 不要混合使用不同的数据类型; 尽量使用整数运算和布尔表达式; 使用有良好优化特性的编译程序,以自动生成高效目标代码。 存储器效率: 使用能保持功能域的结构化控制结构; 选用有紧缩存储器特性的编译程序,在必要时可以使用汇编语言; 输入输出效率: 所有输入输出都应该有缓冲,以减少用于通信的额外开销; 对二级存储器(如磁盘)应选用最简单的访问方法,以信息组为单位进行。 7.2 软件测试基础 软件测试的目标 软件测试准则 测试方法 测试步骤 测试阶段的信息流 软件测试目标/定义 测试是为了发现程序中的错误而执行程序的过程; 好的(成功的)测试(方案)是尽可能发现程序中潜在的错误; 软件测试的根本任务是尽可能多地发现并排除软件中潜在的错误,以保证软件的质量。 错误观念:测试的目的是为了证明程序是正确的。 软件测试准则 所有测试都应该能追溯到用户需求; 应该在软件开发过程的初期就制定出测试计划; 把Pareto原理应用到软件测试中。Pareto原理说明,测试所发现的80%错误很可能是由程序中的20%模块造成的; 从小规模测试开始,并逐步进行大规模测试; 穷举测试是不可能的。所谓穷举测试是指把程序的所有可能执行路径都检查一遍的测试; 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。所谓最佳测试效果是指最大可能性发现错误的测试。 软件测试方法 黑盒测试(功能测试) 测试者完全不知道程序的内部结构和处理过程,即相当于把程序看作一个黑盒子进行功能测试; 只检查程序功能是否能按照规格说明书的规定正常使用。如:程序是否能适当地接收输入数据并产生正确的输出信息;程序运行过程中能否保持外部信息的完整性。 白盒测试(结构测试) 测试者完全知道程序的结构和处理算法,相当于把程序看成装在一个透明的白盒子里; 按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。 软件测试步骤(一) 1.模块测试/单元测试 目的:保证每个模块作为一个单元能正确运行; 所发现的往往是编码和详细设计的错误。 2.子系统测试 经过单元测试的模块放在一起形成一个子系统来测试; 着重测试模块的接口,即模块相互间的协调和通信。 软件测试步骤(二) 3.系统测试/集成测试 经过测试的子系统装配成一个完整的系统来测试; 发现的往往是软件设计中的错误,也可能发现需求说明中的错误。 4.验收测试/

您可能关注的文档

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档