关于软件测试用例生成技术相关研究总结

发表于:2014-12-24 12:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiajian2010    来源:51Testing软件测试网采编

  缘起
  自跟陈翔老师做软件测试测试用例自动生成的方面的研究,已经过了一年了。在这一年里,看了很多东西,也学习了很多,最大的收获是眼界开阔了很多,从对学术研究一窍不通,到渐渐步入门中窥探了几分,虽入门不深,确受益匪浅。其中最大的决定莫过于将windows系统格了装Ubuntu,老实说,自己从来没这么霸气的用换操作系统来和过去划清界限,并没有鄙视window的意思,只是觉得Linux下更适合程序员和学术研究。
  还有一个月多一点就要毕业了,想去上海找份Rails程序员的工作,在全心全意投入rails的学习前,我想将软件测试中做的工作总结一下,记录一些只言片语。
  正文
  1. 研究方法
  关于如何做研究,我的指导老师的写的PPT很不错:科研指南
  关于如何阅读论文和如何写论文,一些资料如下:
  1.周志华-如何做写论文
  2.如何阅读论文
  3.一位研究生导师心目中理想的论文
  软件测试相关的书籍:Paul Ammann和Jeff Offut的《Introduction to Software Testing》不错,书不厚。此外,Jeff Offut本人值得关注,此人搞了一辈子软件测试,他的Homepage:。http://cs.gmu.edu/~offutt/。
  研究过程遇到的一些NB的人物的主页:
  信息科学中Kolmogorov复杂度的相关人物:G J Chaitin Ray Solomonoff A.H. Kolmogorov
  计算复杂度的开山祖师:Stephen A. Cook Richard M. Karp
  数据挖掘的牛人:Dr. Jian Pei
  软件测试的大神(个人不完全统计):Michael Ernst Darko Marinov Jeff Offutt Willem Visser Saswat Anand Gordon Fraser Tao Xie Raul Santelices
  Prof. Eric Bodden, Ph.D. Laurie Hendren Ian H. Witten Harry Xu's Homepage  Sai Zhang's homepage
  当然,在论文An orchestrated survey of methodologies for automated software test case generation中的出现的作者都是软件测试领域的泰斗之类的人物。
  关于论文检索系统,主要使用IEEE Xplore  Springer CiteSeerX JSTOR ScienceDirect(Elsevier) arXiv.org e-Print archive 以及ACM的检索系统和 中国知网 (备注:就个人的短暂的研究经验而言,google学术搜索可以应付大多数问题,无论是中文的还是英文的)
  计算机科学的人物检索系统:dblp(德国某大学开发的,可以用于了解一些计算机科学与技术中NB的人物的工具,涉及论文,会议和期刊)
  2. 软件测试相关
  关于软件测试用例生成的研究,2013年2月的一篇综述:An orchestrated survey of methodologies for automated software test case generation 中介绍的相当不错,其中介绍了四种主流关于测试用例生成技术的综述:符号执行(symbolic execution),基于模型的测试(Model-based Test),组合测试,随机测试中的自适应随机测试和基于搜索的测试。当然还有其他的一些技术没有介绍,但也很有名,比如变异测试,模糊测试,混合技术测试之流的。
  在这些测试其中,文献调研过自适应随机测试,花了一周看论文感觉尽是在说理论,没找到什么实际的应用的例子,或者说我没能明白关于输入空间的含义;研究符号执行了一段时间,主要是JPF及其扩展JPF-SE;对一些随机测试和系统测试混合技术也做了一些研究,这主要涉及Randoop,Palus,RecGen。我是在一个大学生创新项目下做关于这些研究,并将这些写成了一个技术报告,交到学院里估计也不会有人看,地址:http://pan.baidu.com/s/1eQtGJ66 (备注,好像泄露的我的真实姓名了,没错,我就是叫夏健--一个不太好听的名字)
  2.1. 相关的工具
  2.1.1. 探索过的工具
  artgen:一个基于Randoop的测试用例生成工具
  recgen:一个基于Randoop的测试用例生成工具
  palus:一个基于Randoop的并组合动态和静态分析测试用例生成工具
  Randoop:基于随机测试的序列生成的测试生成工具
  jcrasher:基于随机测试的序列生成的测试生成工具
  jpf:javapathfinder,显式模型检查工具,与软件测试用例生成相关的是它的一个扩展,jpf-se
  mujava:jeff offut开发的变异测试工具
  emma,codecover,cobertura都是代码插桩工具
  findbugs,checkstyle,pmd都是代码静态检查工具。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号