跳到主要内容
10.1145/2001420.2001463acm会议文章/章节视图摘要出版物页面伊斯塔会议记录会议集合
研究论文

静态和动态组合自动测试生成

出版:2011年7月17日 出版历史
  • 获取引文提醒
  • 摘要

    在面向对象程序中,单元测试通常由一系列方法调用组成,这些方法调用创建和修改对象,然后将它们用作被测试方法的参数。自动生成以下序列具有挑战性合法的行为相反也就是说,达到尽可能多的不同程序状态。
    本文针对没有正式规范的代码,提出了一种静态和动态组合自动测试生成方法来解决这些问题。我们的方法首先使用动态分析从示例执行中推断调用序列模型,然后使用静态分析根据它们可能读或写的字段识别方法依赖关系。最后,动态推断模型(往往准确但不完整)和静态识别的依赖信息(往往保守)引导随机测试生成器创建法律和行为双向测试。
    我们的Palus工具实现了这种测试方法。在几个流行的开源Java程序上,我们将其有效性与纯随机方法、动态随机方法(无静态阶段)和静态随机方法(没有动态阶段)进行了比较。Palus生成的测试实现了更高的结构覆盖率,并发现了更多错误。
    Palus也在谷歌内部使用。它在四款经过良好测试的谷歌产品中发现了22个之前未知的错误。

    工具书类

    [1]
    Apache Commons Collections项目页面。http://commons.apache.org/collections/。
    [2]
    S.Artzi、M.D.Ernst、A.Kieżun、C.Pacheco和J.H.Perkins。大海捞针:为面向对象程序生成合法的测试输入。基于模型的测试和面向对象的第一次研讨会2006年10月。
    [3]
    BCEL项目页面。http://jakarta.apache.org/bcel/。
    [4]
    A.比尔曼和J.费尔德曼。从有限状态机的行为样本中综合有限状态机。IEEE传输。在计算机上, 21(6), 1972.
    [5]
    C.Boyapati、S.Khurshid和D.Marinov。Korat:基于Java谓词的自动化测试。ISSTA公司, 2002.
    [6]
    C.Csallner和Y.Smaragdakis。JCrasher:用于Java的自动健壮性测试程序。软件:实践与经验,34(11) ,第1025--1050页,2004年。
    [7]
    I.Ciupa和A.Leitner。基于合同设计的自动测试。在《网络诉讼》中。对象日期, 2005.
    [8]
    科贝图拉的家。http://cobertura.sourceforge.net/。
    [9]
    J.E.Cook和A.L.Wolf。从基于事件的数据中发现软件过程模型。ACM事务处理。柔和。工程方法。, 7(3):215--249, 1998.
    [10]
    V.Dallmeier、N.Knopp、C.Mallon、S.Hack和A.Zeller。为规范挖掘生成测试用例。ISSTA公司, 2010.
    [11]
    V.Dallmeier、C.Lindig、A.Wasylkowski和A.Zeller。使用ADABU挖掘对象行为。WODA公司, 2006.
    [12]
    S.Elbaum、H.N.Chin、M.B.Dwyer和J.Dokulil。从系统测试用例中提取差分单元测试用例。SIGSOFT/FSE-14型,第253-264页,2006年。
    [13]
    M.D.恩斯特。静态和动态分析:协同和二元性。WODA公司, 2003.
    [14]
    M.D.Ernst、J.Cockrell、W.G.Griswold和D.Notkin。动态发现可能的程序不变量以支持程序进化。ICSE公司, 1999.
    [15]
    P.Godefroid、N.Klarlund和K.Sen.DART:指导自动化随机测试。PLDI公司, 2005.
    [16]
    W.Grieskamp、Y.Gurevich、W.Schulte和M.Veanes。从抽象状态机生成有限状态机。ISSTA公司, 2002.
    [17]
    H.Jaygarl、S.Kim、T.Xie和C.K.Chang。OCAT:基于对象捕获的自动化测试。ISSTA公司, 2010.
    [18]
    K.S.Jones。术语特异性的统计解释及其在检索中的应用。文献杂志, 28:11--21, 1972.
    [19]
    M.Jorde、S.Elbaum和M.B.Dwyer。通过聚合单元测试来增加测试粒度。ASE公司, 2008.
    [20]
    JSAP主页。http://martiansoftware.com/jsap/。
    [21]
    F.Long、X.Wang和Y.Cai。通过结构重叠进行API超链接。ESEC/FSE, 2009.
    [22]
    D.Lorenzoli、L.Mariani和M.Pezzè软件行为模型的自动生成。ICSE公司, 2008.
    [23]
    D.Marinov和S.Khurshid。TestEra:一个新的Java程序自动化测试框架。ASE公司, 2001.
    [24]
    S.McConnell公司。《代码完成》,第二版,微软出版社,2004年。
    [25]
    C.帕切科和M.D.恩斯特。Eclat:测试输入的自动生成和分类。ECOOP公司, 2005.
    [26]
    C.Pacheco、S.K.Lahiri、M.D.Ernst和T.Ball。反馈导向随机测试生成。ICSE公司, 2007.
    [27]
    瓦伦丁·达尔梅尔(Valentin Dallmeier)。个人通信,2011年5月。
    [28]
    Rhino项目页面。http://www.mozilla.org/rhino/。
    [29]
    D.Saff、S.Artzi、J.H.Perkins和M.D.Ernst。Java的自动测试因子分解。ASE公司, 2005.
    [30]
    D.Saff、M.Boshernitsan和M.D.Ernst。实践中的理论:易于编写的捕获错误的规范。技术报告MIT-CSAIL-TR-2008-002,麻省理工学院,马萨诸塞州剑桥市,2008年1月14日。
    [31]
    SAT4J项目页面。http://www.sat4j.org/。
    [32]
    K.Sen、D.Marinov和G.Agha。CUTE:一个用于C.In的混合单元测试引擎ESEC/FSE-13, 2005.
    [33]
    S.Thummalapenta、T.Xie、N.Tillmann、P.de Halleux和W.Schulte。MSeqGen:通过挖掘源代码生成面向对象的单元测试。ESEC/FSE, 2009.
    [34]
    N.Tillmann和W.Schulte。参数化单元测试。ESEC/FSE-13, 2005.
    [35]
    tinySQL主页。http://www.jepstone.net/tinySQL/。
    [36]
    C.D.Turner和D.J.Robson。面向对象程序的基于状态的测试。ICSM公司, 1993.
    [37]
    W.Visser、C.S.PéSéreanu和S.Khurshid。使用Java PathFinder测试输入生成。ISSTA公司, 2004.
    [38]
    J.Whaley、M.C.Martin和M.S.Lam。面向对象组件接口的自动提取。ISSTA公司, 2002.
    [39]
    S.Zhang、Y.Bu、X.Wang和M.D.Ernst。依赖性引导随机测试生成。华盛顿大学CSE 503课程项目报告网址:www.cs.washington.edu/home/szhang/gencc.pdf,2010年5月。
    [40]
    W.Zheng、Q.Zhang、M.Lyu和T.Xie。使用多软件序列推荐生成随机单元测试。ASE公司, 2010.

    引用人

    查看全部
    • (2023)软件测试用例生成工具和技术:综述国际数学、工程和管理科学杂志10.33889/IJMEMS.2023.8.2.0188:2(293-315)在线发布日期:2023年4月1日
    • (2023)面向更真实的神经测试Oracle生成评估第32届ACM SIGSOFT软件测试与分析国际研讨会论文集10.1145/3597926.3598080(589-600)在线发布日期:2023年7月12日
    • (2023)通过知识引导发现检查客户端特定的升级兼容性软件工程及方法论学报10.1145/358256932:4(1-31)在线发布日期:2023年5月26日
    • 显示更多引用者

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片ACM会议
    ISSTA’11:2011年软件测试与分析国际研讨会论文集
    2011年7月
    394页
    国际标准图书编号:9781450305624
    内政部:10.1145/2001420
    如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许赊账提取。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

    赞助商

    合作中

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史

    出版:2011年7月17日

    权限

    请求对此文章的权限。

    检查更新

    作者标记

    1. 自动测试生成
    2. 动力学分析
    3. 静止的

    限定符

    • 研究文章

    资金来源

    会议

    ISSTA’11
    主办单位:
    ISSTA’11:软件测试与分析国际研讨会
    2011年7月17日至21日
    加拿大多伦多安大略省

    接受率

    总体接受率213份提交文件中的58份,27%

    即将召开的会议

    ISSTA’24
    第33届ACM SIGSOFT国际软件测试与分析研讨会
    2024年9月16日至20日
    维也纳,奥地利

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章指标

    • 下载次数(过去12个月)67
    • 下载次数(最近6周)8

    其他指标

    引文

    引用人

    查看全部
    • (2023)软件测试用例生成工具和技术:综述国际数学、工程和管理科学杂志10.33889/IJMEMS.2023.8.2.0188:2(293-315)在线发布日期:2023年4月1日
    • (2023)面向更真实的神经测试Oracle生成评估第32届ACM SIGSOFT软件测试与分析国际研讨会论文集10.1145/3597926.3598080(589-600)在线发布日期:2023年7月12日
    • (2023)通过知识引导发现检查客户端特定的升级兼容性软件工程及方法论学报10.1145/358256932:4(1-31)在线发布日期:2023年5月26日
    • (2022)我们可以使用依赖项目的测试套件提高库中的测试平均值吗?第26届软件工程评估国际会议论文集10.1145/3530019.3535309(294-298)在线发布日期:2022年6月13日
    • (2022)通过测试生成修复订单相关的片状测试第44届国际软件工程会议记录10.1145/3510003.3510173(1881-1892)在线发布日期:2022年5月21日
    • (2022)通过动态测试切片进行测试移植2022年IEEE第22届国际源代码分析与处理工作会议(SCAM)10.1109/SCAM55253.2022.00009(35-39)在线发布日期:2022年10月
    • (2022)使用测试框架自动生成语料库和模糊可执行文件IEEE接入10.1109/ACCESS.2022.3200510(90408-90428)在线发布日期:2022年
    • (2022)巴顿:通过机器学习和污点分析实现随机测试和混合测试的交响乐科学中国信息科学2007年10月17日/11432-020-3403-266:3在线发布日期:2022年11月11日
    • (2022)随机回归测试优先级的理论分析系统构建和分析的工具和算法10.1007/978-3-030-99527-0_12(217-235)在线发布日期:2022年3月30日
    • (2021)通过测试代码片段验证静态警告第30届ACM SIGSOFT软件测试与分析国际研讨会论文集10.1145/3460319.3464832(540-552)在线发布日期:2021年7月11日
    • 显示更多引用者

    视图选项

    获取访问权限

    登录选项

    完全访问权限

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用联机查看电子阅读器.

    电子阅读器

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享