记一次使用eclemma的蛋疼的测试经历

简介: 软件测试第二次大作业是单元测试,最后要进行一个覆盖测试,用到插件eclemma。由于被测程序带有一个GUI界面,设计器要生成一大堆代码,主要用于创建和设置控件。

软件测试第二次大作业是单元测试,最后要进行一个覆盖测试,用到插件eclemma。由于被测程序带有一个GUI界面,设计器要生成一大堆代码,主要用于创建和设置控件。其中有些代码是绑定回调的,由于我的单元测试中直接调用了回调方法,没有经过闭包(xxxListener),导致闭包里的代码都是红的。

我的想法是专注于计算部分的正确性就可以,界面是设计器生成的我也没必要管它。我的用例把计算部分每个分支都覆盖了,但是由于上述原因,实际的覆盖率只有93%多一点,而作业要求是95%。

于是我开始想办法能不能屏蔽掉initComponent和构造器,结果发现没这个功能。

为了验证我的想法,即是不是一些其他代码干扰造成的,我找了个例子,果不其然。

fig008.jpg

上图的程序只有一个类HelloWorld,也是启动类。类里面只有一个方法main。然而由于这个类不是抽象的,所以编译器会自动生成个构造器。

可以看出,main的覆盖率是100%,但是就是由于有这么一个构造器,下降到了91%。而这个启动类是没必要实例化的,插件又不提供屏蔽功能,导致数据受到严重干扰。

什么垃圾插件,完全不考虑实际的需求。设计的人也是脑子有坑。

相关文章
|
编解码 对象存储
阿里云视频转码转码模板-配置工作流
阿里云视频转码转码模板-配置工作流
235 0
获取虾皮全网站的商品详情信息的Python代码
获取虾皮全网站的商品详情信息的Python代码
|
2月前
|
人工智能 自然语言处理 数据库
超越传统搜索:RAG如何让AI更懂你
超越传统搜索:RAG如何让AI更懂你
476 109
|
Java
Java实例详解
Java实例是通过类创建的对象,其核心在于将抽象的类定义转化为具体的实体。类作为对象的模板定义了属性和行为,而实例则是这些定义的具体实现。通过`new`关键字可以创建实例,并利用点运算符访问其属性和方法。实例拥有自己的生命周期,从创建到使用直至被垃圾回收机制自动清理。此外,实例变量和静态变量的区别在于前者属于单个实例,后者则为所有实例共享。理解Java实例的概念及其管理对编程至关重要。
485 15
|
关系型数据库 MySQL 数据库
mysql 不需要使用密码就可以登录
最近发现一个问题, 就是我等了mysql客户端可以不输入密码. 直接输入mysql -u root 回车 或者 输入一个错的密码,都可进入到下面的界面. 在Navicat不用输入密码, 或者数据错的密码都可以连接数据库, 这比较愁人.
784 0
mysql 不需要使用密码就可以登录
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
消息中间件 Prometheus 监控
RabbitMQ性能调优指南
【8月更文第28天】RabbitMQ 是一个非常流行的消息队列中间件,它支持多种消息协议,并且可以轻松集成到各种系统中。随着应用的扩展,确保 RabbitMQ 在高负载环境下能够高效稳定地运行变得至关重要。本文将深入探讨如何通过配置、监控以及最佳实践来优化 RabbitMQ 的性能。
2166 1
|
前端开发 测试技术 API
vite项目怎么build打包成不同环境的代码?从而适配不同环境api接口
vite项目怎么build打包成不同环境的代码?从而适配不同环境api接口
735 0
|
XML Java 数据处理
Android:RecyclerView封装,打造列表极简加载
此库的封装,除了刷新加载库使用了SmartRefreshLayout,其他的都是自己从0到1的开发,目前,自己已经在项目中使用,暂时没有出现任何问题,当然了,后续,也会不断的对其进行优化,增加一些其他的功能,希望有需要的小伙伴,长期关注。
506 0