资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Unit2 软件测试概论,测试的几种观点,2.1 测试的几种观点,例2-1: 测试成人的智力是否存在障碍,测试题目如下: 1+2=? 2+2=? 用软件测试的术语描述如下: 被测试对象:参加测试的某人 测试方法:采用例2-1来测试 测试用例:1+2=? 2+2=? 测试过程:请某人回答问题和参与测试的过程 测试报告:将测试结果进行分析产生测试报告,测试是指检验或考试,通过一定方法或工具,对被测试对象进行检验,以发现被测试对象具有某种属性或者存在某些问题的过程。,(1)软件测试的广义论与狭义论 狭义论:测试是指在代码编写之后、维护阶段之前,通过运行程序发现程序代码或软件系统中的错误。 广义论:将测试延伸到需求评审、设计审查活动中。认为软件生命周期的每一阶段都应包含测试,尽可能地发现错误并加以修正。,(2)软件测试的辩证论 以正向思维:针对软件系统的所有功能点,逐个验证其正确性,测试软件是“工作的”。 以反向思维:不断思考开发人员的认识误区、不良的习惯、程序代码的边界、无效数据的输入以及系统的弱点,目标就是发现系统中存在各种各样的问题。证明软件是“不工作的”。强调“一个成功的测试必须是发现Bug的测试。,真实的故事,故事发生在1945年9月9日,一个炎热的下午。当时的机房是一间第一次世界大战时建造的老建筑,没有空调,所有窗户都敞开着。Grace Hopper正领导着一个研究小组夜以继日地工作,研制一台称为“MARK II”的计算机,它使用了大量的继电器(电子机械装置,那时还没有使用晶体管),一台不是纯粹的电子计算机。突然,MARK II死机了 ,Bug的由来,(3) 软件测试的风险论 80/20原则是指用户最常用的20%功能会产生80%的风险。,(4)软件测试的经济论 尽快、尽早地发现缺陷是软件测试经济论的核心理念。,(5)软件测试的标准论 认为软件测试贯穿于整个软件开发的生命周期,是对软件产品进行验证和确认的活动过程,以便尽早地发现软件中的各种缺陷和问题。,一般从以下几个角度理解软件测试。 (1)从软件测试目的角度出发。 测试的目的是发现软件中的错误,是为了证明软件有错,而不是证明软件无错。 (2)从软件测试性质角度出发。 在软件开发过程中,分析、设计与编码等工作都是“建设性的”,惟独测试是带有“破坏性的”。,(3) 从软件开发角度出发。 软件测试以检查软件产品的内容和功能特性为核心,是软件质量保证的关键步骤, 也是成功实现软件开发目标的重要保障。 (4) 从软件工程角度出发。 软件测试是软件工程的一部分,也是软件开发过程中的重要阶段。 (5) 从软件质量保障角度出发。 软件测试作为软件质量保障重要方法之一,也是软件质量保障的关键措施。,2.2 软件测试发展历史、现状及发展趋势,1. 发展历史,计算机刚刚诞生时 没有系统意义上的软件测试,更多的是一种类似调试的测试。,20世纪五六十年代 软件测试相对于开发工作仍然处于次要的位置。软件正确性的把握仍然主要依赖于编程人员的技术水平。这一时期软件测试的理论和方法发展比较缓慢。,20世纪70年代以后 软件测试的规模和复杂度日益扩大,并逐渐形成了一套完整的体系,开始走向规范化。,如今 在整个软件开发过程中,测试已经不再只是基于程序代码进行的活动,而是一个基于整个软件生命周期的质量控制活动,贯穿于软件开发的各个阶段。,2.现状,国内 软件测试算不上一个真正的产业,软件开发企业对软件测试认识淡薄,软件测试人员与软件开发人员往往比例失调,国内一般公司是1:6。,发达国家和地区 软件测试已经成了一个产业,比如微软的测试工程师与开发工程师的比例是2:1,微软Windows2000团队动用的测试人员比项目经理和开发人员的总和还要多,达到了3200人,而后两者分别是250人和1700人。,3.发展趋势,软件测试及早地介入软件开发的各阶段。 软件测试成为一个完全独立的流程。测试可贯穿到软件开发的其他各流程,并与之并发地执行。 软件测试人员的地位得到极大的提高。 第三方测试迅速发展。,发现软件缺陷 应尽可能早地找出软件缺陷 必须确保软件缺陷得以关闭 依据事实对软件作出评价,2.3 软件测试职业,2.3.1 测试岗位的职能,(1)技术能力 (2)编程经验 (3)沟通能力 (4)严谨、敢于承担责任的品行 (5)怀疑精神 (6)学习能力,2.3.2 测试人员的素质,2.4 测试用例,IEEE610.12给出测试用例如下定义: (1)测试用例是一组输入(运行前提条件)和为某特定的目标而生成的预期结果及与之相关的测试规程的一个特定的集合,或称为有效地发现软件缺陷的最小测试执行单元。 (2)测试用例是一个文档,详细说明测试的输入、期望输出和为一测试项所准备的一组执行条件。 其中,(1)给出测试用例的实质,(2)是测试用例的存在方式。,穷举测试,这个流程图,其中包括了一个执行达20次的循环。那么它所包含的不同执行路径数高达520条,若要对它进行穷举测试,覆盖所有的路径。假使测试程序对每一条路径进行测试需要1毫秒,同样假定一天工作24小时,一年工作365天,那么要想把如图所示的小程序的所有路径测试完,则需要3170年。,由于穷举测试是不可能的,故测试人员应从数量极大的可用测试用例中精心挑选数量有限的具有代表性或特殊性的测试用例,以高效地揭露程序或软件中的错误。,请看示例,测试用例的作用,(1)指导测试的实施 (2)规划测试数据的准备 (3)评估测试结果的度量基准 (4)保证软件可维护性和可复用性 (5)分析缺陷的标准,测试用例的设计准则,测试用例的代表性。 测试用例的非重复性。 测试结果的可判定性。 测试结果的可再现性。,测试用例设计的误区,1. 把测试用例设计等同于测试输入数据的设计 2. 强调测试用例设计得越详细越好 3. 追求测试用例设计“一步到位”,2.5 与测试相关的几个概念,排错 排错是查找、分析和纠正错误的过程,验证 即检验软件是否实现了预先定义的功能和其他特性,即判断软件开发每一阶段的活动是否已成功地完成,各开发阶段形成的软件配置是否保持一致。 确认 也可理解为有效性确认。目的在于判断交付使用的软件可追溯到用户的需求。作用是检验软件产品功能及其他特性的有效性。,Verification:Are we building the product right(我们在正确地构造软件吗)? Validation:Are we building the right product(我们在构造正确的软件吗)?,定义中同样都含有“正确” 确认定义中的“正确”级别更高,它要求开发出来的软件对用户是真正有效的,能满足用户所有的最终需求,而这些需求中有些可能是潜在的。 而验证定义中的“正确”只能说明软件开发的各阶段实现了既定的要求。,2.6 测试认识的误区,误区一:使用了测试工具,就是进行了有效的测试 误区二:软件中存在太多的无法测试的东西 误区三:单元测试和验收测试没有什么区别 误区四:软件开发完成后进行软件测试,误区五:软件发布后发现质量问题,是测试人员的问题 误区六:软件测试要求不高,随便找个人就行 误区七:软件测试是测试人员的事情,与程序员无关 误区八:项目进度吃紧时少做些测试,时间充足时多做测试 误区九:软件测试是低级工作,开发人员才是软件高手,课堂练习,测试和调试是一回事 可以对软件进行穷举测试 关注测试的执行而忽略TC的设计 测试是编码之后进行的工作,Q & A,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号