基于Mock Object测试的契约不一致错误的研究

来源 :中山大学 | 被引量 : 0次 | 上传用户:L530798540
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在理想模型中,面向对象程序的单元测试应该既能全面覆盖被测试类的所有行为和状态,又能使其独立于其它类的实现。然而,由于绝大部分类都会与其它类存在依赖关系,因此单元测试的全面性和独立性无法同时满足,这就使得软件质量难以得到保证。 在单元测试中引入桩在理论上可以解决这个问题,然而当所需的被依赖类的数量较大且实现复杂时,即使是当今被广泛接受的特定桩,也会因为创建难度过高而无法在单元测试中广泛应用。这时,由于Mock Obiect更强调类间接口的交互,完全忽略被模拟类的实现,可以作为桩的合适替代品。桩和Mock Object的混合使用是在实际应用中使单元测试同时具有全面性和独立性的一个有效途径。 然而,Mock Obiect对被模拟类的极大简化使得类与类之间契约可能存在的不一致性被隐藏,涉及类间交互的单元测试用例不能测出契约不一致错误。所以本文的第一个贡献是通过理论分析和实验数据来讨论Mock Object对契约不一致错误的隐藏问题。 本文第二个贡献是提出了将单元测试用例重用到集成测试的方法,使程序在集成测试时付出较少的额外代价来修改测试用例,即可测出在单元测试时被隐藏的契约不一致错误。这种方法既保持了因为在单元测试中使用Mock Object所带来的优点,又可以在不产生新的测试用例的情况下发现契约不一致错误。为了验证本方法的可行性,本文将通过一个实验来说明通过这种重用机制,隐藏的契约不一致错误可以被发现。
其他文献
随着信息的爆炸性增长,中小型企业也需要有存储容量可扩展而价格成本相对低廉的存储解决方案来保证业务系统的正常运行,避免自然灾害和人为灾难给企业造成重大损失。本文结合中
Skyline查询是近年来数据库和数据挖掘领域的一个研究热点。给定两个d维的数据点p和g,如果点p在所有维上的取值都不比点q差,并且在至少一个维上取值比g好,则称点p支配点g。一个
电子投票以各种密码技术为理论基础,运用现代计算机和网络技术来实现投票功能。保密计票值的电子评审是一种用途广泛的特殊电子投票,该方案要求输出评审结果,即秘密地比较票数是
人脸检测与识别技术是生物特征鉴别技术中研究最多和最热门的技术之一,它已经在身份认证、安全检查、罪犯查询、人机交互等广泛领域得到了初步应用。在人脸检测研究中,构建快
随着科学技术的发展,生产规模越来越大,市场竞争越来越激烈,企业对项目管理的要求也越来越高,而有效地计划和控制工序(活动)、资源、时间三个变量是确保项目成功的关键,从而
人脸识别以其独特的优势成为当前模式识别和机器学习等领域的一个重要研究课题。高维数的非结构化数据大量出现为计算和分析带来了巨大的挑战,人脸图像作为高维数据范畴的一
医学图像三维重建是目前的一个研究热点问题,它在医疗诊断、手术规划及放射治疗规划、整形与假肢外科、虚拟手术及解剖教育中都有重要应用。由于医学图像三维重建涉及的面非
入侵检测系统已经成为互联网上最重要的防止信息系统遭非法攻击的手段之一。目前入侵检测系统发展迅速,但常规的入侵检测系统大多数都采用单一体系结构,且在系统结构和检测技
篇章的连贯性通常是由篇章内部结构和上下文表述的语义关系所决定的。篇章是指一系列连续子句、句子或句群构成的语言单位;篇章关系是指在同一篇章中,不同篇章单位之间的语义
随着Web服务的流行,Web服务技术已经从基础构建阶段走向大规模的商业应用阶段。Web服务技术的流行使得网络上可访问的Web服务的数量急剧增加,从而导致了大量的功能相同或相似的