Tuesday, April 3, 2012

Hiring a recent college grad for an automation position?

As much as Computer Science has evolved.  Software testing as a field of study hasn't.  There isn't a simple Major or minor in Software Testing, nor is there many trade school that specialize in training software testers.  So for the time being, if you're hiring a software testing intern or a junior/entry level tester, you're probably hiring a Computer Science grad.  So what sort of classes you might want to look for in a recent graduate that might make good testers?

For me, these are probably some of the classes I think might be useful for test automation.


  • Parallel Programming - Multiple reasons for this..  May be helpful  in load testing, distributed testing, and leveraging multi-threaded design to speed up slow test scripts.  Some tests may involve coordination between multiple machines and having a good grounding in Parallel programming techniques and patterns becomes very helpful.
  • Language processing - Many tests involve verifying data.  Often enough you might have to pluck out a small piece of data out of a whole sea of data.  Another application where language processing is useful is in framework development and cross environment scripting.  Often times when working with bridging different technologies.. like Java to JavaScript in a typical Selenium test requiring a JavaScript callback, one will need to sometimes write code that deals with transforming data and statements, then passing it translated into a different language.  This is also helpful in framework data processing.  Since not all apps are created the same, the way you express data you feed into your test will also have unique needs.  Having a good grounding in language processing will give you an advantage when having to create custom  parser for data driven tests.
  • Software Engineering Course  - Being able to read software design docs is very essential to an automation engineer.  Besides understanding what needs to be tested, it allows the test engineer better write test harnesses when necessary.  
  • Software Design Patterns - One of the biggest Achilles heel of any test automation project is the long term maintenance.  After about 2 years of doing automation, you'll probably notice that many tests would have been broken by a major re-factor performed to keep up with technology.  The key to successful automation project is to be able to maximize reuse and fix broken tests as quickly as possible.  This is where good design and programming patterns come into play.  Also because many automation tools are very heavy-weight tools that consume lots of system resources, good design patterns like Fly-weight patterns can reduce the use of system resources and execution time required for a test to run.



Please sure your thoughts with me in the Comments.

No comments: