Watir on XP under VirtualBox on Ubuntu

Virtualization is really helpful with software testing in many ways, but I’ve always found it a bit too hard. Like, although VMWare Player is free, you need VMWare Workstation to create the machine in the first place, and if you don’t own a license you need to roll your own VMX files which is a tad fiddly.

I was looking for another way to use Watir on XP under Ubuntu and found VirtualBox. It’s cross platform, free software to run virtual machines, and is now developed by Sun. There’s an open source version, and non-open source version with more features, and both are completely free (as in beer).

The process of getting a new virtual machine up and running was quick and painless. I had it running in no time and the virtual machine runs perfectly. Nice.

Automated testing and saving money

I am embarrassed when I hear test tool sales people talk about how much money automated testing can save your organisations. I have heard them rattle off figures like ‘it’ll save you 85% of testing effort‘ and ‘it will reduce the number of manual testers that you need to employ‘.

These statements are wrong and contradict many of the lessons learned in software testing, including “Lesson 102: Speed the development process instead of trying to save a few dollars on testing”, and “Lesson 108: Don’t equate manual testing to automated testing”.

Because Watir is not a commercial tool and there are no up front licensing costs, I suppose that a return on investment doesn’t need to be justified in quite the same way. I do understand there are maintenance costs of Watir (time and effort), but if you incrementally implement Watir sensibly you can easily show the benefits as you go.

One of the best things I have heard someone say about automated testing is that it is one of the only things that can increase both quality and velocity.

For example, making sure that every line of code checked in has been peer reviewed may indeed increase quality but it may also severely impact velocity.

By contrast, doing daily builds may increase velocity, but it may also decrease quality if each build isn’t tested properly.

So, what the test tool vendors need to really say is that, automated testing, done well, can increase your quality and velocity. And while they’re at it, they may as well mention that Watir rivals many of the proprietary offerings, plus it has no licensing costs.

Software Testing Career Development

I am very interested in actively driving my own career in software testing. I believe that everyone should take responsibility for their own professional career development whether or not they get support from work to do so.

Ian Clatworthy recently shared his own professional development framework aptly named M.E.T.A. – Management, Engineering, Technology and Applications.

The framework is great in that it superbly breaks down technical professional development into four dimensions/pillars. The M.E.T.A. framework is probably better for software engineering so I have remixed it into something that suits my own software testing context better.


Leadership (Ian’s Management)


Whilst I have been in direct Management roles in the past, I currently do not work in one. I believe that it is important to demonstrate leadership no matter what role you are in. Even if your are not given the title Manager or Supervisor, or even if you don’t have people to manage, you can, and should, still demonstrate leadership. This is why I renamed Management to Leadership. For me Leadership is all about:

 

  • Using the right side of my brain - being organised, tidy & efficient (following concepts like 5S), being emotionally intelligent and aware, developing creative solutions.
  • Having a project management focus – following sound project management techniques and conducting each bit of work as a small project.
  • Writing Well – following known writing guidelines. Documenting every bit of work. Sharing all knowledge and information.
  • Communicating Well – Documenting well. Communicating progress and issues in the right format at the right time.
  • Team Building – establishing productive relationships with members of teams working in and with. I can’t emphasise how important this is.
  • Finding Informal Career Guiders – always indirectly looking out for people who you can chat to informally about career stuff. This is where I have discovered great leadership styles and techniques. I call these people career guiders because I really hate the word ‘mentor‘.
  • Being ethical – Making sure I provide value and I am honest in everything I do.
  • Sticking up for others you work with – Making sure that your fellow team mates are well supported.

Concepts (Ian’s Engineering)


I personally have chosen to focus more on the software part of software engineering. For me the Concepts pillar is all about the concepts and theories behind software design, development and testing. This is the stuff that I learnt at University and is generally timeless. For me Concepts is about ‘understanding’:

 

  • Understanding Software Development Methodologies: how IT software design and development works as a whole.
  • Understanding Software Projects: how IT software projects work.
  • Understanding Programming: knowing programming concepts and techniques.
  • Understanding Testing: understanding testing best practices, test driven development, test automation, acceptance testing.
  • Understanding User Centred Design: focusing on usability and designing for users. Paper prototyping and iterative design.
  • Understanding Design: understanding general design principles.

Tools (Ian’s Technology)


I was going to leave this called Technology but I ended up changing it to Tools as this is pillar is essentially the tools required enable the ‘Concepts’ above. These are different from concepts in that while most concepts are timeless, the tools or technologies tend to change.At present I am focusing on developing skills in using open source tools. I find these are good in that they are open and free (as in speech). Some tools I know and/or use are:

 

  • Programming Languages: such as Ruby, Python, Jython.
  • Testing Tools: such as Watir, OpenQA.org and homebrew test automation tools.
  • Collaboration Tools: such as wiki’s, defect management, blogs.
  • Versioning Tools: such as SVN, Git, Mercurial, Bazaar

I guess that one component to this pillar that doesn’t fit under the term tools are the technologies that are worth knowing about and understanding (perhaps I should call it Technology after all!). Things like:

  • Ajax (Rich Internet Applications)
  • Web 2.0
  • Social Networking
  • Tag-based Folksonomies
  • RSS

Business-focus (Ian’s Applications)


I believe it is important to understand the business of where you work, as well as the applications that support the business. Even open-source projects have business, they are in the business of providing software developed by communities of people to be used by other communities of people. I often see IT staff that do not have understanding or respect for the business. For me, displaying a business-focus means:

 

  • Understanding business goals: why I am employed in the first place.
  • Understanding business applications: what they do and how they fit into the business processes.
  • Understanding business processes: how business is conducted, with or without IT.
  • Understanding how business and IT collaborate and partnership: Hoping that the tail doesn’t wag the dog!
  • Providing value to the business: continuing to be employed.
  • Keeping up to date with the business: knowing what the business industry/competition is doing and about the other happenings in the business domain.
  • Understanding how executive management operates: because they usually pay you and maybe you would like to be there someday.

Conclusion
As Ian covers well in his post, the pillars make a great ordered list of dimensions in terms of career mobility. As I renamed his Applications pillar to my Business-focus pillar, I tend to consider my Business-focus pillar to be equally as or more important than my Tools pillar.

 

This means that my ordered list of dimensions is essentially Leadership, Concepts, Business-focus & Tools.

Like any contextual approach, everyone’s pillars will be different. This is a good thing. Although sometimes an unbalanced focus on a particular pillar can cause problems in your career. For example, focusing mostly on the Buiness-focus pillar may mean you can’t easily move jobs into a different organisation/industry when you want to.

What’s worse is not thinking about your career at all. Organisations may consciously develop their staff (as good managers do) but as staff are becoming increasingly mobile and contracted, the responsibility for career development is being pushed back upon the individual. This is when coming up with a personalised, balanced and ordered career development framework (and continually revisiting it) is so important.

Seek.com.au Rocks

I use the web a lot but I am still impressed by a little unexpected nicety.

Seek‘s maintenance message is one such thing. Instead of just telling me that Seek is down (so there!), they offer me three things to do instead of using seek at that moment. These are well worded and include expanding my skills, looking for my own business, or my favourite is offering me a game of pacman, right there, directly in the maintenance page!

Seek Unavailable


(Click to view full size)

I was also impressed with Seek when i recently emailed them a suggested improvement. Within hours i received a response saying its a great idea and thanks to people like me Seek gets better all the time. Two weeks Six months ago I emailed realestate.com.au with a site gripe, and I still haven’t heard from them at all.