Why should (agile) testers have programming skills? They are testers, not programmers. Why to know how to code, if it isn’t your job to do so?
Well, there are several reasons; by having programming skills, you
- can assist the developers in creating/ reviewing/ fixing (unit) tests
- can act as a peer in an eXtreme programming
- know how programmers work/ think which improves collaboration
- can actively help in creating and maintaining the test automation framework
- can create & maintain automated tests (if programming skills are needed for this)
- You can script/ automate your daily work.
- It’s fun! 🙂
My favorite programming language is Ruby. There are several reasons to use it: It’s open source, it’s completely object oriented, it’s state-of-the-art, there’s a great community, „it focusses on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write, and there’s a lot of great documentation available“. (Quote from http://www.ruby-lang.org/en/).
Ressources to learn Ruby and to get support:
- http://www.ruby-lang.org/ Official Homepage, containing introductions, tipps & tricks for people with knowledge in other programming languages, and lots of other materials.
- http://www.ruby-forum.com/ English bulletin board
- http://forum.ruby-portal.de/ German bulletin board
- http://www.ruby-lang.org/en/community/mailing-lists/ Mailinglists
- Everyday Scripting with Ruby: For Teams, Testers, and You, by Brian Marick: Book for absolute programming newbies, you are guided through the different aspects of the ruby programming language by a lot of daily-work-examples from the praxis.
- Humble Little Ruby Book Free Ruby ebook
- Read Ruby 1.9 Pre-Version of a ruby book to be published under a CC-License
- Ruby Best Practices Free Ruby book that is stating that all of us can write better ruby-code.
- Learn to program Ruby-Tutorial for programming beginners.
(Last 4 items quoted from „Der Schockwellenreiter„)
In my daily work I’m using Ruby really a mostly to extend and build the test automation framework, to get data from the bug tracking system and create statistics from it, create statistics from the test automation results, merging data from different excel sheets, etc. but also in other areas.
As listed above, a lot of other things can be done by having some programming skills, so go for it!