第一章-软件测试与项目分析课件.ppt

上传人(卖家):晟晟文业 文档编号:5170618 上传时间:2023-02-15 格式:PPT 页数:44 大小:1.18MB
下载 相关 举报
第一章-软件测试与项目分析课件.ppt_第1页
第1页 / 共44页
第一章-软件测试与项目分析课件.ppt_第2页
第2页 / 共44页
第一章-软件测试与项目分析课件.ppt_第3页
第3页 / 共44页
第一章-软件测试与项目分析课件.ppt_第4页
第4页 / 共44页
第一章-软件测试与项目分析课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、第一章 软件测试与项目分析1.11.1软件测试概念软件测试概念1.2软件测试内容软件测试内容1.3软件测试分类软件测试分类1.4软件测试流程软件测试流程1.5OA系统分析系统分析1.1软件测试概念5050年代,软件伴随着第一台电子计算机的问世诞生了,以写软件为职业的人也开始出现,他年代,软件伴随着第一台电子计算机的问世诞生了,以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。们多是经过训练的数学家和电子工程师。19601960年代美国大学开始出现授予计算机专业的学位,年代美国大学开始出现授予计算机专业的学位,教人们写软件。早期人们在编写代码的时候,基本都是自己写,自己调试,直

2、到教人们写软件。早期人们在编写代码的时候,基本都是自己写,自己调试,直到5050年代末,年代末,测试才与调试区分来,但由于受调试思想的影响,测试一直处于被压制状态,测试才与调试区分来,但由于受调试思想的影响,测试一直处于被压制状态,“为了让我们为了让我们看到产品在工作,就得将测试工作往后推一点看到产品在工作,就得将测试工作往后推一点”。直到产品代码,甚至是项目后期,才开始。直到产品代码,甚至是项目后期,才开始软件测试工作。软件测试工作。19721972年,在美国北卡罗来纳大学举行了首届软件测试正式会议。年,在美国北卡罗来纳大学举行了首届软件测试正式会议。19791979年,年,Glenford

3、 MyersGlenford Myers的的软件测试艺术软件测试艺术(The Art of Software TestingThe Art of Software Testing)中作出了当时最好)中作出了当时最好的软件测试定义:的软件测试定义:“测试是为发现错误而执行的一个程序或者系统的过程。测试是为发现错误而执行的一个程序或者系统的过程。”至此,软件测至此,软件测试在正式登上历史的舞台,软件测试是软件生产流程中质量保证的重要手段。试在正式登上历史的舞台,软件测试是软件生产流程中质量保证的重要手段。测试,检测、试验,利用一定的手段,检测被测对象特性表现是否与预期需求一致。对于软测试,检测、试

