进度同步 20230519¶
本周工作¶
- 将参数设置界面放入 Idea 设置界面中
- gradle项目信息识别,自动获取编译路径
- 继续完成遗传算法
需要将 kotsuite jar 包发布到 maven repository 中才能发布插件,因为插件需要自动下载 jar 包(需要开源)
算法¶
- 遗传算法
- 变异
- 重组
- 适应度计算
- 反编译输出 java 文件
- 输出为符合 JUnit 规范的测试用例
- 测试用例重用
- 断言生成
- AndroidTest 生成
- 测试用例去重
插件¶
- Plugin 在install 的时候把依赖的jar libs(KotSuite Location, library location)同时安装并记录且默认使用该位置的资源
- Java home地址配置放到插件设置界面里面
- include classes or package: 右键单击选择了package或者class,就对把选择的对象作为目标需要处理的对象。
- 对random和ga做补充说明,如何选择合适的生成策略,是否需要选择
- 没有找到对应的class文件:如果项目没有触发过编译,需要工具增加编译指令,先执行编译,再执行生成策略
- 编译路径选择问题:[main] ERROR org.kotsuite.analysis.Analyzer - Classes Directory not exists: F:/work/OPPO_Project/BuildPlugin/app/build/tmp/kotlin-classes/debug/
- 任何执行过程中的异常都要能正常的显示异常原因并且做相应的处理,需要及时中断的要马上中断返回。
- 执行时间:需要给出每个阶段的执行时间?长时间卡在某个阶段没有反馈
反馈¶
- 7月份提供相对完整的程序,8月份结项
- 下周二(5.23)提供插件新的版本、列出遗留工作(邮件)
- 不要把 jar 包发布到公开仓库中,插件安装时指定一次 jar 包的位置
- 测试用例削减:满足最大覆盖率的前提下,使用最少的测试用例
- 生成断言:当前程序是正确的前提下生成断言(用于回归测试)
- 字符串(正则表达式)覆盖率低:很难达到很高的覆盖率
- 可读性:
- 测试用例名称:有没有什么策略? 无法完成
- 后续给人工写的测试用例看看可读性能不能提升
- 不可行的原因
- 测试用例质量不高:
- 覆盖率不高:String 类型覆盖率很低
- 对于什么类型的效果不好,对那些类型的效果很好
- 能否发现程序中的错误:不可以
- 提供一些内部单测用例和编码规范
- 稳定性:不能卡死,要能稳定执行下去
- 效率达标:和 EvoSuite 形成对比,不能差距太大 —— 从技术的角度做分析
- 能不能给项目架构







