软件测试与项目分析-软件测试与项目分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件测试与项目分析-软件测试与项目分析课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 项目 分析 课件
- 资源描述:
-
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系统为例,如果在测试过程中,既考虑车辆管理用户需求方面系统为例,如果在测试过程中,既考虑车辆管理用户需求方面的特性,如能
展开阅读全文