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."