软件测试课件第1章 软件测试概述_第1页
软件测试课件第1章 软件测试概述_第2页
软件测试课件第1章 软件测试概述_第3页
软件测试课件第1章 软件测试概述_第4页
软件测试课件第1章 软件测试概述_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第1章软件测试概述

软件测试概述

软件测试就是按照测试方案和流程对产品进行功能和非功能性测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。1.1

软件测试背景著名软件错误案例迪斯尼的狮子王,1994-1995美国航天局火星极地登陆者号探测器,1999北京奥运会票务系统,2007软件的定义计算机软件是由专业人员开发并长期维护的软件产品。完整的软件产品包括了在各种不同容量和体系结构计算机上的可执行的程序,运行过程中产生的各种结果,以及以硬复制和电子表格等多种方式存在的软件文档。软件的特点软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。软件的生产与硬件不同,它没有明显的制造过程。要提高软件的质量,必须在软件开发方面下工夫。在软件的运行和使用期间,不会出现硬件中所出现的机械磨损、老化问题。然而它存在退化问题,必须要对其进行多次修改与维护。计算机的开发与运行常常受到计算机系统的制约,它对计算机系统有着不同程度的依赖性。为了解除这种依赖性,在软件开发中提出了软件移植的问题。软件的特点软件的开发至今尚未完全摆脱人工的开发方式。软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。相当多的软件工作涉及社会因素。许多软件的开发和运行涉及机构、体制及管理方式等问题,他们直接决定项目的成败。软件的分类方法按照在计算机系统中所处的应用层次的不同系统软件、支撑软件和应用软件按照软件本身规模的不同微型、小型、中型、大型和超大型软件按照软件运行平台的不同个人计算机软件、嵌入式软件、基于Web的软件软件工程IEEE对软件工程的定义为:将系统化、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。对上述方法的研究。具体说来,软件工程是以借鉴传统工程的原则、方法,以提高质量、降低成本为目的指导计算机软件开发和维护的工程学科。软件测试与软件工程软件测试在软件工程过程中一直占据着核心活动的地位在瀑布模型中,软件测试作为一个重要步骤被执行,并花费整个软件开发近40%的时间和工作量。可以说在早期的软件工程活动中,软件质量主要是通过测试活动保证的。软件质量RogerS.Pressman对软件质量的定义为:软件要符合显式声明的功能和性能需求,显式文档化的开发标准以及专业人员开发的软件所应具有的所有隐含特性。软件的质量属性,按其在运行时是否可见分为:运行时可观察到的,包括性能、安全性、可用性、易用性;运行时不可观察到的,包括可修改性、可移植性、可测试性、可集成性、可重用性等。软件质量软件工程的目标是生产出高质量的软件正确性:软件能够做正确的事情,并且能够正确的运行;性能:系统的响应时间和硬件资源的占用率;安全性:在对合法用户提供服务的同时,阻止未授权用户的使用企图;可用性:能长时间正确的运行并快速的从错误状态恢复到正确状态;易用性:最终用户容易使用和学习;可修改性:系统很容易的被修改从而适应新的需求或采用新的算法、数据结构的能力;可移植性:软件可以很简单地在平台间移植;可测试性:软件能够被测试的容易程度;可集成性:让分别开发的组件在一起正确工作;可重用性:能够在新系统中应用已有的组件。软件质量保证活动在现代软件工程中,将软件质量保证作为一个单独的活动执行,以确保软件质量在软件开发的全过程中都受到重视和验证,称之为软件质量保证活动(SQA)。SQA包含:一种质量管理方法,有效的软件工程技术,在整个软件过程中采用的正式技术评审,一种多层次的测试策略,对软件文档及其修改的控制,保证软件遵从软件开发标准的规程、度量和报告机制。1.2

软件缺陷软件缺陷的定义软件缺陷,常常又被叫做Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误或者隐藏的功能缺陷。IEEE对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。在软件开发生命周期的后期,修复检测到的软件错误的成本较高。1.2

软件缺陷软件缺陷至少满足下列5个规则之一:软件未实现产品规格说明所要求的功能。软件中出现了产品规格说明指明不应该出现的错误。软件实现了产品规格说明未提到的功能。软件未实现产品规格说明虽未明确提及但应该实现的目标。软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。1.2

软件缺陷软件缺陷出现的原因说明书设计编码其他软件测试的定义概括说来,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构,而精心设计一批测试用例,并利用这些测试用例去执行程序,以发现程序错误的过程。IEEE对软件测试的定义为:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检测它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试的定义软件测试可以简单的理解成下图这个过程:1.3

软件测试的目的软件测试的目的,就是要发现软件中存在的缺陷和系统不足,定义系统的能力和局限性,提供组件、工作产品和系统的质量信息;提供预防或减少可能错误的信息,在过程中尽早检测错误以防止错误传递到下一阶段,提前确认问题和识别风险;最终获取系统在可接受风险范围内可用的信息,确认系统在非正常情况下的功能和性能,保证一个工作产品是完整的并且是可用的或者可被集成的。软件测试的目的软件缺陷可能在软件开发的各个阶段被引入,如果没能及时发现和纠正,就会传递到软件开发的下一阶段。如图所示。软件测试的原则不可能进行完全测试测试中有风险存在软件测试只能表明缺陷的存在,而不能证明产品已经没有缺陷软件产品中所存在的缺陷数与已发现的缺陷数成正比要避免软件测试的杀虫剂现象及早的和不断的进行软件测试进行回归测试软件测试应该有计划、有组织的进行1.4

