|
|
|
|
移动端

参考文献注释

《软件测试基础教程》第2章基于需求的测试生成,本章主要介绍从非形式化或形式化定义的软件需求生成测试集的技术。这些技术,有的可以自动地执行,而大部分则需测试人员付出艰辛的劳动,特别是在测试大型软件时。本章所介绍的大部分测试技术属于黑盒测试,因为生成测试集时不需参考被测软件的源代码。本节为参考文献注释。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-18 21:34

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


参考文献注释

在软件测试出现时,就有了划分测试技术。在这里,主要关注等价类划分和边界值分析这两种划分测试技术。Myers[338~341]和Howden[236]的著作和论文包含有对等价类划分、边界值分析的早期描述。

Richardson和Clarke研究过软件需求规范和源代码对设计测试输入的支撑作用[416]。他们提出并验证了一个通过域划分生成测试用例的算法,这些域是从软件需求规范和源代码中得到的。他们将划分分析用于程序证明,即证明程序与需求规范等价,还将划分分析用于测试用例的生成。Vagoun和Hevner研究过在一个版本控制系统(RCS)软件的测试中采用输入域划分技术,而输入域是通过状态设计得到的[485]。

Hamlet和Taylor写过一篇令人震惊的文章[191],提出:划分测试并未增强信心,随机测试可能是个比较好的选择。几年之后,Ntafos证明[335]:均衡划分测试技术能确保划分测试的性能优于随机测试。Chen和Yu对划分测试与随机测试之间的关系进行过仔细研究[77, 78]。

Elmendorf在测试操作系统时采用了因果图方法[140]。Myers详细介绍过该方法[340]。Paradkar正式提出采用因果图进行基于规范设计测试的思想[385]。Tai、Paradkar、Su和Vouk应用形式化的基于谓词的测试设计技术实现从因果图中生成测试集[468]。Paradkar、Tai和Vouk还提出采用因果图进行基于规范设计测试的思想[391]。

语法测试(syntax testing)是指采用一个形式化的语法分析器来定义输入空间的测试技术。这种技术已被用于测试编译器,以及其他类型的软件,如排序软件。该领域的早期研究工作已由一些专家完成并发表了论文。Sauder介绍过COBOL程序的基于语法的测试数据生成器[434]。Purdom描述了一个测试高级语言词法分析器的语句生成器[402]。Celentano等人描述了如何将语句生成器用于编译器测试[72]。Bazzichi和Spadafora也提出了一个用于编译器自动测试的基于语法的测试生成器[34]。Duncan和Hutchison提出一种基于属性语法的方法,用于形式化地描述测试输入类和输出类[134]。软件规范常常用于设计各种各样的测试输入和预期输出,这样得到的测试集可以与驱动被测软件的测试驱动器、测试框架一起使用。

等价类划分是最早用于测试数据生成的技术之一,也被称作范围测试(range-testing)。Meyers严密描述过该技术[340]。与此类似并更加形式化的技术被称作类别划分方法(category-partition method),是由Ostrand和Balcer提出的[379]。为了简明扼要地定义测试,他们提出一套形式化的符号系统。他们还采用版本与配置管理系统的一个组件进行过一个详细的案例研究。用测试规范语言(TSL)编写一个测试规范,输入到一个工具当中,工具采用等价类划分和边界值分析技术先生成测试框架,最后生成测试用例。用TSL编写的测试规范便于对软件规范实现覆盖,并可用于生成测试脚本和测试用例[28]。

Grochtmann和Grimm提出了分类树方法,便于用域划分生成测试[181, 182]。Singh、Conrad和Sadeghipour利用分类树方法从Z规范中生成测试集[447]。

划分测试策略已经得到学术界的广泛重视。Jeng和Weyuker对划分测试策略进行了理论分析[247]。Gutjahr[187]和Reid[412]研究了划分测试策略的故障检测效力。Amla和Ammann[20]、Stocks[460]以及其他一些学者用划分测试策略从Z规范生成测试集。Offutt和Irvine提出采用类别划分方法测试OO软件[362]。

一些学者提出了针对布尔表达式和关系表达式的测试策略。Howden提出测试关系运算符的方法,以至于针对关系表达式E1 relop E2,要设计三个测试用例,其中relop是关系运算符,E1、E2是算术表达式[238]。Foster[150]和Howden[238]也提出测试关系表达式off-by-ε错误的方法。Foster[151]证明:对于一个包含n个布尔变量的谓词,所用的测试用例不会超过2n个;而且,在任何情况下都不必进行穷举测试。

White和Cohen采用域测试方法对关系表达式进行测试[515],他们的策略是以关系表达式E1 relop E2确定的边界为基础的。Padmanabhan提出了一个分而治之的域测试方法[382]。

Tai[464]和Su[469]完成了早期从布尔表达式和关系表达式生成测试集的形式化工作。BOR、BRO技术都是由Tai提出的[466, 467]。Paradkar和Tai的文献[389],Paradkar的文献[384],Paradkar、Tai和Vouk的文献[390],Tai、Vouk、Paradkar和Lu的文献[470]进一步发展了BOR、BRO技术,并开展了经验研究,以评价它们的故障检测效力。BRE技术是由Tai提出的[465, 467]。

Meaning Impact(MI)技术,原名Meaningful impact,是由Weyuker、Gordia和Singh提出的[512]。正如最初提出的那样,采用MI技术生成的测试集能够检测出由于DNF表达式中变量取补引入的故障。Paradkar和Tai将MI扩展为MI-MIN技术,并将其与BOR结合起来[389]。Paradkar和Tai的改进方法在测试集规模、故障检测能力方面对MI有所提高。Stamelos研究了谓词测试检测组合位移(associative shift)故障的能力[459]。

Chen和Lau[75]扩展了Weyuker[512]等人提出的从布尔表达式生成测试集的方法。Chen和Lau的方法分别称作MUTP、MNFP和CUTPNFP,这些方法能保证检测出布尔表达式中的文字插入、引用故障,大多应用于非冗余布尔表达式,即不包含冗余文字的表达式。Chen、Lu和Yu将MUTP、MNFP和CUTPNFP集成为MUMCUT方法,确保能够检测出布尔表达式中的7种故障[76],他们的故障模型也比第2.7.2节中的故障模型详细得多。


【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读——网络基础(第2版)

本书是在《网管员必读—网络基础》(第1版)基础上修改而成的。全书共分9章,分别介绍计算机网络概述(修改)、数制(新增)、网络通信基础...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