软件测试基础(第二讲)_第1页
软件测试基础(第二讲)_第2页
软件测试基础(第二讲)_第3页
软件测试基础(第二讲)_第4页
软件测试基础(第二讲)_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第二讲 软件测试基础 主讲人:张伟主讲人:张伟软件过程模型 所谓软件过程模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。 n 瀑布模型n 原型模型n 增量模型n 螺旋模型瀑布模型n整个开发包括六个阶段:问题定义与可行性分析(计划)、需求分析、设计、编码、测试、运行维护。六个阶段自上而下、相互衔接,以固定的次序来进行。n特点 阶段的顺序性和依赖性 推迟实现的观点 质量保证n存在问题 完全依赖文档,很可能导致最终开发的软件不能满足用户需要快速原型模型n快速建立一个能反映用户主要需求的原型系统,用户试用它并提出修改意见,开发人员按照意见修改原型系统,然

2、后重复让用户试用,一旦用户认为这个原型系统满足用户要求,即开始设计规格说明书。 n使用原因:在项目开发的初期对软件的需求认识不够清晰,使项目难于做到一次成功.n特点 1.快速开发 2.可获知用户的真正需求,使开发的系统满足用户的需求,也减少了后期的维护的成本(不需要大返工)。 3.一旦需求确定了,原型就可以被弃 需求采集细化 快速 设计 建造 原型 用户评价原型 原型 对原型 加工 产品 样本 停止 开始 增量模型n增量模型中,在每个阶段都生成软件的一个可发布版本。这些阶段是交错进行的。n在增量模型中,软件版本是逐步完善的。 n在原型中,每个阶段是发布一个原型,而在增量模型中,是完成一个正式的

3、版本。 螺旋模型n螺旋模型将瀑布模型和快速原型模型结合起来,并且加入了两种模型均忽略的风险分析。 n螺旋模型的每一周期都包括制定计划、风险分析、实施工程和评审四个阶段。 需 求 计 划 风 险 分 析 风 险 分 析 风 险 分 析 原 型1 原 型2 原 型3 可 运 行 原 型 风 险 分 析 : 评 价 方 案 识 别 风 险 消 除 风 险 累 计 成 本 制 定 计 划 : 决 定 目 标 方 案 限 制 提 交 线 评 审 生 存 期计 划 开 发 计 划 组 装 测 试 客 户 评 价 软 件 需 求 需 求 确 认 设 计 确 认 验 证 软 件 产 品设 计 实 现 验 收

4、测 试 编 码 组 装 测 试 单 元 测 试 实 施 工 程 : 开 发 、 验 证 形 成 产 品 软件测试简介n软件测试是软件工程过程中的关键组成部分。n软件开发中,在需求、设计、编码阶段都有可能发生错误。n软件测试就是为了发现程序中的错误而分析或执行程序的过程。n软件测试是软件质量保证的重要手段。软件测试的价值n防止质量灾难的发生。编程大师说:没有错误的程序世间难求。 (编程之道)n确保软件满足用户的需求(功能性,非功能性)n确保软件符合质量标准(国家,行业,企业)质量灾难的典型例子n千年虫 年份用两位去表示引发歧义。n爱国者导弹 误差导致距离偏差n阿里亚娜火箭发射失败n.软件测试的目

5、的n发现软件中的缺陷,(包括需求、设计的缺陷和程序中bug)n检查软件是否满足用户的需求。n注意:软件测试的目的不是证明软件没有缺陷的,实际上这个证明是完全不可能的。GLEN MYERS提出关于软件测试的目标n测试是一个为了寻找错误而运行程序的过程。n一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。n一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。Glen Myers提到的目标已经不能完全描述如今的软件测试所要达到的目标,如今的软件测试目标是:尽可能多的发现软件中的错误和缺陷,对软件质量进行度量和评估以提高软件质量,并检验软件系统是否满足用户需求。对测试工作的误解(理解)对测

6、试工作的误解(理解)1、测试和调试是一回事2、对软件可以进行穷举测试a.输入条件太多 b.输入条件的组合太多c.程序中路径太多 c.程序中潜在的错误和缺陷3、软件有缺陷,是测试人员的失职4、关注测试执行而忽视测试用例设计n测试用例是由前提条件和操作步骤、预期结果、实际结果等构成。n在对软件进行测试时,需要:n构造测试用例n执行测试用例,检查结果是否与期望的输出一致n在编写测试用例时,需要以软件需求为依据。为什么不可能做穷举测试M1D1D2D3D4M2M3M4M5M6M7D5=20次循环次数01220独立路径数51+52+53+5211014(1百万亿)每个测试用例(考虑、执行、验证结果)5分钟

7、共需测试时间10亿年为什么不可能做穷举测试程序PXYZ若X、Y为所有可能的整数 在字长32位机上测试X1、Y1 Z1 Xn、Yn Znn = 232232 = 264 1.84 1019软件工程教材对测试工作的误解(理解)对测试工作的误解(理解)5、测试比编程容易得多。6、测试是编码之后进行的工作7、测试自动化是万能的。 自动化测试就是将测试行为输入到机器中,让机器测试代替人为测试的一种测试行为。如功能自动化测试工具winrunner。8、软件测试是一种破坏性的工作9、测试的目的在于证明软件的正确性软件测试国外现状(了解)1、软件测试在很多高校和研究机构作为一个单独的学科去研究。2、软件测试在

