Tuesday, January 22, 2013

Software testing versus Ecology

Common question when I meet other testers is "How did you start as a Software Tester?"

Many of often surprised when I say that in a previous career I was an Ecologist and they wonder how a training in Ecology could support a career in Software Testing.

When I was studying in Ecology, I was often asked what Ecology was - my standard answer (as that was Eons ago and predated google and wikipedia!) was "Ecology is the study of the interaction between  organisms and their environment." Which today as I think about it, is pretty much what I do when I test software.

If I actually look at the current definition of Ecology on Wikipedia I see:
"Ecology (from Greek: οἶκος, "house"; -λογία, "study of"[A]) is the scientific study of the relationships that living organisms have with each other and with their natural environment. Topics of interest to ecologists include the composition, distribution, amount (biomass), number, and changing states of organisms within and among ecosystems. Ecosystems are composed of dynamically interacting parts including organisms, the communities they make up, and the non-living components of their environment. Ecosystem processes, such as primary production, pedogenesis,nutrient cycling, and various niche construction activities, regulate the flux of energy and matter through an environment. These processes are sustained by the biodiversity within them. Biodiversity refers to the varieties of species in ecosystems, the genetic variations they contain, and the processes that are functionally enriched by the diversity of ecological interactions."

Whereas  the current definition of Software testing on Wikipedia I see:
"Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.[1]Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of findingsoftware bugs (errors or other defects)."

Personally i think what i actually do could be better reflected by a few updates on the Ecology definition!
What do you think of this as a definition?
Software testing is the study of the relationships that software programs have with each other and with their environment. Topics of interest to testers include the composition, distribution, amount, number, and changing states of programs within and among systems. These systems are composed of dynamically interacting parts including end users, the communities they make up, and the non-living components of their environment. System processes, such as requirements, system integration, data integrity, and various niche construction activities, regulate the flux of data and matter through an environment. These processes are sustained by the diversity within them. Diversity refers to the varieties of users in the systems, the variations they perform, and the processes that are functionally enriched by the diversity of their interactions."

Finally starting?

I'm not sure why, but after I started up the blog, seems like life got in the way and I really didn't go anywhere with it.  I seem to have a lot to say, and here's hoping writing it will help me think clearer and communicate better!

Friday, August 5, 2011

So how do you write TestCases?

So how do you write TestCases?

Had philosophical discussion (more like disagreement) with a co-worker about the purpose, use and WAY to write TCs.

I work for a company that renders images… So let’s take a look at the very basic functionality of zoom …

For the sake of argument let’s assume I have a User Story “As a user I want to be able to zoom the image so that I can more easily look at small details.”

So as a user myself, I start thinking about my expectations on zoom…
  • Zoom in
  • Zoom out
  •  Reset
  • Default zoom
  • Remembering my changes

And then I multiply by the various ways I can execute on those expectations based on my knowledge of the system…

And then I multiply by the various parts of the system that could interact with the feature…

And in the end I am likely to end up with ~15 Functional TCs, maybe ~2 Regression TCs and 1 Smoke TC.

My cohort on the other hand will end with 3 total – 1 Functional, 1 Regression and 1 Smoke.

So how do you write TCs? Are you a minimalist or are you an individualist?

Thursday, September 2, 2010

My FIRST blog!

Hello World!

Never blogged before, and no one may ever find anything i say very interesting, but here I am!