Software as a Service (SaaS) Testing refers to the methodology used to ensure that apps built using the software as a service development, function as designed. The SaaS development process is driven by the needs and demands of a fast moving market of competing software services. The organizations must use agile methods to achieve their primary goal of delivering quality software in a timely manner to an extremely competitive marketplace.
- Learning Azure Functions
- Jenkins Continuous Integration Cookbook
- Jenkins Essentials – Second Edition
- DevOps for Web Development
- Implementing DevOps with Microsoft Azure
- DevOps Bootcamp
- Jenkins Essentials
Agile testing on SaaS – gaining momentum
Agile Software Development has gained continuous momentum in the last decade since the introduction of 2001’s Agile Manifesto. Simultaneously, Software as a service is also getting ahead with time. A coincidence, perhaps?
The technology landscape, time and again, has exhibited parallel fast advancement of synergetic technologies and methodologies. In the late 90’s, for instance, a video sharing website called EarthNoise was founded by Elan Dekel. Sounds familiar? In 1995, a company called YouTube was built with a similar idea. It was eventually acquired by Google in 2006 for $1.65 billion.
In the next four years that passed, broadband internet access became quite well-known, along with digital video cameras. The three main areas – video sharing, camera and internet connection evolved together to create a new phenomenon: online user generated video.
The desire and ability to share videos on the web led to increased adoption of broadband and digital cameras (and yielded brand new products such as the now-defunct Flip). The increased demand for the products accelerated technology advancement in turn boosting the adoption of video sharing websites. Now, the latter is an inseparable part of our lives.
The coevolving paradigm
In Geoffrey Moore’s terms, SaaS and agile test automation are likewise coevolving, but creating a ‘tornado’ – spiralling effect – of disruptive innovation that will gradually take place of the many software development paradigms.
For technological advancements to coevolve spirally, the success of one product, like video sharing sites, has to rely on the maturity and success of a piece of technology (say broadband) related to it. More value is brought to the product, as the more the other technology matures.
Simultaneously, the displaced alternative, say television, does not benefit from the new set of technology, getting displaced gradually. The iPhone related advancements generate the same effect when displacing traditional so-called ‘feature phones’.
Here is how this spiral coevolution applies to agile software development and SaaS.
- Agile software automation can afford frequent releases
The topic is open to debate, but the maturity of touchscreen technology and low power consumption processes have majorly pushed the success of the iPhone. Similarly, agile software development ‘automation’ technologies have reached a point where they can be utilised successfully for non-trivial projects.
Some of the aspects include pure timing. The app-stacks (for example NET, Java and Lamp) have developed enough where they can be used by engineers, without having to spend time writing infrastructure code. Agile test automation consists of continuous integration and test-driven development – crossed the chasm – and are now supported by commodity framework and tools. Additionally, in the words of Victor Hugo, ‘no army can stop an idea whose time has come’.
Due to the SaaS-Agile spiral, incremental innovation has further developed and is being generated by the agile community. Consistent integration, for example, has evolved into the concept of continuous exploitation. Further advancements are likely to expand the gap between SaaS and traditional software models, until the latter gets displaced or a competing technology comes in.
- Frequent releases are mandatory
Cloud based apps allow for immediate feedback. A vendor can easily launch a new app with traditional software programmes, roll it out to consumers, only to come back several months later and collect feedback.
With SaaS, however, feedback is immediate. Web analytics is at the user’s fingertips, highlighting issues and opportunities. There are several other forms of web reviewers that help obtain guidance from app users – simply to stay competitive.
Cloud based service apps are a mixture of traditional software apps, marketing tools and advertisement vehicles. Additionally, to its core functionality, a typical cloud-based app involves mechanisms for encouraging upgrades and sign-in and activities such as promotions. Such actions are tightly linked with adverts, which are independently being woven into many cloud based programmes as a way to help fund the app.
Ideally, all non-core aspects of a software product would be managed separately. However, reality says, SaaS cannot be confined within the traditional app lifecycle since marketing must be managed in a restricted schedule.
All in all, agile testing is continuous
Agile software testing allows a more fluid, continuous process which takes place hand-in-hand with development and product management. An agile automation team does not fill in the requirement work for a system. Instead, the team takes a small piece of the system and works together to complete it. The piece may or may not be infrastructure related, research spike or feature development, with the team taking on small pieces and completing the project at a comfortable yet effective pace.
Several stories may be in various stages of development, acceptance or test. However, both the timing and focus of testing alters depending on the type of tests performed. Developers tend to take the lead on code-level test methodology, while the tester sticks to the agile team, providing early and quick updates during all stages of development. He or she also helps or is cognizant of code-level testing being performed, takes the lead on acceptance test automation, building regression test blue prints and uncovers additional test scenarios through exploratory testing.
Furthermore, the agile tester ensures the acceptance test coverage of SaaS products is average, lead automation efforts are integrated, system-level tests, keeps test environments and data available, identifies regression concerns and shares testing techniques. Tests that fall outside the scope of story-level testing – performance and regression testing – can easily be addressed through test oriented stories, which are planned, estimated and tracked just like a product oriented prose.
Evie harrison is a blogger by choice. She loves to discover the world around her. She likes to share her discoveries, experiences and express herself through her blogs. Find her on Twitter:@iamevieharrison