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

下载本文档

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

文档简介

1、课堂问题1在典型的软件开发项目中,软件测试工作量常占在典型的软件开发项目中,软件测试工作量常占软件开发总工作量的软件开发总工作量的40%以上以上在软件开发的成本中,用在测试上的开销要占在软件开发的成本中,用在测试上的开销要占30%到到50%软件开发的首要问题不是技术问题而是管理问题软件开发的首要问题不是技术问题而是管理问题测试测试软件测试软件测试硬件测试硬件测试文档测试文档测试(需求规格说明书、软件设计说明书)(需求规格说明书、软件设计说明书)程序测试程序测试(java、c#、c+)理解以下的描述测试能提高软件的质量,但是提高质量不能依赖测试;测试能提高软件的质量,但是提高质量不能依赖测试;测

2、试只能证明错误存在,不能证明错误不存在;测试只能证明错误存在,不能证明错误不存在;测试的主要困难是不知道该如何进行有效地测试,也不测试的主要困难是不知道该如何进行有效地测试,也不知道什么时候能够放心的结束测试;知道什么时候能够放心的结束测试;每个程序员都应当测试自己的程序(份内事),但不能每个程序员都应当测试自己的程序(份内事),但不能作为程序已通过测试的依据(所以项目需要独立的测试作为程序已通过测试的依据(所以项目需要独立的测试人员);人员);80-20原则:原则:80%的错误聚集在的错误聚集在20%的模块中,经常出错的模块中,经常出错的模块改错后还是会经常出错;的模块改错后还是会经常出错;

3、测试应当循序渐进,不要企图一次性做完。测试应当循序渐进,不要企图一次性做完。欲速则不达欲速则不达。第第1 1 章章 软件测试概述软件测试概述 随着计算机技术的飞速发展,计算机系统的规模和复随着计算机技术的飞速发展,计算机系统的规模和复杂性急剧增加,其软件开发成本以及由于软件故障而造成杂性急剧增加,其软件开发成本以及由于软件故障而造成的经济损失也正在增加,软件质量问题已成为人们共同关的经济损失也正在增加,软件质量问题已成为人们共同关注的焦点。软件测试是对软件需求分析、设计规格说明和注的焦点。软件测试是对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。编码的最终复审,是软件质

4、量保证的关键步骤。 随着软件系统规模和复杂性的增加,进行专业化高效软随着软件系统规模和复杂性的增加,进行专业化高效软件测试的要求越来越严格,软件测试职业的价值逐步得到件测试的要求越来越严格,软件测试职业的价值逐步得到了认可,软件测试技术已作为一门新兴产业而快速发展起了认可,软件测试技术已作为一门新兴产业而快速发展起来了。来了。 软件软件(Software)软件:是计算机中与硬件(软件:是计算机中与硬件(Hardware)相结合的一部分,包括程序相结合的一部分,包括程序(Program)和文档和文档(Document)软件软件=程序程序+文档文档程序:指能够实现某种功能的指令的集合程序:指能够实

5、现某种功能的指令的集合(java程序、程序、C程序程序等)文档:指软件在开发、使用和维护过程中文档:指软件在开发、使用和维护过程中产生的图文集合(产生的图文集合(需求规格说明书、软件设计说明书、用户手册、ReadMe、软件市场宣传材料等)软件分类软件分类1)1)按功能分:按功能分:系统软件(系统软件(OSOS、硬件驱动程序)、硬件驱动程序)应用软件(应用软件(OfficeOffice、QQ)QQ)2)2)按技术架构分:按技术架构分:单机版软件(单机版软件(OfficeOffice、画图工具)、画图工具)C/SC/S结构软件(客户端结构软件(客户端Client/Client/服务器端服务器端Se

6、rver,QQServer,QQ、MSN)MSN)B/SB/S结构软件(浏览器结构软件(浏览器Browser/Browser/服务器服务器Server,WEBServer,WEB项目)项目) 3)3)按用户分:按用户分:产品软件:目标用户是大众用户产品软件:目标用户是大众用户(win 8)(win 8)项目软件:目标用户是具体用户项目软件:目标用户是具体用户4)4)按开发的规模分:按开发的规模分:类别类别参与人数参与人数开发时间开发时间小型小型10人以下人以下14个月个月中型中型10100人人1年以下年以下大型大型100人以上人以上1年以上年以上一个可靠的软件系统应该是正确、完整、一致和健壮的

