Sunday, 18 November 2012

Testers Should Learn About Zygohistomorphic Prepromorphisms

The "testers should learn to code otherwise they will become extinct like the wooly mammoths" set of postings has started again.  Michael Bolton has previously written on 3 good reasons why it is useful to know how to program and I'm not about to re-hash those arguments again.

However, a couple of things happened recently that highlighted the knowledge gap between developers and testers and how vague "learn to code" is.

I'm lucky enough to work with a bunch of smart developers and, like the best testers, they are always learning new skills and techniques.

One of them recently tweeted from the Clojure/conj about Zygohistomorphic prepromorphisms
Could be an elaborate in-joke or could be serious, I have no idea...

Another one is learning J - which was a new language to me, didn't know we'd got past C...
though it seems my old C knowledge is limited as I didn't know these things about C nor that C could be considered a functional language

heck, even if I was to stick to learning Javascript then I'd really need to learn some of the common libraries and how they are used eg jQuery, Backbone.js, node.js - but then those pesky devs don't stand still and just write plain ol' Javascript, oh no, some of them use CoffeeScript, a language that compiles into Javascript.

Another dev is blogging about Unifying Programming and Math and explaining ( or trying to, my brain melted ) the Curry-Howard Isomorphism and Martin-Löf Type Theory. I tried using Google Translate to get it into English but it came back with the same words.

Is that the sort of learning I should be doing ? Or do the 'testers should code' brigade mean that I know enough to use page objects in Selenium and not use the Selenium IDE ?

and I'm not even going to start, but might hint, that even knowing code is not enough, testers should also have some understanding of design

Meanwhile, I am currently halfway through the BBST Foundations testing course. It's a great course, good interaction with the other testers on the course and makes you think about your testing and what you really know and don't know. It's a month long course, 20-30 hours a week in your own free time, has to be paid for and gets booked up in advance. So it attracts good and keen testers.

The latest exercise we had to do on the course involved thinking about how many tests would be required to test the square root function if a 32-bit word was passed in. This caused some confusion amongst some of the testers who were not sure what a 32-bit word was ( no, it didn't mean that hyphenated words were a test case nor that lower and upper case should also be tested ). Should I ask them what they think of heaps, call stacks, tail recursion, monads, singletons...

In the end "learn to code" is as vague as "learn to test", but makes a good attention grabbing title when used for a talk ( well, not anymore it should be binned along with the 'is dead' meme ).

Now, back to my Learn You A Haskell For Great Good! , BBST course and finishing Thinking Fast And Slow before I order The Click Moment