欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 面向软件错误定位的测试用例约简技术的发展策

面向软件错误定位的测试用例约简技术的发展策

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


0引言
  计算机软件正广泛应用于经济、军事、商业等各个领域中,对其可靠性问题的研究也日益得到了人们的广泛重视。保证软件高可靠性已成为系统开发和维护工作中不可或缺的一个重要方面。随着软件规模越来越大、逻辑越来越复杂,对软件可靠性的要求也日渐提高。然而,软件并不是如人们预期般总能可靠地运行,影响软件可靠性的一个主要因素就是软件中潜在的错误,这些潜在的软件错误极有可能对计算机应用系统带来不利影响。在此背景下,软件错误自动定位的目的就是通过执行程序源代码,分析程序运行过程中的运行时状态,检测程序中的异常情况,并将其独立出来作为需要进一步调试的可疑代码,从而将与软件错误无关的代码自动过滤掉,缩小错误代码的搜索范围,辅助开发人员快速有效地定位软件错误。
  错误定位技术以定位软件中的错误代码为目的,可通过在待测程序上运行合适的测试用例,进而分析并定位错误语句。因此,错误定位的精度要更多地依赖于所执行的测试用例的质量。相应地,制定合适的测试用例约简方法,得到适合定位程序错误的测试用例的集合,已经成为亟需解决的问题。
  本文在介绍测试用例的基础上,对面向错误定位的测试用例约简方法进行了分类,并对各类测试用例约简方法进行了介绍,最后对现有的测试用例约简方法进行了分析和总结。
  1面向软件错误定位的测试用例约简方法概述
  目前,关于测试用例的研究大多用于软件测试\[1-2\],该方法首先在被测程序上执行测试用例,分析被测程序的动态行为和运行结果,由此而发现程序错误或功能缺陷,追求的目标是测试的充分性,因此,软件测试所使用的测试用例的集合一般都会比较大。但是该测试用例的集合中,很大一部分测试用例对错误定位的贡献不大,甚至一些冗余或偶然正确的测试用例还会降低错误定位的精度和效率。针对这一问题,很多学者提出了不同的测试用例约简方法,并进一步研究测试用例的约简对错误定位精度的影响。
  测试用例约简是指在原测试用例的集合基础上,根据不同的测试需求,采用相应的约简策略,删除与测试需求无关的测试用例。目前,测试用例约简的研究大多面向软件测试,而用于错误定位的测试用例约简方法的研究较少。在研究面向错误定位的测试用例约简方法\[7-12\]中,学者们的研究对象主要是程序在执行过程中的程序谱\[13\]信息,即根据程序运行测试用例时的语句覆盖情况进行分析,据此再进行测试用例的约简。
  2面向软件错误定位的测试用例约简方法分类
  面向错误定位的测试用例约简方法主要分为基于语句覆盖的测试用例约简方法、基于语句向量的测试用例约简方法和突出考虑错误测试用例对错误定位影响的测试用例约简方法。下面对这三种约简方法逐一地展开分析。
  第3期龚丹丹,等:面向软件错误定位的测试用例约简技术综述智能计算机与应用第4卷 2.1基于语句覆盖的测试用例约简方法
