views:

100

answers:

4

I have a few of our senior QA engineers in town for a few days and I am in the process of prepping them for testing an app that we are porting to Linux and OS X. These guys are smart. While they are not programmers they do understand things like how to open memory dumps to find the function pointer, and write simple python to help automate their job. But they have always used windows, and are only familiar with the tools there.

So my question is: What would you teach them to help test a native application running on OS X or Linux?

A few ideas I had were:

  • Basics of the file system, where config files are (/etc) where log files are (/var/log)
  • How to use locate, find, grep and co.
  • Using gdb to examine coredumps
+1  A: 

First two things that come to mind

  1. Learn the shell (sh, ksh, bash or whatever they are going to use)
  2. Learn how to use an editor (vi/m, emacs, pico even?)
hhafez
A: 

If they are not afraid of gdb and analyzing core dumps then they should definitely know about valgrind.

Knowing how to do system call tracing and library function call tracing is very helpful, too.

If they need to kill http://en.wikipedia.org/wiki/Kill_(command) a renegade process knowing about signals http://en.wikipedia.org/wiki/Signal_(computing) helps.

If they need to convert text files between Windows and Linux the tr command http://en.wikipedia.org/wiki/Tr_(Unix) is their friend.

If they need to download files wget is an easy to use commandline tool.

Overall a decent knowledge about the most commonly used Linux shell bash should be a fundamental requirement.

There is a (very basic) Windows to Linux: A Beginner's Guide that may help to overcome the initial hurdles. Some more articles are here.

Here's A beginner’s introduction to the GNU/Linux command line

lothar
A: 

I would teach tham how to set ulimit so that core files can be created. I might also include information on basic signal numbers and what those might mean. You might in addition give them an overview of ftp to move files off to where they are more comfortable as well the basics of CR LF issues. I would explain to them the primary differences between UNIX and Windows (the slashes are different) . I would also consider setting up a samba share so that they can use the tools of their choice to edit files.

Teaching them how to redirect output and how to use tee is probably something they might benefit from. The basics of file permissions is a must. Explaining that ssh and telnet are available to access those remote boxes might help if telnet port is disabled. Finally I would teach them that removing a file has no undo feature as windows has.

You might consider explaining ps -ef as well as simple pipes and grep. I would show them how to background processes and maybe kill process with kill -9. Tools such as top, xload, and pstree might help them out.

ojblass
A: 

I would teach them to use simple unix tools, such as time/ sed / grep / maybe even perl. Shell scripting and the "many simple commands" philosophy.

On the other side, learn how to use more complex tools such as

  • valgrind
  • gdb
  • strace
  • etrace

EDIT: Of course, some text editor (vim/emacs/mcedit/etc) is needed.

Tom