4、验,利用一定的手段,检测被测对象特性表现是否与预期需求一致。对于软件而言,测试是通过人工或者自动的检测方式,检测被测对象是否满足用户要求或弄清楚预件而言,测试是通过人工或者自动的检测方式,检测被测对象是否满足用户要求或弄清楚预期结果与实际结果之间的差异,是为了发现错误而审查软件文档、检查软件数据和执行程序期结果与实际结果之间的差异,是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。软件测试是质量检测过程,包含了若干个测试活动。(引自代码的过程。软件测试是质量检测过程,包含了若干个测试活动。(引自软件测试技术基软件测试技术基础教程础教程)1.1软件测试概念早些时候,很多人对软件测试

5、的认识仅限于运行软件执行测试,实际上软件测试还包括静态早些时候,很多人对软件测试的认识仅限于运行软件执行测试,实际上软件测试还包括静态测试和验证活动。软件包括实现用户需求的源代码、描述软件功能及性能表现的说明书,支测试和验证活动。软件包括实现用户需求的源代码、描述软件功能及性能表现的说明书,支撑软件运行的配置数据,软件测试对象同样包括了文档及配置数据的测试,不仅仅是执行软撑软件运行的配置数据,软件测试对象同样包括了文档及配置数据的测试,不仅仅是执行软件。件。软件测试工程师职责定义的软件测试是指软件产品生存周期内所有的检查、评审和确认活动。软件测试工程师职责定义的软件测试是指软件产品生存周期内所

6、有的检查、评审和确认活动。如设计评审、文档审查、需求测试、单元测试、集成测试、系统测试、验收测试等等检查活如设计评审、文档审查、需求测试、单元测试、集成测试、系统测试、验收测试等等检查活动。软件测试活动是对软件产品质量的检验和评价的过程。一方面检查、揭露软件产品质量动。软件测试活动是对软件产品质量的检验和评价的过程。一方面检查、揭露软件产品质量中存在的质量问题,另一方面又需对产品质量进行客观的评价并提出改进意见。软件测试使中存在的质量问题,另一方面又需对产品质量进行客观的评价并提出改进意见。软件测试使用人工或自动化手段对被测对象进行确认验证活动,从而找出被测对象与最终用户需求之间用人工或自动化

7、手段对被测对象进行确认验证活动,从而找出被测对象与最终用户需求之间的差别。在通常的软件生产活动中,软件测试贯穿于整个软件的生命周期,从初期的项目需的差别。在通常的软件生产活动中,软件测试贯穿于整个软件的生命周期,从初期的项目需求调研到后期的产品维护,每个阶段都离不开检查、评审与确认活动。基于不同的角度,软求调研到后期的产品维护,每个阶段都离不开检查、评审与确认活动。基于不同的角度,软件测试的目的是不一样的。从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误件测试的目的是不一样的。从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。而从软件开发者的角度出

8、发,则希望测试成为表明软件和缺陷,以考虑是否可接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证被测软件已正确地实现了用户的需求,确立人们对软件质量产品中不存在错误的过程,验证被测软件已正确地实现了用户的需求,确立人们对软件质量的信心。的信心。1.2软件测试内容软件测试定义是为了发现错误而审查软件文档、检查软件数据和执行程序代软件测试定义是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。从该定义可以看出,软件测试对象并不仅仅是程序源代码,还包码的过程。从该定义可以看出,软件测试对象并不仅仅是程序源代码,还包括与之相对应的文档及配置数据,在软件

9、生产活动中,一般都有哪些文档呢?括与之相对应的文档及配置数据,在软件生产活动中,一般都有哪些文档呢?配置数据又都有哪些?配置数据又都有哪些?通常情况下,软件项目开展过程中,会有可行性报告、项目立项申请报告、通常情况下,软件项目开展过程中,会有可行性报告、项目立项申请报告、项目进度安排计划、需求规格说明书、开发进度计划、测试计划、概要设计项目进度安排计划、需求规格说明书、开发进度计划、测试计划、概要设计文档、详细设计文档、数据库设计文档、数据字典、源码清单、测试用例等文档、详细设计文档、数据库设计文档、数据字典、源码清单、测试用例等等,配置数据主要包括系统运行所必须的基础数据,比如建库等,配置数

10、据主要包括系统运行所必须的基础数据,比如建库sqlsql语句、建表语句、建表sqlsql语句、存储过程、数据库连接配置文件、系统初始驱动程序等等。在上面语句、存储过程、数据库连接配置文件、系统初始驱动程序等等。在上面众多的文档与配置数据中,测试工程师需要对这些资料进行检查、评审与确众多的文档与配置数据中,测试工程师需要对这些资料进行检查、评审与确认。认。1.2软件测试内容软件测试核心工作是实施软件系统功能、性能、文档、配置数据等方面的测软件测试核心工作是实施软件系统功能、性能、文档、配置数据等方面的测试活动,除此之外,还有可能有需求调研、用户手册编写等等工作。日常测试活动,除此之外,还有可能有

11、需求调研、用户手册编写等等工作。日常测试工作中,测试工程师经常利用测试用例执行被测软件,利用预期结果与软试工作中,测试工程师经常利用测试用例执行被测软件,利用预期结果与软件的实际结果进行比较,从而找出被测系统中与最终用户需求不一致的地方,件的实际结果进行比较,从而找出被测系统中与最终用户需求不一致的地方,也就是通常意义上的也就是通常意义上的BugBug。经过一轮又一轮的版本迭代测试,使被测软件达到。经过一轮又一轮的版本迭代测试,使被测软件达到预期质量要求。预期质量要求。以成都冲和科技有限公司以成都冲和科技有限公司OAOA项目(以下简称项目(以下简称OAOA系统)为例,测试工程师以系统)为例,测

12、试工程师以OAOA系统的需求规格说明书,从功能、性能、系统的需求规格说明书,从功能、性能、GUIGUI等质量特性提取测试项及子项,等质量特性提取测试项及子项,设计测试用例。当测试版本提交后,则可进行测试用例的执行,发现并管理设计测试用例。当测试版本提交后,则可进行测试用例的执行,发现并管理缺陷,并根据缺陷编写系统测试报告,当测试工作完成后可根据项目经理要缺陷,并根据缺陷编写系统测试报告,当测试工作完成后可根据项目经理要求,编写系统的用户手册等。求,编写系统的用户手册等。1.3软件测试分类从测试方法来看,软件测试可分为黑盒测试、白盒测试、灰盒测从测试方法来看,软件测试可分为黑盒测试、白盒测试、灰

13、盒测试、静态测试、动态测试、手工测试、自动化测试等几个方面,试、静态测试、动态测试、手工测试、自动化测试等几个方面,从测试阶段来分,可分为需求测试、单元测试、集成测试、系统从测试阶段来分,可分为需求测试、单元测试、集成测试、系统测试、验收测试等几个阶段。测试、验收测试等几个阶段。1.3软件测试分类1.3.11.3.1按测试方法划分按测试方法划分与软件开发有若干框架一样,软件测试同样可以采用多种方法,与软件开发有若干框架一样,软件测试同样可以采用多种方法,利用不同的方法可以得到不同的效果,并且最终保证被测对象符利用不同的方法可以得到不同的效果,并且最终保证被测对象符合预期的用户需求。按照测试方法

14、分,主要有以下几种:合预期的用户需求。按照测试方法分,主要有以下几种:1.3软件测试分类黑盒测试黑盒测试 黑盒测试又称功能测试、数据驱动测试或基于需求规格的功能测试,通过黑盒测试又称功能测试、数据驱动测试或基于需求规格的功能测试,通过测试活动来检查被测对象每个功能能否正常使用,是否满足用户需求。测试活动来检查被测对象每个功能能否正常使用,是否满足用户需求。黑盒测试方法能更好更真实的从用户角度来检查被测对象界面、功能等方黑盒测试方法能更好更真实的从用户角度来检查被测对象界面、功能等方面需求实现情况,但黑盒测试基于用户需求进行,会带来隐患。黑盒测试方面需求实现情况,但黑盒测试基于用户需求进行,会带

15、来隐患。黑盒测试方法难以发现一些隐藏在程序内部的缺陷,如内存泄漏等。法难以发现一些隐藏在程序内部的缺陷,如内存泄漏等。以以OAOA系统为例,如果从用户需求角度考虑,对图书管理、资产管理或车辆系统为例,如果从用户需求角度考虑,对图书管理、资产管理或车辆管理等模块,实施功能或性能测试,此处的方法即为黑盒测试。管理等模块,实施功能或性能测试,此处的方法即为黑盒测试。黑盒测试工作目前是软件测试方法核心方法,在企业测试过程中,大多数黑盒测试工作目前是软件测试方法核心方法,在企业测试过程中,大多数采用黑盒测试方法,读者在学习过程中需重点学习此测试方法,再辅以后续采用黑盒测试方法,读者在学习过程中需重点学习

16、此测试方法,再辅以后续的测试方法,方能把握工作核心,关键点。的测试方法,方能把握工作核心,关键点。1.3软件测试分类白盒测试白盒测试 白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时,测试工程师需深入考查程序代码的内部结构、逻辑设计等。白盒测试此时,测试工程师需深入考查程序代码的内部结构、逻辑设计等。白盒测试需要测试工程师具备很深的软件开发功底,精通相应的开发语言,初级测试需要测试工程师具备很深的软件开发功底,精通相应的开发语言,初级测试工程师难以胜任该工作。工程师难以胜任该工作。白盒测试方法主要包括代码检查法

17、、静态结构分析法、静态质量度量法、白盒测试方法主要包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法,其中最为常用的方法是代码检查法。逻辑覆盖法、基本路径测试法,其中最为常用的方法是代码检查法。代码检查包括桌面检查、代码审查和走查等,主要检查代码和设计一致性,代码检查包括桌面检查、代码审查和走查等,主要检查代码和设计一致性,代码对标准的遵循、可读性,代码逻辑表达的正确性,代码结构合理性等方代码对标准的遵循、可读性,代码逻辑表达的正确性,代码结构合理性等方面;发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,面;发现违背程序编写标准的问题,程序中不安全、不明确

18、和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。一般公和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。一般公司都有比较成熟的编程规范,代码检查时,可以根据编程规范进行检查。司都有比较成熟的编程规范,代码检查时,可以根据编程规范进行检查。1.3软件测试分类以以OAOA系统车辆管理添加车辆功能为例,如果对以下代码系统车辆管理添加车辆功能为例,如果对以下代码 function findObj(theObj,theDoc)functi

19、on findObj(theObj,theDoc)var p,i,foundObj;var p,i,foundObj;if(!theDoc)theDoc=document;if(!theDoc)theDoc=document;if(p=theObj.indexOf(?)0&parent.frames.length)if(p=theObj.indexOf(?)0&parent.frames.length)theDoc=parent.framestheObj.substring(p+1).document;theDoc=parent.framestheObj.substring(p+1).docu

20、ment;theObj=theObj.substring(0,p);theObj=theObj.substring(0,p);1.3软件测试分类 if(!(foundObj=theDoctheObj)&theDoc.all)foundObj=if(!(foundObj=theDoctheObj)&theDoc.all)foundObj=theDoc.alltheObj;theDoc.alltheObj;for(i=0;!foundObj&i theDoc.forms.length;i+)for(i=0;!foundObj&i theDoc.forms.length;i+)foundObj=th

21、eDoc.formsitheObj;foundObj=theDoc.formsitheObj;for(i=0;!foundObj&theDoc.layers&i theDoc.layers.length;for(i=0;!foundObj&theDoc.layers&i theDoc.layers.length;i+)i+)foundObj=findObj(theObj,theDoc.layersi.document);foundObj=findObj(theObj,theDoc.layersi.document);if(!foundObj&document.getElementById)fo

22、undObj=if(!foundObj&document.getElementById)foundObj=document.getElementById(theObj);document.getElementById(theObj);return foundObj;return foundObj;var GetDate=;var GetDate=;function SelectDate(ObjName,FormatDate)function SelectDate(ObjName,FormatDate)var PostAtt=new Array;var PostAtt=new Array;Pos

23、tAtt0=FormatDate;PostAtt0=FormatDate;PostAtt1=findObj(ObjName);PostAtt1=findObj(ObjName);GetDate=showModalDialog(./util/calendar/calendar.htm,PostAtt,GetDate=showModalDialog(./util/calendar/calendar.htm,PostAtt,dialogWidth:286px;dialogHeight:221px;status:no;help:no;);dialogWidth:286px;dialogHeight:2

24、21px;status:no;help:no;);function SetDate()function SetDate()findObj(ObjName).value=GetDate;findObj(ObjName).value=GetDate;进行测试,验证进行测试,验证findObjfindObj、SetDateSetDate等函数的功能,此类方法即为白盒测试方法。等函数的功能,此类方法即为白盒测试方法。1.3软件测试分类灰盒测试灰盒测试 与前面的黑盒测试、白盒测试相比,灰盒测试介于两者之间。黑盒测试仅与前面的黑盒测试、白盒测试相比,灰盒测试介于两者之间。黑盒测试仅关注程序代码的功能性表现

25、,不关注其内部逻辑设计、构成情况,白盒测试则关注程序代码的功能性表现,不关注其内部逻辑设计、构成情况,白盒测试则仅从程序代码的内部构成考虑,检查其内部代码设计结构,方法调用等,灰盒仅从程序代码的内部构成考虑,检查其内部代码设计结构,方法调用等,灰盒测试则综合了黑盒测试与白盒测试,一方面考虑程序代码的功能性表现,另一测试则综合了黑盒测试与白盒测试,一方面考虑程序代码的功能性表现,另一方面,又需要考虑程序代码的内部结构。方面,又需要考虑程序代码的内部结构。同样,以同样,以OAOA系统为例,如果在测试过程中,既考虑车辆管理用户需求方面系统为例,如果在测试过程中,既考虑车辆管理用户需求方面的特性,如能

26、否添加车辆,编辑车辆信息等,又从该功能的实现逻辑代码考虑,的特性,如能否添加车辆,编辑车辆信息等,又从该功能的实现逻辑代码考虑,则此方法即为灰盒测试。则此方法即为灰盒测试。1.3软件测试分类静态测试静态测试 静态测试,顾名思义,静态的、不执行被测对象程序代码寻找静态测试,顾名思义,静态的、不执行被测对象程序代码寻找缺陷的过程。通过阅读程序代码、文档资料等,与需求规格说明缺陷的过程。通过阅读程序代码、文档资料等,与需求规格说明书进行比较,找出程序代码中设计不合理以及文档资料有错误的书进行比较,找出程序代码中设计不合理以及文档资料有错误的地方。地方。在实际研发活动中可开展同行评审活动,通过评审方式

27、,找在实际研发活动中可开展同行评审活动,通过评审方式,找出文档资料、程序代码中存在的缺陷并加以修改。出文档资料、程序代码中存在的缺陷并加以修改。以以OAOA系统为例,如果针对该系统的设计文档,如概要设计文系统为例,如果针对该系统的设计文档,如概要设计文档,或系统源代码进行走读查阅,则使用的是静态测试方法。档,或系统源代码进行走读查阅,则使用的是静态测试方法。1.3软件测试分类动态测试动态测试 动态测试即为执行被测对象程序代码,执行测试用例,检查程动态测试即为执行被测对象程序代码,执行测试用例,检查程序运行实际结果与测试用例预期结果之间是否存在差异,判定实序运行实际结果与测试用例预期结果之间是否

28、存在差异,判定实际结果与预期结果是否一致,从而检验程序的正确性、可靠性和际结果与预期结果是否一致,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能状况。有效性,并分析系统运行效率和健壮性等性能状况。动态测试由四部分组成:设计测试用例、执行测试用例、分析动态测试由四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。比较输出结果、输出测试报告。动态测试有三种主要的方法:黑盒测试、白盒测试以及灰盒测动态测试有三种主要的方法:黑盒测试、白盒测试以及灰盒测试。试。以以OAOA系统为例,搭建测试环境运行系统对其进行功能的验证测系统为例,搭建测试环境运行系统对其进行

29、功能的验证测试,即为使用动态测试方法。试,即为使用动态测试方法。1.3软件测试分类手工测试手工测试 未真正接触软件测试之前,很多人都认为,软件测试工作就是执行一些鼠未真正接触软件测试之前,很多人都认为,软件测试工作就是执行一些鼠标点击的动作来查找缺陷。的确,在手动测试阶段,大部分的测试工作就是标点击的动作来查找缺陷。的确,在手动测试阶段,大部分的测试工作就是模拟用户的业务流程,使用软件产品,与用户需求规格进行比较,从而发现模拟用户的业务流程,使用软件产品,与用户需求规格进行比较,从而发现软件系统中的缺陷。手动测试是最传统的测试方法,也是目前大多数公司都软件系统中的缺陷。手动测试是最传统的测试方

30、法,也是目前大多数公司都在使用的测试形式。测试工程师设计测试用例并执行测试用例,根据实际结在使用的测试形式。测试工程师设计测试用例并执行测试用例,根据实际结果与预期结果相比,记录测试结果,最终输出测试报告。手工测试,可以充果与预期结果相比,记录测试结果,最终输出测试报告。手工测试,可以充分发挥测试工程师的主观能动性,将其智力活动体现于测试工作中,能发现分发挥测试工程师的主观能动性,将其智力活动体现于测试工作中,能发现很多的缺陷,但手工测试方法又有一定的局限性,并且长期下去会令人觉得很多的缺陷,但手工测试方法又有一定的局限性,并且长期下去会令人觉得枯燥单调。枯燥单调。1.3软件测试分类自动化测试

31、自动化测试 软件行业不断发展,软件测试技术也在不断地更新,出现了众多软件行业不断发展,软件测试技术也在不断地更新,出现了众多的自动化测试工具,如的自动化测试工具,如HPHP的的QucikTest ProfessionalQucikTest Professional、LoadRunnerLoadRunner,IBM RPTIBM RPT、RFTRFT等等。自动化测试是利用一些测试工等等。自动化测试是利用一些测试工具,录制业务使用流程,让工具自动运行测试过程查找缺陷,也具,录制业务使用流程,让工具自动运行测试过程查找缺陷,也可以编写脚本代码,设定特定的测试场景,自动寻找缺陷。自动可以编写脚本代码,

32、设定特定的测试场景,自动寻找缺陷。自动化测试的引入,大大提高了测试的效率和测试的准确性,而且写化测试的引入,大大提高了测试的效率和测试的准确性,而且写出结构性较好的测试脚本,还可以在软件生命周期的各个阶段重出结构性较好的测试脚本,还可以在软件生命周期的各个阶段重复使用。复使用。1.3软件测试分类前面概要阐述了按测试方法划分的软件测试类型,下面以测试阶段对测试类型进行划分,主要有需求前面概要阐述了按测试方法划分的软件测试类型,下面以测试阶段对测试类型进行划分,主要有需求测试、单元测试、集成测试、系统测试、用户测试、回归测试等。测试、单元测试、集成测试、系统测试、用户测试、回归测试等。需求测试需求

33、测试 需求调研完成后,测试部门或者需求小组进行需求测试,从需求文档规范性、正确性等方面检查需求需求调研完成后,测试部门或者需求小组进行需求测试,从需求文档规范性、正确性等方面检查需求调研阶段生成的需求文档,测试工程师最好是有经验的需求分析人员,并且得到了需求调研期间形成调研阶段生成的需求文档,测试工程师最好是有经验的需求分析人员,并且得到了需求调研期间形成的的DEMODEMO。在许多失败的项目中,。在许多失败的项目中,70%70%85%85%的返工是由于需求方面的错误所导致的,并且因为需求的缘的返工是由于需求方面的错误所导致的,并且因为需求的缘故而导致大量的返工,造成进度延迟、缺陷的发散,甚至

34、项目的失败,这是一件极其痛苦的事情,所故而导致大量的返工,造成进度延迟、缺陷的发散,甚至项目的失败,这是一件极其痛苦的事情,所以,在有条件开展需求测试的时候,一定要实施需求测试。以,在有条件开展需求测试的时候,一定要实施需求测试。单元测试单元测试 单元测试又称为模块测试,顾名思义,就是对程序代码中最小的设计模块单元进行测试。单元测试是单元测试又称为模块测试,顾名思义,就是对程序代码中最小的设计模块单元进行测试。单元测试是在软件开发过程中进行的最低级别的测试活动。在单元测试活动中,我们主要采用静态测试与动态测在软件开发过程中进行的最低级别的测试活动。在单元测试活动中,我们主要采用静态测试与动态测

35、试相结合的办法。首先采用静态的代码走查,检查程序代码中不符合编程规范,存在错误或者遗漏的试相结合的办法。首先采用静态的代码走查,检查程序代码中不符合编程规范,存在错误或者遗漏的地方,同时使用代码审查的方法,项目小组检查项目代码,以期发现更多的问题,然后再使用单元测地方,同时使用代码审查的方法,项目小组检查项目代码,以期发现更多的问题,然后再使用单元测试工具,比如试工具,比如JUnitJUnit等工具进行程序代码内逻辑结构、函数调用等方面进行测试。据业界统计,单元测等工具进行程序代码内逻辑结构、函数调用等方面进行测试。据业界统计,单元测试一般可以发现大约试一般可以发现大约80%80%的软件缺陷。

36、的软件缺陷。1.3.2按测试阶段划分按测试阶段划分1.3软件测试分类集成测试集成测试集成测试,又称为组装测试,就是将软件产品中各个模块集成组装起来,检查其接口是否存集成测试,又称为组装测试,就是将软件产品中各个模块集成组装起来,检查其接口是否存在问题,以及组装后的整体功能、性能表现。在开展集成测试之前,我们需进行深入的单元在问题,以及组装后的整体功能、性能表现。在开展集成测试之前,我们需进行深入的单元测试(当然,实际工作中大多公司不会做单元测试,仅有程序员各自检查自己的代码)。从测试(当然,实际工作中大多公司不会做单元测试,仅有程序员各自检查自己的代码)。从个体来讲,可能解决了很多的缺陷,但所

37、有的个体组合起来,就可能出现各种各样的问题。个体来讲,可能解决了很多的缺陷,但所有的个体组合起来,就可能出现各种各样的问题。1+121+12的问题,此刻尤为突出。的问题,此刻尤为突出。集成测试一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合集成测试一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合方式集成)等策略进行测试,利用以黑盒测试为主、白盒测试为辅的测试方法进行测试。集方式集成)等策略进行测试,利用以黑盒测试为主、白盒测试为辅的测试方法进行测试。集成测试工程师一般由测试工程师担当,开发工程师将经过单元测试的代码集成后合成一个新成测试工程师一般

