基于程序规则说明的自动测试用例生成
- 格式:pdf
- 大小:265.79 KB
- 文档页数:5
测试用例自动生成的方法与工具在软件开发过程中,测试是一个关键环节,它可以帮助我们发现和修复潜在的缺陷,提高软件的质量和可靠性。
然而,编写测试用例是一项费时费力的任务,特别是对于大型复杂的软件系统来说。
为了提高效率和减少人力成本,许多自动生成测试用例的方法和工具被开发出来。
本文将介绍测试用例自动生成的方法和工具,并探讨其优势和局限性。
测试用例自动生成的方法主要基于代码静态分析和符号执行两种技术。
代码静态分析是通过对代码进行扫描和分析来推导出程序的行为和可能的输入。
符号执行则是一种对程序进行符号值代替的执行方式,以探索不同的执行路径和可能的错误情况。
这些技术可以帮助开发人员自动生成大量的测试用例,而无需手动编写。
测试用例自动生成的工具有许多种类,例如模型驱动的测试生成工具、基于统计的测试生成工具和基于搜索的测试生成工具。
模型驱动的测试生成工具可以根据系统模型自动生成测试用例,它们通常使用模型转换技术将系统模型转化为测试用例的输入。
基于统计的测试生成工具则根据程序的执行情况和覆盖率信息来生成测试用例,以增加测试的覆盖率。
而基于搜索的测试生成工具则通过搜索程序状态空间来生成更具挑战性的测试用例。
测试用例自动生成方法和工具的优势包括提高测试用例的数量和覆盖率、减少测试用例编写的工作量、避免测试用例的遗漏和不足等。
通过自动生成测试用例,开发人员可以更全面地发现软件中的缺陷和错误,并解决它们,从而提高软件的质量和可靠性。
但是,测试用例自动生成也存在一些局限性。
自动生成的测试用例往往只能覆盖程序中的一部分执行路径,而无法完全代替人工编写的测试用例。
自动生成的测试用例可能会出现大量的冗余和无效的情况,导致测试效率降低。
自动生成的测试用例往往只能发现既有的错误,而难以模拟和检测新的和未知的错误。
因此,在使用测试用例自动生成方法和工具时,我们需要结合人工编写测试用例的经验和专业知识,以确保测试的全面性和有效性。
同时,我们也需要对自动生成的测试用例进行评估和筛选,以减少冗余和无效的测试用例的数量,并确保尽可能地覆盖程序中的不同执行路径和边界情况。
基于模型的自动化测试工具的实现基于模型的自动化测试工具(Model-based Testing Tool)是一种用于测试软件系统的工具,通过对软件系统建立模型,自动生成测试用例并执行测试,以提高测试效率和测试覆盖率。
本文将介绍基于模型的自动化测试工具的实现过程,包括模型建立、测试用例生成和执行三个主要步骤。
首先,构建软件系统模型是基于模型的自动化测试的关键步骤。
模型是对软件系统的抽象描述,通过对系统关键状态和行为建模,可以帮助理解系统功能和结构,并据此生成测试用例。
模型建立可以使用不同的建模语言和工具,如UML(统一建模语言)、BPMN(业务流程建模和标记语言)等。
根据系统的特点和需求,选择合适的建模语言和工具进行模型构建。
其次,基于模型的自动化测试的核心是测试用例生成。
模型可以为自动生成测试用例提供基础,通过对模型进行逆向分析、系统覆盖分析和路径选择等技术,生成全面且有效的测试用例。
测试用例生成可以使用各种技术和算法,如符号执行、模型检测、遗传算法等。
其中,符号执行是一种常用的测试用例生成技术,它通过对程序路径的符号化计算,自动创建各种输入数据并执行程序,以发现潜在的错误和漏洞。
最后,基于模型的自动化测试还需要执行生成的测试用例,并收集和分析测试结果。
测试用例执行可以使用自动化测试工具完成,通过模拟用户的操作和输入,执行测试用例并记录系统的响应和输出。
在测试用例执行过程中,可以使用断言(assertion)来验证系统的实际行为是否符合预期。
测试结果的收集和分析可以使用各种技术和工具,如测试报告生成工具、测试结果可视化工具等。
这些工具可以帮助开发人员和测试人员更好地理解系统的测试覆盖和测试效果,及时发现和修复问题。
综上所述,基于模型的自动化测试工具的实现主要包括模型建立、测试用例生成和执行三个步骤。
模型建立通过对系统建立抽象描述,帮助理解系统结构和功能;测试用例生成通过对模型进行逆向分析和路径选择,自动生成全面且有效的测试用例;测试用例执行通过模拟用户操作和输入,验证系统的实际行为是否符合预期;同时,测试结果的收集和分析可以帮助开发人员和测试人员更好地理解系统的测试覆盖和测试效果。
AutoTCG使用手册1.概述自动化测试通过机器执行事先准备好的测试脚本进行,提升了软件测试效率。
然而,测试脚本存在着编写专业性强、调试工作量大、维护成本高、难以复用等困难,成为自动化测试技术的难以广泛使用的主要技术瓶颈。
AutoTCG使用了模型驱动的测试脚本生成方法。
首先,使用遵循BPMN2.0规范的方法对被测系统业务流程进行可视化建模,获得模型化的测试需求;然后,采用路径深度覆盖算法生成测试路径,根据路径上的约束条件生成测试输入参数;最后,通过自定义的测试动作原语将测试路径和输入参数转化为可在自动化测试平台上自动执行的测试脚本。
AutoTCG采用先进的数学算法,可实现全面科学的测试覆盖;适用于嵌入式软件测试、web应用测试、移动app测试、桌面软件测试等多种自动化测试场景。
2.文件夹显示和操作打开AutoTCG网址,进入“我的文件夹”,可以查看我的模型文件夹内容。
“我的文件夹”中有四个主文件夹:我的文件、最近修改、我的收藏、回收站。
如图1所示。
图1文件夹界面2.1 我的文件以列表形式显示显示我创建的文件,包含子文件夹和模型文件。
列表内容包括了文件名、创建时间、最后修改时间、包含模型数(对子文件夹有效)、生成用例数、操作。
如图2所示。
图 2 我的文件子文件夹的操作有:重命名、移动/复制、移到回收站。
模型文件的操作有:重命名、移动/复制、移到回收站、收藏、发布到公共模型库。
点击子文件夹名称可以进入子文件夹。
显示方式同“我的文件”。
点击模型文件名称,可以进入模型文件编辑界面。
子文件夹界面上方显示路径。
点击路径上的任意名称可以进入该文件夹。
2.2 最近修改以列表形式显示最近修改的模型文件,按照修改时间进行排序,最近修改的模型排在最前面。
列表内容包括了文件名、创建时间、最后修改时间、生成用例数、操作。
如图3所示。
图 3 最近修改模型文件的操作有:重命名、移动/复制、移到回收站、收藏、发布到公共模型库。
自动生成软件测试用例的技术实现与效果评估软件测试是确保软件质量和可靠性的关键步骤之一。
传统上,测试用例是由测试人员手动编写的,这需要大量的时间和人力。
然而,随着软件开发和规模的增长,测试用例的数量也急剧增加,手动编写已经无法满足测试的需求。
因此,自动生成软件测试用例的技术得到了广泛的关注和应用。
自动生成测试用例的技术基于程序分析和生成的原理,通过解析源代码或执行程序来识别程序的功能、边界和异常情况,并生成相应的测试用例。
下面介绍几种常见的自动生成测试用例的技术实现。
首先,基于符号执行的自动生成测试用例技术。
符号执行是一种静态分析方法,它将程序的输入视为符号而非具体的数值,并通过不同的符号路径来探索程序的各种执行情况。
符号执行可以自动生成大量的测试用例,并发现程序的潜在错误和异常情况。
然而,由于符号执行的路径爆炸问题,无法处理复杂的程序或大规模的系统。
其次,基于模糊测试的自动生成测试用例技术。
模糊测试是一种黑盒测试技术,它通过给程序提供随机、变异或非预期的输入来检测软件中的漏洞和错误。
模糊测试可以在无需源代码的情况下自动生成测试用例,并对程序进行全面和深入的测试。
然而,模糊测试无法覆盖所有的程序路径,可能会错过一些潜在的问题,并且生成的测试用例质量不高。
再次,基于机器学习的自动生成测试用例技术。
机器学习是一种自动学习的方法,可以通过分析大量的数据来提取特征和规律,并预测未来的行为和结果。
在自动生成测试用例中,机器学习可以利用训练数据集中的已知问题和解决方案,来生成新的测试用例。
这种技术可以提高测试用例的质量和效率,但需要大量的训练数据和计算资源。
最后,基于模型检测的自动生成测试用例技术。
模型检测是一种形式化验证技术,它利用数学模型来表示程序的行为和属性,并通过验证和搜索算法来检查这些属性是否满足。
在自动生成测试用例中,模型检测可以通过分析程序的状态和过渡关系,来自动生成具有特定属性的测试用例。
这种技术可以确保生成的测试用例符合程序的需求和规范。
收稿日期:2011-09-15;修回日期:2011-10-26基金项目:国家自然科学基金资助项目(60973118)作者简介:聂鹏(1977-),男,陕西汉中人,博士研究生,主要研究方向为软件确保、软件测试、软件可靠性(zeanet@163.com );耿技(1963-),男,安徽合肥人,教授,博士研究生,主要研究方向为系统软件、软件确保、软件可靠性;秦志光(1956-),男,四川隆昌人,教授,博导,主要研究方向为计算机开放系统与网络安全性、信息系统安全.软件测试用例自动生成算法综述*聂鹏1,2,耿技1,秦志光1(1.电子科技大学计算机科学与工程学院,成都611731;2.江西财经大学,南昌330013)摘要:按照测试用例自动生成技术的不同,将测试用例自动生成算法分为随机、遗传、蚁群、粒子群四类,对上述各类算法的现状和进展进行介绍、分析和探讨。
最后,对软件测试用例自动生成的研究进行了总结。
关键词:软件测试;测试用例生成;随机测试;启发性测试中图分类号:TP311文献标志码:A文章编号:1001-3695(2012)02-0401-05doi :10.3969/j.issn.1001-3695.2012.02.001Survey on automatic test case generation algorithms for software testingNIE Peng 1,2,GENG Ji 1,QIN Zhi-guang 1(1.School of Computer Science &Engineering ,University of Electronic Science &Technology of China ,Chengdu 611731,China ;2.Jiangxi University of Finance &Economics ,Nanchang 330013,China )Abstract :Based on the different techniques for the automatic test case generations ,there were four categories ,including ran-dom test algorithms ,genetic algorithms ,ant colony optimization algorithms ,and particle swarm optimization algorithms.Thispaper introduced ,analyzed ,and discussed the status and overview of the four categories.Finally ,it drew the conclusions for the automatic test case generation algorithms.Key words :software testing ;test case generation ;random test ;heuristic test0引言IEEE 计算机协会在IEEE Std 829—1983[1]中对软件测试给出了定义:通过人工测试或自动测试的手段对软件的质量进行度量,用于检验被测软件实际运行结果是否与设计软件时的初衷相一致。
专利名称:一种面向PLC程序的自动化测试用例生成系统专利类型:发明专利
发明人:史建琦,黄滟鸿,郭欣,石奇,郝丽,佘庆
申请号:CN201910718483.1
申请日:20190805
公开号:CN110532177A
公开日:
20191203
专利内容由知识产权出版社提供
摘要:本发明公开了一种面向PLC程序的自动化测试用例生成系统,包括:转换模块,用于将PLC 源程序转换为等价的C语言程序;建模模块,用于根据所述PLC源程序的周期执行语义,对所述C语言程序进行建模;分析模块,用于将建模后的C语言程序作为输入,利用C语言的符号执行工具生成测试用例集。
本发明实施例提供的系统,用于将PLC语言程序转换为C语言程序,借用C语言的丰富的成熟的工具,能够有效地处理这些程序,生成高质量的测试用例集,充分体现出自动化测试的成本低、效率高等优势,特别是在规模庞大的、功能复杂的工控系统上,该系统能够发挥积极作用。
申请人:华东师范大学,上海丰蕾信息科技有限公司
地址:200062 上海市普陀区中山北路3663号
国籍:CN
代理机构:北京辰权知识产权代理有限公司
代理人:刘广达
更多信息请下载全文后查看。
收稿日期:2005211209作者简介:金虎(1974-),男,2003级博士研究生,研究方向为计算机网络,网络安全,软件下载.文章编号: 049026756(2006)0420768205基于程序规则说明的自动测试用例生成金 虎2,李志蜀2,李 奇1(1.四川师范大学软件重点实验室,成都610066;2.四川大学计算机学院,成都610064;3.成都信息工程学院计算机系,成都610041)摘要:自动测试过程中,在特定测试标准下生成的测试用例的质量优劣,将极大地影响测试的性能和结果.作者结合基于程序规则说明的两种测试方法———随机测试技术和决策表技术,利用决策表形成完备的测试标准,保证随机生成的测试用例的充分性,完成测试用例的自动生成过程.研究内容分为如下4个部分:(1)基于软件规则说明的自动测试技术分析;(2)对程序规则说明生成决策表方法的测试标准;(3)结合随机测试数据生成和决策表技术对自动生成测试用例进行分析,比随机生成测试用例方法有更好的效果.关键词:规则说明;决策表;自动软件测试中图分类号:TP393 文献标识码:A软件测试是在特定条件和标准下对软件进行验证的行为.通过构造测试数据运行软件以找出软件中的缺陷和错误是种基本的测试方法.手工构造测试数据费时而且工作量大,因此自动测试技术受到广泛关注.自动测试通常包括3个部分[1]:(1)测试用例的自动生成;(2)使用测试用例对测试程序的执行;(3)将运行结果与测试预测比较得到测试结果评测.在基于程序规则说明的自动测试技术研究中,自动测试过程还没形成公认的标准,存在下述的问题:(1)测试标准的选择;(2)测试用例生成的充分性;(3)自动测试过程的设计.这些问题增加了自动测试过程实现的困难.没有确定的测试标准,就无法判定测试用例集的充分性,也就不能决定自动测试过程该何时结束.针对上述问题,我们利用功能测试方法中的决策表技术帮助选择测试标准,用以对测试用例充分性的图1 基于程序规则说明的软件测试过程Fig.1 S pecification 2based SW testing process保证,并作为自动测试过程的结束条件.1 基于软件规则说明的自动测试技术 测试是在特定的条件和标准下的一系列行为.在基于程序规则说明的测试过程中,程序规则说明是测试的基础,程序的实现和测试都根据规则说明.基于程序规则说明的测试过程如图1所示.基于程序规则说明的测试方法近来受到广泛的关注,具有开放、灵活和易于过程控制等许多优点.但传统程序规则说明的表示并不严密,甚至可以是自然语言描述,难以实现自动测试过程.实际研究中,常用有三种形式化的表示方法:基于模型的规则2006年8月第43卷第4期四川大学学报(自然科学版)Journal of Sichuan University (Natural Science Edition )Aug.2006Vol.43 No.4说明测试技术,代表性语言是Z 与VDM ;基于状态的规则说明测试技术,强调对软件系统的状态和状态转移的描述;基于属性的规则说明测试技术,强调对于功能模块关系的语法分析.我们使用第一种方法进行描述.2 决策表技术用于测试用例充分性判定测试用例被定义为输入/输出对,输入是出现在程序输入指令中的变量,输出则是程序的运行结果或行为.自动测试过程中,从形式化的软件规则说明生成测试用例是一个关键问题,不完备的测试用例无法保证测试结果的可靠性,将直接影响测试结果的有效性.定义1 设程序Q 的所有输入变量为x 1,x 2,…,x n ,其中x i ∈Dx i .则称D =Dx 1×Dx 2×…×Dx n 为程序Q 的输入域空间.程序Q 一次实际的合法输入对应于输入域D 空间上的一点x ∈D [2].对于确定的程序,其输入变量空间的数据集合通常是无限的.采用穷举输入域空间的方法,虽然可以保证完备性,却因为此空间太大而缺乏可行性,还将导致产生大量的冗余测试用例.自动生成测试用例总是在一定的策略和标准下进行.代码测试技术中测试标准相对成熟,有明确的测试指标.比如代码执行路径的覆盖率,DD 路径覆盖,突变测试标准等.但在基于程序规则说明测试方法中,并没有像代码测试中这样明确和公认的测试标准,因此,需要确定能有效判断测试用例充分性的标准.程序规则说明是以外部观点来看待软件,被测试程序被看作是从程序的输入空间到输出空间的作用函数FUNC :D ϖF ,D 是定义1中的输入域,F 是程序的行为或结果的全集.基于程序规则说明的测试就是验证被测试程序能否完整和正确实现规则说明所描述的功能.定义2 设程序Q 在测试数据集T 上执行,并且实现了功能F ,如果满足Πt ∈T :if Q (t )=F (t )]Πt ∈D :Q (t )=F (t ),则称测试数据集T 是可靠的,其中T <D.功能测试是把程序看作从输入变量空间到输出变量空间的函数f :(X 1,X 2,…,X m )ϖ(Y 1,Y 2,…,Y n ).随机测试数据生成器[3]函数在被测试程序的规则说明中构造输入变量空间的子集T <D ,使被测试程序Q 在测试数据集上运行,以保证结果能实现程序规则说明的所有功能.随机测试数据生成函数产生的测试用例并不是充分的.测试用例集能确定程序的所有功能都被实现,但是,它并不能保证这些功能都是被正确实现的.例如,被测试程序正确实现情况下应有Q (t 1)=F (t 1),Q (t 2)=F (t 2),但实际实现中却为Q (t 2)=F (t 1),Q (t 1)=F (t 2).由此可见,仅从输入域和输出域并不能保证测试的充分性,显然还需要更多的测试信息.定义3 设程序Q 的规则说明中P (X 1,X 2,…,X n )是程序输入变量必须满足的命题逻辑条件,如果测试数据集T 是可靠的,并且在T 上能满足P ,则T 是测试充分的.形式化的规则说明不仅能得到程序的输入和输出变量空间,还以命题逻辑为基础,将程序的实现条件表示为逻辑表达式.例如,当输入变量I =(X 1=x 1,X 2=x 2,…,X m =x m )时,如果满足条件P 1(X 1,X 2,…,X m ),则程序实现功能F 1.对于测试用例来说,如果能实现规则说明中的所有条件组合和功能覆盖,则测试数据集就是充分的.因此对测试充分性标准从对输入域空间的判定转换为对具体命题逻辑公式值的覆盖.为被测试程序构造充分的测试用例集合,可通过扩大程序规则说明中的命题逻辑条件表达式限制来实现.命题逻辑条件是其子句机械产生出的所有组合的子集.定理1 设程序为Q ,其输入域空间为D ,实现的功能为 F.如果测试用例集T ’是完备的,则T ’必然是测试充分的.证明 如果测试集合T ’不是测试充分的,则程序Q 在测试用例集T ’上的执行,或者不能实现规则967第4期金虎等:基于程序规则说明的自动测试用例生成077四川大学学报(自然科学版)第43卷说明中的程序功能的覆盖,则测试用例集是不完备的;或者不能满足命题逻辑的限制,有可能是错误的内部实现而得到正确的结果.所以,测试用例集T’是完备的,则必然也是测试充分的.在程序输入变量空间上取值,使所有程序规则说明中的命题逻辑条件都能实现,所以必然可从规则说明得到充分的测试用例集合.对于测试用例充分性的判定可转换为测试用例对规则说明命题逻辑条件的覆盖.在所有的功能测试方法中,决策表[4]技术是最严格的,常用于表示和分析复杂的逻辑关系,具有逻辑严密性.对于形式化表示的程序规则说明,从命题逻辑的分析角度,决策表技术正好能完整表示规则说明中的条件命题公式.对程序规则说明生成决策表,能够形成测试用例充分性的判定标准.定义4 设决策表为D T,规则说明的命题逻辑条件为P,程序实现的功能为 F.则决策表D T根据P 形成的规则称为决策测试规则集D T({R}):P∧F<D T({R})).使用决策测试规则集来表示程序必须在满足内部命题逻辑的限制的条件下实现程序的功能.考虑程序规则说明中所有可能的条件值组合与实现的功能:(c1.O P.c2.O P.….O P.c n)AND F,则能够形成完备的测试规则,因此能够形成测试用例的完备判定标准.定理2 设程序为Q,规则说明的命题逻辑条件为P,决策表D T根据P形成的决策测试规则集D T ({R}),如果随机测试用例生成器产生的测试数据用例集满足D T({R}),那么这个随机测试用例集对于被测试程序是完备的.决策测试规则集D T({R})采用决策表方式,完成逻辑限制条件的机械完备组合方式,形成测试充分的满足条件,以得到定义3中测试充分数据集的超集,因此它是完备的.决策表技术非常适合基于规则说明的测试方法,也适合于自动测试过程的完成.算法:SWTA G()输入:程序形式化的规则说明文件s;输出:测试结果r;BEGIN:1) PARSER(s,D T R[],X[]) /3由形式化的规则说明获得程序的对应决策表规则集D T R[]和输入域空间X[]3/2) random G en(X[]) /3随机方式对输入变量在域上赋值3/3) exec(X[],program,F[]) /3在X[]上对程序一次执行3/4) if(testDTR(X[],F[],D T R[]){ /3判断运行是否覆盖规则集3/ if(visitied all D T R[])执行5) /3若所有规则都已覆盖,测试结束3/else重复2)3)4)} else Record Program Error /3程序实现存在与形式化规则不符合情况3/5) return rEND算法中,D T R[]为决策测试规则集;X[]为程序输入变量对应的结构数组,包含变量名和变量域;F[]是程序实现的功能集.SWTA G是程序根据形式化规则说明,采用随机生成测试用例方式,自动检测程序执行的过程.测试用例的充分性是以规则说明形成的测试条件集的覆盖为标准,作为自动过程的结束条件.算法可检测出程序的实现与形式化规则说明不一致的错误.3 自动生成测试用例分析 Triangle 程序在测试技术中是一个被广泛使用的例子程序.在非形式化表示的程序规则说明中描述为:程序输入3个整数表示三角形的三条边的大小,在程序计算处理后输出三角形的性状:等边、等腰、普通三角形或非三角形.为了完成测试用例自动生成过程,首先要为Triangle程序生成形式化表示的规则说图2 有效三角形的形式化规则说明表示Fig.2 Formal specification for triangle 明,其次根据规则说明为程序在输入域自动产生随机测试用例数据,结合决策表技术分析随机产生的测试用例是否有效,最后完成对测试结果的分析.图2是Z 标记的Triangle 程序形式化的规则说明. Z 是种类型语言[5],每个变量都有特定的类型,规则说明中的变量都将被实际的编程语言的数据类型所实现.在图2的程序规则说明中,有效的三角形输入域是N ×N ×N 的正整型变量空间,对于变量空间上的任意有序组(x ,y ,z ).图3是形式化的测试用例视图.图3 形式化表示的测试用例视图Fig.3 Schema of the test case TRIAN G L E ::=EQU |ISO |SCAL |INVAL ID 在图3的视图中,确定了程序测试所需要满足的命题逻辑公式.当满足测试条件的测试用例产生时,必然会形成对应的程序输出结果.对所有的测试用例进行划分,如果测试用例满足了测试覆盖条件,却没有产生期望的测试执行结果,则表明被测试程序的功能实现与规则说明存在差异,就可以发现程序存在差错.如果测试用例不完备,则通过对条件命题和输出域的覆盖就能发现测试用例集的不充分性.以triangle 程序为例,对程序引入错误,采用SWTA G 算法和以经验方式判断结束条件的随机生成测试用例[]两种方法来进行试验,结果如附表所示.附表 随机方式和决策测试规则集的测试能力比较Table Comp.Of RAN and SWTA G test capabilityFunction CoverageFunction 2Error Coverage Misclassification Logic error RANDOMUncompleted Uncompleted Unable detect Unable detect SWTA G Completed Completed All detected All detected 采用经验判断的随机生成测试用例方法是不严格的,不能保证生成的数据用例的完备性.在没有完成完备的功能检测时就可能达到结束条件,导致功能检测的遗漏.另外,由于对程序实现上的错误以及误分类等情况不能提供更多的信息,因此这种方式的实际检测能力很低.SWTA G 采用形式化的规则说明为基础,具有严格的测试控制条件,可以克服上述问题,整个测试过程也易于实现自动化.177第4期金虎等:基于程序规则说明的自动测试用例生成277四川大学学报(自然科学版)第43卷4 结语我们分析了基于程序规则说明的测试用例自动生成的过程,详细讨论了对于测试用例有效性的判断标准,并使用决策表方式来实现对随机生成的测试用例集的充分性判定,最后给出一个示例来说明自动生成测试用例的过程.参考文献:[1] Poston R M.Automating Specification2Based S oftware Testing[M].[S.l]:IEEE Computer S ociety Press,1996.[2] K orel B.Automated S oftware Test Data G eneration[J].IEEE Transactions on S oftware Engineering,1990,16(8):870.[3] Richard A D. A.Jefferson of futt.Constraint2Based Automatic Test Data G eneration[J].IEEE Transactions on S oftwareEngineering,1991,17(9):900.[4] Jorgensen P C.S oftware Testing:A Craftsman’s Approach(2nd ed)[M].[S.l.]:CRC Press LLC,2002.[5] Bowen J.Formal S pecification and Documentation Using Z:A Case Study Approach[M].[S.l.]:Intl Thomson ComputerPr(Sd),1996.Specif ication2based T est C ase Automatic G enerationJ IN Hu,L I Zhi2shu,L I Qi(1.The State K ey Lab.of Software Lab.,Sichuan Normal University,Chengdu610066,China;2.College of Computer,Sichuan University,Chengdu610064,China;3.Dept.of Computer Sci.,Chengdu Univ.of Info.Tech.,Chengdu610041,China)Abstract:In the process of automatic SW testing,the quality of the test case generated under specific criteria will affect the performance and result of the testing greatly.This paper combines two specification2based test2 ing methods which are random testing and decision table technique.Decision is table to form maturity testing criteria ensures sufficiency of testing case generated randomly,and accomplishes the process of testing case au2 tomated generating.All research includes3sections:(1)Analyses Specification2based automated softwaretest2 ing technique.(2)G enerate testing criteria using decision table method for program specification.(3)Analy2 ses automated generating testing case combined with random testing data generator and decision table tech2 nique,andthe results shows better performance than random test case generator method.K ey w ords:specification;decision table;automatic software testing。