版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编码测试复用与维护第1页,共55页,2022年,5月20日,20点30分,星期二编码的目的 编码模块的过程性描述一一一源程序(不可执行的)(可执行的) 编码的过程熟悉所选语言的功能和程序开发环境 仔细阅读设计文档详细设计 弄清要编码的模块的外部接口与内部过程 第2页,共55页,2022年,5月20日,20点30分,星期二编码的风格追求“聪明”和“技巧”-提倡“简明”和“直接” 使用标准的控制结构 清晰的前提下求取效率 . Make it right before you make it faster. Make it clear before you make it faster. Keep
2、it right when you make it faster.(求快不忘保持程序正确). Keep it simple to make it faster.(保持程序简单以求快). dont sacrifice clarity for “efficiency”.(书写清楚,不要为“效率”牺牲清楚)第3页,共55页,2022年,5月20日,20点30分,星期二源程序的文档化 (code documentation)有意义的变量名称 适当的注释 标准的书写格式用分层缩进的写法显示嵌套结构的层次;在注释段的周围加上边框;在注释段与程序段、以及不同程序段之间插入空行;每行只写一条语句;书写表达式时
3、,适当使用空格或圆括号等作隔离符; 第4页,共55页,2022年,5月20日,20点30分,星期二程序设计语言的发展面向机器的语言高级语言(第3代)甚高级语言机器语言(第1代)汇编语言(第2代)结构语言基础语言面向对象语言第4代语言第5页,共55页,2022年,5月20日,20点30分,星期二语言的选择选择编码语言的标准 应用领域 算法与计算复杂性 数据结构的复杂性 效率的考虑 第6页,共55页,2022年,5月20日,20点30分,星期二适用各类应用领域的语言 年代应用领域主要语言其他语言 20世纪60年代 商业COBOLAssembler科学计算FORTRANALGOL、BASIC、APL
4、系统AssemblerForth人工智能LISPSNOBOL 现代商业COBOL、C+、Java、 电子表格C、PL/1科学计算FORTRAN、C、C+ JavaBASIC系统C、C+、JavaAda、Modula人工智能LISP、Prolog第7页,共55页,2022年,5月20日,20点30分,星期二第九章 软件测试 测试的基本概念 黑盒测试 白盒测试 测试用例设计 多模块程序的测试策略 面向对象系统的测试 第8页,共55页,2022年,5月20日,20点30分,星期二测试的基本概念 测试(testing)的目的与任务 目的:发现程序的错误 任务:通过执行程序,暴露潜在的错误 纠错(deb
5、ugging)的目的与任务 目的:定位和纠正错误 任务:消除软件故障,保证程序的可靠运行 第9页,共55页,2022年,5月20日,20点30分,星期二测试的特性 挑剔性 抱着为证明程序有错的目的去测试 复杂性 设计合适的测试用例 不彻底性 Dijkstra 一句名言:“程序测试只能证明错误的存在,但不能证明错误不存在” 经济性第10页,共55页,2022年,5月20日,20点30分,星期二测试的种类 静态分析(不执行程序)静态分析器代码复审(Code Review)动态分析(执行程序)黑盒测试测试程序功能白盒测试测试程序结构第11页,共55页,2022年,5月20日,20点30分,星期二测试
6、的文档 测试计划 测试项目的名称各项测试的目的、步骤和进度测试用例的设计 测试报告测试项目名称实测结果与期望结果的比较发现的问题测试达到的效果 第12页,共55页,2022年,5月20日,20点30分,星期二黑盒测试 等价分类法(equivalence partitioning)把输入数据的可能值划分为若干等价类 有效等价类和无效等价类每一无效等价类至少需要一个测试用例 例子 某工厂公开招工,规定报名者年龄应在16周岁至35周岁之间(到2002年3月30日止)即出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。 第13页,共55页,2022年,5月20日,20点30分,星期二
7、“出生年月”的等价分类 输入数据有效等价类无效等价类出生年月6位数字字符 有非数字字符少于6个数字符多于6个数字符对应数值在196702198603之间198603月份对应数值在112之间等于“0” 12第14页,共55页,2022年,5月20日,20点30分,星期二黑盒测试边界值分析法(boundary value analysis) 使被测程序在边界值及其附近运行,从而更有效地暴露程序中潜藏的错误 错误猜测法(error guessing) 猜测被测程序在哪些地方容易出错 针对可能的薄弱环节来设计测试用例 第15页,共55页,2022年,5月20日,20点30分,星期二白盒测试 逻辑复盖测
8、试法(logic coverage testing) 用流程图来设计测试用例 逻辑复盖测试的5种标准发现错误的能力弱强语句覆盖每条语句至少执行一次判定覆盖每一判定的每个分支至少执行一次条件覆盖每一判定中的每个条件,分别按“真”、“假”至少各执行一次判定/条件覆盖同时满足判定复盖和条件复盖的要求条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次第16页,共55页,2022年,5月20日,20点30分,星期二白盒测试路径测试法(path testing)着眼于程序执行路径的测试方法 程序图(program graph) 点覆盖边覆盖路径覆盖第17页,共55页,2022年
9、,5月20日,20点30分,星期二测试用例设计黑盒测试用例设计三角形分类程序白盒测试用例设计学生成绩查询程序第18页,共55页,2022年,5月20日,20点30分,星期二软件的纠错纠错的策略试凑法跟踪法推理法常用的纠错技术插入打印语句设置断点掩蔽部分程序蛮力纠错技术第19页,共55页,2022年,5月20日,20点30分,星期二多模块程序的测试策略 测试的层次性 单元(模块)测试(unit testing)综合(集成)测试(integration testing)确认测试(validation testing)系统测试(system testing)程序错误的类型 语法错误 结构性错误 功能
10、性错误 接口错误 第20页,共55页,2022年,5月20日,20点30分,星期二 单元测试 目的 通过模块测试,使其代码达到模块说明书的需求 任务 (1) 对模块代码进行编译,发现并纠正其语法错误;(2) 进行静态分析,验证模块结构及其内部调用序列是否正确;(3) 确定模块的测试策略,并据此设计一组测试用例和必要的测试软件;(4) 用选定的测试用例对模块进行测试,直至满足测试终止标准为止;(5) 编制单元测试报告。 第21页,共55页,2022年,5月20日,20点30分,星期二单元测试实施步骤编译静态分析器检查代码评审动态测试测试驱动模块测试桩模块第22页,共55页,2022年,5月20日
11、,20点30分,星期二集成测试 目的 将经过单元测试的模块逐步组装成具有良好一致性的完整的程序 任务 制订集成测试实施策略 确定集成测试的实施步骤,设计测试用例 逐一地添加模块,进行测试第23页,共55页,2022年,5月20日,20点30分,星期二集成测试策略与步骤 自顶向下测试 先广后深实施步骤 先深后广实施步骤 由底向上测试 混合方式测试(sandwich testing) 对上层模块采取自顶向下测试 对关键模块或子系统采取由底向上测试 第24页,共55页,2022年,5月20日,20点30分,星期二 确认测试 目的 确认组装好的程序是否满足(SRS)的要求任务有效性测试(黑盒测试)配置
12、复审(confinguration review) 验收测试专用 alpha与beta测试通用第25页,共55页,2022年,5月20日,20点30分,星期二系统测试 目的 软件安装到系统中以后,能否与系统的其余部分协调运行 任务测试是否与硬件协调运行测试是否和原来就有的其它软件协调运行 测试是否完成SRS对它的要求 第26页,共55页,2022年,5月20日,20点30分,星期二终止测试的标准规定测试策略和应达标准规定至少要查出的错误数量第27页,共55页,2022年,5月20日,20点30分,星期二面向对象系统的测试 OO软件的测试策略 OO软件测试用例设计 第28页,共55页,2022年
13、,5月20日,20点30分,星期二OO软件的测试策略OO软件的单元测试 全面地测试类和对象所封装的属性和操纵这些属性的操作的整体 发现类的所有操作中存在的问题 与其他的类协同工作时可能出现的错误 OO软件的集成测试 基于黑盒方法的集成测试 基于线程的测试(thread-based testing) 基于使用(use-based)的测试 第29页,共55页,2022年,5月20日,20点30分,星期二OO软件的测试策略OO软件的确认测试和系统测试采用传统的黑盒法 OOA阶段的用例所描述的用户交互进行测试导出OO系统测试的测试用例 对象行为模型时序图等 模拟用户实际使用环境 第30页,共55页,2
14、022年,5月20日,20点30分,星期二OO软件测试用例设计 (1) 每个测试用例都要有一个唯一的标识,并与被测试的一个或几个类相关联起来;(2) 每个测试用例都要陈述测试的目的; (3)对每个测试用例要有相应的测试步骤,包括被测对象的特定状态、所使用的消息和操作、可能产生的错误、测试需要的外部环境等 第31页,共55页,2022年,5月20日,20点30分,星期二OO概念对测试用例设计的影响 继承的成员函数需要测试 子类的测试用例可以参照父类 类测试用例设计 基于故障的测试用例设计基于用例的测试用例设计类间测试用例设计 类关系模型 类行为模型 第32页,共55页,2022年,5月20日,2
15、0点30分,星期二第十章 软件复用软件复用的基本概念领域工程 基于构件的开发 面向对象与软件复用 小结 第33页,共55页,2022年,5月20日,20点30分,星期二软件复用的基本概念 软件复用的定义 第34页,共55页,2022年,5月20日,20点30分,星期二软件复用的重要性 软件复用的目的是能更快、更好、成本更低地生产软件制品。一般地说,在软件开发中采用复用构件可以比从头开发这个软件更加容易。 第35页,共55页,2022年,5月20日,20点30分,星期二软件复用的粒度 按照可复用的粒度,软件制品从小到大分为以下几类:源代码复用软件体系结构复用应用程序生成器领域特定的软件体系结构的
16、复用第36页,共55页,2022年,5月20日,20点30分,星期二领域工程所谓的“领域”,指的是一组具有相似或相近软件需求的应用系统所覆盖的功能区域。通过领域分析(domain analysis)找出最优复用,对它们进行设计和构造,形成为可复用构件,进而建立大规模的软件构件仓库的过程,就是领域工程。第37页,共55页,2022年,5月20日,20点30分,星期二横向复用和纵向复用 横向复用是指复用不同应用领域中的软件元素。纵向复用是指在一类具有较多公共性的应用领域之间进行软部品复用。领域分析用户需求软件开发与构件开发目标软件确认可复用构件库检索理解第38页,共55页,2022年,5月20日,
17、20点30分,星期二领域分析 定义领域分析是在特定应用领域寻找最优复用,以公共对象、类、子集合和框架等形式进行标识、分析和规约。目标是获得领域分析模型 第39页,共55页,2022年,5月20日,20点30分,星期二领域分析的输入和输出 第40页,共55页,2022年,5月20日,20点30分,星期二建造可复用构件 创建领域构件的设计框架 标准数据 标准接口协议 程序模板第41页,共55页,2022年,5月20日,20点30分,星期二构件模型 第42页,共55页,2022年,5月20日,20点30分,星期二建立可复用构件库 三种分类模式 枚举分类 门面分类 属性-值分类 第43页,共55页,2
18、022年,5月20日,20点30分,星期二基于构件的开发 构件集成模型应用系统工程第44页,共55页,2022年,5月20日,20点30分,星期二面向对象与软件复用 OO方法对软件复用的支持复用技术对OO方法的支持第45页,共55页,2022年,5月20日,20点30分,星期二小结软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量。软件复用研究被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。第46页,共55页,2022年,5月20日,20点30分,星期二第十一章 软件维护软件维护的种类 软件可维护性 软件维护的实施 软件维护的管理 软件再工程 第47页,共55页,2022年,5月20日,20点30分,星期二软件维护的种类完善性维护(perfective maintenance) 适应性维护(adaptive maintenance)纠错性维护(corrective maintenance)预防性维护(preventive maintenance) 第48页,共55页,2022年,5月20日,20点30分,星期二软件可维护性 (maintainability) 影响可维护性的软件属性 可理解性(understandability) 可修改性(modifiability) 可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南株洲市渌口区招聘普通高中教师65人备考题库含答案详解(培优b卷)
- 2026广东梅州市梅县区汇昇控股有限公司招聘8人备考题库含答案详解(精练)
- 2026河南南阳方城县光明高级中学教师招聘59人备考题库附答案详解(典型题)
- 2026山东潍坊润丰化工股份有限公司西厂区招聘42人备考题库附答案详解(基础题)
- 2026浙江衢州市柯城区建设投资发展集团有限公司招聘职业经理人1人备考题库附答案详解(考试直接用)
- 2026浙江杭州市西湖实验室药物发现平台诚聘英才备考题库附答案详解ab卷
- 2026年春季江苏连云港市赣榆区事业单位招聘高层次人才7人备考题库有完整答案详解
- 解除旅游合同协议书
- 美容院营销策划方案与执行手册
- 2026广东广州市第一人民医院招聘15人备考题库(第二批)及答案详解(网校专用)
- DB11-T 2405-2025《住宅全装修评价标准》(北京市)
- 安全生产安全责任制考核方案
- 财政局财会监督制度
- 2026完整版离婚协议书
- MDI装置苯胺精馏塔设计计算表
- 中国居民膳食指南2026版
- 学位考试真题及答案
- 2025年8月新汉语水平考试HSK四级真题(附答案)
- 搭建商铺协议书
- 《产后盆底康复治疗对女性盆底功能障碍康复的康复效果与盆底肌电图分析》教学研究课题报告
- 艾滋病患者心理护理
评论
0/150
提交评论