单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件测试常识介绍,2010,年,9,月,内容简介,软件测试概念,软件测试基础,软件开发与软件测试,软件缺陷产生,测试类型,名词:,测试、质量、质量保证,一、软件测试,概念,测试定义,软件测试是为了发现错误而执行程序的过程测试目的,通过一定的人力、物力和时间找出软件中潜在的各种错误和缺陷测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择与接受软件提供有力的依据通过分析错误产生的原因还可以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进通过最终的验收测试,也可以证明软件满足用户的需求,树立人们使用软件的信心一、软件测试,概念,软件质量,软件满足规定或潜在用户需求特性的总和质量保证,(,QUALITY ASSURANCE,),质量保证的重要工作为通过预防、检查与改进来保证软件的质量一、软件测试,概念,软件测试与质量保证,测试并不等同于质量保证,,两者的区别是:,软件测试员的目标是尽可能早和彻底地找出软件缺陷,并确保缺陷得以修复软件质量保证人员的主要职责是创建和改进软件开发过 程、测试过程以及防止软件缺陷发生的标准和方法。
当然,在实际工作中软件测试员会兼做一些,QA,的工作,,QA,人员也会做一些软件测试双方的工作和任务交织在一起,不一定会区分不同的角色来完成,一、软件测试,概念,二、软件测试,基础,测试的原则,测试的对象,测试的分类,尽早和不断的测试,软件缺陷产生的原因很多,有源自产品说明书、源自,设计、源自编码等在开发过程的每个阶段,(,需求、设计、,编码、测试、发布,),都有可能存在缺陷所谓“尽早测试”,,是指测试活动尽可能早地介入软件生命周期中尽早发现,缺陷的直接目的就是,降低修复及售后服务成本,大量统计,数据表明,修复软件缺陷的花销(时间、金钱)会随着时,间推移呈指数级地增长,.,二、软件测试,基础,-,测试原则,二、软件测试,基础,-,测试原则,所有的软件测试应以用户需求为本,软件测试最直接的目的是揭示所有使软件达不到用户期,望、满足不了用户需求的缺陷和错误用户就是上帝,只有,满足了用户的需求,并让他们用得方便、放心,用户才会心,甘情愿地为软件买单所以作为软件质量的把关者,测试人,员要把用户的想法放在首位,从设计测试用例到执行测试,,都要从用户的思维角度去考虑每一个问题,确保通过测试后,的软件能够满足用户的需求,达到用户的期望。
避免程序员测试自己的程序,测试工作应,由独立的测试部门来完成,基于心理因素,人们往往觉得揭露自己程序中的问题不,是一件愉快的事情,潜意识总是不想否认自己的工作成果;,基于思维定势,人们也难于发现自己的错误因此,测试工,作应由客观、公正、严格的独立部门或第三方测试机构来进,行二、软件测试,基础,-,测试原则,软件测试基础,-,测试的对象,软件生命周期各阶段,软件测试对象,软件测试活动,需求分析,需求规格说明文档,需求评审,设计,(,概要设计、详细设计,),设计文档,设计评审,编码,源代码,代码审查、单元测试、集成测试,测 试,软件系统,系统测试(包括功能测试、性能测试、安全性测试等),发 布,软件系统,发布测试,软件测试基础,-,测试的分类,按照开发阶段划分,单元测试、集成测试、系统测试、确认测试和验收测试,按照测试实施组织划分,开发方测试(验收测试)、用户测试和第三方测试,按照测试技术划分,白盒测试、黑盒测试、灰盒测试,三、软件测试与软件开发,名词,软件生命周期、软件生命周期过程、,软件测试过程模型,三、软件测试与软件开发,软件生命周期,软件从无到有,又从有到无所经历的时间周期,软件生命周期过程,软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合,包括:立项、需求分析、设计、编码、测试、交付、维护、管理的各种活动、质量保证、环境基础设施配置、文档管理、退役等,软件测试,V,模型,模型图中箭头代表了时间方向,左边下降的是开发过程各阶段,右边上升的部分是测试过程的各个阶段。
软件测试过程模型,V,模型,软件测试过程模型,V,模型,优,点,指明,在软件生命周期中需要经历的若干个测试,级别,缺 点,忽略,了测试的对象不应该仅仅包括程序,没有明确指出对,需求大道设计,的测试,未体现“尽早地和不断地进行软件测试”的原则,软件测试,W,模型,软件测试过程模型,W,模型,软件测试过程模型,W,模型,优,点,充分,体现,“,全面及全程测试,”,的理念,补充了,V,模型中忽略的测试活动测试与开发是 同步进行,有利于尽早地发现缺陷,及早制定应对措施,降低风险,缺 点,把,测试活动看作是伴随需求到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,无法支持迭代的开发模型,难以应付突如其来的复杂变更软件测试,H,模型,软件测试过程模型,H,模型,软件测试过程模型,H,模型,将,测试活动完全独立出来,形成一个独立的流程,与其,他任意流程并发进行人们在软件开发过程中摸索出了螺旋,、迭代等诸多模型,需求、设计、编码工作可能重叠、反复,地进行,这时的测试活动也将是迭代和反复的优 点,:,将测试过程从开发过程中适当地抽象出来,作为一个独立的过程进行管理它强调测试是独立的,只要测试条件成熟、测试准备工作就绪,就可以执行测试。
适合当前软件开发中广泛应用的迭代模型软件测试过程模型,测试过程模型选取策略,在实际的测试工作中,应该尽可能利用各模型的优势,,扬长避短比较理想的选取策略:以,W,模型作为测试框,架,尽早、全面的开展测试同时灵活运用,H,模型独立测,试的思想,在达到恰当的就绪点时就开展独立的测试工作,并使测试工作迭代、反复地开展四、软件缺陷的产生及分类,缺陷的定义及产生,缺陷的类型,缺陷的重要属性,四、软件缺陷的产生及分类,1,、缺陷的定义,软件存在的不希望或不可接受的偏差,一般包括以下,4,方面,软件功能未达到产品说明书中的要求;,软件功能超出产品说明书指明范围;,软件未达到产品说明书虽未指出但应达到的目标;,测试员或用户认为该软件难以理解、易用性差、运行速度缓慢常见的,4,种类型,1,)没有实现预期的功能;,例如:用户需要使用计算器完成乘法运算,但系统未实现2,)功能实现不正确或不能正常使用;,例如:系统实现了乘法运算,但是计算结果不对,,2*3=8,3,)实现了用户不需要的功能例如:用户只需要进行加减乘除的运算,但开发人员好意的帮用户实现了乘方4,)测试员或用户认为该软件难以理解、易用性差、运行速度缓慢。
例如:系统进行简单的加法运算(,2+3,),需要,3,分钟四、软件缺陷的产生及分类,缺陷的产生的原因,简单的说,软件由人来开发,在整个软件生存期的各个阶段,都贯穿着人的直接或间接的干预然而,人难免会犯错,这必然会给软件留下不良的痕迹四、软件缺陷的产生及分类,2,、缺陷的类型,可以根据缺陷产生的环节对缺陷进行分类,例如:需求缺陷、设计缺陷等,可以对缺陷产生的原因进行分类,例如:需求不明确、功能实现错误、功能未实现、数据缺陷等,3,、缺陷的重要属性,严重程度(表示缺陷造成的危害的恶劣程度),严重:导致系统崩溃、数据丢失、功能未实现(主流程);,一般:功能未实现(非主流程)、功能错误等;,轻微:不影响用户使用的错误优先级(表示修复缺陷的重要程度与次序),紧急:,必须立即修复,将影响下一步的开发,/,测试工作;,一般:应在发布前修复;,低:,可延期修复,对应的缺陷状态可能是延期四、软件缺陷的产生及分类,严重等级、优先等级的区别,1,、填写人不同,严重等级:由测试人员填写;,优先等级:由项目经理或模块负责人填写2,、含义不同,严重等级:缺陷对系统的影响程度;,优先等级:修复缺陷的先后次序举例:,1,、缺陷,A,:触发时会导致系统崩溃,可以通过重启解决。
但出现几率为,0.0009%,严重等级,=,高;优先等级,=,一般,/,低2,、缺陷,B,:无法按日期查询但该功能属于用户常用功能,,2,天后要发布给用户使用严重等级,=,一般;优先等级,=,紧急五、常见测试的类型介绍,软件功能测试,应用负载压力测试,易用性测试,兼容性测试,文档测试,安全测试,五、常见测试的类型介绍,1,、软件功能测试,功能测试也称黑盒测试,它是通过测试来检测每个功能是否都能正常使用在测试中,把程序看作一个不能打开,.,黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试五、常见测试的类型介绍,2,、应用负载压力测试,指在一定约束条件下测试系统所能承受的并发用户数、运行时间、数量数,以确定系统所能承受的最大负载压力五、常见测试的类型介绍,3,、易用性测试,指软件产品被理解、学习、使用和吸引用户的能力涉及易理解性、易学习性、美观性、一致性、业务符合性等方面包括:安装测试、用户界面测试、辅助系统测试,五、常见测试的类型介绍,4,、兼容性测试,兼容性测试验证的是软件与其所依赖的环境的依赖程度,包括硬件和软件硬件兼容:整机兼容、配件兼容、打印机兼容等,软件兼容:操作系统兼容、数据库兼容、浏览器兼容等。
五、常见测试的类型介绍,5,、文档测试,文档为软件产品的重要的组成部分,软件过程中产生的重要文档都应采用合适的测试方式五、常见测试的类型介绍,6,、安全性测试,软件安全性是防止对程序及数据的非授权的故意或意外访问能力有关的软件属性包括:用户认证机制、加密机制、防病毒系统、数据备份与恢复、防,SQL,注入等。