版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第8章软件测试
本章结构:8.1软件测试概述
8.2软件测试方法8.3测试用例设计
8.4软件测试的步骤
8.5软件测试工具简介
8.6调试8.7面向对象软件测试简述28.1软件测试概述
8.1.1软件测试的目标测试阶段的根本目标是以最少的人力、物力和时间,尽可能多地发现并排除软件中潜在的错误,最终把一个高质量的软件系统交给用户使用。GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中就软件测试的目的提出了以下观点:1.软件测试是为了发现错误而执行程序的过程。2.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。3.一个成功的测试是发现了至今尚未发现的错误的测试。38.1软件测试概述
8.1.2软件测试的原则(1)所有测试都应追溯到需求。(2)坚持“尽早地和不断地进行软件测试”。(3)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。(4)程序员应避免测试自己的程序。(5)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。(6)充分注意测试中的群集现象。(7)严格执行测试计划,排除测试的随意性。(8)应当对每个测试结果做全面检查。(9)在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事。(10)长期妥善地保存测试计划、测试用例、出错统计和最终分析报告。48.1软件测试概述
8.1.2软件测试的过程和策略1.软件测试的流程软件测试是一系列测试活动的集合,必须按照一定的测试流程,才能发现更多的错误。软件测试流程包括设计测试方案、实施测试、纠正错误、分析测试数据、建立可靠性模型等几个步骤,如图8.1所示。58.1软件测试概述
图8.1软件测试的流程68.1软件测试概述
2.软件测试的信息流软件测试时需要3类测试信息流,如图8.2所示。图8.2软件测试的信息流78.1软件测试概述
3.测试的过程图8.3描述了测试的过程。从图中可知,测试过程分为4个步骤,即单元测试、组装测试、确认测试和系统测试。图8.3软件测试的过程88.1软件测试概述
图8.4列出了软件测试各阶段与软件开发各阶段之间的关系。图8.4软件测试与软件开发各阶段的关系98.2软件测试方法
软件测试方法很多,按照测试过程是否执行程序来分,一般分为静态测试方法和动态测试方法。动态测试方法又根据测试用例的设计方法不同,分为黑盒测试和白盒测试两类。8.2.1静态测试静态测试包括代码检查、静态结构分析、代码质量度量等。是指不在计算机上执行被测试软件,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。1.人工测试2.计算机辅助静态分析108.2软件测试方法
8.2.2动态测试动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。同测试任何产品一样,动态测试一般有黑盒测试法与白盒测试法两种,前者是测试产品的功能,后者是测试产品的内部结构和处理过程。1.黑盒测试法黑盒法又称功能测试或数据驱动测试,该方法把被测试对象看成一个不透明的“黑盒子”,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口(界面)处进行测试,依据需求说明书,检查程序是否满足功能要求,是否能很好地接收数据,并产生正确的输出。通过黑盒测试主要发现以下错误:(1)是否有不正确或遗漏了的功能。(2)界面是否有错,能否正确地接受输入数据,能否产生正确的输出信息。(3)是否有数据结构或外部数据库访问错误。(4)性能是否满足要求。(5)是否有初始化或终止性错误。黑盒测试法是一种宏观功能上的测试,该方法适合测试部门的测试人员或用户。118.2软件测试方法
2.白盒测试法白盒法又称结构测试或逻辑驱动测试,该方法把被测试对象看成一个透明的盒子,测试人员可以了解程序的内部结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒测试法是一种程序级的微观上的测试,不适合于大单元、大系统的测试,主要用于很小单元的测试,以及从事软件底层工作、生产构件的测试人员使用。
128.3测试用例设计
8.3.1黑盒技术常用的黑盒测试技术有等价类划分、边界值分析、错误推测法、因果图等。8.3.1.1等价类划分法1.等价类划分法的基本思想2.等价类划分的一般规则划分等价类需要一定的经验,下述几条启发式规则有助于等价类的划分:(1)如果输入条件是一个布尔量,则可定义一个有效等价类和一个无效等价类。
(2)如果输入条件规定了确切的取值范围,可定义一个有效等价类和两个无效等价类。(3)如果规定了输入数据的个数,则可定义一个有效等价类和两个无效等价类。
(4)如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)。138.3测试用例设计
(5)如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
(6)如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。
(7)如果处理对象是表格,则应使用空表、只含1项的表,包含多项的表。148.3测试用例设计
3.用等价类划分法设计测试用例的步骤(1)划分等价类,形成等价类表,为每一等价类规定一个唯一的编号;(2)根据等价类选取相应的测试用例。设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被覆盖;设计一个新的测试用例,使其覆盖一个而且只覆盖一个尚未覆盖的无效等价类,重复这一步骤,直到所有无效等价类均被覆盖。158.3测试用例设计
8.3.1.2边界值分析法边界值分析方法是对各种输入、输出范围的边界情况设计测试用例的方法。边界值分析法选取测试数据应遵循的原则如下:(1)如果输入条件规定了取值范围,则应以范围的边界值以及刚刚超过范围边界外的值作为测试数据。(2)如果规定了输入值的个数,分别以满足条件的个数及稍少于、稍多于当前个数值作为测试数据。(3)针对每个输出条件使用上述(1)、(2)条规则。(4)如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文件、线性表、链表等),则应选取有序集中的第一个和最后一个作为测试数据。设计测试方案时总是结合使用等价类划分和边界值分析两种技术。168.3测试用例设计
8.3.1.3错误推测法人们可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地设计检查这些错误的例子,这就是错误推测法。错误推测法的基本思想是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,并且根据这些情况选择测试用例。错误推测法针对性强,可以直接切入可能的错误,直接定位,是一种非常实用、有效的方法。但是它需要丰富的经验和专业知识。错误推测法的实施步骤是,对被测软件首先列出所有可能有的错误和易错情况表,然后基于该表设计测试用例。178.3测试用例设计
8.3.1.4因果图法
因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,列出输入数据各种组合与程序应做的动作(即相应的输出结果)之间的对应关系,最后为判定表的每一列至少设计一个测试用例。
188.3测试用例设计
8.3.2白盒技术
白盒测试常用的技术是逻辑覆盖,即考察用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有6种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。198.3测试用例设计
1.语句覆盖以图8.4所示的程序流程图为例。为了使每个语句都执行一次,程序的执行路径应该是①②④,为此只需要输入下面的测试数据:A=2,B=0,X=3图8.5被测模块流程图208.3测试用例设计
2.判定覆盖判定覆盖又叫分支覆盖,它的含义是指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和一次“假”值,从而使程序的每个分支至少都通过一次。设计测试用例,只要通过路径①②④,①③⑤或者①②⑤,①③④就可达到判定覆盖标准。例如,选择下面的两组测试数据:(1)A=3,B=0,X=1(覆盖①②⑤)(2)A=2,B=1,X=2(覆盖①③④)218.3测试用例设计
3.条件覆盖条件覆盖的含义是设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。经分析,选择下面两组测试数据:(1)A=2,B=0,X=3(执行路径①②④)(2)A=1,B=1,X=1(执行路径①③⑤)228.3测试用例设计
4.判定/条件覆盖判定/条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。选择以下两组测试数据即可满足判定/条件覆盖标准:(1)A=2,B=0,X=3(2)A=1,B=1,X=1238.3测试用例设计
5.条件组合覆盖条件组合覆盖是比较强的逻辑覆盖标准,它是指设计足够的测试数据,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。下面的4组测试数据可以满足条件组合覆盖标准:(1)A=2,B=0,X=2(针对(1)、(5)两种组合,执行路径①②④)(2)A=2,B=1,X=1(针对(2)、(6)两种组合,执行路径①③④)(3)A=1,B=0,X=2(针对(3)、(7)两种组合,执行路径①③④)(4)A=1,B=1,X=1(针对(4)、(8)两种组合,执行路径①③⑤)248.3测试用例设计
6.路径覆盖路径覆盖的含义是指选取足够的测试数据,使程序的每条可能路径都至少执行一次。选择以下测试数据,覆盖程序中的4条路径:(1)A=2,B=0,X=2(执行路径①②④,覆盖条件组合①和⑤)(2)A=2,B=1,X=1(执行路径①③④,覆盖条件组合②和⑥)(3)A=1,B=1,X=1(执行路径①③⑤,覆盖条件组合④和⑧)(4)A=3,B=0,X=1(执行路径①②⑤,覆盖条件组合①和⑧)258.3测试用例设计
8.3.3综合测试策略前面介绍的软件测试方法,各有所长。每种方法都能设计出一组有用的测试用例,用这组用例可能容易发现某种类型的错误,但可能不易发现另一种类型的错误。因此,对软件系统进行实际测试时,应该联合使用各种测试方法,形成综合策略。通常是先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。具体方法如下:(1)在任何情况下都应该使用边界值分析方法。经验表明,用这种方法设计出的测试用例暴露程序错误的能力最强。注意,应该既包括输入数据的边界情况又包括输出数据的边界情况。(2)用等价类划分法补充测试用例。(3)用错误推测法补充测试用例。(4)对照程序逻辑,检查已经设计出的测试用例的逻辑覆盖程度,如果没有达到所要求的覆盖标准,则应当再补充一些测试用例。(5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。268.3测试用例设计
8.3.4测试实例分析下面给出一个三角形分类程序的测试方案的设计。程序的功能是,读入三个整数值代表三角形的三条边的长度,程序判断这三个值能否构成三角形,如果能够,则输出三角形是等边、等腰或任意三角形的分类信息。综合使用边界值分析、等价类划分和错误推测等技术为此程序设计测试用例。278.4软件测试步骤
8.4.1单元测试
单元测试也称为模块测试,是对软件最小单元的测试,也是对程序模块进行正确性检验的测试,其目的在于发现各模块内部可能存在的各种差错。
1.单元测试的步骤“测试环境”,如图8.6所示。图8.6单元测试的测试环境288.4软件测试步骤
2.单元测试的内容单元测试主要从以下5个方面进行:(1)模块接口测试(2)局部数据结构测试(3)重要路径测试(4)错误处理测试(5)边界测试298.4软件测试步骤
8.4.2组装测试组装测试也称集成测试或联调,是在单元测试的基础上,将所有模块按照软件设计要求组装成系统并进行测试的过程。组装测试主要通过检查模块间的结构和通信发现软件设计阶段产生的错误,通常采用黑盒测试方法。在组装测试过程中,需要考虑如下几个问题:在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。一个模块的功能是否会对另一个模块的功能产生不利的影响。各个子功能组合起来,能否达到预期要求的父功能。全局数据结构是否有问题。单个模块的误差累积起来,是否会放大,以至于达到不能接受的程度。单个模块的错误是否会导致数据库错误。
308.4软件测试步骤
通常有两种模块组装方式。
1.非渐增式组装方式
2.渐增式组装方式(1)自顶向下的增殖组装方式自顶向下的组装过程如图8.7。
图8.7自顶向下的组装过程318.4软件测试步骤
(2)自底向上的增殖组装方式自底向上的组装过程如图8.8。图8.8自底向上的组装过程328.4软件测试步骤
(3)混合增殖式测试通常是把以上两种方式结合起来进行组装和测试。①衍变和自顶向下的增殖测试:它的基本思想是强化对输入/输出模块和引入新算法模块的测试,并自底向上组装成为功能相当完整且相对独立的子系统,然后由父模块开始自顶向下进行增殖测试。②自底向上、自顶向下的增殖测试:它首先对含读操作的子系统做自底向上的组装和测试,然后对含写操作的子系统做自顶向下的组装与测试。③回归测试:这种方式采取自顶向下的方式测试被修改的模块及其子模块,然后将这一部分视为子系统,再自底向上测试,以检查该子系统与其上级模块的接口是否适配。
338.4软件测试步骤
8.4.3确认测试确认测试也称有效性测试,目的是验证软件的有效性,即验证软件的功能、性能及其他特性是否与用户的要求一致。软件需求规格说明书明确规定了软件的功能和性能要求,是确认测试的基础。
1.有效性测试
2.软件配置审查
3.α测试和β测试
4.验收测试
5.确认测试结果348.4软件测试步骤
8.4.4系统测试所谓系统测试就是将通过验收测试的软件作为基于整个计算机系统的一个元素,与计算机硬件、外部设备、网络、某些支持软件、数据和人员等其他系统元素结合在一起,在实际使用环境下运行,测试其能否协调工作。系统测试的目的是充分运行系统,验证系统各部件是否都能正常工作并完成所赋予的任务。系统测试的测试用例应根据需求说明书来设计。常见的系统测试主要有以下几方面。(1)恢复测试(2)安全测试(3)强度测试(4)性能测试358.5软件测试工具简介
1.静态分析程序
2.动态分析程序
3.断言处理程序
4.测试数据生成程序
5.文件比较程序
6.性能测试工具368.6调试
8.6.1调试的目的和步骤软件测试的目的是尽可能多地发现程序中的错误,而调试则是在进行了成功的测试后才开始的工作。调试的目的是根据测试时发现的错误,找出错误的原因和具体位置,并改正错误,因此,调试也称为纠错或排错。
8.6.2调试技术1.强行排错(1)在程序中插入打印语句(2)运行部分程序(3)借助于调试工具378.6调试
2.回溯法
3.归纳法
4.演绎法
5.对分法8.6.3调试原则1.查错原则(1)注重用头脑去分析思考与错误征兆有关的信息。(2)避免用试探法,最多只能把它当做最后手段。(3)只能把调试工具当做辅助手段来使用。388.6调试
2.回溯法
3.归纳法
4.演绎法
5.对分法8.6.3调试原则1.查错原则(1)注重用头脑去分析思考与错误征兆有关的信息。(2)避免用试探法,最多只能把它当做最后手段。(3)只能把调试工具当做辅助手段来使用。(4)避开死胡同。398.6调试
2.排错原则(1)注意错
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 师徒结对协议书范本
- 2024年度工程勘察设计项目验收标准与程序合同3篇
- 《DNA结构及分析》课件
- 黄金购销合同模板版
- 二零二四年度建筑工程外墙保温材料供应合同3篇
- 2024年度加工合同:高端定制家具的生产加工3篇
- 个人厂房转让合同
- 2024年度技术合作合同研发项目描述与合作方式3篇
- 黑龙江省大兴安岭漠河县高中2024届高三下学期实验班第二次月考数学试题
- 河南省周口中英文学校2024年下学期高三年级第三次月考数学试题试卷
- 安徽省宿州市省、市示范高中2024-2025学年高二上学期期中教学质量检测语文试题
- 1《饮食与健康第一课时零食与健康》(说课稿)皖教版五年级上册综合实践活动
- Module2 Unit5 My friends(说课稿)-2024-2025学年沪教牛津版(深圳用)英语四年级上册
- 4 公民的基本权利和义务 (说课稿 )2023-2024学年统编版道德与法治六年级上册
- 第4课 日本明治维新(说课稿)-2024-2025学年九年级历史下册素养提升说课稿(统编版)
- 13 寒号鸟 公开课一等奖创新教学设计
- 第七单元长方形和正方形 单元测试(含答案)2024-2025学年三年级上册数学人教版
- 2025年新高考语文复习 诗歌鉴赏-语言 课件
- 汽车租赁公司车辆养护制度
- 松材线虫病防治施工合同
- 融媒体综艺节目制作学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论