Testing Journal  Sponsored By    GCLoad



Testers Perfect Storm: "Agile, Cloud, Mobile"


Written by  Ravi Vadugu | 13 June 2011
E-mail E-mail PDF

Testing StormSOFTWARE TESTING is no piece of cake in today's software world. Gone are days when testing was all about manual testing with few test scripts. Industry has been changing a bit too quick with an inevitable challenge of having very less time for testing world to react to the major changes. The three things that have changed the game of testing and have increased the testing scope by three fold compared to what we had before are "Agile", "Cloud" and "Mobile". Now, not really sure what else is in store. I would like to term a combination of these game changing concepts together as "Testers Perfect Storm" in the article and bring out what are the key challenges due to this perfect storm. Lets also follow this article up with what kind of solutions can we think of to ride this "Perfect Storm" in immediate future.



Challenge 1: Agile

Challenges  Questions 
Open To Change: The very feature of agile dictates changes even late in development. Cascading these changes to testing level poses multiple challenges due to short time available for testers to react, increased churn of code meaning extra regression required. 
  • How do you cope up with frequent and late changes to reqirements within Testing ?
  • Is the team doing accurate unit testing before it is pushed into formal testing for all last minute changes?
Short Iterations: While sequential model has provided enough time to define test strategy and spec, short iterations gives a never ending challenge on testers time for test planning. 
  • Short iterations could also mean highly buggy code during system test. Can a tester afford to wait till system testing?
  • How are test teams dealing with verifying architectural spike and technical debt?
Specifications: Agile manifests less documentation and literally story cards available as requirements.
  • Do we still have detailed documentation on business requirements as reference? Whats life of backlog item should you wish to refer later?
  • Who is defining non functional requirements and how much are they part of system development?
  • Is communication becoming a big challenge with changes happening late in the day every sprint? Is tester being communicated on the changes enough? 
  • Is there a tracebility matrix? Well more than 50% of agile teams have responded maintaining traceability as "NO".
Increased Meetings: Having so many meetings and face to face discussions shouldn't result in analysis paralysis. Poker, Sprint, StandUps, Retrospectives, Release and if its large scale implementation testing teams themselves will have atleast 2 to 3 other meetings.
  • How much time does a tester have, to work on his scripts, strategy, execution and management?
  • Are all such meetings getting rid of effective analysis and leading to "Analysis Paralysis"?
Timelines & Commitmemnts: In the name of value delivery are teams practically taking more than we can chew resulting in squeezing timelines for testing. Traditionally testing has been the area of compromise should timelines squeez. 
  • Are testers involved in requirements definition and release planning
  • Are we automating enough to meet our test execution commitments
  • How many times are cross testing of applications happening religiously?
  • Are all test phases being executed for every sprint?
 

Challenge 2: Cloud

Challenges  Questions 
Learning Curve: Introduction of cloud has increased scope of testing enoromously and has led to a huge learning curve to teams in terms of understanding cloud itself and cloud types along with risks it poses. Infrastructure, Security, Multi-Tenancy, New Tools, 3rd Parties, in depth understanding of how to handle Performance and like are now mandatory and cannot be classified into "Regression" based tests.
  • Does test team have enough understanding of Cloud concept and Individual systems operating with each other.
  • Are traditional test tools good enough to carry out testing. How much of automation can be done to test.
  • Performance Testing is a whole new concept on Cloud if you include all PAAS, IAAS, SAAS together. There are more vulnerable areas to test and detect issues than before. Are we geared up to such challenges?
Security: Security becomes the biggest entity in testing on cloud owing to the fact the entire application suite including databases in many cases will be sitting outside the organization infrastructure. This pushes some of the teams into altogether a new arena of testing. 
  • How much of data security testing considered before and at what test frequency? How critical has it become now?
  • Considering public/private/hybrid clouds what is scope of testing within the applciation space? Possibly cloud hosting companies would assure not to worry about infrastructure and data security. Would we not?
Data Consistency: Replication of data across distributed databases to give consistent infromation from different datacentres. Integration with ThirdParty software poses challenges of connectivity and synchronisation of data between various components.
  • How does system react in the event of non-synchronous data?
  • How should testing process change to work seamlessly with 3rd parties and across data centers?
  • What is scope of connectivty testing and how much of end to end testing is possible for every delivery cycle?
Performance: I guess we are not strangers here to assess how crucial performance becomes once you host applications on cloud. If performance testing an application on physical servers was hard enough, what about testing on virtual servers?
  • Do we have good enough strategy to perform performance testing on cloud.
  • Are we really going to do all kinds of performance tests (Load, Stress, Saturation and others)?
  • How do we test SLA's around cloud hosting of services?
MultiTenancy and Availability: In scenario of multiple tenants performance issues of one client could effect other clients. We are at the mercy of cloud hosting providers on much of mulit tenancy and availability testing that needs to be done. This gets complicated when we include distributed data centers. Who approves such tests?
  • Whats the scope of multi tenancy testing for test teams? Whats the clear seperation between testing owned by hosting providers and test teams?
  • How to test availability and measure SLA's?
  • How does application behave in the event of mulit tenancy failure? 

Challenge 3: Mobile

Challenges  Questions 
Multiple Platforms: Advent of Mobile and Tablets have increased testing scope four fold. Take an example of an ecommerce site. Good old days we had just a website, in todays world this single site has to be tested across web, atleast 3 to 4 mobile platforms and similar number of tablets. While it is apparent there may be different teams do we want to really engage different teams for different platforms?
  • Can we do some planning to test across platforms at a single time?
  • How much of testing effort and costs have increased due to multiple platforms?
  • Are testing tools geared up to provide a single test platform to test across web, mobile and tablets space?
Usability: Usability poses a great deal of challenges to ensure proper requirements are gathered for easy navigation and economical data transfer across funcitonalities. The success of such apps depends solely on user experience and is a great challenge for testers to become extremely innovative to assure a perfect UI.
  • Do we have enough UI expertise to test across different platforms?
  • Do we have enough equipment to test across all paltforms?
  • Are we assuring a perfect UI so customers data usage costs are kept minimum?
  • Is test team on board with emerging mobile and tablet trends and test across various browsers?
Testing Cost: If you were playing around with browser for your testing so far then get ready to have atleast one device per platform including mobiles and platforms to test appliations on mobile space. This also mandates testing across multiple OS's.
  • Are we better placed to justify the mounting costs of apps and devices that we have to use for testing?
  • Do we have enough skilled resource and trainings to cope up with testing on all platforms?
Timelines: If you are working in a 2 week iterations, imagine a case the development of a features takes 2 days while testing will take atleast 4 to 5 days to test across different platforms. 
  • Do we have enough justification to convey the fact that testing will take more time than development and a general approaoch of providing testing estimates as percentage of development is no longer valid?

Combine all the 3 challenges together with changing requirements as in AGILE, steep learning curve for CLOUD, and many different platforms and devices for testing across MOBILE devices which most companies are into right now or will be in very near future, testing teams are up for a PERFECT STORM and have to plan to ride this storm.  

In my next article in the near future I will attempt about how a SOFTWARE TESTER could SURF the storm. It will be helpful if people can comment their own experiences or suggest solutions for our TESTERS to surf the storm. Should you wish to follow the series please do subscribe to our feeds below.

RSS Subscribe To Feeds          Stumble upon Email Subscribe

Ravi Vadugu

Ravi Vadugu

An IT professional with over 12 years of experience. Project management is what i do. Curious/Interested in upcoming technologies, trends, software methodologies(e.g. Agile) and software tools. Love sharing knowledge with rest of the community.

blog comments powered by Disqus