【技术实现步骤摘要】
一种基于代码转换的MC/DC覆盖准则的软件测试数据生成 方法
本专利技术涉及一种基于代码转换的MC/DC覆盖准则的软件测试数据生成方法,属于 计算机软件测试领域。
技术介绍
随着现代软件系统日益复杂庞大,软件质量问题已经严重制约了计算机技术的发 展。软件测试是保证软件质量和可靠性的主要手段,也是软件工程实施过程中必要的步骤 之一。测试数据的生成是软件测试的重要内容,程序在测试数据上执行以发现软件中存在 的错误缺陷,是软件测试领域的基本方法。 由于不可能穷举软件系统的所有程序路径,传统的完全测试(thorough testing) 技术在实际上往往是不可行的。因此,结构化的测试技术逐渐被人们所提出,结构测试是一 种按照程序内部逻辑结构和编码结构设计测试数据的测试方法。覆盖率分析技术就是一种 结构化的测试技术,目前已经成为了一种非常重要的软件质量评估方法。常用的两种覆盖 率分析技术为语句覆盖和分支覆盖。 目前,测试人员普遍采用手工方法设计测试数据,但是,手工生成测试数据的效率 极其低下,并且容易出错。尤其是为某些条件要求苛刻的路径生成测试数据是很困难的,这 使得测试成本昂贵,很难保证软件质量。测试数据自动生成技术能够自动生成对被测程序 进行测试时所需的数据,这样不但减轻了测试人员所必须付出的大量劳动,同时降低了由 手工测试而产生的高额成本,有效地大幅提高了测试过程的可信赖程度。 对于包含有复杂逻辑的安全攸关软件来说,结构化的测试技术只是考虑了程序的 结构,往往是不够充分的。因此,许多更加复杂的逻辑覆盖准则被提出,包括条件 ...
【技术保护点】
一种基于代码转换的MC/DC覆盖准则的软件测试数据生成方法,其输入为一段待测程序,输出为满足MC/DC覆盖准则的软件测试数据集合,其特征在于包括以下步骤:(1)定义待测程序的语句类型;(2)定义待测程序的语句的转换规则;(3)根据步骤(1)中定义的语句类型,识别待测程序中每条语句的类型;(4)对步骤(3)中确定的待测程序中每条语句的类型,按照步骤(2)中定义的语句转换规则进行代码转换;(5)将步骤(4)中得到的代码转换后的程序作为基于分支覆盖的软件测试数据生成工具的输入,得到测试数据集合。使得当测试数据集合对于代码转换后的程序T(S)的分支覆盖率达到100%时,测试数据集合对于待测程序S的MC/DC覆盖率为100%,从而达到MC/DC覆盖(Modified Condition/Decision Coverage,MC/DC,修订的条件/判定覆盖)。
【技术特征摘要】
1. 一种基于代码转换的MC/DC覆盖准则的软件测试数据生成方法,其输入为一段待测 程序,输出为满足MC/DC覆盖准则的软件测试数据集合,其特征在于包括W下步骤: (1) 定义待测程序的语句类型; (2) 定义待测程序的语句的转换规则; (3) 根据步骤(1)中定义的语句类型,识别待测程序中每条语句的类型; (4) 对步骤(3)中确定的待测程序中每条语句的类型,按照步骤(2)中定义的语句转换 规则进行代码转换; (5) 将步骤(4)中得到的代码转换后的程序作为基于分支覆盖的软件测试数据生成工 具的输入,得到测试数据集合。使得当测试数据集合对于代码转换后的程序T(巧的分支覆 盖率达到100 %时,测试数据集合对于待测程序S的MC/DC覆盖率为100 %,从而达到MC/DC 覆盖(ModifiedCondition/DecisionCoverage,MC/DC,修订的条件 / 判定覆盖)。2. 如权利要求1所述的方法,其特征在于:所述步骤(1),定义待测程序的语句类型具 体包括W下步骤: (1-1)定义待测程序的语句S的类型,语句S由如下语法规则构成,不包括函数调用; 语句S为变量声明Typeid; 或赋值表达式X=a; 或空语句skip; 或顺序语句Si;S2; 或分支语句如果判断b为真(T),那么语句Si; 或分支语句如果判断b为真(T),那么语句Si;否则语句S2; 其中,a为算术表达式,b为判断,X为变量。3. 如权利要求1所述的方法,其特征在于:所述步骤(2),定义待测程序的语句的转换 规则具体包括W下步骤: (2-1)定义待测程序的语句S的转换规则如下; 其中,S表示待测程序中的语句,T(巧表示转换后的程序中相应的语句,a为算术表达 式,X为变量,算术表达式ai是将算术表达式a中的变量X替换为变量X1得到的;算术表 达式a,是将算术表达式a中的变量X替换为变量X2得到的;判断b1是将判断b中的变量 X替换为变量Xi得到的;判断b2是将判断b中的变量X替换为变量X2得到的;语句Su、S。 表示将语句Si和S2中的变量y替换为变量y1,语句S21、S22表示将语句S1和S2中的变量y 替换为变量y2;条件C 是将条件C i中的变量X替换为变量X1得到的;条件C 21是将条件C i 中的变量X替换为变量X,得到的; 转换规则1; S为变量声明Typeid; T(巧为变量声明Typeidi;TypeicU; 转换规则2 : S为赋值表达式X = a ; T做为赋值表达式Xi=ai;x2= 32; 转换规则3 : S为空语句skip; T(巧为空语句skip; 转换规则4 : S为顺序语句Si;S2; T做为顺序语句T(Si) ;T(S2); 转换规则5 : S为分支语句: 如果判断b为真(T) 语句Si; T做为: 语句G化); 如果判断bi为真(T) 如果判断b2为真(T) 转换语句Si到语句T(S1); 否...
【专利技术属性】
技术研发人员:卢琼,吴添勇,严俊,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。