软件测试的基本技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章软件测试的基本技术软件测试山西大学经济与管理学院导读软件测试的方法有多种多样,可以对其从不同角度加以分类。比如说:可以从是否需要执行被测试的软件的角度从是否对系统的外部功能还是系统的内容结构的角度从软件测试的策略和过程的角度从不同的角度划分,有不同的分类方式。这一章作为软件测试的技术,主要介绍了上述分类中的静态测试、动态测试、黑盒测试和白盒测试的技术。3.1软件测试技术的分类3.1.1从是否需要执行被测软件的角度分类从是否需要执行被测试软件的角度划分,软件测试可以分成动态测试(DynamicTesting)和静态测试(StaticTesting)两类。(1)静态测试:就是通过对被测程序的静态审查,发现代码中潜在的错误的测试。也成人工测试或者代码评审。(2)动态测试:动态测试是通常意义上的测试,即通过使用和运行被测软件,发现潜在错误。动态测试的对象必须是能够由计算机真正运行的被测试的程序。它又包括:黑盒测试和白盒测试。3.1软件测试技术的分类3.1.2从软件测试用例设计方法的角度分类从软件测试用例设计方法的角度进行分类,软件测试的技术分为黑盒测试(Black-boxTesting)和白盒测试(White-boxTesting)。(1)黑盒测试:是一种从用户角度出发的测试,又称为功能测试或者数据驱动测试、基于规格说明的测试等。简单地说,若测试用例的设计时基于产品的功能,目的是检查程序各个功能是否实现,并检查其中的功能错误,则这种测试方法称为黑盒测试。(2)白盒测试:基于产品的内部结构来进行测试,检查内容操作是否按规定执行,软件各个功能部分是否得到充分应用。白盒测试又称为结构测试或者逻辑驱动测试或基于程序的测试。3.1软件测试技术的分类3.1.3从软件测试的策略和过程的角度分类从软件测试的策略和过程的角度进行分类,软件测试可分为单元测试(UnitTesting)、集成测试(IntegrationTesting)、确认测试(ValidationTesting)、系统测试(SystemTesting)和验收测试(VerificationTesting)。(1)单元测试:是针对每个单元的测试,是软件测试的最小单位。(2)集成测试:是对已测试过的模块进行组装,对组装以后的集成块进行测试。(3)确认测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。3.1软件测试技术的分类3.1.3从软件测试的策略和过程的角度分类从软件测试的策略和过程的角度进行分类,软件测试可分为单元测试(UnitTesting)、集成测试(IntegrationTesting)、确认测试(ValidationTesting)、系统测试(SystemTesting)和验收测试(VerificationTesting)。(4)系统测试:主要任务是检测被测软件与系统其他部分的协调性,通常采用黑盒测试的方法。(5)验收测试:是软件产品质量额最后一关,在这一环节,测试主要从用户的角度着手,参与者主要是用户及少量的程序开发人员,通常采用的测试方法为黑盒测试。3.2静态测试和动态测试3.2.1静态测试静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误的测试,它和动态测试的区别就是是否需要程序被运行。也就是说,在进行测试的过程中,只要是不需要执行代码,就可以对软件进行测试的方法,可以看成是静态测试方法。反之,需要对软件执行对应代码的测试方法则为动态测试。静态测试(汽车停止中)踩油门看车漆打开前盖检查动态测试(发动机运行中)发动汽车听发动机的声音上路行驶图3-1静态测试与动态测试比喻图3.2静态测试和动态测试3.2.1静态测试静态测试方法的主要特征是在测试源程序时,计算机并不真正运行被测试的程序,只对被测程序进行特性分析,因此,静态方法常称为“分析”,静态分析是对被测程序进行特性分析的一些方法的总称。所谓静态分析,就是不需要执行所测试的程序,而只是通过扫描程序正文,对程序的数据流和控制流等信息进行分析,找出系统的缺陷,得出测试报告的过程。静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维又是,也可以借助软件工具自动进行。3.2静态测试和动态测试3.2.1静态测试通常在静态测试阶段进行以下一些测试活动:(1)检查算法的逻辑正确性(2)检查模块接口的正确性(3)检查输入参数是否有合法性检查(4)检查调用其他模块的接口是否正确,检查实参类型、实参个数是否正确,返回值是否正确(5)检查是否设置了适当地出错处理(6)检查表达式、语句是否正确,是否含有二义性3.2静态测试和动态测试3.2.1静态测试通常在静态测试阶段进行以下一些测试活动:(7)检查常量或全局变量使用是否正确(8)检查标识符的使用是否规范、一致,变量命名是否能做到忘名知意、简洁、规范和易记(9)检查程序风格的一致性、规范性,代码是否符合行业规范,是否所有模块的代码风格一致、规范(10)检查代码是否可以优化,算法效率是否最高(11)检查代码注释是否完整,是否正确反映了代码的功能,并查找错误的注释。3.2静态测试和动态测试3.2.2动态测试动态测试是通常意义上的测试,即通过使用和运行被测软件,发现潜在错误。动态测试的对象必须是能够由计算机真正运行的被测试的程序。它是通过源程序运行时所体现出来的特征,来进行执行跟踪、时间分析以及测试覆盖等方面的测试。动态测试方法的基本步骤如下:(1)选取定义域的有效值,或选取定义域外的无效值。(2)对已选取值决定预期的结果。(3)用选取值执行程序。(4)将执行结果与预期的结果进行对比,不吻合则说明程序有误。3.3黑盒测试方法3.3.1黑盒测试方法概述黑盒测试是一种从用户角度出发的测试,又称为功能测试或者数据驱动测试、基于规格说明的测试。黑盒测试的基本观点是:任何程序都可以看做是从输入定义域映射到输出值域的函数过程。它将被测程序视为一个打不开的黑盒子,盒子中的内容完全不知道,只知道盒子是要做成什么样子的。黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试主要是为了发现以下的错误:(1)是否有不正确的功能或者是遗漏的功能;(2)接口能否正确地接收输入数据并产生正确的输出结果;3.3黑盒测试方法3.3.1黑盒测试方法概述黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试主要是为了发现以下的错误:(3)是否有数据结构错误或外部信息访问错误;(4)性能是否能够满足要求;(5)是否有程序初始化和终止方面的错误。3.3黑盒测试方法3.3.1黑盒测试方法概述黑盒测试有两个显著的特点:(1)黑盒测试不考虑软件的具体实现过程,当在软件实现的过程发生变化时,测试用例仍然可以使用;(2)黑盒测试用例的设计可以喝软件实现同时进行,这样能够压缩总的开发时间。黑盒测试有两种基本方法,即通过测试和失败测试。3.3黑盒测试方法3.3.2等价类划分法(1)等价类划分法概述等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类划分法把所有可能的输入数据,即程序的输入域划分成若干部分,然后每一个子集中选取少数具有代表性的数据作为测试用例。所谓等价类是指输入域的某个子集合。所有等价类的并集就是整个输入域。对揭露程序中的故障来说,等价类中的每个元素是等效的。3.3黑盒测试方法3.3.2等价类划分法(1)等价类划分法概述软件不能只接收合理有效的数据,也要具有处理异常数据的功能,这样的测试才能确保软件具有更高的可靠性。因此,在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类的划分。有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。无效等价类则和有效等价类相反,即不满足程序输入要求,或者无效输入的数据所构成的集合。abcdefg3.3黑盒测试方法3.3.2等价类划分法(1)等价类划分法概述使用等价类划分法,首先必须在分析需求规格说明的基础上划分等价类。其次,建立等价类表,列出所有的等价类。再次根据已列出的等价类表,按下述步骤确定测试用例:(1)为每一个等价类规定一个唯一的编号(2)设计一个新的测试用例,使其能尽肯能多的覆盖有效等价类(3)设计一个新的测试用例,使其仅覆盖一个无效等价类3.3黑盒测试方法3.3.2等价类划分法等价类划分测试举例在三角形问题中,输入条件要求:整数;三个数;取值在1到100之间3.3黑盒测试方法3.3.2等价类划分法等价类划分测试举例输入三个整数有效等价类号码无效等价类号码整数1一边为非整数二边为非整数三边均为非整数456三个数2只有一条边只有二条边多余三条边7893一边为零二边为零三边为零101112一边零二边零三边零131415一边100二边100三边100161718100110011001cba3.3黑盒测试方法3.3.2等价类划分法三角形问题的无效等价类测试用例abc覆盖的等价类abc覆盖的等价类1.5,4,540,0,0123.5,2.5,55-3,4,6132.5,4.5,5.562,-7,-51437-3,-5,-7154,58101,4,8162,3,4,593,101,101173,0,810101,101,101180,6,0113.3黑盒测试方法3.3.2等价类划分法(2)常见等价划分形式针对是否对无效数据进行测试,可以将等价类测试分为以下几种具体的形式:◇标准等价类测试◇健壮等价类测试◇对等区间划分3.3黑盒测试方法3.3.2等价类划分法标准等价类和健壮等价类测试三角形问题有四种可能输出:非三角形,一般三角形,等腰三角形和等边三角形。利用这些信息来确定输出(值域)等价类R1={a,b,c:边为a,b,c的等边三角形}R2={a,b,c:边为a,b,c的等腰三角形}R3={a,b,c:边为a,b,c的一般三角形}R4={a,b,c:边a,b,c不能形成三角形}3.3黑盒测试方法3.3.2等价类划分法四个标准等价类测试用例是:测试用例abc预期输出Test1Test2Test3Test4523452415352等边三角形等腰三角形一般三角形非三角形3.3黑盒测试方法3.3.2等价类划分法考虑a,b,c的无效值产生了下面7个健壮等价类测试用例是:测试用例abc预期输出Test1Test2Test3Test4Test5Test6Test73-1551015545-1551015555-155101一般三角形a值不在允许的范围内b值不在允许的范围内c值不在允许的范围内a值不在允许的范围内b值不在允许的范围内c值不在允许的范围内3.3黑盒测试方法3.3.3等价类的指导方针如果执行语言是强类型的,则没有必要使用健壮等价类测试。如果错误输入检查非常重要,则应进行健壮等价类测试。如果输入数据以离散值区间或集合的形式定义,则等价类测试是合适的。在发现“合适”的等价关系之前,可能需要进行多次尝试。3.3黑盒测试方法3.3.3边界值分析法(1)边界值分析法边界值分析法是一种补充等价类划分法的测试用例设计技术,不同于等价类划分法选择等价类的任意元素,它选择等价类的边界来设计测试用例。使用边界值分析方法设计测试用例时,首先应确定边界情况。比如,在作三角形计算时,要输入三角形的三个边长:a、b和a。当满足a+bc、a+cb及b+ca才能构成三角形。但如果把三个不等式的任何一个大于号“”错写成大于等于号“≥”,那就无法构成三角形了。3.3黑盒测试方法3.3.3边界值分析法/*Createa10elementintegerarray*//*Initiatizeeachelementto–1*/main(){intdata[10];inti;For(i=1;10;i++)data(i)=-1;}这段代码的意图是创建包含10个元素的数组,并为数组中的每一个元素赋初值-1,即数组中从第1个元素到第10个元素被赋予数值-1。3.3黑盒测试方法3.3.3边界值分析法data(0)=0

1 / 73
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功