软件测试重点总结.ppt
《软件测试重点总结.ppt》由会员分享,可在线阅读,更多相关《软件测试重点总结.ppt(212页珍藏版)》请在三一办公上搜索。
1、1.1 什么是软件,1、软件的定义 与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。,2、软件的分类按照功能分:系统软件和应用软件按照技术架构分:单机版软件、C/S结构软件、B/S结构软件按照用户分:产品软件和项目软件按照开发的规模分:大、中、小,1.3 为什么要进行软件测试,软件总存在缺陷。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性测试是所有工程学科的基本组成单元,自然也是软件开发的重要组成部分。测试人员水平越高,找到软件问题的时间就越早,
2、软件就越容易更正,产品发布之后越稳定,公司赚的钱也越多,微软就是一个典型的例子,1.4 什么是软件测试,1、软件测试的定义 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:定义1:软件测试是为了发现错误而执行程序的过程。定义2:在IEEE提出的软件工程标准术语中,软件测试被定义为:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”,1.4 什么是软件测试,1、软件测试的定义软件测试的正确定义 软件测试是由“验证(Verificati
3、on)”和“有效性确认(Validation)”活动构成的整体。验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。,1.4 什么是软件测试,2、软件测试的对象软件测试不等于程序测试。软件测试贯串于软件定义和开发的整个过程。软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。,3、软件测试的原则尽早地和及时地测试;测试用例应当由测试数据和与之对应的预期结果这两部分组成;在程序提交测试后,应当由专门的测试人员进行测试;测试用例应包括合理的输入条件和不合理的输入条件;严格执行测
4、试计划,排除测试的随意性;充分注意测试当中的群体现象;应对每一个测试结果做全面的检查;保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。,第二章 软件测试的基本概念,主要内容:2.1 软件缺陷2.2 验证和确认2.3 软件测试分类2.4 软件测试阶段2.5 软件测试工作范畴,缺陷是质量的对立面,要了解什么是缺陷(defect),就必须清楚“质量(Quality)”概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿,不能满足客户的要求,就会引起缺陷或产生缺陷,2.1 软件缺陷,一、软件质量的内涵1、质量 质量是“产品或服务所满足明示或暗示需求能力的固有特性和特
5、征的集合”。,2.1 软件缺陷,一、软件质量的内涵2、软件质量 软件质量是软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。包括:(1)软件产品质量满足用户要求的程度;(2)软件各种属性的组合程度;(3)用户对软件产品的综合反映程度;(4)软件在使用过程中满足用户要求的程度。,2.1 软件缺陷,一、软件质量的内涵3、软件质量模型,McCall软件质量模型,2.1 软件缺陷,一、软件质量的内涵3、软件质量模型,ISO 9126软件质量三层模型,2.1 软件缺陷,一、软件质量的内涵4、软件质量特性 功能性、易用性、可靠性、性能、容量 可测量性、可维护性、可移植性、可扩展性,2.1 软件缺陷
6、,一、软件质量的内涵5、软件质量的分类(1)软件质量的功能需求 软件质量的功能需求一般会在需求规格说明书等文档中给相应的描述。(2)软件质量的非功能需求 软件质量的非功能需求一般用下列特性描述:性能、有效性、可靠性、可维护性、兼容性、可扩展性、可移植性,2.1 软件缺陷,一、软件质量的内涵5、软件质量的分类(3)软件质量的用户需求能正常使用全部所需的功能,符合需求规格;功能强大,而且界面美观,易用;内容健康、有益于生活和工作。用户数据的安全、受保护和兼容;能及时得到新的产品或更完美的软件服务;软件可靠性很高,使用软件服务没有时间障碍,2.1 软件缺陷,一、软件质量的内涵5、软件质量的分类(4)
7、软件质量的企业需求 开发成本 可维护性 可扩展性 可移植性 兼容性,2.1 软件缺陷,二、软件缺陷1、软件缺陷的定义 软件缺陷(Bug):任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求。IEEE(1983)729 软件缺陷一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。,2.1 软件缺陷,二、软件缺陷2、软件缺陷的表现功能、特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错,包括运行中断、系统崩溃、界面混乱数据结果不正确、精度不够用户不能接受的其他
8、问题,如存取时间过长、界面不美观,2.1 软件缺陷,二、软件缺陷3、软件缺陷产生的原因 微软开发者成功之路(之一)概括了以下7项主要原因:(1)项目期限的压力;(2)产品的复杂度;(3)沟通不良;(4)开发人员疲劳,压力过大或受到干扰;(5)缺乏足够的知识、技能和经验;(6)不了解客户的需求;(7)缺乏动力。,2.1 软件缺陷,二、软件缺陷4、软件缺陷的构成,图2-4 软件缺陷构成示意图,2.1 软件缺陷,二、软件缺陷5、修复软件缺陷的代价,软件缺陷随时间的推移带来的成本越来越大,2.2 验证和确认,一、验证和确认Verification:Are we building the product
9、 right?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Are we building the right product?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求,2.2 验证和确认,二、评审 通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。1、评审 评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地
10、满足了以往工作产品中建立的规范。,2.2 验证和确认,二、评审2、评审分类管理评审技术评审文档评审流程评审,2.2 验证和确认,三、质量保证和测试的关系1、软件质量保证:是通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程。2、SQA的活动:提出软件质量要求;确定开发方案;阶段评审;测试管理文档化管理验证产品与相应文档和标准的一致性建立测量机制记录并生成报告,2.2 验证和确认,三、质量保证和测试的关系3、SQA与软件测试的关系 共同点:二者贯穿整个软件开发生命周期的流程。区别:SQA 是管理工作、审查对象是流程、强调以预防为主测试是技术工作、测试对象是产品、主要是以事后检查
11、关系:SQA指导测试、监控测试测试为SQA提供依据,2.3 软件测试的分类,2.3 软件测试的分类,按测试的对象或范围分类,如单元测试、文档测试、系统测试等)按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等根据测试过程中被测软件是否被执行,分为静态测试和动态测试根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试,2.4 软件测试阶段,图2-8 软件测试阶段示意图,需求和设计审查,测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可
12、测试性等,单元测试,单元测试的对象是程序系统中的最小单元-模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块单元测试一般由编程人员和测试人员共同完成,而以开发人员为主单元测试包括代码评审,代码评审可以发现程序50%70%代码的缺陷。,集成测试,集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一
13、次性集成方式和增殖式集成方式。,功能测试,功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用,系统测试,系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等,验收测试&安装测试,验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境
14、中或相当于用户使用环境中,进行一步一步的安装操作性的测试,2.5 软件测试的工作范畴,软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动,测试工作流程,3.1 白盒测试方法,白盒测试,也称结构测试或逻辑驱动测试,是已知程序的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序的内部结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规
15、格要求,所有内部成分是否按规定正常运行。,3.1 白盒测试方法,白盒测试主要用于单元测试白盒测试的基本原则有:对程序模块中所有独立路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;对程序进行边界检查;检验内部数据结构的有效性。,3.1 白盒测试方法,目前最常用的方法有:逻辑覆盖法:包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。基本路径测试法,一、逻辑覆盖法,例:实现一个简单的数学运算,Dim a,b As Integer Dim c As Double If(a0 And b0)Then c=c/a End if If(a1 or c1
16、)Then c=c+1 End if c=b+c,一、逻辑覆盖法,1、语句覆盖 基本思想:设计足够多的测试用例,使得程序中的每个可执行语句至少执行一次。,路径:P1(124)P2(125)P3(134)P4(135),测试用例:a=2,b=1,c=6,一、逻辑覆盖法,1、语句覆盖【优点】:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。【缺点】:语句覆盖是最弱的逻辑覆盖。不能发现其中的逻辑错误。,一、逻辑覆盖法,2、判定覆盖 基本思想:设计足够多的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值,也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支
17、覆盖”。,一、逻辑覆盖法,2、判定覆盖,测试用例:a=2,b=1,c=6 a=-2,b=-1,c=-3,测试用例:a=1,b=1,c=0 a=2,b=-1,c=6,一、逻辑覆盖法,2、判定覆盖【优点】:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。【缺点】:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。,一、逻辑覆盖法,3、条件覆盖 基本思想:设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满
18、足一次。,一、逻辑覆盖法,3、条件覆盖,判断M表达式:条件 a0 取真 记为 T1 假 F1 条件 b0 取真 记为 T2 假 F2判断N表达式:条件 a1 取真 记为 T3 假 F3 条件 c1 取真 记为 T4 假 F4,一、逻辑覆盖法,3、条件覆盖,它覆盖了判定M的N分支和判断N的Y分支。,一、逻辑覆盖法,3、条件覆盖【优点】:增加了对条件判定情况的测试。【缺点】:条件覆盖不一定包含判定覆盖。例如,我们刚才设计的用例就没有覆盖判断M的Y分支和判断N的N分支。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。,一、逻辑覆盖法,4、判定条件覆盖 基本思想:设计足够多的测试用例,
19、使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。,一、逻辑覆盖法,4、判定条件覆盖,按照判定条件覆盖的要求,我们设计的测试用例要满足如下条件:(1)所有条件可能至少执行一次取值;(2)所有判断的可能结果至少执行一次。,一、逻辑覆盖法,4、判定条件覆盖,一、逻辑覆盖法,4、判定条件覆盖【优点】:能同时满足判定、条件两种覆盖标准。【缺点】:判定/条件覆盖准则的缺点是未考虑条件的组合情况。,一、逻辑覆盖法,5、条件组合覆盖 基本思想:通过执行足够的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。,一、逻辑覆盖法
20、,5、条件组合覆盖设计组合条件如表所示:,一、逻辑覆盖法,5、条件组合覆盖条件组合覆盖的测试用例,一、逻辑覆盖法,5、条件组合覆盖【优点】:条件组合覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。【缺点】:线性地增加了测试用例的数量。,一、逻辑覆盖法,6、路径覆盖 基本思想:设计足够多的测试用例,要求覆盖程序中所有可能的路径。,一、逻辑覆盖法,6、路径覆盖,一、逻辑覆盖法,6、路径覆盖【优点】:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。【缺点】:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,不见得把所有的条件组合都覆盖。,一、逻辑覆盖法,条件组合覆盖结合路径覆盖
21、,二、基本路径测试法,二、基本路径测试法,1、基本路径测试的思想基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。在程序控制流图的基础上,分析控制构造的环路复杂性,导出独立可执行路径集合,设计测试用例的方法。,二、基本路径测试法,2、基本路径测试的思想导出程序流程图的控制流图计算控制流图G的环路复杂性V(G)确定只包含独立路径的基本路径集设计测试用例,二、基本路径测试法,3、控制流图控制流图是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构。控制流图中包括两种图形符号:结点和控制流线。结点由带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一
22、个条件判定框(假设不包含复合条件)。控制流线由带箭头的弧或线表示,可称为边。它代表程序中的控制流。,常见结构的控制流图,其中,包含条件的结点被称为判定结点,由判定结点发出的边必须终止于某一个结点,由边和结点所限定的范围被称为区域。,流图的画法,流图的画法,如果判断中的条件表达式是由一个或多个逻辑运算符连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。,二、基本路径测试法,4、环路复杂度环形复杂度也称为圈复杂度,它是一种为程序逻辑复杂度提供定量尺度的软件度量。从程序的环形复杂度可导出基本路径集合中独立路径条数。独立路径是指程序中至少引入了一个新的处理语句集合或一个新条件的程序通路。
23、采用流图的术语,即独立路径必须至少包含一条在本次定义路径之前不曾用过的边。,计算环形复杂度的方法,环形复杂度以图论为基础,为我们提供了非常有用的软件度量。可用如下三种方法之一来计算环形复杂度:控制流图中区域的数量=环形复杂度。给定控制流图G的环形复杂度V(G),定义为 V(G)=E-N+2 其中,E是控制流图中边的数量,N是控制流图中的节点数量。给定控制流图G的环形复杂度V(G),也可定义为 V(G)=P+1 其中,P是控制流图G中判定节点的数量。,例如,在图示的控制流图中,一组独立的路径是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-1
24、0-1-11path4:1-2-3-6-7-9-10-1-11路径 path1,path2,path3,path4组成了控制流图的一个基本路径集,void Sort(int iRecordNum,int iType)1 2 int x=0;3 int y=0;4 while(iRecordNum-0)5 6 If(iType=0)7x=y+2;8 else9 If(iType=1)10 x=y+10;11 else12 x=y+20;13 14,(1)画出控制流图(2)计算环形复杂度(3)导出独立路径(用语句编号表示)(4)设计测试用例,(1)画出控制流图:(2)计算环形复杂度:10(条边)-
25、8(个节点)+2=4(3)导出独立路径(用语句编号表示)路径1:414 路径2:46714 路径3:4691013414 路径4:4691213414,(4)设计测试用例:,例 下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到交换两数组元素内容的操作Swap():void SelectSort(datalist list)/对表list.V0到list.Vn-1进行排序,n是表当前长度。for(int i=0;i list.n-1;i+)int k=i;/在list中找具有最小关键码的对象 for(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 重点 总结
链接地址:https://www.31ppt.com/p-6434322.html