1/50国际软件测试概论第6章:软件测试级别、类型及方法2/50课程回顾软件测试的过程?p863/50本章内容测试级别单元测试集成测试系统测试验收测试评测试类型功能测试非功能测试白盒测试与变更相关的测试测试方法4/50课程进度测试级别单元测试集成测试系统测试验收测试评测试类型功能测试非功能测试白盒测试与变更相关的测试测试方法5/50测试级别(测试阶段)一般的V-模型和测试阶段四个测试级别(测试阶段):测试的总体目标测试的对象测试的依据等6/50测试阶段和测试重点:理想状态测试级别(测试阶段)7/50测试阶段和测试重点在大多数情况下,系统测试必须测试那些被忽略的部分,系统测试的真正使命的大部分未能完成,非功能性的需求几乎没被测试。测试级别(测试阶段)8/50单元测试(组件测试)组件测试(componenttesting)-定义9/50单元测试(组件测试)组件测试10/50单元测试(组件测试)组件测试11/50集成测试集成测试(integration)-定义12/50集成测试集成测试13/50集成测试集成测试14/50集成测试的策略自顶向下集成(top-downintegration)15/50集成测试的策略自顶向上集成(bottom-downintegration)16/50系统测试系统测试(system-testing)-定义17/50系统测试系统测试18/50系统测试系统测试(system-testing)19/50验收测试验收测试(acceptancetesting)(Ⅰ)20/50验收测试验收测试(acceptancetesting)(Ⅱ)验收测试一般包含如下几种形式:21/50验收测试验收测试(acceptancetesting)(Ⅲ)22/50验收测试验收测试(acceptancetesting)(Ⅳ)23/50本章内容测试级别单元测试集成测试系统测试验收测试评测试类型功能测试非功能测试白盒测试与变更相关的测试测试方法24/50测试类型每种测试类型都会针对特定的测试目标:功能、非功能可靠性、可用性确认、回归在结构和功能测试中,可以开发和使用软件模型功能测试•过程流模型、状态转换模型、规格说明结构测试•控制流模型、菜单结构模型25/50本章内容测试级别单元测试集成测试系统测试验收测试评测试类型功能测试非功能测试白盒测试与变更相关的测试测试方法26/50软件测试的类型测试类型说明技术特点/注意事项功能测试测试软件项的功能特性功能指的是系统能做什么?基于规格说明的技术(黑盒)安全测试是功能测试的一种非功能测试测试软件项的非功能特性非功能指系统工作的怎样?为了测量系统和软件的特征而进行的测试。这些特征可以用不同尺度予以量化,如性能测试可用响应时间来进行评估。包括但不限于:性能测试、负载测试、压力测试、可用性测试、可维护性测试、可靠性测试和可移植性测试结构测试通过评估结构类型的覆盖,来测量测试的完整性基于结构的测试技术(白盒测试)白盒测试技术最好是在黑盒测试之后使用。不同测试级别的结构含义不同与变更相关的测试因为软件或环境的变更而引起的测试确认测试/再测试,回归测试由于回归测试的重复使用和稳定性,可将回归测试自动化。27/50功能测试黑盒测试也称为功能测试或数据驱动测试或基于规格说明书测试以用户的观点对输入输出数据之间的对应关系进行测试如果外部特性本身有问题或规格说明书有问题,则无法察觉例如:安全性测试、互操作性测试28/50非功能测试一些其他可能的测试标准:29/50其他测试定义负载测试(loadtesting)一种通过增加负载来测量组件或系统的测试方法。例如:通过增加并发用户数和(或)事务数量来测量组件或系统能够承受的负载。性能测试(performancetesting)判断软件产品性能的测试过程:(1)为了确定一个软件产品的性能所进行的测试(2)针对特定的应用领域检查系统的性能(处理速度以及响应时间)压力测试(stresstesting)在规定的或超过规定的需求条件下测试组件/系统,以对其进行评估。(1)为了评价一个系统或一个组件达到或超过需求规定的界限时的反应的测试[IEEE61O](2)检查系统在超负荷的情况下的性能反应(例如通过在高数据量或特定的错误条件下工作)。30/50软件结构/架构测试白盒测试称为结构测试、逻辑驱动测试、基于程序本身的测试结构测试需要完全了解程序结果和处理过程,按照程序内部逻辑测试程序,检验程序中每条通路是否按照预定要求工作。也称为程序员测试31/50确认测试,回归测试32/50维护测试33/50维护测试34/50维护测试35/50维护测试36/50课程进度测试级别单元测试集成测试系统测试验收测试评测试类型功能测试非功能测试白盒测试与变更相关的测试测试方法37/50测试方法静态测试方法动态测试方法黑盒测试方法白盒测试方法38/50静态测试方法代码审查代码走查静态分析控制流分析数据流分析复杂度分析39/50审查(inspection)定义特性:主要目的:40/50走查(walkthrough)定义特性:主要目的:优点:缺陷:41/50静态分析42/50控制流分析控制流(controlflow)分析43/50数据流分析数据流(dataflow)分析44/50复杂度分析复杂度分析度量的例子:Halstead复杂度f(n1,n2,N1,N2)圈复杂度(cyclomaticconmplexity)圈数(cyciomaticnumber)--V(G)V(G)=e-n+2pn1运算符的个数n2操作数的个数N1调用运算符的次数N2调用操作数的次数e边数n节点数p无链接部分的数目(一般p=1)45/50复杂度分析图复杂度例子46/50静态分析小结47/50接口分析程序静态分析和设计分析模块一致性以及模块与外部程序一致性程序及函数之间的接口一致性48/50表达式分析括号使用不正确数组引用错误除数为0开方数为负。。。。。49/50内容进度静态测试方法动态测试方法黑盒测试方法白盒测试方法50/50动态测试动态测试方法一般采用白盒测试方法和黑盒测试方法。黑盒测试方法一般包括功能分解、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交实验法等;白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等。