Sunday, August 7, 2011

Procedural or Object Oriented? Which one should a Test Engineer learn first?

I just read a discussion thread on LinkedIn where this very same topic was being bounced around. The sentiment of the commentators, until I arrived that is <evil grin>, was that it would be easier for a Test Engineer to make a transition from Object Oriented programming (i.e. C++) to procedural programming (Ruby, Python, Perl). I challenge that thought and believe that learning a procedural language before indulging in the OO world would be far more beneficial.

Further I'd argue that a person that learns a procedural language before diving into OO would have a much easier time learning OO principles since they would already be familiar with at least one part of the equation (i.e. procedures).

Procedural languages are actually a very good fit for automation. Since tests are usually a set of procedures performed with test data that is usually external (if you want to achieve any kind of repetition in your tests that is), tests can be designed with ease.

And further, further more :) you can design your tests using an object oriented approach in Ruby, Python or Perl see below links:

Perl: http://perldoc.perl.org/perltoot.html
Ruby: http://www.ruby-lang.org/en/
Python: http://docs.python.org/tutorial/

That's not to say that you cannot do any of these things or learn the same principles in C++, but the question is, why would you? All the tools you'd be using already support the same Object Oriented principles that in the future you'll be able to apply when diving into C++ if you so desire.

2 comments:

  1. It's been a pleasure reading your blog. I have bookmarked your website so that I can come back & read more in the future as well.

    ReplyDelete
  2. I really love to visit and read articles which is about web marketing. It helps me a lot in boosting up my web market. It gives me more time to do other things I want to accomplish.

    ReplyDelete

Creative Commons License
VGP-Miami Web and Mobile Automation Blog by Alfred Vega is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.