软件测试基础知识_第1页
软件测试基础知识_第2页
软件测试基础知识_第3页
软件测试基础知识_第4页
软件测试基础知识_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、1 Pactera. Confidential. All Rights Reserved.软件测试基础知识软件测试基础知识2013年5月2 Pactera. Confidential. All Rights Reserved.软件的相关知识软件测试的重要性软件测试的分类和阶段软件测试的基本方法测试面临的挑战测试工程师自身素质培养3 Pactera. Confidential. All Rights Reserved.n能够完成预定功能和性能的、可执行的指令(计算机程序)n使得程序能够适当地操作信息的数据结构n描述程序的操作和使用的文档软件软件 = 程序程序 + 数据数据 (库)(库) + 文档

2、文档 4 Pactera. Confidential. All Rights Reserved.n 客户需求n 市场需求文档n 软件需求规格说明书n 技术设计文档n 测试文档n 在线帮助n 发布注释n 软件包n 帮助文件n 示例n 产品支持文档n 错误信息n 安装手册n 用户手册n 产品标签n 产品广告或宣传材料n 5 Pactera. Confidential. All Rights Reserved.软件在开发、生产、维护和使用等方面与计算机硬件相比存在明显的差异。深入理解软件的定义需要了解软件的特点:n软件的生产与硬件不同,它没有明显的制作过程。一旦研制开发成功,可以大量拷贝同一内容的副

3、本。n软件在运行、使用期间不存在磨损、老化问题。n软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题。 n软件复杂性高,成本昂贵。n软件开发涉及诸多社会因素。6 Pactera. Confidential. All Rights Reserved.n 传统的开发流程 传统的软件开发流程是一个文档驱动的流程,它将整个软件开发过程划分为顺序相接的几个阶段,每个阶段都必需完成全部规定的任务(文档)后才能够进入下一个阶段。如必须完成全部的系统需求规格说明书之后才能够进入概要设计阶段,编码必需在系统设计完成之后才能够进行。这就意味着只有当所有的系统模块全部开发完成之后,我

4、们才进行系统集成,对于一个由上百个模块组的复杂系统来说,这是一个非常艰巨而漫长的工作。7 Pactera. Confidential. All Rights Reserved.n 传统开发流程的问题: 随着我们所开发的软件项目越来越复杂,传统的瀑布型开发流程不断地暴露出以下问题:1、需求或设计中的错误往往只有到了项目后期才能够被发现,例如:系统交付客户之后才发现原先对于需求的理解是错误的,系统设计中的问题要到测试阶段才能被发现。 2、对于项目风险的控制能力较弱,项目风险在项目开发较晚的时候才能够真正降低,往往是经过系统测试之后,才能确定该设计是否能够真正满足系统需求。 3、软件项目常常延期完成

5、或开发费用超出预算,项目开发进度往往会被意外发生的问题所打乱,需要进行返工或其他一些额外的开发周期,造成项目延期或费用超支。 4、项目管理人员专注于使用文档的完成程度和审核来估计项目的进展情况,所以项目经理对于项目状态的估计往往是不准确的,当他回答系统已完成了80%的开发任务时,剩下20%的开发任务实际上消耗的是整个项目80%的开发资源。8 Pactera. Confidential. All Rights Reserved. 软件开发模型软件开发模型(Software Development Model):是指软件开发全部过程、活动和任务的结构框架。 软件生存周期:软件生存周期:一个软件产品

6、或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。 9 Pactera. Confidential. All Rights Reserved.为了解决“软件危机”,人们提出了软件工程的概念,经过软件工程的实践,人们总结出了一系列的软件开发模型:n 瀑布模型n V模型n 原型模型n 增量模型n 螺旋模型n 迭代模型n RUP(Rational Unified Process)模型n 10 Pactera. Confidential. All Rights Reserved.用户需求需求分析概要设计详细设计编码与调试单元测试集成测试系统测试用户验收测试详细

7、设计手册详细设计手册概要设计手册概要设计手册需求规格说明书需求规格说明书11 Pactera. Confidential. All Rights Reserved.n 优点 V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量的情况下缩短开发周期,又称测试模型。n 不足 仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段 忽视了测试对需求分析,系统设计的验证12 Pactera. Confidential. All Rights Reserved.分析分析设计设计编码编码测试测试交付交付分析分析设计设计编码编码测试测试交付交付分析分析设计设计编码编码测试

