c-桌面环境开发人员如何测试他的代码



我不知道桌面环境开发人员如何测试他的代码。通常,一个C或C++程序员编译他的代码,然后运行它(我不是那种程序员,我是一个网络程序员)。所以,你通常在某种桌面环境(windows、macosx、gnome、kde、xfce…)上构建gui应用程序,了解他们是如何构建和测试gui桌面的?

如果这是一个愚蠢的问题,那么内核程序员如何测试他的代码呢?例如linux内核?你怎么知道你刚刚写的东西有效?

测试是一个非常宽泛的术语,有很多类型(部分列表):

  • 单元测试-测试小块代码。测试代码是否按预期运行
  • 系统测试-在现实场景中测试整个应用程序
  • 性能测试-测试应用程序或其一部分的性能
  • GUI测试-GUI元素的测试操作(不像自动测试那样常见)
  • 静态分析-类固醇上的编译器警告
  • 动态分析-至少检查内存-检查内存分配和使用情况
  • 覆盖率测试-检查是否执行了所有代码
  • 正式验证测试(非常高级)-例如,当断言/假设被破坏时进行检查

内核代码可以通过使用第二台计算机(主机)进行连接来调试。虚拟机使用相同的主体并简化了设置,但不能始终工作,因为HW可能不存在于来宾虚拟机中。内核(所有操作系统)具有用于打印进度/问题的跟踪机制。在Linux中,通过dmesg命令显示简单的跟踪(打印循环缓冲区)。

用户模式代码可以通过调试器轻松地停止和调试。

桌面环境

在现实世界中测试桌面环境可能有点烦人,所以开发人员必须注意他犯的每一个小错误,如果他不这样做,他将很难开发DE。

正如@egur所说,有多种方法可以测试他的代码,最简单也是最重要的(当然,在某些情况下不能使用),他可以在简化的程序中测试代码。

桌面环境由许多部分组成,但是,在您的情况下,我想您谈论的是负责几乎所有事情的会话管理器(或窗口管理器)。因此,如果他要测试它,他只需退出当前的DE并使用新的可执行文件。如果出现错误,他可以随时备份旧的可执行文件,或者使用一些命令行文本编辑器(如vim或nano)修复错误代码。

内核

这很难测试,一些内核开发人员只需编写一些代码,确保它良好并进行编译,然后简单地让他的用户进行测试(通过确认代码等),然后就可以将其提交到内核代码中。这背后的原因是,开发人员可能没有测试代码所需的硬件。

现在,如果你听说过,你可以在用户模式(UML)下编译和运行内核,所以一些开发人员可能会选择它。然而,一些开发人员也可能想自己测试它(他们当然会在出现问题时备份当前内核)。

测试桌面应用程序的方法与在无人协助或远程控制应用程序的方式有关。

跨平台GUI测试自动化工具(我不知道这个项目是否有web)项目可以帮助您选择解决问题所需的接口/库。

在Linux[1]中,使用可访问性库来控制应用程序,您有适用于Windows的Cobra[2]和适用于MacOS的PyATOM[3],但我不知道在这些平台中使用什么样的技术。

  1. http://ldtp.freedesktop.org/wiki/
  2. https://github.com/ldtp/cobra
  3. https://github.com/pyatom/pyatom

最新更新