38、由测试工程师担当,开发工程师将经过单元测试的代码集成后合成一个新的软件测试版本,交由配置管理员,然后测试组长从配置管理员处提取集成好的测试版本进的软件测试版本,交由配置管理员,然后测试组长从配置管理员处提取集成好的测试版本进行测试。行测试。集成测试阶段主要解决的是各个软件组成单元代码是否符合开发规范、接口是否存在问题、集成测试阶段主要解决的是各个软件组成单元代码是否符合开发规范、接口是否存在问题、整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等问题。整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等问题。1.3软件测试分类系统测试系统测试系统测试,是将通过集成测试的软

39、件,部署到某种较为复杂的计算机用户环系统测试,是将通过集成测试的软件,部署到某种较为复杂的计算机用户环境进行测试,这里所说的复杂的计算机用户环境,其实就是我们一般用户的境进行测试,这里所说的复杂的计算机用户环境,其实就是我们一般用户的计算机环境。计算机环境。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。这个阶段主要进行的是安装与卸载测试、兼容性不符合或与之矛盾的地方。这个阶段主要进行的是安装与卸载测试、兼容性测试、功能确认测试、安全性测试等等。系统测试阶段采用黑盒测试方法,测试、功能确

40、认测试、安全性测试等等。系统测试阶段采用黑盒测试方法,主要考查被测软件的功能与性能表现。如果软件可以按照用户合理地期望的主要考查被测软件的功能与性能表现。如果软件可以按照用户合理地期望的方式来工作的时候,即可认为通过系统测试。方式来工作的时候,即可认为通过系统测试。系统测试过程其实也是一种配置检查过程,检查在软件生产过程中是否有遗系统测试过程其实也是一种配置检查过程,检查在软件生产过程中是否有遗漏的地方,在系统测试过程中做到查漏补缺,以确保交付的产品符合用户质漏的地方,在系统测试过程中做到查漏补缺,以确保交付的产品符合用户质量要求。量要求。1.3软件测试分类用户测试用户测试 在系统测试完成后,