8、测试交付交付增量1增量2增量N13 Pactera. Confidential. All Rights Reserved.n 优点: 采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。 引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。 强调每一个增量均发布一个可操作产品。n 不足: 由于各个构建是逐渐并入已有的软件体系结构,所以加入构件必须不破坏已购建好的系统部分,这需要软件具备开放式的体系结构。 在开发过程中,需求的变化时不可避免的。增量模型的灵活性可以使其使用这种变化的能力大大优于瀑布型,但也很

9、容易退化为边做边改模型,从而使软件过程控制失去整体性。14 Pactera. Confidential. All Rights Reserved.软件的相关知识软件测试的重要性软件测试的分类和阶段软件测试的基本方法测试面临的挑战测试工程师自身素质培养15 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n在上个世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时,只保留年份的后两位,如“1980”被存为“80”。当2000年到来的时候,问题就会出现,比

10、如银行存款程序在计算利息时,应该用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月1日” ,结果应该是21年,如果利息是3%,银行要付给顾客每100元,大约86元利息。如果程序没有纠正年份只存储两位的问题,其存款年数就变为-89年,变成顾客反要付银行1288元的巨额利息n就是为了这样一个简单的设计缺陷,全世界付出几十亿美元16 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n 没有足够测试n 缺乏测试平台n 不正确的测试环境n 缺少集成测试n

11、缺少性能测试n 缺少强度测试n 缺少可靠性测试n 17 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved. 平均而言,如果在需求阶段修正一个缺陷的代价是1,那么,在设计阶段就是它的36倍,在编程阶段是它的10倍,在内部测试阶段是它的2040倍,在外部测试阶段是它的3070倍,产品发布后,这个数字就是401000倍。 Boehm,Software Engineering Economics18 Pactera. Confidential. All Rights Reserv

12、ed.修正缺陷的代价修正缺陷的代价需求设计编程系统测试验收测试发布修正缺陷的代价缺陷修复成本19 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n软件测试:软件测试是为了发现程序中的错误而执行程序的过程,具体地说,软件测试是根据软件开发阶段的规格说明和程序的内部结构,精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过过程。20 Pactera. Confidential. All Rights Reserved. Pactera. Confident

13、ial. All Rights Reserved.n软件测试的意义在于发现软件错误; 有效定义和实现软件成分由低层到高层的组装过程; 验证软件是否满足任务书和系统定义文档所规定的技术要求; 为软件质量模型的建立提供依据。n软件测试的目的1、是确认软件的质量。一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。2、第二是提供信息。如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。3、第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。保证整个软件开发过程是高质量的。21 Pactera. Confidential. All Rights R

14、eserved. Pactera. Confidential. All Rights Reserved.n功能性 Functionalityn易用性 Usability (简单安装; 轻松使用; 友好界面)n可靠性 Reliability (用户使用的根本)n性能 Performancen容量 Capacityn可测量性 Scalabilityn可维护性 Service manageabilityn兼容性 Compatibilityn可扩展性 Extensibility22 Pactera. Confidential. All Rights Reserved. Pactera. Confide

15、ntial. All Rights Reserved.n主要分三个阶段:以检测为重:产品制成之后进行检测,只能判断产品质量,不能提高产品质量以过程管理为重:把质量的保证工作重点放在过程管理上,对制造过程 中的每一道工序都要进行质量控制以新产品开发为重:在新产品的开发设计阶段,采取强有力的措施来消灭由于设计原因而产生的质量隐患23 Pactera. Confidential. All Rights Reserved.软件的相关知识软件测试的重要性软件测试的分类和阶段软件测试的基本方法测试面临的挑战测试工程师自身素质培养24 Pactera. Confidential. All Rights Re

16、served. Pactera. Confidential. All Rights Reserved.开发生命周期. 维护 需求定义应用定义应用开发 修订 建立 建立测试生命周期.执行.执行执行.测试计划缺陷跟踪测试开发测试设计评估25 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.方法目标/特性单元测试系统测试验收测试性能测试强壮性测试功能测试白盒测试黑盒测试测试阶段或层次适用性测试可靠性测试集成测试安全性测试26 Pactera. Confidential. Al

