测试功能

测试早期访问版本和非永久性功能

也许对 OpenJDK 项目贡献最有价值的方法是在即将发布的 JDK 早期访问版本上编译和测试您自己的应用程序,并提供对非永久性功能(如实验性功能、孵化器模块和预览功能)的意见。

通过邮件列表提供反馈非常有价值。对于许多应用程序来说,这仅仅是在您的持续集成系统中添加一个分支,并设置您需要测试的版本。

JDK 与各种框架和工具的任何早期集成也是一项重要的贡献。在尽可能接近真实情况的情况下测试非永久性功能,然后提供反馈非常有价值。

通过使用新的语言功能重写旧代码来尝试新的语言功能,比较代码的可读性和性能将带来非常有价值的反馈。

您可能认为,一旦某个功能成为预览功能,事情就完成了,无法重新设计。大多数情况下,一个功能可能会从一个预览版本演变到另一个预览版本,并进行小的更改以响应反馈,直到它达到成为最终和永久功能的状态。但这并不总是这样。一个功能仍然有可能被完全撤回,但这被认为是罕见的。这种情况发生在原始字符串文字 (JEP 326) 上。

在原始字符串文字的公开审查之后,虽然它是一个预览功能,但导致了它的撤回。在功能设计、规范编写和实现方面已经投入了大量工作。但事实证明,它仍然没有达到其最初的设计意图。因此,讨论的结论是重新设计它。

并非所有预览功能都会发生这种情况,但撤回仍然有可能。正如您所见:您的反馈很重要!

提交错误报告

错误报告的第一个价值是,如果您在使用某个特定功能时遇到问题,提交错误报告会记录这个问题。每个人都可以知道它,并开始在关于如何处理它的评论中进行讨论。

您需要提供以下内容才能生成一份好的错误报告。

  1. 您遇到的问题的描述,尽可能详细。
  2. 您在遇到错误时运行的环境;您的操作系统;您运行的 Java 版本;任何其他相关细节。
  3. 您可能使用的任何软件,这些软件可能对您遇到的问题有影响。
  4. 如果可能,提供一个重现步骤。这是修复错误的关键

如果您需要提交错误,您可以访问 JDK 错误系统(如果您是 OpenJDK 作者)。如果不是,您可以提交问题到 https://bugreport.java.com/

测试第三方库

Java 的一大优势是,开发人员面临的大多数问题都已经解决,并且可以使用第三方库将其整合到您的程序中。也就是说,这也需要库维护人员付出一些努力,以确保代码在以后的版本中继续运行。

为 Java 做贡献的一个好方法是在最新版本和下一个版本的早期访问版本上测试您最喜欢的库,并将任何问题报告给这些库的维护人员。我相信他们也欢迎代码贡献,但这取决于他们!

质量推广计划

质量推广计划 推广使用新的 OpenJDK 版本测试开源项目。它有助于检测 OpenJDK 中的错误,以及其他开源项目以支持当前版本的 Java。如果您参与了开源项目,您应该认真考虑加入这个免费的计划。

使用和测试长期项目

使用他们提供的早期访问版本检查 Loom、Valhalla、Panama 等项目也非常有价值。您可以在 OpendJDK GitHub 页面 上找到它们。