7、,也一个可靠的软件系统应该是正确、完整、一致和健壮的,也是软件用户所期望的。是软件用户所期望的。软件错误分类软件错误分类功能错功能错( (需求分析错误需求分析错误) )软件结构错软件结构错数据错数据错编码错编码错软件集成错软件集成错测试定义与测试执行错误测试定义与测试执行错误软件测试工具简介软件测试工具简介一般软件测试工具分为黑盒测试工具、白盒测试工具、测试一般软件测试工具分为黑盒测试工具、白盒测试工具、测试管理工具管理工具MI loadrunner性能测试性能测试MI winrunner功能测试功能测试MI testdirector测试管理工具测试管理工具MI QTP功能测试工具功能测试工具

8、 第第1 1章章 软件测试概述软件测试概述1.1 1.1 软件测试的目的和意义软件测试的目的和意义1.2 1.2 软件测试的发展历程和现状软件测试的发展历程和现状1.3 1.3 软件测试人员要求软件测试人员要求1.4 1.4 软件测试人员职业发展方向软件测试人员职业发展方向1.1 1.1 软件测试的目的和意义软件测试的目的和意义随着对计算机需求和依赖的与日俱增,计算机系统的规模随着对计算机需求和依赖的与日俱增,计算机系统的规模和复杂性急剧增加,使得计算机软件的数量以惊人的速度和复杂性急剧增加,使得计算机软件的数量以惊人的速度急剧膨胀。与此同时,计算机出现故障引起系统失效的可急剧膨胀。与此同时,

9、计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬件故障相对靠性的提高,硬件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。停机的主要因素。1.1 1.1 软件测试的目的和意义软件测试的目的和意义2.1.2 2.1.2 软件测试的目的软件测试的目的测试是为了发现错误测试是为了发现错误一个好的测试用例在于能发现至今未发现的错误一个好的测试用例在于能发现至今未发现的错误一个成功的

10、测试是发现了至今未发现的错误的测一个成功的测试是发现了至今未发现的错误的测试试测试是一个为了发现错误而执行程序的过程测试是一个为了发现错误而执行程序的过程一个好的测试用例是指很可能找到迄今为至尚未发现的一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的一个成功的测试是指揭示了迄今为至尚未发现的错误的测试测试 测试是测试是为了发现错误,不能证明程序正确为了发现错误,不能证明程序正确。一般来说,。一般来说,单元测试可由程序员自己完成,而综合测试通常由测试小组单元测试可由程序员自己完成,而综合测试通常由测试小组来完成。来完成。

11、根据这个测试目的,应该排除对测试的错误观点,设计合适根据这个测试目的,应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。件错误。有关软件测试的错误观点有关软件测试的错误观点 “软件测试是为了证明程序是正确的,即测软件测试是为了证明程序是正确的,即测试能发现程序中所有的错误试能发现程序中所有的错误”。事实上这是不可。事实上这是不可能的。要通过测试发现程序中的所有错误,就要能的。要通过测试发现程序中的所有错误,就要穷举所有可能的输入数据。穷举所有可能的输入数据。 例:程序例:程序P有两个整型输入量有两个

12、整型输入量 X、Y,输出量,输出量为为Z,在,在32位机上运行。所有的测试数据组(位机上运行。所有的测试数据组(Xi,Yi)的数目为:)的数目为:232232= 264,1毫秒执行毫秒执行1次,次,共需共需5亿年。亿年。PXYZ “程序测试是证明程序正确地执行了预期的功程序测试是证明程序正确地执行了预期的功能能”。实际上,一个程序不仅要完成它所需完。实际上,一个程序不仅要完成它所需完成的功能,而且不应完成它不该做的事。如不成的功能,而且不应完成它不该做的事。如不能把边长为能把边长为0、0、0的三条边判断为等边三角形。的三条边判断为等边三角形。 1) 1) 软件开发成软件开发成本本 软件产品最大

