《第14章软件与软件测试(理论课)(论文资料).ppt》由会员分享,可在线阅读,更多相关《第14章软件与软件测试(理论课)(论文资料).ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、测试计划与软件缺陷第十四章 软件与软件测试上一章内容回顾v测试计划相关v如何进行风险分析本章学习目标v了解软件的特点以及分类v了解单元测试和集成测试的常用方法内容进度v软件的特点v 软件的分类v 关于单元测试v 关于集成测试软件的特点v软件是一种逻辑实体n 软件具有抽象性,它不是具体的物理实体n 软件的形态不像其他工程对象(如计算机硬件)一样直观n 必须通过观察、分析、思考、判断去了解他的功能、性能以及其他的特性v软件的生产与硬件的生产不同n 硬件在制造过程中进行质量控制n 在软件开发阶段进行质量控制软件的特点v软件运行和使用没有机械磨损和老化问题n 硬件失效率的U型曲线n 软件失效率曲线图形
2、说明软件存在退化问题n 软件修改和维护过程中会导致失效率升高,因此软件维护比硬件维护复杂,与硬件维护有本质的区别硬件失效率曲线 软件失效率曲线 软件的特点v软件的开发和运行对计算机系统有一定的依赖n 软件的开发和运行必须以硬件提供的条件为依据n 软件运行对硬件方面的要求n 软件运行对操作系统方面的要求n 软件的可移植性成为衡量软件质量的因素之一软件的特点v目前还没有摆脱手工艺的开发方式n 大多数软件产品是“定做”的n 很难做到利用现成的部件组装成所需的软件(模块化设计、组件技术)n 新技术的产生在一定程度上提高了生产的效率。但是,手工艺的开发方式仍占据统治地位n 软件开发不是一件轻松的工作软件
3、的特点v软件是复杂的n 计算机软件是人类创造的最复杂的产物n 导致软件复杂性的根源u软件反映了实际问题的复杂性u程序自身逻辑结构的复杂性u软件开发常常涉及其他领域的专业知识 软件技术的发展落后于需求软件的特点v软件成本相当昂贵软件的特点v软件的作用越来越突出第X代飞机 型号航电系统功能硬件实现 软件实现第二代F-111 80%20%第三代F-16 60%40%第四代F-22 20%80%软件的特点v相当多的软件工作涉及到社会因素n 从软件产品的需求方面分析。例如:企业管理软件n 从软件开发过程方面分析 机构、体制、管理、观念、重视程度软件的特点v软件是一种逻辑实体v软件的生产与硬件的生产不同v
4、软件运行和使用没有机械磨损和老化问题v开发和运行对计算机系统有一定的依赖v目前还没有摆脱手工艺的开发方式v软件是复杂的v软件成本相当昂贵v软件的作用越来越突出v相当多的软件工作涉及到社会因素软件的特点小结内容进度v 软件的特点v软件的分类v软件测试的分类v 关于单元测试v 关于集成测试软件的分类v按软件功能进行划分 n 系统软件 使计算机系统协调、高效工作的软件n 支撑软件 协助用户开发软件的工具性软件 开发工具和过程管理工具n 应用软件 特定领域内开发、为特定目的服务的软件v按软件规模进行划分 类别 参加人数 研制期限小型 5人以内 1到6个月中型 5到100人 1年以内大型 100人以上
5、1年以上软件的分类v 按软件的技术特点划分n 业务(Business)软件u 管理信息系统(MIS)u 企业资源规划系统(ERP)u 决策支持系统(DSS)n 科技计算软件(图形计算)n 嵌入式(Embedded)软件u 首先在宿主机(HOST)上用某种语言开发,经交叉编译后成为单片机的机器码程序,“烧入”单片机,称为嵌入式。n 实时(Real-time)软件(火灾自动报警系统)n 个人计算机软件 n 人工智能软件:指纹识别软件 软件的分类v按软件规模进行划分 v按软件的技术特点划分v按软件功能进行划分软件的分类小结软件测试的分类v按照开发阶段划分p 单元测试p 集成测试p 确认测试p 系统测
6、试p 验收测试 根据项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统软件测试的分类v按照测试实施组织划分 开发方测试 通常也叫“测试”。是在软件开发环境下软件开发完成后,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。用户测试 也叫“测试”。是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。第三方测试 介于软件开发方和用户之间的测试组织的测试,也称独立测试。在模拟用户真实应用环境下,进行软件确认测试。测试与测试的不同点:1、测试时间 2、测试现场 3、测试执行者软件测试的分类v按照测试技术划分 白盒测
7、试 黑盒测试 灰盒测试 介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但此关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。内容进度v 软件的特点v 软件的分类v关于单元测试v 关于集成测试关于单元测试v单元测试多采用白盒测试技术,黑盒测试技术为辅v静态审查代码 首先要静态审查代码,查找代码中的问题和遗漏,方法:代码检查和走查 其次,进行动态单元测试v动态单元测试n 采用对话框方式获取、输出数据n 采用文件(数据库)获取、输出数据动态链接库DLL 的测试,只有说明,通过输入、输出实现功能单元测试的意义v 一个好的
8、单元测试将会在产品开发的阶段发现大部分的缺陷,并且修改它们的成本也很低v 在软件开发的后期阶段,缺陷的发现并修改将会变得更加困难,并要消耗大量的时间和开发费用v 无论什么时候做出修改都要进行回归测试v 经过单元测试的系统,系统集成过程将会大大地简化v 选择正确的测试策略v 桩模块(Stub)和驱动模块(Driver)域测试是在软件投入使用后,针对某个领域所做的所有测试活动 该图摘自实用软件度量,以一个功能点为基准,列出了准备测试、执行测试和修改缺陷所花费的时间桩模块和驱动模块桩模块(Stub)和驱动模块(Driver)为处理单元测试中各模块之间的关系,需要辅助测试模块模块模块接口局部数据边界条
9、件出错处理独立路径单元测试的测试环境测试结果测试用例驱动模块被测模块桩模块2 桩模块1 桩模块n辅助模块的种类v辅助模块有2种:(一)驱动模块 用以模拟被测模块的上级模块,用来接受测试数据,把相关的数据传给被测模块,启动被测模块,并打印相应的结果(二)桩模块 用以模拟被测模块工作过程中所调用的模块,由被测模块调用,只进行很少的数据处理内容进度v 软件的特点v 软件的分类v 关于单元测试v关于集成测试关于集成测试v非增式集成方法v增式集成方法n 自顶向下测试n 自底向上测试自顶向下增式集成v自顶向下增式测试的集成步骤:v 主控模块作为测试驱动,所有与主控模块直接相连的模块作为桩模块v 根据集成的
10、方式,下层的桩模块一次一个地被替换为真正的模块v 在每个模块被集成时,都必须已经进行了单元测试v 从第2步重复进行,直到整个系统结构被集成完成自顶向下增式集成v自顶向下增式集成的特点:v 将模块按系统程序结构,沿控制层次自顶向下进行组装v 自顶向下的增式方式在测试过程中较早地验证了主要的控制和判断点v 选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能自底向上增式集成v自底向上增式的集成步骤:v 由驱动模块控制最底层的模块开始组装和测试v 用实际模块代替驱动模块,与它已测试的直属子模块集成为子系统v 为子系统配备驱动模块,进行新的测试v 重复第2步,直到整个系统结构被集成完成自底向上增式集成v自底向上增式集成特点:v 适合于关键模块在结构图的底部的情况本章内容总结通过本章的学习:v了解软件的特点以及分类v了解单元测试和集成测试的常用方法