The software is one of the crucial things in our life that we cannot live without. With so many devices embedded in our daily lives, we are more reliant on software and allied products than ever before. From the alarm clock that wakes us up to the transport that helps us commute, ATMs for money withdrawal, smartphones for communication and television for entertainment- almost everything runs on the software. It plays such an important role in our life that it is of utmost importance to ensure software quality. Software testing is the process where software engineers must assure the quality and correctness of any software before selling it to the customers. Any compromise in software testing can cause huge monetary loss and sometimes, even loss of human lives. For instance, an aeroplane crash due to minor defects in software may result in loss of lives of hundreds. Generally, every software development company hires skilled testers for testing products. Testing constitutes about 25 % of software life cycle and can be of many types, such as-
- Functional Testing– Test the software output and verify whether it is the same as mentioned in the requirements specification.
- Integration testing- Test various software modules to verify combined functionality after integration.
- Sanity testing- In sanity testing, we test just the basic feature and ignore the secondary features.
- Regression testing- Test the complete product after modification of a module.
- Load/Stress testing– Test under heavy loads to determine at what point the system’s response time degrades or fails. This is accomplished by making a system respond to both fast evolving data stream and a large volume of the data as inputs.
- Usability testing- To test whether a new user can use the software easily.
Testing as a service (TaaS) is a model for outsourcing testing responsibilities to external and specialized providers. Typically, product owners or the service consumers do some testing in-house that require code knowledge and they require external expertise in other related areas. Testing requirements become complex with growing applications. The cost of automation tools and the skilled testers can be expensive. TaaS becomes a good business case because it gives a good ROI for optimal usage of skilled resources and tools for testing. How is TaaS process carried out? TaaS is a service provider and consumer interaction-based model. Service consumer places a request to provider and provider fulfils the request. Priorities are typically easy user interface, data security, and service availability and most importantly cost. Its various components are-
Service Provider-A service provider provides testing services to any company. The key services include test consultation, planning, automation, execution, and management. The service provider needs to take care of following factors while planning.
- Identify all the platforms on which the product is applicable.
- Document the business and functional requirements.
- Evaluate testing efforts.
- Plan for revising testing efforts on a regular interval.
- Plan a postmortem meeting after every release.
- Identify the effective communication mechanism. For example, communicate bugs or issues through e-mails.
Service Consumer- A service consumer uses the outsourcing model to get a service and pay for it accordingly. Automated regression testing, security testing, performance testing, monitoring and testing of cloud-based applications, and testing of major ERP software such as SAP are most suited candidates for TaaS model since they require expertise and infrastructure. TaaS is also a promising solution for smaller business houses, who do not have the resources to invest in testing skills and want to focus entirely on product development. When a service consumer moves to TaaS model, the consumer needs to establish a well-defined process, identify the specific testing area where TaaS is applicable and align development teams to TaaS model. Therefore, preparing a high-level transformation roadmap is important in achieving the benefits of TaaS model.
Interaction Between a Service Provider and a Consumer Service consumer initially shares the test requirements with the provider. The requirements include product details, type of testing needed, and timelines. Based on the requirements, service provider calculates the total cost and creates a test plan. Based on prices, the consumer can negotiate with the provider regarding the total cost. The consumer can also choose from the services offered by the provider. After finalizing the contract, the provider performs the testing and shares the results with the consumer. Service provider interacts with the consumer typically over e-mails. Initially, the service provider should have a few in-person meetings and communication with the consumer to speed up the process. It also helps to establish an initial trust between the provider and the consumer. However, the most common model is service providers having their Web portals. Service consumers can use these portals for any kind of communication.
The transition from Traditional Testing Models to TaaS-
Step 1: Identify goals- The service consumer needs to understand the goal when moving to TaaS. This goal can be to focus on core, cost savings, service of experts, etc.
Step 2: Document Requirements– A service consumer needs to do a thorough job of listing requirements. This includes putting details of the components to be tested, supported devices, technology preferences if any, performance considerations, security, scalability options, etc.
Step 3: Service provider selection– Based on the requirements, a service consumer selects a service provider who is an expert in the testing domain. The service consumer checks the past record of service providers calls for proposals from service providers and compares the various proposals received to make a decision.
Step 4: Performance checkpoint- A service consumer needs to assess the performance of a service provider at regular intervals on defined parameters. The service consumer plans corrective actions based on the assessment findings. Then after availing the service, the consumer shares constructive feedback with the service provider.
For a smooth transition from traditional testing model to TaaS model, test service automation tool can greatly help. TaaS is nascent but promising and with the development of software industry, it is expected to grow exponentially and must, therefore, be watched out for.