软件测试的分类按测试阶段单元测试、集成测试、确认测试、系统测试和验收测试。1.4

软件测试的分类按是否需要执行被测试软件静态测试静态测试又称静态分析,是不实际运行被测软件,而是直接分析软件的形式和结构,查找缺陷。主要包括对源代码、程序界面和各类文档及中间产品(如产品说明书、技术设计文档等)所做的测试。动态测试动态测试又称动态分析,是指需要实际运行被测软件,通过观察程序运行时所表现出来的状态、行为等发现软件缺陷,包括在程序运行时,通过有效的测试用例(对应的输入、输出关系)来分析被测程序的运行情况或进行跟踪对比,发现程序所表现的行为与设计规格或客户需求不一致的地方。1.4软件测试的分类

——

静态测试与动态测试静态测试与动态测试之间既具有一定的协同性,同时又具有相对的独立性。程序静态分析的目标不是证明程序完全正确,而是作为动态测试的补充,在程序运行前尽可能多的发现代码中隐含的缺陷。静态测试是不能完全代替动态测试的。测试方法是否需要运行软件是否需要测试用例是否可以直接定位缺陷测试实现难易程度静态测试否否是容易动态测试是是否困难1.4

软件测试的分类按是否需要查看代码白盒测试白盒测试是指已知软件产品的内部工作过程,通过验证每种内部操作是否符合设计规格的要求来进行测试。黑盒测试黑盒测试是指已知软件产品的功能设计规格,测试每个实现了的功能是否满足要求。灰盒测试灰盒测试是介于白盒测试和黑盒测试之间的测试,是对两种测试的一种折中。1.4

软件测试的分类按测试执行时是否需要人工干预手工测试手工测试是完全由人工完成测试工作,包括测试计划的制定,测试用例的设计和执行,以及测试结果的检查和分析。传统的测试工作都是由人工来完成的。自动测试自动测试指的是通过软件测试工具,按照测试人员的预定计划对软件产品进行自动的测试。优点:产生可靠的系统;改进测试工作质量;提高测试工作效率1.4

软件测试的分类按测试实施组织开发方测试开发方测试也叫做α测试,是指在软件开发环境下,由开发方提供检测和提供客观证据,验证软件是否满足规定的要求。用户测试用户测试是指在用户的应用环境下,由用户通过运行和使用软件,验证软件是否满足自己预期的需求。第三方测试第三方测试也叫做独立测试,是指介于软件开发者和软件用户之间的测试组织对软件进行的测试。1.4

软件测试的分类其他测试类型冒烟测试冒烟测试在测试中发现问题,找到缺陷,然后开发人员会来修复这个缺陷。随机测试随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。1.5

软件测试的历史回顾自从计算机作为强大的计算工具在20世纪出现以来,程序的编写与程序的测试课题就同时出现在人们面前。早在20世纪50年代,英国著名的计算机科学家图灵就曾给出程序测试的原始定义。他认为,测试是正确性确认的实验方法的一种极端形式。测试工作在当时考虑不足的另一个原因是人们的心理因素。从软件系统开发者的角度看,研制工作的目标是使其可以运转起来,这是富有刺激性和创造性的任务,当付出相当的精力逐渐变为成果时,他们往往充满信心。20世纪70年代中期,软件测试技术的研究达到高潮。而在软件测试理论迅速发展的同时,程序插装、符号测试方法、耦联效应假设、域测试方法等各种高级的软件测试方法也将软件测试技术提高到了初期的原始方法无法比拟的高度。软件测试的现状近两年来,随着软件市场的成熟,软件行业的竞争越来越激烈,已从过去的卖方市场转变为现在的买方市场,软件的质量、性能、可靠性等方面正逐渐成为人们关注的焦点。为提高自身的竞争能力,软件企业必须重视和加强软件测试。欧美软件项目中,软件测试的工作量和费用已占到项目总工作量的53%~87%。国外成熟软件企业,如微软,软件开发人员与测试人员的比例约为1:2,而国内软件企业,平均8个软件开发工程师才对应1个软件测试工程师,比例严重失衡。软件测试的现状国内软件测试工程师的缺口为30万之多。目前,国内软件测试工程师的来源主要有3个方面:一是以前专业做软件开发的人员后来转行做软件测试,二是从大学招聘的学生,三是通过培训机构招聘的专业学员。近几年以来,我国软件测试行业发展极为迅速,软件测试评测中心发展迅速。2005年6月2日,由14家成员单位组成的“中国软件测评机构联盟”在京成立。目前,我国已有近2000家软件评测中心,软件测试从业人员达到数万人,软件测试产值达到数亿元。软件测试的前景软件测试学科软件测试是一门非常崭新的学科,目前仍然处在研究探索阶段,还没有完全上升到理论层次。软

温馨提示

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

评论

0/150

提交评论