13、的成本是检测软件错误、软件产品最大的成本是检测软件错误、修正软件错误的成本。修正软件错误的成本。 在整个软件开发中:在整个软件开发中: 测试工作量测试工作量50%50%2) 2) 软件测试的目标软件测试的目标 (1)(1)预防错误预防错误: : 几乎不可实现几乎不可实现(2)(2)发现错误发现错误: : 软件测试目的软件测试目的找错 把证明程序无错当作测试目的不仅是不正确的, 完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。 软件测试要设法使软件发生故障,暴露软件错误 测试的“成功”与“失败”: 能够发现错误的测试是成功的测试,否则是失败的测试。 2) 2) 软件测试的目标软件测试

14、的目标( (续续) ) “测试的目的是说明程序正确地执行它应有的功能”也是错误的。例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。 为说明其能正确执行它的功能,可使用“测试用例”(3,4,5),(5,5,6),(6,6,6), 程序都能给出正确结果,是否就可认为程序是正确的?2) 2) 软件测试的目标软件测试的目标( (续续) ) 1.2 1.2 软件测试的发展历程和现状软件测试的发展历程和现状软件测试现状:软件测试现状:就目前软件工程发展的状况而言,软件测试仍然是较为薄弱的一就目前软件工程发展的状况而

15、言,软件测试仍然是较为薄弱的一个方面。不仅测试理论,已有的测试方法也不能满足当前软件开个方面。不仅测试理论,已有的测试方法也不能满足当前软件开发的实际需求。发的实际需求。尤其是进入尤其是进入2020世纪世纪9090年代后,计算机技术日趋成熟,软件应用范年代后,计算机技术日趋成熟,软件应用范围逐步扩大,软件规模和复杂性急剧增加,与此同时,计算机出围逐步扩大,软件规模和复杂性急剧增加,与此同时,计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬的进步,元器件可靠性的提高,硬

16、件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。效和停机的主要因素。1.2 1.2 软件测试的发展历程和现状软件测试的发展历程和现状近年来,几乎所有的软件企业均存在不同程度的测试人才缺近年来,几乎所有的软件企业均存在不同程度的测试人才缺口,软件测试工程师已成为了亟待补充的关键技术工种之一。口,软件测试工程师已成为了亟待补充的关键技术工种之一。IBMIBM、百度、华为、惠普、盛大网络、联想集团等国内外大、百度、华为、惠普、盛大网络、联想集团等国内外大型型ITIT企业均表现出对成熟软件测试

17、人才的期盼,而微软、三企业均表现出对成熟软件测试人才的期盼,而微软、三星、西门子、思科、华为星、西门子、思科、华为3COM3COM等多家国内外等多家国内外ITIT巨头则相继在巨头则相继在全国各大高校招兵买马,并把软件测试人才的招聘放在了突全国各大高校招兵买马,并把软件测试人才的招聘放在了突出的位置。国内软件测试人才紧缺的现状已经凸现出来。出的位置。国内软件测试人才紧缺的现状已经凸现出来。软件开发中测试人员与开发人员的比例软件开发中测试人员与开发人员的比例国内:国内:1:9-1:15微软公司:微软公司:1.5:1Borland公司:公司:1:1公司里测试部门的组织结构公司里测试部门的组织结构小公

18、司小公司无独立的测试部门,常在项目组中配无独立的测试部门,常在项目组中配13名测试人员名测试人员大公司大公司设测试部门,测试经理根据项目的需要把测试人员派往不同的项设测试部门,测试经理根据项目的需要把测试人员派往不同的项目组进行项目的测试和质量监督目组进行项目的测试和质量监督测试工程师在项目质量上对项目经理负责,在工作任务完成后向测试工程师在项目质量上对项目经理负责,在工作任务完成后向测试经理汇报,称双线领导测试经理汇报,称双线领导专业外包公司专业外包公司软件外包(软件外包(Software Outsourcing):指一些软件公司出于节):指一些软件公司出于节省成本或优势互补等原因,将其项目