该类方法主要目的是保证各语句在约简后的测试用例的集合中皆被执行。即在原测试用例集合的基础上,制订不同的策略,选择部分测试用例,最终达到各语句皆被执行的目的。通常,基于语句覆盖的测试用例约简方法得到的约简后的测试用例数目较少,但与未约简的测试用例的集合相比,约简后的测试用例的集合很难提高错误定位的精度。
  下面举例说明基于语句覆盖的测试用例约简方法。图1为实例程序mid()和所执行的测试用例的集合{t1,t2,t3,t4,t5,t6,t7,t8}。该实例程序mid()已广泛应用于错误定位和测试用例约简方法中,以验证其方法的有效性。其中,程序mid()的功能为,输入三个整数,输出三个整数的中间值。程序的第7行“m=y”为错误语句,正确语句应为“m=x”。程序的右侧为8个测试用例t1~t8。●表示执行测试用例t时,第i条语句被执行。由此可以看出,语句5仅被测试用例t2覆盖,则约简后的测试用例的集合应包含t2,语句11仅被t4覆盖,则约简后的测试用例的集合也应包含t4。对于语句6,同时被t1、t5、t7和t8覆盖,各学者对此提出了不同的策略,在t1、t5、t7和t8中选取其一。按照以上方法,当所有语句皆被覆盖时,即可得到最终约简后的测试用例的集合。在语句覆盖的测试用例约简方法中,一些学者首先将正确测试用例和错误测试用例进行区分,再制订相应的测试用例约简策略,最终得到不同的测试用例的集合。
  Baudry等\[14\]将相同测试用例所覆盖的语句定义为动态基本块,研究了动态基本块的数量对错误定位精度的影响。结果表明错误定位的精度受动态基本块数量的影响。
  Zhang等\[15\]将相对冗余的思想应用于错误定位约简方法中,研究成果表明,均衡语句覆盖可以提高错误定位的精度。
  2.2基于语句覆盖的测试用例约简方法
  该方法主要将测试用例执行后的覆盖信息以向量为对象进行分析。例如,执行测试用例t1的向量为<1,1,1,1,0,1,1,0,0,0,0,0,1>,执行测试用例t2的向量为<1,1,1,1,1,0,0,0,0,0,0,0,1>,由此可以看出,t1的向量与t2的向量不同,则约简后的测试用例的集合应同时包含t1和t2。t1、t7和t8所对应的向量相同,则可根据不同的策略,选择其中之一。同时,也可以将正确测试用例和错误测试用例区别对待,再制订相应的测试用例约简策略,最终得到不同的测试用例的集合。
  mid() {
  int x ,y ,z ,m ;测试用例t1t2t3t4t5t6t7t83,3,51,2,33,2,15,5,55,3,47,5,42,1,34,3,51: read ( x,y,z ) ;●●●●●●●●2:m=z;●●●●●●●●3:if(yy)●●●10:m=y;●●11:else if (x>z )●12:m=x;13:printf(m);●●●●●●●●}Pass / Fail StatusPPPPPPFF图1实例程序及测试用例
  Fig.1Example program and its test cases
  Yu\[16\]等在语句向量的基础上,将相对冗余思想用于测试用例约简,并将结果与基于语句覆盖的测试用例约简方法相对比。实验结果证明,与基于语句覆盖的测试用例约简方法相比,基于语句向量的测试用例约简方法删除了较少的测试用例,但约简后的测试用例更有利于错误定位。
  2.3突出考虑错误测试用例对错误定位影响的测试用例约简方法该类方法主要目的是保证各语句在约简后的测试用例的集合中皆可得到执行。即在原测试用例的集合的基础上,制订不同的策略,选择部分测试用例,最终达到各语句皆可 执行的目的。通常,基于语句覆盖的测试用例约简方法得到的约简后的测试用例数目较少,但与未约简的测试用例的集合相比,约简后的测试用例的集合很难提高错误定位的精度。
  在以上两类测试用例约简方法中,尽管一些学者提出了将正确测试用例和错误测试用例分类,但并未突出考虑错误测试用例对错误定位的影响。而研究表明,与正确测试用例相比,错误测试用例更有助于错误定位。
  Wang\[18\]等提出根据错误路径生成最相似的正确路径,但算法的复杂度很高并只能生成一条成功路径且对赋值错误的定位不太敏感。
  Chen\[19\]等研究了根据测试需求直接生成测试用例集合的方法。文中指出,测试用例需求的好坏,直接影响所生成的测试用例的质量。在构造需求关系图的基础上,首先生成测试用例需求,并在此基础上进行测试需求的优化,由此即构造出与测试需求相关的测试用例。
  3结束语
  目前的测试用例约简方法,都只研究了程序运行时的语句覆盖情况,忽略了程序运行时的具体执行路径信息,因为具有相同语句覆盖的测试用例所对应的执行路径未必相同,而且约简测试用例时对错误定位的需求考虑并不充分,因此,约简后的测试用例对错误定位的精度没有明显提高,甚至某些测试用例选择方法还会降低错误定位的精度。如果能够在分析程序执行路径基础上,面向错误定位需求约简出对错误定位有效的测试用例,那么不仅能降低错误定位的复杂度,而且也必将有助于提高错误定位的精度。
  参考文献:
  \[1\]VESSEY ise in debugging computer programs\[J\].International Journal of Man-Machine Studies: A Process Analysis,1985,23(5):459-494.
  \// Proc.7th Network and Distributed System Security Symp,Internet Soc,2002: 3-17.
  \[3\]ALEXANDRE P,RUI A,ANDRE R.A dynamic code coverage approach to maximize fault localization efficiency\[J\].Journal of Systems and Software,2014:18-28.
  \.Computer & Security,2013,32:130-157.
  \[5\]MAO X G,YAN L,DAI Z Y,et -based statistical fault localization\[J\].Journal of Systems and Software,2014,89:51-62.
  \[6\]FEYZULLAH K,HASAN S,RRI um-based fault localization for diagnosing concurrency faults\[J\].Testing Software and Systems,2013,8254:239-254.

本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/243378.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学