Monthly Archives: July 2012

The Dogs of Bangalore

Bangalore Street Dog

In Bangalore, all of the street dogs that I saw were similar. Tight, short fur, about 25 pounds, and generally the same size and shape. I thought that was strange. In the US, the stray dogs come in many sizes, shapes, and colors. The US strays are usually mixed breeds, either un-wanted, lost or feral.

Since then, I’ve come to learn that these aren’t stray dogs as we in the US are familiar (you know, like from Lady and the Tramp).  These are actually called “Village Dogs” and are a distinct family of dog types.

Our pet dogs were once wild, then domesticated by our ancestors. The dogs were selectively bred to create new breeds.  Not so with these village dogs in Bangalore. These village dogs are wild, though have evolved to have a symbiotic relationship with humans. The wild dogs learned to hang out in villages and scratch out a living along-side human settlements.

Bangalore Village Dog

National Geographic recently featured several cool articles about dog DNA and the origins of our favorite breeds.  One of these articles introduce me to village dogs, describing the research being performed at Cornell University.

Funny what you can learn while waiting for the doctor.

Customer-Driven Quality

A long time ago, in a conference room far away, our QA organization got together for an offsite meeting, a chance to get away from the hustle and bustle of our day-to-day projects. A chance to step back and think about what is important and perhaps think of new ways to improve our quality.

The first exercise as a team was to define quality. We brainstormed in separate teams, writing dozens of yellow sticky notes. Then, as a group we reviewed all of the ideas, grouped similar items into themes, and started pulling together a comprehensive definition.

We ended up with a large pile of definitions; each one seemed valid by itself. One pile was around meeting a number of “Quality Attributes,” another pile all about following processes and meeting criteria. Another pile was all about defects (more precisely, the lack of defects). And on and on.

The resulting definition was very comprehensive, and complex. One example, we ended up with 37 different quality attributes1, and that was just from 1 pile of sticky notes.

Continue reading

Review: Udacity CS258 Software Testing

I’ve been taking the Udacity course on software testing, CS258.  The class has the catchy title: Software Testing, How to Make Software Fail.  It’s taught by John Regehr, a CS professor from the University of Utah, with assistance from Sean Bennett. The class is entirely online and free. This class is a great way to learn how to test software.

Prerequisites

The stated prerequisites are programming experience.  This is definitely true, you will be writing Python code to implement your tests.  I started the course without any Python experience, and I don’t code much in my day job, but I’ve been able to hack my way along. If I were just starting, I would do 2 things differently. First, I’d take a tutorial on Python and get some experience with the language. Just the basics, like built in types, syntax, and flow control.  Second, I’d install a Python IDE on my local system to do some the exercises offline, and keep my work for building upon it later. However, I’m getting along without an IDE, so feel free to jump in feet first.

The course

Here is the introduction on YouTube.

You don’t need an IDE or to install anything. All of the interaction is through your browser.  Each lesson is bite-sized at 1 to 5 minutes long, with frequent simple quizzes to keep you engaged. This format makes it easy to stay engaged and to take lessons incrementally (squeezing 10 minutes in between your meetings, for example).

An IDE is useful, the server side execution of your code can be slow. If you take an incremental approach to testing, you are probably better off running your tests locally, then submitting for credit.

If you have any questions, or want a hint on the exercises, there is a vibrant message board associated with the class.

Life is nothing without some irony. The grading system has a few bugs in it. In one case, it told me that I had found all five bugs, but after reviewing the results, there were a couple of the bugs that my tests would not have found.

Continue reading