Software Testing Is Like Watercolor Painting

  • To paint beautiful watercolors, the watercolorist needs to understand many things about painting – papers, paints, brushes, brush techniques and pressure, water properties, the subject to be painted, light, composition, and other little important stuff . Meanwhile, to perform beautiful software testing, the tester needs to be knowledgeable in many things about testing – the software in test, business rules, the test machine, conditions that can vary, underlying code architecture, business goal, available testing techniques and tools, client needs, and other little important stuff. There are no shortcuts.
  • Surprising and pretty watercolor effects can sometimes be achieved by letting water and paint run on the paper by themselves. Surprising and important bugs can sometimes be found accidentally when the software tester isn’t constraining herself with a controlled scenario and is exploring.
  • Beautiful and important watercolor paintings take time to finish, it requires that the watercolorist does not rush. Testing eats up time too, and the software tester is able to deliver quality work only when she has ample time to go over  her important tests.
  • Flow of water in watercolor paintings can be seen as uncontrollable; they are affected by gravity, by wind, by the paper itself, and by other external forces. In software, business rules are similar to water in the way that they can definitely change from time to time, and are subject to the needs of customers and businesses, which software testers do not have control of.
  • Subjects for a watercolor painting can be a plein-air scenic landscape view or a powerful portrait of a respected person or flowers or letters or even feels. Software to be tested can be a PC desktop application or a website or a native mobile app or a cloud service or even a robot.
  • If a watercolor artist doesn’t exactly know what story he wants to show, he’s bound to encounter problems while putting paint on paper. If the business goal of a software feature is vague and the problem it is trying to solve is unclear, misunderstandings between requirements are sure to happen, and both software development and software testing will be a pain.

This is what happens when I think about the two things I enjoy doing. I see similarities. 😀


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.