17、l Rights Reserved. Pactera. Confidential. All Rights Reserved.阶 段输 入 输 出 需求分析需求定义, 市场分析文档, 相关技术文档市场需求分析会议记要 , 功能设计, 技术设计设计审查 市场需求文档, 技术设计文档 测试计划, 测试用例功能验证 代码完成文件包,功能详细设计说明书最终技术文档完整测试用例,完备的测试计划, 缺陷报告,功能验证测试报告系统测试代码修改后的文件包 完整测试用例,完备的测试计划 缺陷报告缺陷状态报告项目阶段报告确认测试代码冻结文件包确认测试用例缺陷状态报告缺陷报告审查版本审查版本发布 代码发布文件包 测试

18、计划检查清单当前版本已知问题的清单版本发布报告27 Pactera. Confidential. All Rights Reserved.软件的相关概念软件测试的重要性软件测试的分类和阶段软件测试的基本方法测试面临的挑战测试工程师自身素质培养28 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n黑盒测试和白盒测试n静态测试和动态测试n自动化测试和手工测试2829 Pactera. Confidential. All Rights Reserved. Pactera.

19、Confidential. All Rights Reserved.29n黑盒测试黑盒测试法把程序看成是一个黑盒子,完全不考虑程序内部的结构和处理过程黑盒测试只是检查程序功能是否按照规格说明书规定的可以正常使用黑盒测试又称功能测试需求需求说明说明产生产生被测程序被测程序测试结果测试结果输出输出比较比较测试用例测试用例30 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.30n黑盒测试目的是否有不正确或遗漏了的功能在接口上,输入能否正确地接受?能否输出正确的结果?是否有数

20、据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?3131白盒测试白盒测试的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序结构的白盒子里,也就是完全了解程序结构和处理过程,这种方法按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作白盒测试又称结构测试测 试 用 例被 测 程 序源 程 序分 析覆 盖 情 况分 析执 行 路 径3232白盒测试目的对程序模块的所有独立的执行路径至少测试一次对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次在循环的边界和运行界限内执行循环体测试内部数据结构的有效性等33 Pa

21、ctera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.功能测试功能测试数据驱动测试数据驱动测试 结构测试结构测试逻辑驱动测试逻辑驱动测试 客户需求事件驱动输入输出34 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.34n静态测试p对软件文档进行分析、检查和测试p不实际运行被测试的程序n动态测试p通过运行软件来检验软件的动态行为和运行结果的正确性p基本要素

22、被测试程序测试用例软件需求和规约需求评审设计评审代码走查代码检查单元测试集成测试系统测试验收测试35 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.主持人主持人作者记录员列席人员内审员内审员技术专业人员用户代表不正式正式互审 走读 审查会议运行程序运行程序36 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.手工模拟用户手工模拟用户操作操作37

23、 Pactera. Confidential. All Rights Reserved.软件的相关知识软件测试的重要性软件测试的分类和阶段软件测试的基本方法测试面临的挑战测试工程师自身素质培养38 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n举例1:对程序中的每条语句序列至少执行一次,包含的不同执行路径数达5的20次幂,对每一条路径进行测试需要1毫秒,固定一年工作365*24小时,要把所有路径都测试过,需要3170年循环循环20次次39 Pactera. Conf

24、idential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n举例2:计息计算模块,需要将规则允许的所有存款金额和存期进行组合输入n结论:穷举输入测试是无法实现的我们无法测试一个程序的所有输入可能软件测试要考虑其经济性即使可以穷举所有路径进行测试,程序中仍然可能存在没有检查出的缺陷3940 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n误区一:根据软件开发瀑布模型,软件测试是开发

25、后期的一个阶段n 误区二:软件测试技术要求不高,至少比编程容易多了n 误区三:有时间就多测试一些,来不及就少测试一些 n 误区四:软件测试是测试人员的事,与开发人员无关 n 误区五:如果发布出去的软件有质量问题,都是软件测试人员的错4041 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights Reserved.n所有测试的标准都是建立在用户需求之上n软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。n事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。n软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。n穷举测试是不可能的。甚至一个大小适度的程序,其路径排列的数量也非常大,因此,在测试中不可能运行路径的每一种组合。 42 Pactera. Confidential. All Rights Reserved. Pactera. Confidential. All Rights

温馨提示

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

评论

0/150

提交评论