第一章软件测试.ppt_第1页
第一章软件测试.ppt_第2页
第一章软件测试.ppt_第3页
第一章软件测试.ppt_第4页
第一章软件测试.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第一章 软件测试基础知识,1.1 软件及软件测试的发展,一、软件的定义 IEEE定义:软件是计算机程序及其说明程序的各种文档。 从测试角度定义: 软件=程序+数据(库)+文档+服务,1.1 软件及软件测试的发展,二、软件与软件测试的发展 软件生产的三个阶段:程序设计时代、程序系统时代、软件工程时代 软件测试的发展阶段: 70年代前:无序状态、调试为主 70-80年代:思想形成、测试正确性为主 80-90年代:形成共识、检查程序错误为主 90年代后:不断完善、多种角度、方法测试,1.1 软件及软件测试的发展 表:软件开发与软件测试的关系,1.1 软件及软件测试的发展,三、软件测试的现状与发展趋势 软件测试的现状: 国外:发展相当成熟、形成独立产业 国内:处于弱势地位、市场处于萌芽,1.1 软件及软件测试的发展,软件测试的发展趋势: 1、测试驱动型的软件开发。在软件生命周期的各个阶段 中,这些阶段包括测试、需求分析、使用形象化符号进行的规格说明,以及基于UML和其它新标准的实践; 2、探索性学习和发现,这将成为迭代开发过程的一个组成部分; 3、组件测试和易测试性设计,这将成为软件开发不可分割的组成部分; 4、更加重视适当的技能的应用,减少预先写好的文档变更,这将成为优秀软件过程的基本原则之一; 5、使用自动化测试来取代目前严重影响测试效率的冗余繁复的人工过程。,1.2 软件分类及测试要求,一、按功能分类及测试要求 按功能分类: 固 件(firmware):最贴近硬件的小巧程序(BIOS) 系统软件:操作底层硬件,提供上层支撑(OS)(移动联通基站管理系统) 中 间 件(Middleware):应用软件与平台间的桥梁 应用软件:提供某种应用服务(OFFICE) 测试要求: 系统软件:测试要结合底层硬件来完成 应用软件:本课程要完成的测试软件,1.2 软件分类及测试要求,二、按用户分类及测试要求 按用户分类: 产品软件:大众用户、非特殊群体(OFFICE) 项目软件:针对某类特殊人群(成绩管理系统) 测试要求: 产品软件:用户差别大,应做好硬件配置测试和软件兼容性测试。 项目软件:满足核心用户的关键需求上。,1.2 软件分类及测试要求,三、按开发规模分类及测试要求 按开发规模分类: 小型软件:开发人数1-10人,时间1-4个月 中型软件:开发人数10-100人,时间12个月 大型软件:开发人数100人,时间12个月 测试要求: 小型软件:专人测试 中型软件:专门测试小组(研发与测试比例:1:4) 大型软件:专门测试公司(日月光集团-封装测试),1.2 软件分类及测试要求,四、按软件产品分类及测试要求 按软件产品分类: 单 机 软 件: 网 络 软 件: 嵌入式软件: 游 戏 软 件: 测试要求: 单 机 软 件:黑合、白合测试,动态、静态测试 网 络 软 件:单元、集成、系统、验收测试 嵌入式软件: 游 戏 软 件:再加自动化测试,1.3 软件测试,一、软件测试的定义 IEEE定义:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别 1983,IEEE软件工程标准术语 Software Testing,1.3 软件测试,二、软件测试的目的 1、 软件测试是为了发现错误而执行程序的过程。 2、一个好的测试能够在第一时间发现程序中存在的错误。 3、一个好的测试是发现了至今未发现的错误的测试。,1.3 软件测试,三、软件测试的原则 原则1:测试是一个持续进行的过程,而不是一个阶段。(贯穿从第一个版本到最后的一个过程) 原则2:测试必须有计划、有控制,并且提供时间和资源(有计划的跟着研发的计划有效的利用测试资源)。 原则3:测试应当分级。Norm Brown 把测试级别分成了9个层次(0-8)。,1.3 软件测试,原则4:测试应当有重点。 原则5:测试不是为了证明程序的正确性,而是为了查找程序的缺陷。 原则6:测试是不可能穷尽的,当测试的出口条件满足时就可以停止测试。(在测试报告中达到这个标准0a1b5c) 原则7:测试是开发的朋友而不是开发的敌人。,1.3 软件测试,原则8:测试人员应当公正地测试,如实地记录和报告缺陷。 原则9:测试自动化能解决一部分总部问题,但不是全部。 原则10:测试不能仅仅包括功能性的验证,还应当包括性能、右靠性、可维护性、安全性等方面的验证。,1.4 软件缺陷,一、软件缺陷的定义 (不符合需求以及用户操作或者带来意想不到的运行结果的) IEEE定义: 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。 软件中不符合用户要求就上缺陷,类型有没实现、基本实现、多实现。 美国 格蕾斯.哈珀(Grace Hopper)首先使用“Bug”,海军中尉格蕾丝霍波(Grace Hopper ,1906-1992)博士。,1944年2月,世界著名的大型电磁式自动计算机Mark-在美国哈佛大学启动。为这台长15米、高2.4米,自重30多吨的庞然大物编制程序的,是当时为数不多的女程序员之一。 霍波天才的创造和发明:一个是计算机界通用的术语“臭虫”(Bug);另一个就是家喻户晓的“千年虫”(Y2K)。 她是计算机语言领域的开拓者,也有人把她称作“计算机软件之母”。,“第一个发现虫子的实例”,Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”。 Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。,1.4 软件缺陷,软件缺陷的主要类型: 功能、特性没有实现或部分实现。 设计不合理,存在缺陷。 实际结果与预期结果不一致。 运行出错,包括运行中断、系统崩溃、界面混乱。 数据结果不正确。 用户不能接受的其它问题,如存取时间过长、界面不美观。,1.4 软件缺陷,软件缺陷的严重级别: 致命的(fatal):致命的错误,造成系统或应用程序崩溃、或数据丢失、主要功能完全丧失等。 严重的(critical):严重的错误,功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明。 一般的(major):不太严重的错误,次要功能丧失,提示信息不太准确,或用户界面差,操作时间长等。 微小的(minor):一些小问题,对功能几乎没有影响,产品及属性仍可用,如个别错别字,文字排列不整齐。,1.4 软件缺陷,软件缺陷的状态: 激活状态(Active或Open):问题没有解决、测试人员新报的缺陷,或验证后缺陷仍然存在。 已修正状态(Fixed或Resolved):开发人员针对所存在的缺陷,修改程序,认为已解决问题,或通过单元测试。 关闭或非激活状态(Close或Inactive):测试人员验证fixed bug后,确认bug不存在之后的状态。,1.4 软件缺陷,二、软件缺陷产生的原因 团队工作: 系统分析时对用户需求不是十分清楚,或者和用户的沟通存在一些困难。 不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中的理解有问题。 设计或编程上的一些假定或依赖性,没有得到充分沟通。,1.4 软件缺陷,技术问题: 算法错误 语法错误 计算和精度问题 系统结构不合理、算法不科学,造成系统性能低下。 接口参数传递不匹配,导致模块集成出现问题。,以系统生,为框架死,为BUG奋斗一辈子; 吃符号的亏,上大小的当,最后死在需求上。 横批:杯具程序员,1.4 软件缺陷,软件本身: 文档错误、内容不正确或拼写错误 大量数据使用引起的强度或负载问题 漏掉几个边界条件造成的容量或边界错误 实时应用系统,时间上不协调、不一致带来的问题 没考虑崩溃后的恢复、异地数据备份、灾难性恢复等问题,系统安全性、可靠性问题 硬件或系统软件上存在的错误 软件开发标准或过程上的错误,1.4 软件缺陷,三、软件缺陷与测试的关系 通过软件测试发现软件缺陷,1.5 软件测试分类,一、按是否需要查看程序代码来分: 黑盒测试:把被测试软件看作是一个黑盒子,不关心程序内部逻辑结构和处理过程,只关心输入数据和输出结果。 白盒测试:研究程序的代码和内部逻辑结构,具体是怎么实现的。 灰盒测试:既有黑盒测试,又有白盒测试。,1.5 软件测试分类,黑盒测试的原理与过程,需求 规格 说明,测试用例,被测程序,测试 结果,比较,1.5 软件测试分类,白盒测试的原理与过程,程序 代码,测试用例,执行 路径,覆盖情况分析,被测程序,1.5 软件测试分类,二、按是否需要执行被测软件来分: 静态测试review :指不运行程序,而通过人工对程序和文档进行分析与检查。 动态测试:指通过人工或利用工具运行程序进行检查,分析程序的执行状态和程序的外部表现。,1.5 软件测试分类 静态测试与动态测试的比较,1.5 软件测试分类,三、按测试阶段分类: 单元测试(测试片段) 集成测试(片段的集合体) 系统测试(各种功能基本正常下的测试) 验收测试(最后的测试),1.5 软件测试分类,被测 单元,被测 单元,被测 单元,测试根据: 代码和 详细设 计文档,单元 测试,通 过 测 试 的 单 元,单元 测试,单元 测试,集成 测试,测试根据: 概要设 计文档,通 过 集 成 测 试 系 统,系统 测试,验收 测试,测试根据: 需求规 格说明,产 品,测试根据: 需求规格 说明和验 收标准文档,1.5 软件测试分类,四、按测试执行时是否需要人工干预分类: 手工测试:完全由人工完成测试,包括测试计划的制定、测试用例的设计与执行、测试结果的检查和分析。 自动测试:各种测试活动的管理与实施,是使用自动化测试工具或自动化测试脚本来进行的测试。常用在功能测试、回归测试、性能测试中使用。,1.5 软件测试分类,五、功能测试分类: 逻辑功能测试(是否符合人的正常逻辑) 界面测试(界面是否正常) 易用性测试(可用性测试) 安装测试(软件安装流程测试) 兼容性测试,1.5 软件测试分类,六、性能测试分类: 一般性能测试 稳定性能测试 负载测试(网站流量访问) 压力测试(不停的加负载,达到极限),1.5 软件测试分类,七、其它测试: 回归测试:新版本测试时,重复执行上一个版本测试时的用例。 冒烟测试:系统大规模测试之前,先验证一下基本功能能否实现,是否具备可测试性。 随机测试:测试中所有的输入数据都是随机产生,模拟用户的真实操作,发现边缘性错误。,1.5 软件测试分类 八、各种测试方法关系图:,软件测试方法 (从不同角度),是否看到代码,黑盒测试,白盒测试,是否运行软件,静态测试,动态测试,按测试 阶段,单元测试,集成测试,系统测试,验收测试,有无人工干预,人工测试,自动测试,其它测试,随机测试、冒烟测试、回归测试 驱动测试、面向对象测试、基线测试,功能测试,性能测试,一般性能测试 稳定性能测试 负载测试 压力测试,逻辑功能测试 界面测试 易用性测试 安装测试 兼容性测试,测试,测试,1.6软件测试过程模型,一、V模型,1.6软件测试过程模型,二、W模型,1.6软件测试过程模型,三、H模型,1.6软件测试过程模型,四、X模型,1.6软件测试过程模型,五、测试成熟度模型(TMM) 与(CMM)对应 第1级(初级阶段):测试和调试没有区别,除了支持调试外,测试没有其它目的。 第2级(定义阶段):测试的目的是为了表明软件能够工作。 第3级(集成阶段):测试的目的是为了表明软件不能正常工作。 第4级(管理与测量):测试的目的不是要证明什么,而是为了把软件不能正常工作的预知风险降低到能够接受的程度。 第5级(最佳化的缺陷预防与质量管理):测试不是行为,而是一种自觉的约束,不用将太多的测试投入到产生低风险的软件上。,1.6软件测试过程模型,六、软件测试过程模型的选择 宏观上,以W模型为基本框架,从软件开发工作一开始就展开测试工作; 微观上,在每个测试阶段以H模型为指导,进行独立测试,即只要准备工作就绪,就可以进行独立的测试,并反复迭代测试,直至达到预定目标。 软件企业上,应以TMM为指导,努力建立规范的软件测试过程。,1.7 软件测试岗位,一、软件测试部门的组织结构 国内软件行业: 测试人员:开发人员=1:9 1:15 国外软件行业: BORLAND公司: 测试人员:开发人员=1:1 微软公司: 测试人员:开发人员=1.5:1,1.7 软件测试岗位,小公司组织结构:,1.7 软件测试岗位,大公司组织结构:,测试部,项目部,1.7 软件测试岗位,专业外包公司组织结构:,1.7 软件测试岗位,二、软件测试团队 测试经理:人员招聘、培训、管理,资源调配,测试方法改进。 实验室管理人员:设置、配置和维护实验室的测试环境,主要是服务器和网络环境。 内审员:审查流程,并提出改进流程的建议;建立测试文档所需的各种模板,检查软件缺陷的描述及其它测试报告的质量。 测试组长:业务专家,负责项目的管理、测试计划的制定、项目文档的审查、测试用例的设计

温馨提示

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

评论

0/150

提交评论