19、中的测试、部分编码或设计省成本或优势互补等原因,将其项目中的测试、部分编码或设计等工作委派给第三方公司来完成等工作委派给第三方公司来完成测试经理、测试组长、测试工程师(一个项目组分多个测试小组)测试经理、测试组长、测试工程师(一个项目组分多个测试小组)1.3 1.3 软件测试人员要求软件测试人员要求测试人员的目标和主要工作测试人员的目标和主要工作软件测试人员应该至少具备以下两个关键领域方面的软件测试人员应该至少具备以下两个关键领域方面的知识:知识:1)软件测试技术;)软件测试技术; 2)被测应用程序及其相关应用领域知识。)被测应用程序及其相关应用领域知识。目标:目标:1)基本目标是发现软件错误

20、;)基本目标是发现软件错误;2)要尽可能早的找出软件错误;)要尽可能早的找出软件错误;3)必需确保找出的软件错误得以关闭;)必需确保找出的软件错误得以关闭;4)依据事实对软件做出评价。)依据事实对软件做出评价。主要工作:主要工作:1)规划测试任务)规划测试任务2)设计测试(包括编写测试用例等等)设计测试(包括编写测试用例等等)3)建立一个合适的测试环境)建立一个合适的测试环境 4)评估、获取、安装和配置自动测试工具)评估、获取、安装和配置自动测试工具5)执行测试)执行测试6)撰写适当的测试文档)撰写适当的测试文档测试工程师测试工程师1、测试工程师应该具备的基本职业素质:三心二意一能力、测试工程

21、师应该具备的基本职业素质:三心二意一能力三心:细心、耐心、信心。三心:细心、耐心、信心。二意:服务意识、团队意识。二意:服务意识、团队意识。一能力:沟通能力。一能力:沟通能力。2、如何成为一名优秀的测试工程师:、如何成为一名优秀的测试工程师:内功(基础知识:计算机硬件、网络、内功(基础知识:计算机硬件、网络、操作系统、数据库等)等)测试技术(黑盒测试中等价类、边界值、因果图等,白盒测试中(黑盒测试中等价类、边界值、因果图等,白盒测试中的语句覆盖、分支覆盖、路径覆盖等)的语句覆盖、分支覆盖、路径覆盖等)1)不断学习充电)不断学习充电2)阅读原版书籍)阅读原版书籍3)阅读)阅读缺陷管理系统中的缺陷

22、报告系统中的缺陷报告4)阅读高手写的测试用例)阅读高手写的测试用例5)学习产品相关的业务知识)学习产品相关的业务知识 1.3 1.3 软件测试人员要求软件测试人员要求基本素质要求基本素质要求1.1.细心、对缺陷的洞察力。细心、对缺陷的洞察力。2.2.耐心和执着。耐心和执着。3.3.信心。信心。4.4.服务意识。服务意识。5.5.团队合作意识。团队合作意识。6.6.沟通能力。沟通能力。简称:三心二意一能力。简称:三心二意一能力。1.3 1.3 软件测试人员要求软件测试人员要求基本技术要求基本技术要求1.1.了解软件测试基本概念。定义、目的、原则、对象、了解软件测试基本概念。定义、目的、原则、对象

23、、与质保的关系。与质保的关系。2. 2. 能够读懂需求或系统功能,运用黑盒测试方法设计能够读懂需求或系统功能,运用黑盒测试方法设计测试用例测试用例3.3.执行测试用例执行测试用例4.4.了解软件缺陷定义和并能对缺陷进行管理跟踪了解软件缺陷定义和并能对缺陷进行管理跟踪1.3 1.3 软件测试人员要求软件测试人员要求5.5.了解版本管理了解版本管理6.6.编写测试报告编写测试报告7.7.至少会使用一种测试工具。至少会使用一种测试工具。8.8.能够读懂代码。能够读懂代码。9.9.至少会使用一种数据库。常见的至少会使用一种数据库。常见的oracleoracle等。等。测试工程师职业素质测试工程师职业素

