在OS X或Linux上进行测试和调试的人应该知道哪些基础知识?

时间:2009-04-21 03:20:51

标签: debugging unix testing

我在镇上有一些高级QA工程师几天,我正准备测试我们移植到Linux和OS X的应用程序。这些人很聪明。虽然他们不是程序员,但他们确实理解如何打开内存转储来查找函数指针,以及编写简单的python以帮助自动化他们的工作。但他们总是使用窗户,只熟悉那里的工具。

所以我的问题是:你会教他们什么来帮助测试在OS X或Linux上运行的本机应用程序?

我的一些想法是:

  • 文件系统的基础知识,其中配置文件是(/ etc),其中日志文件是(/ var / log)
  • 如何使用locate,find,grep和co。
  • 使用gdb检查coredumps

4 个答案:

答案 0 :(得分:1)

首先想到的两件事

  1. 学习shell(sh,ksh,bash或其他任何用途)
  2. 了解如何使用编辑器(vi / m,emacs,pico甚至?)

答案 1 :(得分:1)

如果他们不害怕gdb和analyzing core dumps那么他们肯定应该知道valgrind

知道如何做system call tracinglibrary function call tracing也很有帮助。

如果他们需要杀死http://en.wikipedia.org/wiki/Kill_(command)叛逆过程,了解信号http://en.wikipedia.org/wiki/Signal_(computing)会有所帮助。

如果他们需要在Windows和Linux之间转换文本文件,则tr命令http://en.wikipedia.org/wiki/Tr_(Unix)是他们的朋友。

如果他们需要下载文件wget是一个易于使用的命令行工具。

总的来说,关于最常用的Linux shell bash的正确知识应该是一个基本要求。

有一个(非常基本的)Windows to Linux: A Beginner's Guide可能有助于克服最初的障碍。还有一些文章是here

这是A beginner’s introduction to the GNU/Linux command line

答案 2 :(得分:0)

我会教你如何设置ulimit以便可以创建核心文件。我可能还会提供有关基本信号编号及其可能含义的信息。您还可以向他们概述ftp,以便将文件移动到更舒适的位置以及CR LF问题的基础知识。我会向他们解释UNIX和Windows之间的主要区别(斜杠是不同的)。我还会考虑设置一个samba共享,以便他们可以使用他们选择的工具来编辑文件。

教他们如何重定向输出以及如何使用tee可能是他们可能从中受益的东西。文件权限的基础是必须的。如果禁用telnet端口,解释ssh和telnet可用于访问这些远程盒可能会有所帮助。最后,我会教他们删除文件没有像Windows一样的撤消功能。

您可以考虑解释ps -ef以及简单的管道和grep。我会向他们展示如何使用kill -9来处理后台进程并杀死进程。 top,xload和pstree等工具可以帮助他们解决问题。

答案 3 :(得分:0)

我会教他们使用简单的unix工具,比如time / sed / grep /甚至perl。 Shell脚本和“许多简单命令”的哲学。

另一方面,学习如何使用更复杂的工具,例如

  • 的valgrind
  • GDB
  • strace的
  • etrace

编辑:当然,需要一些文本编辑器(vim / emacs / mcedit / etc)。