Get certified - Transform your world of work today


The Beauty of Agile

Self-organizing Agile teams drive better solutions

21 December 2015

Saad Ali Jan
SE-Consulting GmbH

I've been working on various Agile teams for different products for almost four years. I've worked mostly on the quality assurance side, so the nature of my work deals mostly with software testing.

Test automation is an essential component of Agile development that helps the developer deliver value to the user fast, without spending too much time testing code manually. Although you need some manual testing as well, that is not part of this discussion. My aim is to show how we have tested one of our recent products, and how it helped us in delivering quickly. It also saved us time in configuring and maintaining the test environments.

At the start of the project, the development team and the product owner (PO) had many discussions about setting up a separate environment for testing. The PO was more interested in delivering the features directly to "production," but the development team was skeptical about this plan. They wanted their test environment to run automated regression tests to gain enough confidence before deploying code to production. In contrast, the PO cared more about his real users, and for him this delay to push the code into a particular environment and then test it was nothing less than a barrier. The PO's argument about the test environment was also valid: How would developers be sure that the application would work fine in production if they were testing against test data and running it against test code?

The teams were looking for a solution that would not require too many configurations to set up the test environment. Equally important, the goal was to test against production code with static test data, because it's difficult to validate against dynamic data. Being a self-organized team, they found a solution that was easy to implement and practical to use.

We have set two different cookies for each environment by just replacing the variable "Token." We implement this solution by using a High Availability proxy, which is often used for load balancing and content. As a software tester, all I need to do is run the following JavaScript code:

document.cookie = "server_cookieSet_abc=${TOKEN}-test; path=/;";

Then I simply replace the variable ${TOKEN} with the necessary token, for example test. The revised code looks something like this:

document.cookie = "server_cookieSet_abc=test; path=/";

By doing this, the code remains the same, but all the data is swapped with the test data, which helps us to test production code against static data. This approach saves a lot of time, and I found it to be practical as well. Even in my automated tests, one only needs to add cookies in "Test Setup," and they are done. I never thought that switching between environments would be that simple. Sure, nothing comes as a freebie. You must strive for better solutions. I have exposed my testing code, and I hope that it will help you wherever it's applicable.

This is the beauty of Agile: Self-organizing teams drive better solutions than dependent teams, which get held up by uncertainties.

Opinions represent those of the author and not of Scrum Alliance. The sharing of member-contributed content on this site does not imply endorsement of specific Scrum methods or practices beyond those taught by Scrum Alliance Certified Trainers and Coaches.

Article Rating

Current rating: 5 (1 ratings)


Be the first to add a comment...

You must Login or Signup to comment.

The community welcomes feedback that is constructive and supportive, in the spirit of better understanding and implementation of Scrum.


Newsletter Sign-Up