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

时间:2013-12-03 11:25:35

标签: c macos linux-kernel gnome kde

我无法弄清楚桌面环境开发人员如何测试他的代码。通常,C或C ++程序员编译他的代码然后运行它(我不是那些程序员之一,我是网络程序员)。 所以,你通常在某种桌面环境(windows,mac os x,gnome,kde,xfce ......)上构建你的gui应用程序,播下他们如何构建和测试他们的gui桌面?

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

3 个答案:

答案 0 :(得分:2)

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

  • 单元测试 - 测试一小段代码。测试代码的行为是否符合预期。
  • 系统测试 - 在现实场景中测试整个应用程序。
  • 性能测试 - 测试应用程序或部分应用程序的性能。
  • GUI测试 - GUI元素的测试操作(不像自动测试那么常见)
  • 静态分析 - 关于类固醇的编译器警告
  • 动态分析 - 至少进行内存检查 - 检查内存分配和使用情况
  • 覆盖测试 - 检查所有代码是否已执行。
  • 形式验证测试(非常先进) - 例如检查断言/假设是否被打破。

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

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

答案 1 :(得分:2)

桌面环境

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

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

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

<强>内核

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

现在,如果您已经听说过,可以在usermode(UML)中编译和运行内核,因此一些开发人员可能会这样做。但是,一些开发人员可能也想自己测试它们(他们当然会支持当前的内核)。

答案 2 :(得分:0)

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

跨平台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