讲义11软件编码与测试_第1页
讲义11软件编码与测试_第2页
讲义11软件编码与测试_第3页
讲义11软件编码与测试_第4页
讲义11软件编码与测试_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、软件编码与测试上海海事大学物流研究中心编码部分编码的目的编码的质量程序设计语言编码的标准编码的风格编码规范与标准编码的目的 编码模块的过程性描述源程序(不可执行的)(可执行的) 编码的过程熟悉所选语言的功能和程序开发环境 仔细阅读设计文档详细设计 弄清要编码的模块的外部接口与内部过程 编码的质量影响编码质量的因素编程语言编程准则编程风格编码质量的衡量可靠性可读性可测试性可维护性程序设计语言的选择选择编码语言的标准 应用领域 算法与计算复杂性 数据结构的复杂性 编码及维护的工作量与成本兼容性和可移植性 效率的考虑 编码的标准编制易于修改和维护的代码编制易于测试的代码必须将编程与编写文档的工作统一

2、起来编程中采用统一的标准和约定,降低程序复杂性适当划分编码部分,降低耦合度尽可能重用编码的风格在不影响性能的前提下,有效地编排和组织程序,提高程序质量。节俭化模块化简单化结构化文档化格式化编码的风格 (另一种归纳)追求“聪明”和“技巧”-提倡“简明”和“直接” 使用标准的控制结构 清晰的前提下求取效率 . Make it right before you make it faster. Make it clear before you make it faster. Keep it right when you make it faster.(求快不忘保持程序正确). Keep it simp

3、le to make it faster.(保持程序简单以求快). dont sacrifice clarity for “efficiency”.(书写清楚,不要为“效率”牺牲清楚)源程序的文档化(code documentation)有意义的变量名称 适当的注释 标准的书写格式用分层缩进的写法显示嵌套结构的层次;在注释段的周围加上边框;在注释段与程序段、以及不同程序段之间插入空行;每行只写一条语句;书写表达式时,适当使用空格或圆括号等作隔离符;编码规范与标准一定要编写可重用、标准化、完整错误处理编码的代码!测试部分测试的基本概念 白盒测试黑盒测试多模块程序的测试策略 测试的基本概念测试广义

4、上讲软件测试是对软件需求分析、设计说明和编码进行复审等软件质量保证工作。狭义上讲软件测试为了发现错误而执行程序的过程。换而言之,软件测试是根据软件开发各个阶段的规格说明和程序的内部结构而精心设计的一些测试用例,并利用这些测试用例去运行程序,发现错误。测试的基本概念 测试(testing)的目的与任务 目的:发现程序的错误 任务:通过执行程序,暴露潜在的错误 排错(debugging)的目的与任务 目的:定位和纠正错误 任务:消除软件故障,保证程序的可靠运行测试用例为测试程序而专门设计的数据测试的对象源程序/目标代码各开发阶段的资料需求规格说明概要设计说明详细设计说明其它相关文档测试的特性 挑剔

5、性 抱着为证明程序有错的目的去测试 复杂性 设计合适的测试用例 不彻底性 Dijkstra 一句名言:“程序测试只能证明错误的存在,但不能证明错误不存在” 经济性测试的种类 静态分析(不执行程序)静态分析器代码复审(Code Review)动态分析(执行程序)黑盒测试测试程序功能白盒测试测试程序结构测试的原则1、应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 2、测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。3、程序员应避免检查自己的程序。4、在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。5、充分注意测试中的错误群集现象。 6、严格执行测试计划,排除

6、测试的随意性。 7、应当对每一个测试结果做全面检查。 8、妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 测试信息流白盒测试白盒测试对软件的过程性细节做细致的检查,允许测试人员利用程序的内部逻辑结构及有关信息,设计或选择测试用例,对程序所有路径进行测试。#includevoid main()白盒测试 逻辑覆盖法(logic coverage testing) 用流程图来设计测试用例 逻辑覆盖测试的5种标准发现错误的能力弱强语句覆盖每条语句至少执行一次判定覆盖每一判定的每个分支至少执行一次条件覆盖每一判定中的每个条件,分别按“真”、“假”至少各执行一次判定/条件覆盖同时满足

7、判定覆盖和条件覆盖的要求条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次白盒测试基本路径法(path testing)主要思想:根据软件过程描述中的控制流程确定复杂性度量,然后用此度量定义基本路径集合,导出一组测试用例,保证每个基本路径至少执行一次。流程图流图环路复杂性度量V(G)流图把流程图中的结构化构件改用一般有向图表示。其中代表条件判断的结点称为谓词结点。流图符号顺序语句If 语句While语句Unit语句Case语句环路复杂性度量V(G)环路复杂性度量V(G)的意义:等于程序中独立路径的条数。三种计算方法:V(G)=流图中区域的个数V(G)=E-N+2E和

8、N分别是流图中的边数和结点数V(G)=P+1P是流图中的谓词结点数流图举例123678459101112,364,57891011黑盒测试黑盒测试测试对象看作黑盒,不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明,在特定的条件下,输入相应的数据,检查程序的输出是否符合它的功能说明。输入输出黑盒测试 等价分类法(equivalence partitioning)把输入数据的可能值划分为若干等价类 有效等价类和无效等价类每一无效等价类至少需要一个测试用例 例子 某工厂公开招工,规定报名者年龄应在16周岁至35周岁之间(到2002年3月30日止)即出生年月不在上述范围内,将拒绝接受,并显

9、示“年龄不合格”等出错信息。 “出生年月”的等价分类 输入数据有效等价类无效等价类出生年月6位数字字符 有非数字字符少于6个数字符多于6个数字符对应数值在196702198603之间198603月份对应数值在112之间等于“0” 12黑盒测试边界值分析法(boundary value analysis) 使被测程序在边界值及其附近运行,从而更有效地暴露程序中潜藏的错误 错误猜测法(error guessing) 猜测被测程序在哪些地方容易出错 针对可能的薄弱环节来设计测试用例对比测试法 多模块程序的测试策略 测试的阶段性 单元(模块)测试(unit testing)综合(集成)测试(integ

10、ration testing)确认测试(validation testing)系统测试(system testing)程序错误的类型 语法错误 结构性错误 功能性错误 接口错误 软件测试阶段一般测试过程分为四个阶段.单元测试单元测试单元测试集成测试确认测试系统测试被测试模块被测试模块被测试模块设计信息软件需求系统其它元素已经测试过的模块已集成的软件已确认的软件可交付的软件内部测试第三方测试出厂测试测试与开发过程的关系单元测试 目的 通过模块测试,使其代码达到模块说明书的需求 任务 对模块代码进行编译,发现并纠正其语法错误;进行静态分析,验证模块结构及其内部调用序列是否正确;确定模块的测试策略,

11、并据此设计一组测试用例和必要的测试软件;用选定的测试用例对模块进行测试,直至满足测试终止标准为止;编制单元测试报告。 综合测试 目的 将经过单元测试的模块逐步组装成具有良好一致性的完整的程序 任务 制订综合测试实施策略 确定综合测试的实施步骤,设计测试用例 逐一地添加模块,进行测试综合测试策略与步骤 自顶向下测试 宽度优先深度优先由底向上测试 混合方式测试(sandwich testing) 对上层模块采取自顶向下测试 对关键模块或子系统采取由底向上测试 自底向上增殖方式的例子 确认测试 目的 确认组装好的程序是否满足(SRS)的要求任务验证功能、性能、文档、人机界面等等。配置复审(confingura

温馨提示

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

评论

0/150

提交评论