41、将会进行用户测试。这里的用户测试,其实可以称为用在系统测试完成后,将会进行用户测试。这里的用户测试,其实可以称为用户确认测试。在正式验收前,需要用户对本系统做出一个评价,用户可对交户确认测试。在正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。面向应用的项付的系统做测试,并将测试结果反馈回来,进行修改、分析。面向应用的项目,在交付用户正是使用之前要经过一定时间的用户测试。目,在交付用户正是使用之前要经过一定时间的用户测试。回归测试回归测试 回归测试一般发生的情况在发现缺陷后,重新执行测试用例的过程。回归测回归测试一般发生的情况在发现缺陷后

42、,重新执行测试用例的过程。回归测试阶段主要的目的是检查以前的测试用例能否再次通过,是否还有需要补充试阶段主要的目的是检查以前的测试用例能否再次通过,是否还有需要补充的用例等等。的用例等等。有些公司会采用自动化测试工具来进行回归测试,比如利用有些公司会采用自动化测试工具来进行回归测试,比如利用QTPQTP,对于产品级,对于产品级,变动量小的软件而言,我们可以利用这样的工具去执行测试。但一般情况下,变动量小的软件而言,我们可以利用这样的工具去执行测试。但一般情况下,都由测试工程师手动的执行以前的测试用例,来检查用例通过情况。都由测试工程师手动的执行以前的测试用例,来检查用例通过情况。回归测试可以发

