首页 理论教育软件测试方法大揭秘-云安全深度剖析

软件测试方法大揭秘-云安全深度剖析

【摘要】:在软件测试理论迅速发展的同时,各种软件测试方法也将软件测试技术提高到了无法比拟的高度。在进行这类测试时,测试人员看到的是被测源程序的内部结构,测试人员根据其内部结构设计测试用例。根据测试方法的原理不同,白盒测试可以分为静态测试和动态测试。静态测试 静态测试是在不执行程序的情况下,分析软件的特性。黑盒测试主要用于软件的确认测试。

软件测试理论迅速发展的同时,各种软件测试方法也将软件测试技术提高到了无法比拟的高度。为了提高软件测试效率、加快软件开发过程,一些测试工具相继问世。下面介绍几种主要的测试方法。

1.白盒测试

白盒测试,也称为结构测试、逻辑驱动测试或基于程序的测试。在进行这类测试时,测试人员看到的是被测源程序的内部结构,测试人员根据其内部结构设计测试用例。主要目的就是检查产品内部结构是否与设计规格说明书的要求相符合,同时测试程序中的分支是否都能够正确地完成所规定的任务要求。这种测试方法无须关注程序功能。

根据测试方法的原理不同,白盒测试可以分为静态测试和动态测试。

(1)静态测试 静态测试是在不执行程序的情况下,分析软件的特性。静态测试主要集中在需求文档、设计文档以及程序结构上,可以进行结构分析、类型分析、接L]分析、输入输出规格说明分析等。其中静态结构分析主要利用图的方式来表达程序内部的结构,常用的有函数关系图和内部控制流图等。检查性测试主要是对代码的检查,即主要检查代码是否符合设计、是否符合相应的标准以及代码的逻辑性是否表达正确。通过对代码的检查,发现程序中编写不安全和不恰当的地方,找出程序表达模糊不可移植的部分。所以在进行静态检查前,应该准备好相应的文档,如需求分析文档、程序设计文档和源代码清单等,以方便进行代码检查。

按照完成的职能不同,静态测试方法或工具包括以下几种类型:①代码审查,帮助了解代码相关性,跟踪程序逻辑,观看程序的图形表达,确认死代码,确定需要特别关照的域,检查源程序是否遵循了程序设计规则,典型的规则包括结构化设计与编码、使用标准的编码格式等;②一致性检查,检测程序的各单元是否使用统一命名或术语,这类工具通常用以检查是否遵循设计规格说明书;③错误检查,确定差异和分析错误的重要性及原冈;④接口分析,检查程序单元之间接口的一致性,以及是否遵循预先确定的规则;⑤输入输出规格说明分析,借助于分析输入输出规格说明生成测试输入数据;⑥数据流分析,检测数据的赋值与引用之间是否出现不合理的现象;⑦类型分析,检测命名的数据项和操作是否得到正确的使用;⑧单元分析,检测单元或构成实体的物理元件是否定义正确以及使用致。

(2)动态测试 动态测试是直接执行被测程序以提供测试支持,即动态测试通过在计算机上运行程序或者程序片段,根据程序的运行结果是否符合预期要求来分析判断程序可能存在的问题和缺陷。因为动态测试必须在计算机上运行程序,所以需要具备相应的测试用例。(www.chuimin.cn)

动态测试所支持测试的范围主要包括:①功能确认与接口测试,测试各个模块功能的正确执行、模块间的接口、局部数据结构、主要的执行路径及错误处理等内容;②覆盖率分析,对测试质量提供定量的测量,即覆盖分析可以告诉我们被测试产品的哪些部分己被当前测试所覆盖,哪些部分还没有被覆盖到;③性能分析,程序的性能问题得不到解决,将降低应用程序的质量,于是查找和修改性能瓶颈成为改善整个系统性能的关键;④内存分析,内存泄露会导致系统运行的崩溃,通过测量内存使用情况,可以掌握程序内存分配的情况,发现对内存的不正常使用,在问题出现前发现征兆,在系统崩溃前发现内存泄露错误。

2.黑盒测试

黑盒测试,也称为功能测试、数据驱动测试或者基于规格说明书的测试。黑盒测试是在已知软件产品应具有的功能条件下,在完全不考虑被测程序内部结构和内部特性的情况下,通过测试来检测每个功能是否都按照需求规格说明的规定正常运行。

在进行黑盒测试时,测试者常常把被测产品看作一个不能够被打开的黑盒子,在无须了解软件内部的结构和具体实现的情况下,测试者对程序的功能进行测试。

黑盒测试主要用于软件的确认测试。常用的黑盒测试T具包括:①功能测试T具,用于检测被测程序能否达到预期的功能要求及正常运行;②性能测试工具,用于确定软件和系统性能。性能测试又分为客户端的测试和服务器端的测试。客户端的测试主要关注应用的业务逻辑、用户界面和功能测试等;服务器端的测试主要关注服务器的性能,衡量系统的响应时间和事务处理速度等需求。