8、软件公司尤其是大型公司受重视3、测试工具比较发达软件测试国内现状(了解)1、国家、高校和公司越来越关注软件测试理论的研究和测试人员的培养。2、第三方测试机构的重要性越来越体现出来。3、各种测试职业培训机构涌现,为软件测试行业培养了大量的人才。软件发展的趋势(了解)1、软件测试成为一个完全独立的流程,贯穿与软件开发的每个阶段,使每个阶段都是可测试的。2、面向对象软件、分布式、实时系统的测试理论不断发展。3、软测人员的地位提高。4、三方测试迅速发展。软件测试定义(1983,IEEE):使用人工或自动手段来进行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差

9、别。“软件测试以检验是否满足需求为目标”。 比较直白的定义:软件测试是根据开发各阶段的规格说明书和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以发现错误的过程。 软件测试的对象:程序、需求分析、程序设计需求规格说明设计规格说明程序软件测试的对象V&V概念(理解)1、验证:我们在正确地构造软件吗?2、确认:我们在构造正确的软件吗?软件测试分类-按测试策略分类1、白盒测试2、黑盒测试3、灰盒测试白盒测试1、白盒测试2、黑盒测试3、灰盒测试黑盒测试灰盒测试 灰盒测试是一种介于白盒测试和黑盒测试之间的测试。它既基于程序运行的外部表现又结合程序内部逻辑来设计测试用例,执行程序并采集

10、程序路径执行信息和外部用户接口结果。软件测试分类-按测试执行方式分类1、静态测试2、动态测试静态测试静态测试静态测试1、代码审查(包括代码评审和走查)。 检查代码和设计的一致性;检查代码的标准性、可读性;检查代码逻辑表达的正确性和完整性;检查代码结构的合理性等。2、静态分析。 主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。3、文档检查。动态测试动态测试动态测试 实际过程中大部分测试都是动态测试,黑盒和白盒都属于动态测试。软件测试分类-按测试实施组织分类1、测试2、测试3、第三方测试软件测试分类-按开发阶段分类1、单元测试2、集成测试3、确认测试4、系统测试5、验收测试按开发阶段

11、分类n单元测试、集成测试、确认测试、系统测试、验收测试,这是一种从小到大、循序渐进的测试过程。n单元测试是对程序员编写完成的一个个程序单元进行测试。n依照主要文档-详细设计说明书,数据库设计说明书单元测试单元测试n单元通常不是可运行的程序。n单元测试必须编写额外的可运行的测试驱动程序。 集成测试集成测试n也称组装测试,在单元测试的基础上,按照概要设计将模块集成一个系统,对系统进行测试。n集成测试可以发现模块间接口以及全局数据结构等问题。n集成测试中,会混合使用白盒测试和黑盒测试方法。 集成测试集成测试n也称有效性测试,测试的目的是检查已实现的软件系统是否满足需求规格说明书中规定的各种需求。n确

12、认测试中,采用黑盒测试技术。 n依照主要文档-需求规格说明书确认测试确认测试系统测试系统测试n系统测试是将通过确认测试的软件作为一个元素,在实际或模拟运行环境下,测试其与系统中其他元素能否正确地配置、连接,并满足用户需求。n系统测试的目的找到软件与系统需求不符合的地方。n系统测试采用黑盒测试方式系统测试系统测试验收测试验收测试n验收测试是按项目任务书或合同、供需双方约定的验收依据文档对整个系统进行测试与评审,以决定是否接收软件系统。n验收测试以用户或者用户信任的第三方测试结构为主的测试测试过程需求分析设计编码系统组装单元修正修正修正通过通过通过(集成)测试与开发前期工作的关系需求分析概要设计详

13、细设计编码单元测试集成测试系统测试其他测试方法与技术1、回归测试2、迭代测试3、功能测试4、性能测试5、安全性测试6、可靠性测试7、兼容性测试8、可移植性测试9、冒烟测试10、界面测试11、随机测试测试过程模型nV V模型模型:最经典的软件测试过程模型,反映出了测试活动与分析设计活动的关系。n如果软件开发过程采用严格的瀑布模型,那如果软件开发过程采用严格的瀑布模型,那么开发与测试有么开发与测试有“V V”型的对应关系型的对应关系 。v模型需求开发需求开发 概要设计概要设计详细设计详细设计编程编程单元测试单元测试集成测试集成测试系统测试系统测试验收测试验收测试软件测试工作流程n文档审核n测试计划

14、n测试设计与开发n测试实施n测试总结与评估测试计划n分析测试需求n估计测试工作量n确定测试资源n确定测试活动n生成项目测试计划测试设计与开发n需求分析n设计测试策略n测试用例的设计与实现n建立测试开发环境,录制和回放测试过程。测试执行n建立测试环境与系统n执行测试用例nBUG交流与跟踪n生成测试问题报告单测试总结与评估n各种形式的总结n生成测试总结报告n测试评估n测试计划完成情况;n测试质量评估;n测试管理评估。软件测试的职业要求n测试人员的目标:分析或运行代码来暴露代码中潜在的错误n软件测试员的基本目标是发现软件错误n软件测试员所追求的是尽可能早地找出软件错误n软件测试人员必需确保找出的软件错误得以关闭n设计测试n建立一个合适的测试执行环境n评估、获取、安装和配置自动

温馨提示

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

最新文档

评论

0/150

提交评论