43、现在产品发布前未能发现的问题,比如时钟的延迟、软件的回归测试可以发现在产品发布前未能发现的问题,比如时钟的延迟、软件的性能问题等等。性能问题等等。1.4软件测试流程在学习了软件测试的基本概念后,我们接着聊聊一般公司里软件在学习了软件测试的基本概念后,我们接着聊聊一般公司里软件测试的流程。以测试的流程。以OAOA系统为例,一般公司的软件测试工作流程如图系统为例,一般公司的软件测试工作流程如图1-11-1所示。所示。图图1-11-1软件测试工作流程图软件测试工作流程图1.4软件测试流程1.4.11.4.1成立测试组成立测试组当需测试的项目分配下来后,该项目的负责人向测试部门提出测试申请,通当需测试

44、的项目分配下来后,该项目的负责人向测试部门提出测试申请,通过测试经理的审批后,由测试经理指派测试组长与测试工程师,成立项目测过测试经理的审批后,由测试经理指派测试组长与测试工程师,成立项目测试组,负责该项目的测试工作。试组,负责该项目的测试工作。根据项目团队的组织流程,根据项目团队的组织流程,OAOA系统的负责人张三向测试部门经理李四申请实系统的负责人张三向测试部门经理李四申请实施测试活动,此时,李四接受测试任务后,制定王五、赵六、田七为测试工施测试活动,此时,李四接受测试任务后,制定王五、赵六、田七为测试工程师,负责程师,负责OAOA系统的实际测试活动。系统的实际测试活动。1.4软件测试流程

