R 需要您的帮助:在发布前测试 R



如果您使用 R,您可能想知道是否有办法为改善 R 做出贡献。这是关于如何提供帮助的另一篇文章(审查错误报告是第一篇)。

这篇文章是关于帮助测试 R 的预发布版本。

维护和改进 R 不可避免地会引入回归,即破坏以前有效的功能。当外部软件改变其行为(操作系统、编译器、库)时也会发生这种情况。导致 R 测试套件失败的回归会被快速发现并修复。导致 CRAN 软件包失败的回归通常也会很快被发现,因为这些软件包在引入回归之前通过了测试,但由于总有一些失败的软件包(目前超过 17,000 个软件包中有大约 50 个软件包在 Linux 上导致 ERROR 或 WARNING,其他平台上更多,如此处所示),因此存在忽视这些问题的风险。

忽视回归的最大风险在于自动化测试未涵盖的内容。为了让我们提高已发布 R 版本的质量,我们需要您的帮助来测试 R。

计划的 R 版本通过R-announce 邮件列表宣布,详细时间表在R 开发人员网站上。现在是好时机,因为 R 4.1 即将发布:功能冻结于 5 月 4 日,代码冻结于 5 月 11 日,发布计划于 5 月 18 日。为了修复发现的问题,必须尽早报告这些问题。

如果您愿意提供帮助,这里有一些您可以测试的内容。如果您发现任何回归,请报告它们(请参阅通过R 错误跟踪器R-devel 邮件列表报告错误)。如果您发现的错误不是回归(新功能中的错误或早期版本中存在的错误),也请报告它们。

在所有平台上

请小心不要损坏您现有的 R 安装。仅对测试使用新的软件包库。如果可能,最好对测试使用虚拟机。

测试交互式内容(安装、前端、交互式 R 软件包、手动安装)。测试与外部库交互的内容。

如果您使用 R 且有自己的程序和数据、自己的工作流、安装或设置 R 的特殊方式,请进行测试。不寻常的设置最有可能触发回归,这样您最有可能直接受益于修复。如果您正在维护一个 R 软件包,并且有未自动运行的测试,因此在 CRAN 检查期间也不会运行,请立即运行它们。

在 Windows 上

您可以使用虚拟机(例如 virtualbox)进行测试(有一些 免费虚拟机 可用于限时测试)。使用虚拟机避免了损坏现有 R 安装的问题,并允许从头开始测试安装,包括依赖软件。

R 的预发布版本可从 此处 安装。过去最可能/已经发现问题的某些领域

  • 测试 Windows 安装程序。还可尝试使用不同的非默认选项。4.1 中的安装程序有一些改进,因此也可能存在回归。

  • 测试交互式 R 软件包,特别是那些使用图形界面或外部软件(包括 Tcl/Tk、Java 等)的软件包。

  • 使用非 ASCII/非欧洲字符进行测试。如果您通常使用包含此类字符的数据,这将特别有用。请仅查找回归:Windows 上的编码支持存在许多已知限制,一旦有稳定的版本以 UTF-8 支持作为本机编码,这些限制应该可以得到克服。不过,本机编码支持的所有字符都应该可以正常工作,即使它是非欧洲语言的编码也是如此。

  • 使用文件名中包含不寻常字符(空格等)进行测试。请仅查找回归,因为不鼓励使用此类字符,因此理想情况下,如果您已经在 R 中使用此类名称,请对相同数据进行测试。

  • 测试 RTerm,即 R 的命令行前端。4.1 中的行编辑实现发生了重大更改,修复了非欧洲字符的问题。潜在的回归也可能影响对 ASCII 和欧洲字符的使用,尽管可能性较小。

  • 测试 R 的图形前端 RGui。

在 macOS 上

请参阅 macOS 开发人员的 R,了解 4.1 alpha 版本的二进制文件和更多信息。特别有趣的是在默认情况下进行更严格的安全检查的 Big Sur 和 M1 上进行测试,包括使用模拟运行的 Intel 构建和本机 64 位 ARM 构建。

  • 测试安装和 macOS GUI 前端。理想情况下,使用非默认设置进行测试。测试 R 安装和管理 中的文档,检查它是否足够最新并与您系统上的体验相匹配。

  • 使用非欧洲/非 ASCII 字符进行测试。在 macOS 上,R 默认使用 UTF-8 作为本机编码,因此所有字符都应该起作用。4.1 对 Unicode 支持进行了一些改进,因此 macOS 上也可能会出现回归。

  • 按照 R 安装和管理 中的说明从源代码构建 R。当必须处理操作系统设置和安装依赖软件时,这在干净/新系统上特别有用。

在 Linux 上

  • 在您最喜欢的发行版上从源代码构建 R。特别有用的是对不太常见的发行版和非默认构建/configure 选项进行检查。

  • 测试交互式 R 包,理想情况下使用您自己的数据,特别有用的是涉及外部软件的检查。

  • 如果您在并行包(mclapply 等)中使用分叉支持,并且在该 API 上构建了自己的应用程序/数据/集群,请使用新版本对其进行测试。

在 Solaris 上

如果您在 Solaris 上使用 R,请测试与上述类似的任何内容。这可能是目前测试最少的 R 平台。在使用补充 Unicode 字符时,Solaris 可能会出现 R 中的编码问题(有点像 Windows,但在 Solaris 上可以测试不同的代码路径)。

定期提供帮助

如果您有兴趣以这种方式反复帮助 R,则创建检查列表可能很有用,可能还包含一些代码和数据,以便您可以在下一次 R 发布之前轻松重复测试。这种类型的帮助对于较小的 R 版本也很有用。