Cloud-based development life cycle: Software testing as service
Authors: Benkhelifa Elhadj 
Published: November 2013

Cloud computing is an emerging paradigm, which is changing the way computing resources are provisioned, accessed, utilized, maintained and managed. The SWOT analysis for the Cloud is depicted in Table 1. Cloud computing is increasingly changing the way software products and services are produced and consumed; thereby implying the need for a change in the ways, methods, tools and concepts by which these products are tested. Software testing is an important quality control activity stage within the Software Development Lifecycle. Software testing involves both function (eg. bugs) and non-functional testing (eg. regression). It verifies and validates the finished product to ensure that development effort meets up with requirements specification. This process often requires consumption of resources over a limited period of time. These resources could be costly, or, not readily available, which in turn, can have an effect on the efficiency of the testing process. Though this process is important, nevertheless it is not a business critical process because it does not contain overly sensitive business data, which makes it an ideal case for migration to the cloud. The increasing complexity and distribution of teams, applications, processes and services, along with the need for adequate testing approaches for cloud-based applications and services creates a convincing case for the need for cloud-based software testing. Cloud-based testing or Software Testing as a Service is a new way of carrying out testing as a service, using the cloud as the underlying platform to provide on-demand software testing services via the internet. Table 2 below shows a SWOT analysis for cloud-based testing, from which a comparison between traditional software testing with cloud-based testing can be made and advantages of the cloud approach can be drawn. A number of major industrial players like IBM, HP, UTest, SOASTA, Sogetti, and SauceLabs, to mention a few, now offer various cloud-based testing services which presents a lot of advantages to customers. Though cloud-based testing presents a lot of advantages and benefits over traditional testing, it cannot overly replace traditional testing because areas of testing and scenarios of testing for synergy and trade-offs exist. For example, some testing areas requiring implicit domain knowledge about the customer's business (like insurance business); or areas where hardware or software is an integral and essential part of the other and directly dependent on each other (like programmable logic controllers), may require the adoption of traditional testing practices over cloud-based testing. This represents an area for further research: developing intelligent/context aware Cloud-based testing services with the ability to recreate or mimic areas/scenarios requiring implicit domain knowledge. Furthermore, there is a lack of adequate support tools cloud-based testing services. These tools include: self-learning test case libraries and tools for measuring cloud-based testing services. This paper will present our research efforts in the area of Cloud based collaborative software development life cycle, with particular focus on the feasibility of provisioning software testing as a cloud service. This research has direct industrial implication and holds huge research and business potentials.