45、1.4.21.4.2分析测试需求分析测试需求测试经理任命测试组长,测试组长需提前熟悉被测对象的需求,从总体上掌测试经理任命测试组长,测试组长需提前熟悉被测对象的需求,从总体上掌握项目的进展情况。通过仔细的阅读项目的相关文档(比如项目的进度计划、握项目的进展情况。通过仔细的阅读项目的相关文档(比如项目的进度计划、测试要求等)后,测试组长需安排下一步工作。测试要求等)后,测试组长需安排下一步工作。1.4软件测试流程1.4.31.4.3制定测试计划制定测试计划测试组长在详细了解项目信息后,根据项目需求、项目进度计划表制定当前测试组长在详细了解项目信息后,根据项目需求、项目进度计划表制定当前项目的测试

46、计划,并以此测试计划来指导测试组开展对应的测试工作。测试项目的测试计划,并以此测试计划来指导测试组开展对应的测试工作。测试计划中需说明每个测试工件输出的时间点、测试资源、测试方法、测试风险计划中需说明每个测试工件输出的时间点、测试资源、测试方法、测试风险规避、测试停测标准等。规避、测试停测标准等。1.4软件测试流程1.4.41.4.4提取测试需求提取测试需求测试组长制定好了测试计划后,项目组进行评审。评审通过后,项目测试组测试组长制定好了测试计划后,项目组进行评审。评审通过后,项目测试组即可按照此测试计划开展工作。测试组员根据测试组长的任务分配,进行项即可按照此测试计划开展工作。测试组员根据测