24、质基本素质基本素质广泛的经验:工作经验广泛的经验:工作经验交流技巧:表达能力、问题描述能力、会提问、会寻求正确的帮助交流技巧:表达能力、问题描述能力、会提问、会寻求正确的帮助逻辑思维能力逻辑思维能力团队协作能力团队协作能力组织技能:处理日常事务的能力和处理突发事件的能力组织技能:处理日常事务的能力和处理突发事件的能力态度:需要理解和采取适当的态度去做软件测试态度:需要理解和采取适当的态度去做软件测试专业素质专业素质基础知识:了解软件工程、操作系统、数据库和网络基础知识:了解软件工程、操作系统、数据库和网络把握需求能力把握需求能力测试流程熟习程序测试流程熟习程序测试方案:测试方案的分析设计能力、

25、测试案例的设计能力、测试测试方案:测试方案的分析设计能力、测试案例的设计能力、测试案例的覆盖率案例的覆盖率/优先级、回归测试案例的选取等优先级、回归测试案例的选取等测试工具的使用:测试管理和测试执行工具使用能力,开发工具的测试工具的使用:测试管理和测试执行工具使用能力,开发工具的能力能力测试管理能力测试管理能力软件测试工程师要掌握的知识:技术、测试技巧软件测试工程师要掌握的知识:技术、测试技巧/方法、测试计划、方法、测试计划、执行测试计划、测试分析报告与改进执行测试计划、测试分析报告与改进1.3 1.3 软件测试人员要求软件测试人员要求一个合格的测试工程师,你具备了哪些?一个合格的测试工程师,

26、你具备了哪些?1 1、熟悉新产品、接受新事物的能力、熟悉新产品、接受新事物的能力快速的快速的学习能力能力2 2、良好的沟通能力、良好的沟通能力3 3、扎实的技术功底、扎实的技术功底4 4、充足的自信心、充足的自信心5 5、博闻强记的能力、博闻强记的能力6 6、承受重复性操作的耐心、承受重复性操作的耐心细致认真的工作态度细致认真的工作态度7 7、对一个、对一个BugBug的责任心的责任心高度的责任心高度的责任心8 8、充沛的精力、充沛的精力测试工作的主要步骤测试工作的主要步骤1)测试计划)测试计划测试人员要首先对需求进行分析,最终定义一个测试集测试人员要首先对需求进行分析,最终定义一个测试集合。

27、合。2)测试设计与开发)测试设计与开发根据软件需求、说明书完成测试用例设计并编写必要的根据软件需求、说明书完成测试用例设计并编写必要的测试驱动程序。测试驱动程序。3)执行测试)执行测试需要做的工作是,建立测试环境;需要做的工作是,建立测试环境;根据前面编写的测试计划和测试用例运行测试;根据前面编写的测试计划和测试用例运行测试;记录测试结果;记录测试结果;报告软件缺陷;报告软件缺陷;跟踪软件缺陷直至其被处理;跟踪软件缺陷直至其被处理;分析测试结果分析测试结果 集成测试环境由两部分组成,一个底层的测试用例,直接用集成测试环境由两部分组成,一个底层的测试用例,直接用来测试产品的各项功能;另一部分是调

28、用这些测试用例,并来测试产品的各项功能;另一部分是调用这些测试用例,并将其集成到一起的程序,这个就是测试驱动。将其集成到一起的程序,这个就是测试驱动。所谓驱动,就是驱动测试用例,使之协同工作。所谓驱动,就是驱动测试用例,使之协同工作。测试驱动开发测试驱动开发(Test-Driven Development, TDD) ,敏捷开,敏捷开发中的一项核心实践和技术,也是一种设计方法论。发中的一项核心实践和技术,也是一种设计方法论。TDD原理是在开发功能代码之前,先编写单元测试用例原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定了需要编写什么产品代码。代码,测试代码确定了需要编写什么产品代码。TDD基本思路就是通过测试来推动整个开发的进行,但基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分测试驱动开发并不只是单纯的测试工作,而是把需求分析、设计、质量控制量化的过程。析、设计、质量控制量化的过程。 测试工程师分类测试工程师分类按工作性质分按工作性质分测试开发工程师:主要负责编写测试工具代码,并利用测试开发工程师:主要负责编写测试工具代码,并利用测试工具对软件进行测试;或开发测试工

温馨提示

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

评论

0/150

提交评论