Monday, August 10, 2009

Evolve, Adapt and Build

[This is also the editorial in the Automated Software Testing Magazine, August 09 Issue]
http://www.astmagazine.automatedtestinginstitute.com

For anything to survive, it must be able to change itself by three different ways: evolving, adapting and building. This has been evident in the natural world, and it also holds true in the world of software. This reality should be especially clear for software testers and test automators, because the very mission and reason for their existence is to ensure systems are effectively evolving, adapting and being built. This conceptual trilogy is not confined, however, to only the systems tested using automation, but also applies to test automation itself.

Evolution is defined as a gradual process in which something changes into a different and usually more complex or better form. This change is normally an innate response to some measured environmental stimulus that occurs over time. Adaptation is the act of adjusting oneself to different conditions or a shifting environment. This type of change is typically marked by a deliberate and direct response to immediate modification in the environment. Building is the act of increasing or strengthening, and may be a response to some outside stimulus, but it could also be done based on a self-imposed decision to improve one’s situation.

The discipline of test automation has experienced and been shaped by each of these modes of change in the past, and continue to be defined by them even today. Understanding these three modes of change will help to better understand the current state of test automation, and will therefore help us all to chart a course forward. Therefore, to aid in this understanding, this Automated Software Testing Magazine issue is, dedicated to exploring each of these modes of change.

In the cover story, Linda Hayes delivers what is possibly one of the greatest articles ever on the topic of the test automation evolution. Titled “The Evolution of Automated Software Testing”, this article looks at software test automation from a macroscopic point of view and explores the gradual changes in software systems over the years. It takes us through a trip down software computing memory lane, moving us from the mainframe domination to Internet domination, and explaining how the test automation discipline has responded to each evolutionary shift by moving from text capture/playback tools to the wide use of commercial automation frameworks. In addition, Hayes describes where the automation evolutionary approach has come up wanting, and proposes what the next test automation evolutionary response should be.

Next, J.L. Perlin provides a featured perspective on a modern day test automation adaptation with a peek into a project’s encounter with contemporary environmental changes. In this article, an existing software application with a substantial suite of automated tests is faced with proposed changes to existing application controls. These changes threaten to render all existing automated tests useless as the automated test tool contends with problem communicating with the new controls. This is a problem that many automators have come across, and if you haven’t, there is a good chance that you will. So J.L. Perlin offers an approach for effectively navigating your test automation through such modern day technological changes.

Finally, Dion Johnson chimes in on the third mode of change, defined by building up your test automation framework. This change mode has no particular catalyst, but is instead unprovoked, requiring implementation by a project looking to improve their test automation return-on-investment. Dion provides a step-by-step approach for building an automated test framework that will ultimately help to sustain multiple automated tests over an extended period of time, therefore helping your automated tests proactively keep pace with application changes.
These articles, along with the department articles (focused on keyword driver script development, open source tool contributions, and automation blogging), will help you understand present day test automation, and help us all define the next phase in automation evolutionary development.

2 comments:

  1. Some of the most difficult challenges in creating great software are guaranteeing it works every time, for every customer, ensuring that it will scale well, and making it accessible to all users good quality Automation Testing.

    ReplyDelete
  2. Very interesting post! Thanks for sharing your experience suggestions. Automation Testing Service

    ReplyDelete