47、试组长的任务分配,进行项目用户需求规格说明书的阅读,甚至开展需求测试工作。需求阅读理解完成目用户需求规格说明书的阅读,甚至开展需求测试工作。需求阅读理解完成后,进行测试需求的提取,也就是列出被测对象需测试的点,这项工作可以后,进行测试需求的提取,也就是列出被测对象需测试的点,这项工作可以利用利用TestDiectorTestDiector等测试管理工具开展。等测试管理工具开展。1.4软件测试流程1.4.51.4.5编写测试用例编写测试用例测试需求提取完毕,经过测试组的评审通过后,测试组员可以进行测试用例测试需求提取完毕,经过测试组的评审通过后,测试组员可以进行测试用例的设计,这些工作都是在测试

48、计划中规定的时间内完成。比如测试计划中规的设计,这些工作都是在测试计划中规定的时间内完成。比如测试计划中规定定“2008-12-202008-12-20至至2008-12-302008-12-30完成系统测试用例设计及评审完成系统测试用例设计及评审”,那么就必须,那么就必须在这个时间段内完成被测对象的测试用例设计。测试用例的设计一般使用在这个时间段内完成被测对象的测试用例设计。测试用例的设计一般使用WordWord、ExcelExcel等样式,也可使用等样式,也可使用TestDirectorTestDirector、TestLinkTestLink等工具进行管理。等工具进行管理。测试用例设计工

