基于搜索的JUnit测试生成中的Java企业版支持与HOMI方法的软件性能优化
一、Java企业版支持在搜索式JUnit测试生成中的应用
在Java单元测试生成领域,Java企业版(JEE)应用带来了前所未有的挑战。传统的Java单元测试生成工具难以应对JEE应用的复杂性,因此对EvoSuite单元测试生成工具进行了扩展,以支持JEE的核心特性。
1. 模拟上下文的处理
默认情况下, InitialContext 的模拟类无法解析任何对象查找,会返回 null 。但它会跟踪搜索过程中请求的所有对象。若有对象被请求,EvoSuite的测试集群会扩展额外方法来实例化这些对象,并通过JNDI使其可访问。为避免测试间的依赖,每次新测试执行时,模拟的JNDI解析会重新初始化。
2. 实证研究
- 研究问题 :主要探讨JEE扩展对分支覆盖率的影响。由于依赖注入缺失可能导致许多失败测试为误报,自动检测故障(如抛出未声明异常)并非易事。即使处理了注入,被测类仍可能引发空指针异常,显示实际的错误。
- 实验设置 :
- 案例选择 :选择用于演示JBoss EAP/WildFly应用服务器的JEE示例作为案例研究,共包含247个Java类。
- 实验运行 :对每个类分别运行带和不带JEE扩展的EvoSuite,每个被测类运行30次,总计运行14,820次。使用Ev
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



