首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.3  灰盒测试(功能与结构测试)

黑盒测试的主要是根据规约去测试程序的功能。白盒测试主要是测试程序的逻辑路径。灰盒测试是黑盒测试和白盒测试的有机结合。测试人员研究需求规约,然后与开发人员沟通并理解系统的内部结构。目的是整理一些不明确的需求规格,掌握程序的逻辑以设计引申的测试。举例来说,当某一特定的功能在应用程序中会被重复使用的时候,测试人员可以采用灰盒测试。如果测试人员通过与开发人员交流并理解了内部的设计和架构,很多无效的测试可以被排除掉,因为对于这个功能只测试一遍就行了。还可以举另一个例子,当命令行语法包含7个可能的参数,并且这些参数可以以任何的顺序输入,如下所示:

Command parm1, parm2, parm3, parm4, parm5, parm6, parm7

理论上,测试人员将不得不进行7! 即5040次不同的测试。如果一些参数是可选的话,在这种复合情况下问题会更加复杂。如果测试人员采用灰盒测试,通过与开发人员交流,理解了内部的解析算法,如果每一个参数都是独立的,那么仅用7次测试就可以满足要求了。

2.3.1  手工测试与自动测试

手工测试类别的分类根据是该类测试不是由人在计算机上执行的。这一类别的例子包括结构化走查、检查、JAD和桌面检查。

自动测试类别的分类根据是该类测试是在计算机上执行的。例如边界值测试、分支覆盖测试、原型法和语法测试。语法测试是由一个语言编译器来实现的,而语言编译器是在计算机上执行的。

2.3.2  静态测试与动态测试

静态测试方法是与时间无关的,不需要被测软件产品的手工执行或自动执行。例子包括语法检查、结构化走查和代码检查。程序的代码检查是对源代码清单中的代码一行一行地阅读并加以讨论。使用计算机的静态检查的例子是静态流分析工具,这个工具可以测试另一个程序中的错误而不必执行它。该工具分析其他程序的控制流和数据流来发现一些问题,如调用没有初始化的变量,或永远用不到的代码等。

动态测试技术具有时间依赖性,包含了在纸面上或在计算机上对一些指令的执行。例子包括结构化走查,在结构化走查过程中程序逻辑通过一步一步地执行代码而被模拟出来,并且使用口头描述加以配合。边界值测试也是动态测试技术,要求测试用例在计算机上执行,特别要关注与程序的输入和输出相关联的边界值。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论