49、作在某些企业中因项目周期及要求不同,可能不开展,直接测试用例设计工作在某些企业中因项目周期及要求不同,可能不开展,直接进行测试活动。进行测试活动。1.4软件测试流程1.4.61.4.6搭建测试环境搭建测试环境测试用例设计工作完成后,如果项目开发组告知测试组长可以开展测试的时测试用例设计工作完成后,如果项目开发组告知测试组长可以开展测试的时候,测试组长可从配置管理员处提取测试版本,根据开发组提供的被测对象候,测试组长可从配置管理员处提取测试版本,根据开发组提供的被测对象测试环境搭建单进行测试环境的搭建。测试环境搭建需要测试工程师掌握基测试环境搭建单进行测试环境的搭建。测试环境搭建需要测试工程师掌

50、握基本的硬件、软件知识。本的硬件、软件知识。随着用户需求的不断加大,复杂化,项目运行环境往往非常复杂,并且搭建随着用户需求的不断加大,复杂化,项目运行环境往往非常复杂,并且搭建成本极高,以大型网站系统架构为例,如图成本极高,以大型网站系统架构为例,如图1-21-2所示。所示。1.4软件测试流程图图1-21-2大型大型webweb系统架构系统架构1.4软件测试流程从用户角度来看,该服务器的架构非常复杂,从测试人员角度来看,同样站从用户角度来看,该服务器的架构非常复杂,从测试人员角度来看,同样站在用户角度,亦不需要掌握其等复杂架构,测试环境一般都由开发人员搭建在用户角度,亦不需要掌握其等复杂架构,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第一章-软件测试与项目分析课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|