软件测试第1章-软件测试基础-教学PPT课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件测试第1章-软件测试基础-教学PPT课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 基础 教学 PPT 课件
- 资源描述:
-
1、第第1章章 软件测试基础软件测试基础 软件测试模型 软件测试原则 软件测试基本流程 软件概述 软件缺陷管理 软件测试概述1.1.1 软件生命周期软件生命周期可分为6个阶段:问题问题定义定义需求需求分析分析软件软件设计设计软件软件开发开发软件软件测试测试软件软件维护维护淘汰淘汰1.1.2 软件开发模型1、瀑布模型计划计划需求分析需求分析软件设计软件设计编码编码测试测试运行维护运行维护软件设计阶段软件设计阶段软件开发阶段软件开发阶段软件维护阶段软件维护阶段1.1.2 软件开发模型1、瀑布模型优点:检查点清晰,分工明确,有利于大型软件软件开发人员的组织管理及工具的使用与研究,可以提高开发的效率。缺点
2、:严格按照线性执行,增加了开发风险;要求必须有产出结果,增加了开发工作量。对于现代软件,各阶段之间的关系很少是线性,瀑布模型已经不适合现代软件开发。1.1.2 软件开发模型2、快速原型模型需求分析需求分析构建原型构建原型原型评价原型评价确定最终确定最终需求需求软件开发软件开发细化需求细化需求1.1.2 软件开发模型2、快速原型模型优点:克服了需求不明确带来的风险,适用于不能预先确定需求的软件项目。缺点:原型设计较难;不利于开发人员对产品的扩展。1.1.2 软件开发模型2、迭代模型需求分析需求分析软件设计软件设计编码编码测试测试迭代1组件1需求分析需求分析软件设计软件设计编码编码测试测试迭代2组
3、件2 需求分析需求分析软件设计软件设计编码编码测试测试迭代n组件n1.1.2 软件开发模型3、迭代模型优点:适应客户需求变更;降低了开发成本和风险。缺点:增加了集成失败风险;容易退化为“边做边改”模式,失去对整个项目的控制。1.1.2 软件开发模型4、螺旋模型1.1.2 软件开发模型4、螺旋模型螺旋模型包含四个象限:制定计划:确定软件目标,制定实施方案,列出项目开发的限制条件。风险分析:评价所制定的实施方案,识别风险并消除风险。实施工程:开发产品并进行验证。客户评估:客户对产品进行审核评估,提出修正建议,制定下一步计划。1.1.2 软件开发模型4、螺旋模型优点:强调了风险分析,有助于将软件质量
4、融入开发中;小分段构建大型软件,易于计算成本;客户参与,保证项目可控性。缺点:构建过程太过繁琐,不适合小型项目。1.1.2 软件开发模型5、敏捷模型敏捷模型以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。1.1.2 软件开发模型5、敏捷模型敏捷模型的特点如下:项目被拆分成多个子项目,迭代完成,每个迭代都要经过测试。快速响应需求变更,在修改过程中,软件一直处于可用状态。不断对产品进行细微、渐进式地改进,每次改进一小部分,如果可行再逐步扩大改进范围。开发未动,测试先行。注重“人”的作用。1.1.2 软件开发模型5、敏捷模型优点:及时响应客户需求变更,不断适应新的趋势。缺点:管理相对混
5、乱,不适合大型项目。多学一招多学一招:敏捷模型开发方式敏捷模型开发方式1、ScrumScrum Master(产品负责人)全面负责产品的开发过程。Scrum Master把团队划分成不同的小组,把整个项目划分成细小的可交付成果的子项目,分别由不同的小组完成,并对各小组的工作划分优先级,估算每个小组的工作量。多学一招多学一招:敏捷模型开发方式敏捷模型开发方式2、Kanban利用可视化软件将开发的软件项目细分成小任务,并分配给团队成员,每个成员都可以在“看板”上了解自己的工作任务及整个团队的工作进度。项目开始之后,从目前执行的任务和过程开始,团队会针对每个成员的工作作出持续性、增量、渐进式的改变。
6、1.1.3 软件质量概述软件质量是指软件产品满足基本需求及隐式需求的程度。软件产品满足基本需求是指其能满足软件开发时所规定需求的特性,其次是软件产品满足隐式需求的程度。1.1.3 软件质量概述从软件质量的定义,可将软件质量分为三个层次:满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。满足用户需求:软件产品的需求是由用户产生的,软件最终的目的就是满足用户需求,解决用户的实际问题。满足用户隐式需求:软件如果满足用户隐式需求,即潜在的可能需要在将来开发的功能。将会极大的提升用户满意度,这就意味着软件质量更高。1.1.3 软件质量概述软件质量模型多学一招多学一招:纸杯测试纸杯测试 测试
7、项目:纸杯。需求测试:查看纸杯说明书是否完整。界面测试:观察纸杯外观,表面是否光滑、手感是否舒适。功能测试:用纸杯装水,观察是否漏水。安全测试:纸杯是否有毒或细菌。多学一招多学一招:纸杯测试纸杯测试 易用性测试:用纸杯盛放开水是否烫手、纸杯是否易滑、是否方便饮用。兼容性测试:用纸杯分别盛放水、酒精、饮料、汽油等,观察是否有渗漏现象。可靠性测试:从不同高度摔下来,观察纸杯的损坏程度。可移植性测试:将纸杯放在温度、湿度等不同的环境中,查看纸杯是否还能正常使用。多学一招多学一招:纸杯测试纸杯测试 可维护性:将纸杯揉捏变形,看其是否能恢复。压力测试:用一根针扎在纸杯上不断增加力量,记录多大压强时能穿透
8、纸杯。疲劳测试:用纸杯分别盛放水、汽油放置24小时,观察其渗漏情况(时间和程度)。跌落测试:纸杯(加包装)从高处落下,查看达到破损的高度。多学一招多学一招:纸杯测试纸杯测试 震动测试:纸杯(加包装)六面震动,评估它是否能应对恶劣的公路/铁路/航空运输等。测试数据:编写具体测试数据(略),其中可能会用到场景法、等价类划分法、边界值分析法等测试方法。期望输出:期望输出需要查阅国际标准及用户的使用需求。多学一招多学一招:纸杯测试纸杯测试 用户文档:使用手册是否对纸杯的用法、使用条件、限制条件等有详细描述。说明书测试:查看纸杯说明书的正确性、准确性及完整性。1.1.3 软件质量概述影响软件质量的因素:
9、需求模糊 软件开发缺乏规范性文件指导 软件开发人员问题 缺乏软件质量控制管理1.2.1 软件缺陷产生的原因1.2.2 软件缺陷的分类划分标准划分标准缺陷缺陷类型类型测试种类测试种类界面类功能类性能类安全性类兼容性类严重程度严重程度严重一般次要建议优先级优先级立即解决高优先级正常排队低优先级发生阶段发生阶段需求阶段构架阶段设计阶段编码阶段测试阶段1.2.3 软件缺陷的处理流程每个公司的软件缺陷处理流程不尽相同,但是它们遵循的最基本流程是一样的,都要经过提交、分配、确认、处理、复测、关闭等环节。1.2.3 软件缺陷的处理流程 提交:测试人员发现缺陷之后,将缺陷提交给测试组长。分配:测试组长接收到测
10、试组员提交的缺陷之后,将其移交给开发人员。确认:开发人员接收到移交的缺陷之后,会与团队甚至测试人员一起商议,确定该缺陷是否是一个缺陷。拒绝:如果经过商议之后,缺陷不是一个真正的缺陷则拒绝处理,关闭缺陷。如果经过商议之后,确定其是一个真正的缺陷,则可以根据缺陷的严重程度或优先级等立即处理或延期处理。1.2.3 软件缺陷的处理流程 复测:开发人员修改好缺陷之后,测试人员重新进行测试(复测),检测缺陷是否确实已经修改。如果未被正确修改,则重新提交缺陷。关闭:测试人员重新测试之后,如果缺陷已经被正确修改,则将缺陷关闭,整个缺陷处理完成。多学一招多学一招:缺陷报告缺陷报告测试人员在提交软件测试时都会按照
11、公司规定的模板(Word、Excel、缺陷管理软件等)将缺陷的详细情况记录下来生成缺陷报告,每个公司的缺陷报告模板并不相同,但一般都会包括缺陷的编号、类型、严重程度、优先级、测试环境等,有时还会有测试人员的建议。注 意多学一招多学一招:缺陷报告缺陷报告编写缺陷报告要注意以下事项:每个缺陷都有一个唯一的编号。缺陷要有重现步骤。一个缺陷生成一份报告。缺陷报告要整洁、完整。1.2.4 常见的软件缺陷管理工具1、BugzillaBugzilla是Mozilla公司提供的一款免费的软件缺陷管理工具。Bugzilla能够建立一个完整的缺陷跟踪体系,包括缺陷跟踪、记录、缺陷报告、处理解决情况等。使用Bugz
12、illa管理软件缺陷时,测试人员可以在Bugzilla上提交缺陷报告,Bugzilla会将缺陷转给相应的开发者,开发者可以使用Bugzilla做一个工作表,标明要做的事情的优先级、时间安排和跟踪记录。1.2.4 常见的软件缺陷管理工具2、禅道禅道是一款优秀的国产项目管理软件,它集产品管理、项目管理、质量管理、缺陷管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。禅道分为专业和开源两个版本,专业版是收费软件,开源版是免费软件,对于日常的项目管理,开源版本已经足够使用。1.2.4 常见的软件缺陷管理工具3、JIRAJIRA是Atlassian公
13、司开发的项目与实务跟踪工具,被广泛用于缺陷跟踪、客户实务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。JIRA配置灵活、功能全面、部署简单、扩展丰富、易用性好,是目前比较流行的基于Java架构的管理工具。JIRA软件有两个认可度很高的特色:第一个是Atlassian公司对该开源项目实行免费提供缺陷跟踪服务;第二个是用户在购买JIRA软件同时将源代码也购置进来,方便做二次开发。1.3.1 软件测试简介软件测试的发展也经历了一个漫长的过程,其发展过程可用下图表示:1.3.2 软件测试的目的 对于软件开发来说,软件测试通过找到的问题缺陷帮助开发人员找到开发过程中存在的问题,包括软件开
14、发的模式、工具、技术等方面存在的问题与不足,预防下次缺陷的产生。对于软件测试来说,使用最少的人力、物力、时间等找到软件中隐藏的缺陷,保证软件的质量,也为以后软件测试积累丰富的经验。对于客户需求来说,软件测试能够检验软件是否符合客户需求,对软件质量进行评估和度量,为客户评审软件提供有力的依据。1.3.3 软件测试的分类1、按照测试阶段分类 单元测试:验证软件单元是否符合软件需求与设计,开发人员自测。冒烟测试:软件构建版本建立后,对系统的基本功能进行简单的测试,这种测试重点验证的是程序的主要功能,而不会对具体功能进行深入测试。集成测试:冒烟测试之后,将已经测试过的软件单元组合在一起测试它们之间的接
15、口,用于验证软件是否满足设计需求。1.3.3 软件测试的分类1、按照测试阶段分类 系统测试:将经过测试的软件在实际环境中运行,并与其他系统的成分(如数据库、硬件和操作人员等)组合在一起进行测试。验收测试:主要是对软件产品说明进行验证,逐行逐字的按照说明书的描述对软件产品进行测试,确保其符合客户的各项要求。1.3.3 软件测试的分类2、按照测试技术分类 黑盒测试:把软件(程序)当作一个有输入与输出的黑匣子,它把程序当作一个输入域到输出域的映射,只要输入的数据能输出预期的结果即可,不必关心程序内部是怎么样实现的。1.3.3 软件测试的分类2、按照测试技术分类白盒测试:测试人员了解软件程序的逻辑结构
16、、路径与运行过程,在测试时,按照程序的执行路径得出结果。白盒测试就是把软件(程序)当作一个透明的盒子,测试人员清楚的知道从输入到输出的每一步过程。1.3.3 软件测试的分类2、按照测试技术分类总结:相对于黑盒测试来说,白盒测试对测试人员的要求会更高一点,它要求测试人员具有一定的编程能力,而且要熟悉各种脚本语言。但是在软件公司里,黑盒测试与白盒测试并不是界限分明的,在测试一款软件时往往是黑盒测试与白盒测试相结合对软件进行完整全面的测试。1.3.3 软件测试的分类3、按照软件质量特性分类 功能测试:测试软件的功能是否满足客户的需求,包括准确性、易用性、适合性、互操作性等。性能测试:测试软件的性能是
17、否满足客户的需求,性能测试包括负载测试、压力测试、兼容性测试、可移植性测试和健壮性测试等。1.3.3 软件测试的分类4、按照自动化程度分类 手工测试:测试人员一条一条的执行代码完成测试工作。费时费力且很验证保证测试效果。自动化测试:借助脚本、自动化测试工具等完成相应的测试工作,它也需要人工的参与,但是它可以将要执行的测试代码或流程写成脚本,执行脚本完成整个测试工作。1.3.3 软件测试的分类5、按照测试项目分类 界面类测试:验证软件界面是否符合客户需求。安全性测试:试软件在没有授权的内部或外部用户的攻击或恶意破坏时如何进行处理,是否能保证软件与数据的安全。文档测试:以需求分析、软件设计、用户手
18、册、安装手册为主,主要验证文档说明与实际软件之间是否存在差异。1.3.3 软件测试的分类6、其他分类 测试:软件上线之前进行的版本测试。由开发人员和测试人员或者用户协助进行测试。测试人员记录使用过程中出现的错误与问题,整个测试过程是可控的。测试:软件上线之后进行的版本测试。由用户在使用过程中发现错误与问题并进行记录,然后反馈给开发人员进行修复。1.3.3 软件测试的分类6、其他分类 回归测试:对修改后的程序重新进行测试确认原有的缺陷已经消除并且没有引入新的缺陷,这个重新测试的过程就叫作回归测试。随机测试:没有测试用例、检查列表、脚本或指令的测试,它主要是根据测试人员的经验对软件进行功能和性能抽
19、查。1.4.1 软件测试与软件开发的关系软件测试在项目各个阶段的作用如下:项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。需求分析阶段:确定测试需求分析,即确定在项目中需要测试什么,同时制定系统测试计划。概要设计与详细设计阶段:制定单元测试计划和集成测试计划。编码阶段:开发相应的测试代码和测试脚本。测试阶段:实施测试并提交相应的测试报告。1.4.1 软件测试与软件开发的关系软件测试与软件开发的关系如右图。1.4.2 常见的软件测试模型1、V模型1.4.2 常见的软件测试模型1、V模型优点:将复杂的测试工作分成了目标明确的小阶段完成,具有阶段性、顺序性和依赖性,它既包含了对于源代码的
展开阅读全文