I have been doing a lot of interviewing lately. First of all, if you are interested in coming to sunny Raleigh, NC to work as an SDET on my team, let me know! We are hiring.

Second, I want to give people a flavor of what to be prepared for in an interview.

In a typical interview here we ask you to code up some function on the whiteboard and then discuss test cases for the function.

String functions in particular are popular. So something like code a function to reverse the words in a string: “The cat jumped over the fence” to “ehT tac depmuj revo eht ecnef”.

The best approach for coding is to first think about the algorithm. For example, write down on the white board the most common simple example, then think through the algorithm. Once you have that, code it. Typically the coding should be done in about 20-30 minutes, so if it seems your algorithm is not simple you are probably doing something wrong.

Then come up with interesting test cases for it:

A common case: “I went to the park”

Edge cases:

really short: “A”, “”

really long (say a book)

Extra spaces:

“  I went    to    the park  ”

“I went    to    the park”

“  I went to the park”

“I went to the park ”

“ I went to the park ”

Tabs (is this whitespace?)

Test cases with non-alpha characters would also be interesting.

You get the idea.

Another one might be insert an element into a sorted linked list. You can look on the internet for other types of coding questions.

It is also good to think about:

- running on different language OS, or different language VS (say a far east language, or bi-directional language)

- performance (how fast is it) and stress (e.g. memory leak detection)

- usability

and other types of non-functional testing.

You might also be asked to test some piece of software, like the file open dialog in excel, or some object, like a tire, coffee cup, or battery.

I hope that helps, and happy interviewing!

Ed.