欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件测试基础幻灯片.ppt

    • 资源ID:48783296       资源大小:4.56MB        全文页数:87页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件测试基础幻灯片.ppt

    软件件测试基基础1第1页,共87页,编辑于2022年,星期三【软件测试行业是如何产生的?软件测试行业是如何产生的?】软件测试岗位的出现,“源自信息产业的发展以及软件企业自身、用户成熟度的不断加深。”清华大学 郑人杰 计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通讯、航天等,对软件质量要求很高。同时一些重大事故的发生,也引发了人们对软件质量的关注。如2002年欧洲载重10吨的阿丽亚娜5型火箭发射失败,最后证实是软件质量问题;还有国内的一些银行金融系统,因软件质量问题不得不暂停营业。毋庸置疑,在经历了长期的不为人知和可有可无后,软件测试工程师目前已变的炙手可热。2第2页,共87页,编辑于2022年,星期三【软件测试行业的现状软件测试行业的现状】中国软件产业存在着“重开发、轻测试”的倾向,在造成软件产品质量问题日渐突出的同时,也突显了中国软件测试人才的极度匮乏。制约着软件整体质量的提高,同时也加重了软件产业的开发和服务成本负担。在中国一百二十多万软件从业人员中,真正能担当软件测试职责的不超过 5 万人。在软件业发达国家,软件测试人员与开发人员之比接近 1:1,在中国该比例仅为 1:8 左右,很多企业没有专门的测试职位。随着中国加入 WTO 后,相信不久的将来,国内软件测试人员与开发人员的比例将会达到甚至超出 1:1。3第3页,共87页,编辑于2022年,星期三为了同国际 IT 行业接轨,软件测试行业近几年有了飞速的发展,以前人们认为的“重开发、轻测试”倾向有了很大的改观,测试人员的缺口也越来越大,下面这个图标分析了近四年国内软件测试人才的需求。4第4页,共87页,编辑于2022年,星期三【软件测试前景如何?软件测试前景如何?】随着中国软件市场的发展,越来越多的国外资金投向中国软件行业。据报道,中国软件外包市场的潜力和机会已远远超过软件王国印度,不过由于软件人才的严重不足致使我国软件发展遭遇“瓶颈”。国家为了大力培养软件人才,不断采取积极有效的措施。软件测试就业市场行情也十分乐观,最近,在北京的一次IT人才招聘会上,有20多家软件企业亮出底薪8000元招软件测试工程师的诱人广告。5第5页,共87页,编辑于2022年,星期三【软件测试是青春饭吗?软件测试是青春饭吗?】软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制。而且随着项目经验的不断增长和对行业背景的深入了解,会越老越吃香。软件测试员的一生如同一名医生的一生,随着职业阅历和临床经验的丰富累积,到一定的年龄他们通过“望闻问切”就能知道毛病出在什么地方。因此,有人说软件测试员和医生是最不需要用“青春”来保证和延续自己职业寿命的职业。由于软件测试人才更强调经验积累,在几年的测试经验背景下,可以逐步转向管理或者资深测试工程师,担当测试经理或者QA部门主管,所以职业寿命更长;另一方面,由于国内软件测试工程师人才奇缺,并且一般只有大中型企业才会单独设立软件测试部门,所以很有保障,待遇普遍较高。6第6页,共87页,编辑于2022年,星期三软件测试工程师的进阶之路软件测试工程师的进阶之路初级测试工程师初级测试工程师测试工程师测试工程师/程序分析员程序分析员高级测试工程师高级测试工程师/程序分析员程序分析员测试组负责人测试组负责人测试测试/编程负责人编程负责人测试测试/质量保证质量保证/开发(项目)经理开发(项目)经理计划经理计划经理软件测试人员的三大发展方向软件测试人员的三大发展方向一是走软件测试的技术路线,成长为高级软件测试工程师。一是走软件测试的技术路线,成长为高级软件测试工程师。二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。三是可以换职业,做项目管理或做开发人员。三是可以换职业,做项目管理或做开发人员。具有具有12年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程初期领导工作。拓展编程语言、操作系统、网络与数据库技能。初期领导工作。拓展编程语言、操作系统、网络与数据库技能。刚入门拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测刚入门拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测试脚本并开始熟悉测试生存周期和测试技术。试脚本并开始熟悉测试生存周期和测试技术。具有具有34年经验的测试工程师或程序员。帮助开发或维护测试或编程标年经验的测试工程师或程序员。帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其他初级的测试工程师或程序员充当准与过程,负责同级的评审,并为其他初级的测试工程师或程序员充当顾问。顾问。具有具有46年经验的测试工程师或程序员。负责管理年经验的测试工程师或程序员。负责管理1至至3名测试工程师或程序员。担名测试工程师或程序员。担负一些进度安排和工作规模负一些进度安排和工作规模/成本估算职责。成本估算职责。具有具有610年经验的测试工程师或程序员。负责管理年经验的测试工程师或程序员。负责管理8至至10名技术人员。负责进度安排、名技术人员。负责进度安排、工作规模工作规模/成本估算、按进度表和预算目标交付产品。成本估算、按进度表和预算目标交付产品。具有具有10多年的工作经验。管理多年的工作经验。管理8名或更多的人员参加的名或更多的人员参加的1个或多个项个或多个项目。负责这一领域(测试目。负责这一领域(测试/质量保证质量保证/开发)内的整个开发生存周期业务。开发)内的整个开发生存周期业务。具有具有15年以上开发与支持(测试年以上开发与支持(测试/质量保证)活动方面的经验。质量保证)活动方面的经验。管理从事若干项目的人员以及整个开发生存周期。负责把握项目管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。方向与盈亏责任。7第7页,共87页,编辑于2022年,星期三第一章第一章 软件测试基础知识软件测试基础知识1.1关于软件测试课程1.2 软件开发过程1.3 软件质量保证1.4 理解软件测试1.5 软件测试的分类1.6 软件测试工作流程1.7 软件测试的职业要求8第8页,共87页,编辑于2022年,星期三编程大师说:“任何一个程序,无论它多么小,总存在着错误。”初学者不相信大师的话,他问:“如果一个程序小得只执行一个简单的功能,那会怎样?”“这样的一个程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统没有意义最后将失效,产生一个错误。”但初学者不满足,他问:“如果操作系统不失效,那么会怎样?”“没有不失效的操作系统,”大师说,“但如果这样的操作系统存在的话,硬件最后将失效,产生一个错误。”初学者仍不满足,再问:“如果硬件不失效,那么会怎样?”大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。”没有错误的程序世间难求没有错误的程序世间难求9第9页,共87页,编辑于2022年,星期三1.1 关于软件测试课程关于软件测试课程有关测试的思考题:有关测试的思考题:软件测试是一门非常重要的学科,主要研究内容是软件测试是一门非常重要的学科,主要研究内容是什么?什么?软件测试需要什么样的专业基础?软件测试需要什么样的专业基础?软件质量到底是什么?软件质量到底是什么?测试的目标是什么?测试的目标是什么?开发一个测试系统之前你是否明白开发一个测试系统之前你是否明白:测试什么?测试什么?怎么测试?怎么测试?测试效果如何?测试效果如何?10第10页,共87页,编辑于2022年,星期三1.2 软件开发过程软件开发过程 软件开发过程几个主要阶段:软件开发过程几个主要阶段:定义:明确软件开发的目标、软件的需求定义:明确软件开发的目标、软件的需求计划:制订软件开发所涉及的各种计划计划:制订软件开发所涉及的各种计划实现:进行设计、编码、文档编写工作实现:进行设计、编码、文档编写工作稳定化:以测试和缺陷修复工作为主稳定化:以测试和缺陷修复工作为主部署:安装、提交开发完成的软件部署:安装、提交开发完成的软件11第11页,共87页,编辑于2022年,星期三软件生命周期模型软件生命周期模型软件生存周期软件生存周期 定义、计划、实现、稳定化、部署、运行与维护定义、计划、实现、稳定化、部署、运行与维护软件生存期模型软件生存期模型 瀑布模型瀑布模型 原型模型原型模型 增量模型增量模型 螺旋模型螺旋模型12第12页,共87页,编辑于2022年,星期三瀑布模型瀑布模型整个开发包括六个阶段:计划、需求分析、设计、编码、测试、运行维护。六个阶段自上而下、相互衔接,以固定的次序来进行。特点 阶段的顺序性和依赖性 推迟实现的观点 质量保证存在问题 不适合需求模糊的系统13第13页,共87页,编辑于2022年,星期三原型模型原型模型先建立一个能反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统。特点 快速开发工具 循环 低成本种类 渐进型 抛弃型14第14页,共87页,编辑于2022年,星期三增量模型增量模型增量模型中,在每个阶段都生成软件的一个可发布版本。这些阶段是交错进行的。在增量模型中,软件版本是逐步完善的。在原型中,每个阶段是发布一个原型,而在增量模型中,是完成一个正式的版本。分析设计编码分析设计编码测试测试 进度 15第15页,共87页,编辑于2022年,星期三螺旋模型螺旋模型螺旋模型将瀑布模型和快速原型模型结合起来,并且加入了两种模型均忽略的风险分析。螺旋模型的每一周期都包括制定计划、风险分析、实施工程和评审四个阶段。16第16页,共87页,编辑于2022年,星期三1.3 1.3 软件质量保证软件质量保证不贪污的官就是好官吗?不贪污的官就是好官吗?“运行正确运行正确”的程序就是高质量的程序吗的程序就是高质量的程序吗?也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,后续很难维护和更新。软件质量是软件的生命,它直接影响软软件质量是软件的生命,它直接影响软件的使用与维护。件的使用与维护。17第17页,共87页,编辑于2022年,星期三通常软件质量由以下几方面进行评价。通常软件质量由以下几方面进行评价。软软件件需需求求是是衡衡量量软软件件质质量量的的基基础础,不不符符合合需需求求的的软软件件就就不不具具备备质质量量。设设计计的的软软件件应应在在功功能能、性性能能等等方方面面都都符符合合要要求,并能可靠地运行。求,并能可靠地运行。-能用能用 软软件件结结构构良良好好,易易读读、易易于于理理解解,并并易易于于修修改改、维护。维护。-好修好修 软软件件系系统统具具有有友友好好的的用用户户界界面面,便便于于用用户户使使用用。-好用好用 软软件件生生存存周周期期中中各各阶阶段段文文档档齐齐全全、规规范范,便便于于配配置置、管理。管理。-好看好看18第18页,共87页,编辑于2022年,星期三一、软件质量定义一、软件质量定义软件质量优秀,是因为:软件质量优秀,是因为:满足用户的需求满足用户的需求合理进度、成本、功能关系合理进度、成本、功能关系具备扩展性和灵活性,能够适应一定程度的需求变具备扩展性和灵活性,能够适应一定程度的需求变化化能够有效的处理例外的情况能够有效的处理例外的情况保持成本和性能的平衡保持成本和性能的平衡q 一个系统、组件或过程符合指定要求的程度指定要求的程度q 一个系统、组件或过程满足客户或用户期望的程度客户或用户期望的程度19第19页,共87页,编辑于2022年,星期三二、软件错误定义二、软件错误定义1、什么是软件错误(、什么是软件错误(bug)?)?当程序没有实现其最终用户合理预期的功能要求时,当程序没有实现其最终用户合理预期的功能要求时,就表现为软件错误就表现为软件错误 2、错误的几种情况:、错误的几种情况:未将规格说明正确实现。未将规格说明正确实现。-错误百出错误百出规定的或预期的需求未体现在产品中(可能未将规格规定的或预期的需求未体现在产品中(可能未将规格说明全面实现,也可能在开发过程中追加了需求。)说明全面实现,也可能在开发过程中追加了需求。)-缺斤短两缺斤短两规格说明并未规定的需求被纳入产品,得到实现。规格说明并未规定的需求被纳入产品,得到实现。-画蛇添足画蛇添足20第20页,共87页,编辑于2022年,星期三3、错误一定是由编码引起的吗?、错误一定是由编码引起的吗?需求分析需求分析软件设计软件设计以上两个阶段中的错误,都有可能是软件错误的根源以上两个阶段中的错误,都有可能是软件错误的根源21第21页,共87页,编辑于2022年,星期三三、软件质量保证定义三、软件质量保证定义 1 1、什么是软件质量保证(、什么是软件质量保证(SQASQA)为了确保软件开发过程和结果符合预期的要求,而建为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程,以及依照规程和计划采取的一系列活立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。动及其结果评价。22第22页,共87页,编辑于2022年,星期三2 2、建立全程、建立全程SQASQA的观点。的观点。为了在软件开发过程中保证软件的质量,软件的质量为了在软件开发过程中保证软件的质量,软件的质量保证活动应贯穿整个软件生存周期的每一个阶段。保证活动应贯穿整个软件生存周期的每一个阶段。软件质量保证的工作从项目一开始就应介入。软件质量保证的工作从项目一开始就应介入。3 3、SQASQA的手段的手段 软件的质量保证的措施主要有检查、评审和测试。软件的质量保证的措施主要有检查、评审和测试。23第23页,共87页,编辑于2022年,星期三4 4、SQASQA软件质量保证的具体内容软件质量保证的具体内容技术方法的应用技术方法的应用正式技术评审的实施正式技术评审的实施软件测试软件测试标准的执行标准的执行修改的控制修改的控制度量度量记录和记录保存记录和记录保存软件质量保证软件质量保证 不等于不等于 软件测试;软件测试;软件的质量也不能完全依赖软件测试;软件的质量也不能完全依赖软件测试;24第24页,共87页,编辑于2022年,星期三1.3 测试一个小软件测试一个小软件某软件系统的登录界面某软件系统的登录界面用户需求用户需求-用户名和密码放在名为用户名和密码放在名为list.txt的文件中;的文件中;输入正确的用户名和密码,进入系统;输入正确的用户名和密码,进入系统;不支持空的用户名和密码;不支持空的用户名和密码;如何测试?如何测试?有何思路?有何思路?25第25页,共87页,编辑于2022年,星期三1.4 理解软件测试理解软件测试排除软件错误的重要手段排除软件错误的重要手段软件测试软件测试测试在软件开发中占有重要地位测试在软件开发中占有重要地位测试成本占有开发成本的近一半测试成本占有开发成本的近一半26第26页,共87页,编辑于2022年,星期三软件开发成本分布软件开发成本分布软件类型开发成本按阶段分布%需求与设计实现测试控制软件462034航空航天软件342046操作系统331750科技计算软件442630商业应用软件44282827第27页,共87页,编辑于2022年,星期三1 1、软件错误的来源、软件错误的来源软件开发中,在需求、设计、编码阶段都有可能软件开发中,在需求、设计、编码阶段都有可能发生错误。发生错误。2 2、什么是软件测试?、什么是软件测试?软件测试就是为了发现程序中的错误而分析或执软件测试就是为了发现程序中的错误而分析或执行程序的过程。行程序的过程。软件测试是软件质量保证的重要手段。软件测试是软件质量保证的重要手段。1.4.1 基本概念基本概念28第28页,共87页,编辑于2022年,星期三3 3、软件测试的手段、软件测试的手段软件测试有两个基本的手段:软件测试有两个基本的手段:分析:不实际运行软件,包括走查、代码审查、代码评价、分析:不实际运行软件,包括走查、代码审查、代码评价、桌面检查;桌面检查;-静态测试静态测试运行:在目标环境中实际运行软件,运行:在目标环境中实际运行软件,-动态测试动态测试29第29页,共87页,编辑于2022年,星期三4 4、软件测试的功能、软件测试的功能软件测试有两个基本的功能:软件测试有两个基本的功能:验证(验证(VerificationVerification)-保证软件正确的实现了特保证软件正确的实现了特定功能;定功能;如:如:2+3?=5确认(确认(ValidationValidation)-保证最终产品满足系统需保证最终产品满足系统需求;求;如:如:MISMIS系统是否能满足图书馆管理的需求?系统是否能满足图书馆管理的需求?30第30页,共87页,编辑于2022年,星期三5 5、软件测试的时机、软件测试的时机是否等软件编码之后,才进行软件测试?是否等软件编码之后,才进行软件测试?测试和改正活动应在软件生存周期任何阶段进行;测试和改正活动应在软件生存周期任何阶段进行;错误被发现的越早,修改成本越小;错误被发现的越早,修改成本越小;31第31页,共87页,编辑于2022年,星期三6 6、软件测试人员需要具备哪些知识?、软件测试人员需要具备哪些知识?软件测试技术软件测试技术被测应用程序及其相关领域;被测应用程序及其相关领域;32第32页,共87页,编辑于2022年,星期三测试的目的:测试的目的:测试是程序执行的过程,目的在于发现错误(缺测试是程序执行的过程,目的在于发现错误(缺陷)陷)好的测试用例能有效地发现别的测试用例未发现的错好的测试用例能有效地发现别的测试用例未发现的错误(缺陷)误(缺陷)成功的测试是发现了未曾发现的错误(缺陷)成功的测试是发现了未曾发现的错误(缺陷)33第33页,共87页,编辑于2022年,星期三测试的对象测试的对象测试数据程序P比较结果数据预期数据相符不符追查缺陷程序测试:发现程序中的错误(缺陷)程序测试:发现程序中的错误(缺陷)34第34页,共87页,编辑于2022年,星期三 软件测试原则:软件测试原则:测试能提高软件的质量,但是提高质量不能依赖测试测试能提高软件的质量,但是提高质量不能依赖测试测试只能证明错误存在,不能证明错误不存在测试只能证明错误存在,不能证明错误不存在 测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试以放心地结束测试每个程序员都应当测试自己的程序(份内之事),但是不能作为每个程序员都应当测试自己的程序(份内之事),但是不能作为该程序已经通过测试的依据(所以项目需要独立测试人员)该程序已经通过测试的依据(所以项目需要独立测试人员)80-2080-20原则:原则:8080的错误聚集在的错误聚集在2020的模块中,经常出错的的模块中,经常出错的模块改错后还会经常出错模块改错后还会经常出错测试应当循序渐进,不要企图一次性干完,注意测试应当循序渐进,不要企图一次性干完,注意“欲速则不欲速则不达达”35第35页,共87页,编辑于2022年,星期三测试越细越好吗?测试越细越好吗?不足测试过度测试测试的程度 t未发现的缺陷数测试成本最佳测试点测试成本曲线测试成本曲线36第36页,共87页,编辑于2022年,星期三这个流程图,其中包括了一这个流程图,其中包括了一个执行达个执行达20次的循环。那么次的循环。那么它所包含的不同执行路径数它所包含的不同执行路径数高达高达520条,若要对它进行穷举条,若要对它进行穷举测试,覆盖所有的路径。测试,覆盖所有的路径。假使测试程序对每一条路径假使测试程序对每一条路径进行测试需要进行测试需要1毫秒,同样毫秒,同样假定一天工作假定一天工作24小时,一年小时,一年工作工作365 天,天,那么要想把如图那么要想把如图所示的小程序的所有路径测试所示的小程序的所有路径测试完,则需要完,则需要3024年。年。无论是黑盒测试还是白盒测试,进行穷无论是黑盒测试还是白盒测试,进行穷举测试都是不可能的。举测试都是不可能的。为什么不可能做穷举测试为什么不可能做穷举测试37第37页,共87页,编辑于2022年,星期三为什么不可能做穷举测试为什么不可能做穷举测试程序PXYZ若若X X、Y Y为所有可能的整数,为所有可能的整数,在字长在字长3232位机上测试位机上测试X X1 1、Y Y1 1 Z Z1 1 X Xn n、Y Yn n ZnZnn=2n=23232 2 23232=2=26464 1.84 1.84 1010191938第38页,共87页,编辑于2022年,星期三1.4.2 测试用例测试用例1 1、什么是测试用例?、什么是测试用例?测试用例是由前提条件和操作步骤、预期结果、实际测试用例是由前提条件和操作步骤、预期结果、实际结果构成。结果构成。测试用例测试用例(test case),就是测试人员执行的动作。,就是测试人员执行的动作。39第39页,共87页,编辑于2022年,星期三案例:电话银行案例:电话银行40第40页,共87页,编辑于2022年,星期三3 3、通过运行软件进行测试时,要做什么?、通过运行软件进行测试时,要做什么?构造测试用例构造测试用例执行测试用例,检查结果是否与期望的输出一致执行测试用例,检查结果是否与期望的输出一致4 4、在编写测试用例时,依据是什么?、在编写测试用例时,依据是什么?需要以软件需求为依据。需要以软件需求为依据。2 2、测试用例的三要素、测试用例的三要素前提条件和操作步骤、前提条件和操作步骤、预期结果、预期结果、实际结果实际结果41第41页,共87页,编辑于2022年,星期三 1.4.3 1.4.3 软件错误产生原因:软件错误产生原因:开发人员不太了解需求开发人员不太了解需求软件系统越来越复杂,开发人员不太可能精通所有的技软件系统越来越复杂,开发人员不太可能精通所有的技术术 技术文档普遍比较糟糕,文档本身就有错误技术文档普遍比较糟糕,文档本身就有错误软件需求、设计报告、程序经常发生变更,每次变更都可能软件需求、设计报告、程序经常发生变更,每次变更都可能产生新的错误产生新的错误任何人在编程时都可能犯错误,导致程序中有错误任何人在编程时都可能犯错误,导致程序中有错误人们常处于进度的压力之下,急忙之下容易产生错误人们常处于进度的压力之下,急忙之下容易产生错误人们过于自信,不真实的人们过于自信,不真实的“没问题没问题”将产生真正的问题将产生真正的问题 42第42页,共87页,编辑于2022年,星期三1.5 软件测试的分类软件测试的分类对于软件测试,可以从不同的角度加以分类:对于软件测试,可以从不同的角度加以分类:基于是否关注软件结构与算法基于是否关注软件结构与算法 黑盒测试黑盒测试白盒测试白盒测试基于是否执行被测试软件基于是否执行被测试软件静态测试静态测试动态测试动态测试基于测试的不同阶段基于测试的不同阶段单元测试单元测试集成测试集成测试系统测试系统测试验收测试验收测试43第43页,共87页,编辑于2022年,星期三软件测试的内容软件测试的内容(一一)回归测试回归测试功能测试功能测试负载测试负载测试 :最大负载最大负载压力测试压力测试性能测试性能测试 易用性测试易用性测试 安装与反安装测试安装与反安装测试44第44页,共87页,编辑于2022年,星期三软件测试的内容软件测试的内容(二二)恢复测试:从故障中恢复恢复测试:从故障中恢复安全性测试安全性测试兼容性测试兼容性测试内存泄漏测试内存泄漏测试比较测试比较测试Alpha Alpha 测试测试BetaBeta测试测试45第45页,共87页,编辑于2022年,星期三1.5.1 黑盒测试和白盒测试黑盒测试和白盒测试黑盒测试黑盒测试白盒测试白盒测试两种测试方法从不同的角度出两种测试方法从不同的角度出发,反映了软件的不同侧面,也发,反映了软件的不同侧面,也适用于不同的开发环境适用于不同的开发环境46第46页,共87页,编辑于2022年,星期三输入输入输出输出黑盒测试又称黑盒测试又称功能测试功能测试、数据驱动测试或、数据驱动测试或基于规格说明的测试,也可被成为用户测基于规格说明的测试,也可被成为用户测试,主要应用于快速应用开发(试,主要应用于快速应用开发(RADRAD)环境)环境该方法把被测试对象看成一个该方法把被测试对象看成一个黑盒子黑盒子,测试人员完全不考,测试人员完全不考虑程序的虑程序的内部结构内部结构和和处理过程处理过程,只在,只在软件的界面软件的界面上进行上进行测试。测试。47第47页,共87页,编辑于2022年,星期三白盒测试又称白盒测试又称结构测试结构测试、逻辑驱动测试或基、逻辑驱动测试或基于程序本身的测试,也可成为于程序本身的测试,也可成为程序员测试程序员测试,主要应用于结构化开发环境主要应用于结构化开发环境应用程序应用程序-根据被测程序的内部逻辑结构来设计测试用例。根据被测程序的内部逻辑结构来设计测试用例。根据被测程序的内部逻辑结构来设计测试用例。根据被测程序的内部逻辑结构来设计测试用例。-透明的盒子里包含着程序实现的细节,软件测试透明的盒子里包含着程序实现的细节,软件测试透明的盒子里包含着程序实现的细节,软件测试透明的盒子里包含着程序实现的细节,软件测试人员就会选择特定的测试用例来验证程序是否有错。人员就会选择特定的测试用例来验证程序是否有错。人员就会选择特定的测试用例来验证程序是否有错。人员就会选择特定的测试用例来验证程序是否有错。48第48页,共87页,编辑于2022年,星期三举例:举例:开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce49第49页,共87页,编辑于2022年,星期三黑盒测试与白盒测试比较黑盒测试与白盒测试比较 黑盒测试黑盒测试是从用户观点,按规格说明书要求的是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例输入数据与输出数据的对应关系设计测试用例,是是根据程序根据程序外部特征外部特征进行测试。进行测试。白盒测试白盒测试是根据程序是根据程序内部逻辑结构内部逻辑结构进行测试。进行测试。50第50页,共87页,编辑于2022年,星期三黑盒测试与白盒测试优缺点比较黑盒测试与白盒测试优缺点比较黑盒测试黑盒测试 白盒测试白盒测试 优优点点缺缺点点性性质质适用于各阶段测试适用于各阶段测试从产品功能角度测试从产品功能角度测试容易入手生成测试数容易入手生成测试数 据据可构成测试数据使特定程可构成测试数据使特定程 序部分得到测试序部分得到测试有一定的充分性度量手段有一定的充分性度量手段可或较多工具支持可或较多工具支持某些代码得不到测试某些代码得不到测试如果规格说明有误,如果规格说明有误,则无法发现则无法发现不易进行充分性测试不易进行充分性测试不易生成测试数据不易生成测试数据(通常通常)无法对未实现规格说明的无法对未实现规格说明的 部分进行测试部分进行测试工作量大,通常只用于单工作量大,通常只用于单 元测试,有应用局限元测试,有应用局限是一种是一种确认确认技术,回答技术,回答“我们在构造一个正确我们在构造一个正确 的系统吗?的系统吗?”是一种是一种验证验证技术,回答技术,回答“我们在正确地构造一个系我们在正确地构造一个系 统吗统吗?”51第51页,共87页,编辑于2022年,星期三1.5.2 静态测试和动态测试静态测试和动态测试静态测试不执行被测试的软件。类似于汽车检查。静态测试不执行被测试的软件。类似于汽车检查。静态测试不执行被测试的软件。类似于汽车检查。静态测试不执行被测试的软件。类似于汽车检查。52第52页,共87页,编辑于2022年,星期三动态测试是在测试过程中执行被测试软件,类似于试车。动态测试是在测试过程中执行被测试软件,类似于试车。动态测试是在测试过程中执行被测试软件,类似于试车。动态测试是在测试过程中执行被测试软件,类似于试车。53第53页,共87页,编辑于2022年,星期三1.5.3测试不同阶段测试不同阶段按测试阶段分类,测试可分按测试阶段分类,测试可分4 4个主要阶段:个主要阶段:单元测试、集成测试、系统测试和验收测试。单元测试、集成测试、系统测试和验收测试。这是一种从小到大、循序渐进的测试过程。这是一种从小到大、循序渐进的测试过程。54第54页,共87页,编辑于2022年,星期三单元测试是对程序员编写完成的一个个单元测试是对程序员编写完成的一个个程序单元程序单元进进行测试。行测试。是对软件设计的最小单元是对软件设计的最小单元模块进行正确性检模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻验的测试工作,主要测试模块在语法、格式和逻辑上的错误。辑上的错误。1、单元测试、单元测试55第55页,共87页,编辑于2022年,星期三单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元通常单元通常不是可运行的程序不是可运行的程序。单元测试必须编写额外的可运行的测试驱动程序单元测试必须编写额外的可运行的测试驱动程序。56第56页,共87页,编辑于2022年,星期三p 为了模拟某个模块与其他模块之间的联系,在进行单元为了模拟某个模块与其他模块之间的联系,在进行单元测试时,需设置若干辅助测试模块。测试时,需设置若干辅助测试模块。p 辅助模块有两种,一种是驱动模块(辅助模块有两种,一种是驱动模块(DriverDriver),),用以模拟被测试模块的上级模块。用以模拟被测试模块的上级模块。p 另一种是被调用模拟子模块(另一种是被调用模拟子模块(SubSub),用以模拟被),用以模拟被测模块工作过程中所调用的模块。图显示了一般的单测模块工作过程中所调用的模块。图显示了一般的单元测试环境。元测试环境。57第57页,共87页,编辑于2022年,星期三一般单元测试环境一般单元测试环境 58第58页,共87页,编辑于2022年,星期三p 驱动模块(驱动模块(DriverDriver),在单元测试中接受测试数据,把),在单元测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印输相关的数据传送给被测模块,启动被测模块,并打印输出相应的结果;出相应的结果;p 被调用模拟子模块(被调用模拟子模块(SubSub),是由被测模块调用,),是由被测模块调用,只进行很少的数据处理,例如打印入口和返回,以只进行很少的数据处理,例如打印入口和返回,以便检验被测模块与其下级模块的接口;便检验被测模块与其下级模块的接口;59第59页,共87页,编辑于2022年,星期三2、集成测试、集成测试(1 1)什么是集成)什么是集成将经过单元测试的模块按设计要求连接起来,组成所规定的将经过单元测试的模块按设计要求连接起来,组成所规定的将经过单元测试的模块按设计要求连接起来,组成所规定的将经过单元测试的模块按设计要求连接起来,组成所规定的软件系统的过程称为软件系统的过程称为软件系统的过程称为软件系统的过程称为“集成集成集成集成”。(2 2 2 2)什么是集成测试?)什么是集成测试?)什么是集成测试?)什么是集成测试?按设计要求把通过单元测试的各个模块组装在一起之后,按设计要求把通过单元测试的各个模块组装在一起之后,按设计要求把通过单元测试的各个模块组装在一起之后,按设计要求把通过单元测试的各个模块组装在一起之后,进行集成测试的主要任务是要求软件系统符合实际软件进行集成测试的主要任务是要求软件系统符合实际软件进行集成测试的主要任务是要求软件系统符合实际软件进行集成测试的主要任务是要求软件系统符合实际软件结构,发现与接口有关的各种错误。结构,发现与接口有关的各种错误。结构,发现与接口有关的各种错误。结构,发现与接口有关的各种错误。60第60页,共87页,编辑于2022年,星期三(3 3)为什么要进行集成测试?)为什么要进行集成测试?模块集成后所带来的问题:模块集成后所带来的问题:数据经过接口可能会丢失;数据经过接口可能会丢失;一个模块对另一个模块可能造成不应有的影响;一个模块对另一个模块可能造成不应有的影响;单个模块可以接受的误差,组装后经过不断的积累,单个模块可以接受的误差,组装后经过不断的积累,则达到一个不可接受的程度。则达到一个不可接受的程度。全局数据结构发生错误;全局数据结构发生错误;61第61页,共87页,编辑于2022年,星期三单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试单元测试集集 成成测测 试试62第62页,共87页,编辑于2022年,星期三集成测试包括两种不同方法:集成测试包括两种不同方法:非增量式集成非增量式集成增量式集成增量式集成63第63页,共87页,编辑于2022年,星期三非增量式测试方法非增量式测试方法 非增量式测试方法是采用一步到位的方法来进行测非增量式测试方法是采用一步到位的方法来进行测试,即对所有模块进行个别的单元测试后,按程序试,即对所有模块进行个别的单元测试后,按程序结构图将各模块连接起来,把连接后的程序当做一结构图将各模块连接起来,把连接后的程序当做一个整体进行测试。个整体进行测试。64第64页,共87页,编辑于2022年,星期三增量式测试增量式测试渐增式的集成中可以采用两种:渐增式的集成中可以采用两种:“自顶向下自顶向下”和和“自底自底向上向上”。自顶向下,即模块集成的顺序是首先集成主控模块(主程自顶向下,即模块集成的顺序是首先集成主控模块(主程序),然后按照软件控制层次结构向下进行集成。序),然后按照软件控制层次结构向下进行集成。自底向上增量式测试是从最底层的模块开始,按结自底向上增量式测试是从最底层的模块开始,按结构图自下而上逐步进行集成和测试构图自下而上逐步进行集成和测试65第65页,共87页,编辑于2022年,星期三图4-5 自顶向下增量式测试(广度优先策略)66第66页,共87页,编辑于2022年,星期三图4-6 自底向上增量式测试 67第67页,共87页,编辑于2022年,星期三3、系统测试、系统测试(1 1 1 1)什么是系统测试?)什么是系统测试?)什么是系统测试?)什么是系统测试?集成测试通过以后,软件已经组装成一个完整的软件集成测试通过以后,软件已经组装成一个完整的软件集成测试通过以后,软件已经组装成一个完整的软件集成测试通过以后,软件已经组装成一个完整的软件包,这时就要进行系统测试。包,这时就要进行系统测试。包,这时就要进行系统测试。包,这时就要进行系统测试。集成测试的目的是检查系统是否符合软件需求。集成测试的目的是检查系统是否符合软件需求。集成测试的目的是检查系统是否符合软件需求。集成测试的目的是检查系统是否符合软件需求。68第68页,共87页,编辑于2022年,星期三(3 3 3 3)系统测试有哪些内容?)系统测试有哪些内容?)系统测试有哪些内容?)系统测试有哪些内容?功能测试功能测试功能测试功能测试健壮性测试健壮性测试健壮性测试健壮性测试性能测试性能测试性能测试性能测试用户界面测试用户界面测试用户界面测试用户界面测试。69第69页,共87页,编辑于2022年,星期三案例:案例:手机操作系统的系统测试手机操作系统的系统测试一、多任务测试一、多任务测试多任务指在非多任务指在非idle状态下,测试机器处于工作状态时,有新的事件发状态下,测试机器处于工作状态时,有新的事件发生,如手机进行通话时有短信进入,手机编辑短信时有电话呼入,生,如手机进行通话时有短信进入,手机编辑短信时有电话呼入,这种情况就是多任务,相应的测试就是多任务测试。这种情况就是多任务,相应的测试就是多任务测试。下面是一个多任务测试的测试用例:下面是一个多任务测试的测试用例:例例1短信查看短信查看+来电应答来电应答 步骤步骤 期望的结果期望的结果1.进入手机短信查看状态查看短信进入手机短信查看状态查看短信;1.手机在查看短信过程中手机在查看短信过程中能能够正常

    注意事项

    本文(软件测试基础幻灯片.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开