It has been awhile since my last article! I began a new job where it required one to literally hit the ground flying! So in a manner of speaking, there was very little brain power left over to do some writing.
This new job has introduced me to Continuous Delivery and a whole new world of test automation ideas and practices. Automation’s definition, in the IT world, seems to be both taking on a life of its own and at the same time expanding the ideas of what we mean by test automation. See the article The Battling Test Automation Camps which touched on the subject of test automation usages. We must also take into consideration the new alliances we must forge between testing and non-testing team members for truly successful automation.
I myself am still learning about Continuous Delivery but the idea seems to be about rolling in tested code changes as soon as they are available to production instead of the traditional model of develop a set of new and/or changed features, test and then release into production. Yes software has joined the “why wait when we can have it now” generation. So we have a continuous flow of tested code changes rolling into production from more than ten development teams supporting front and back office features. I would like to share some ideas on how just a push of a button (or a few) can take a person from the developer’s desk into production.
When we say automation, we are no longer talking about basic developer unit tests or the record and playback of a tester’s scripts. Automation is now supporting:
- Advanced environment configurations including loadbalancers, shared connections and configurations files. Automation is used to restore environments to a base state, modify configurations on the fly, and even deploy new environments.
- Deploying code changes from development to test to production. Installing and configuring a new release to a test environment has been reduced to the click of a play button.
- Managing coordinated efforts amongst teams such as development, test, qa, technical support, change management, sales and even service desks.
- Hooking in automated tests to perform basic system monitoring and smoke testing during the deployment of code changes into a test or production environment.
- Advanced system monitoring designed to alert when a system is down in an environment or there is degradation in the performance.
Human intervention is being replaced by automation to minimize not only errors caused by mistakes but to quickly and painlessly perform complex deployments (or installations) into an environment which leads to more reliable quality.
These automation endeavors are not happening in a vacuum. For example, developers, testers and operations can have a concerto of automation effort to test and monitor operations during deployment of code.
Another fascinating usage of tools is the maximizing use of collaboration tools such as Jira and Confluence. They are growing beyond simply being bug and information repositories to support teams using different agile methods from scrum to Xtreme Kanban and regardless of the development method maintaining the collaborative harmony that is required. They are allowing teams to develop very lean and clean documentation to support planning, design and test efforts. In this world of rapid delivery, we simply do not have the time to write long winded 100 page design documents and honestly who ever truly read them anyway. They are even used to help guide and manage processes which also contributes to fast, continuous delivery of code changes.
So to my loyal readers, I have not forgotten about you! I began a couple of articles and simply had to put them to the side to allow myself time to get acquainted with the new job and the brilliant people I am now working with.
Please feel free to share your experience working within a continuous delivery environment especially if you are regulated by external governing bodies. How are you ensuring you are adhering to guidelines while remaining both agile and continuous?
Margaret Thomas has worked in the testing profession since 1996 and worked within a number of industries including mobile, finance, medical and insurance. She developed a strong desire for automated testing when she began working within finance and has utilized a number of testing tools both commercial and open source. She is also the author of the technical blogs found at http://mag4automation.blogspot.se/.