Test of Transformation

Software testing companies and professionals are re-inventing methodologies, tools, frameworks, and business models to seize emerging opportunities. The testing geography is changing like never before. 

The software testing and Quality Assurance (QA) are arguably the most critical components of a product’s life cycle and the most valuable IT discipline within an enterprise. Today, with the advent of new production methods and technologies such as Cloud computing, automation tools, open source tools and innovative testing methods, the entire spectrum of software testing is undergoing a sea change. According to a report by industry body NASSCOM on the testing industry, globally, the market for software testing outsourcing is expected to grow from $30 billion in 2010 to $50 billion in 2020. A recent market analysis by Pierre Audoin Consultants (PAC) have stated that the market for application testing and quality assurance services continues to grow faster than the overall IT services from 2011 through 2015.

Perhaps, enterprises are now looking up to testing organisations to provide them with the necessary confidence to charge ahead in business initiatives. And to perform these tasks efficiently, software testing itself is introducing a series of innovations and trends. Modern tools and technologies are bridging the gap between the testers, customers and developers by encouraging a ‘team approach’ in testing. “Companies are increasingly realising that the good old structured test cases that run repeatedly on the software do not improve software quality, but is just a defensive approach. Thus, exploratory testing methodologies are becoming very popular since they help generate infinite new test cases and help testers bring a new level of rigor to tests,” said Avaneesh Dubey, Senior Vice President and Head, Suite Test Center, SAP Labs.

Various development models of software are also changing the focus of testing. “The adoption of lean models to optimise the testing process, scientific methods for estimation and design, risk-based approaches to testing, and model-based testing are enabling testing teams to assure quality at faster rates and at optimised costs,” said Sripriya Kalyanasundaram, Vice President, Testing practice, Cognizant Technology Solutions. Newer development trends in software such as agile often employ test-driven development process. According to P R Chandrashekar, Director- QA, Eka Software Solutions, agile lifecycle has become very common in the development process today where testing is done in short repetitive iterations and is integrated into development. Agile means quick and well-coordinated in movement. Therefore, agile testing helps validate customer requirement as soon as possible and make it customer friendly.

“The benefits are plenty,” said Nitin Purohit, Practice Head – Application Services, Omnitech Infosolutions. “You can save time, cost, and it needs less documentation, and focus more on application. Moreover, as it is iterative, the end user feedback is available at regular basis.” Agile testing is ideal for projects that need to be delivered in shorter span of time and where requirements keep changing frequently. However, the tester’s role in agile is more challenging with dynamically changing requirements. “In some cases, initial design may not support the changes at later stages, so it is required for team in agile development to be technically competitive to envisioning the future of the software application that’s being developed,” noted Hari Shankar Goud, Delivery Head, IT Solutions, Prithvi Information Solutions.

Another trend is model-based testing. Some testers are beginning to embody exploratory test intelligence into models that can be used for model-based testing. These include integrating disparate platforms, reducing the time to market with accelerated development methodologies, and delivering superior customer experience by enhancing customer-facing applications. By combining exploratory tests with test-automation-model-based testing is becoming a powerful technique, taking software testing to new levels of productivity and effectiveness.

Automated testing

Previously, software testing would only commence once the development of the product was complete, leading to frequent delays and re-work. However, by automating testing processes, quality can be emphasised at the start of development and problems can be addressed before they become too difficult to solve. Automation is beneficial to reduce the execution time required for repetitive tasks. It also helps companies  to lean in their processes. Automated tests are preferred for improving efficiency; especially in reducing time spend for repeat tests. “By and large, companies still accord less time for testing. Automation is one of the solutions to tackle this,” noted Shubhangi Raina, Associate Vice President – Testing Practice, Collabera. Automation can also help in situations that are costly or difficult to simulate and are difficult to achieve in a manual fashion. It does not have any temporal defects and can execute for long hours, thereby reducing human errors in the testing process. “With properly designed automated frameworks, tests written once can be run for the lifetime of project with little maintenance,” commented Manish Kumar, Testing Practices Lead, Thoughtworks. “While manual tests provide limited visibility and are open to interpretation, running automated tests can be viewed by all stakeholders in a common and consistent manner, saving a lot of non-value added time to build reports to provide interpretation and commentary.”

Proper selection of the tool is the key to the success of automation. Ashok Saxena, Head, India Engineering Centre, Kronos felt that initial cost was not the only factor to select the tool. “One should consider learning, skill availability and maintenance of the automated scripts while selecting the tool. A wrong decision can impact the overall success of automation initiative,” he added. In functional testing commercial tools such as Quick Test Professional (QTP), Test Complete, Silk Test and so on are gaining importance. “However, there are lots of open source tools such as Selenium, which are attaining popularity in testing,” noted Ramakrishnan Sitaraman, Senior Director – Application Optimisation, CSS Corp. “These tools not only reduce cost but also help in adding more and more plug-ins,” he added. With emphasis on automation to improve feedback cycles, organisations are looking at flexible and low cost tools.

“Open source tools such as FitNesse and Cucumber are providing a robust ecosystem for test automation to thrive. More and more companies are now building low-cost tools on top of open source test automation drivers to boost productivity of test automation tools,” said Kumar of Thoughtworks. Open source load generators in combination with application monitoring software are increasingly used to provide end-to-end performance testing capability at a fraction of cost of the traditional tool.
That said, there are pitfalls as well. The common pitfall is that these cannot replace human intelligence in design. The setup and configuration of automation tools are also quite expensive and could lead to a disaster if not planned and executed well.

Help from Cloud

Testing an application or a service on the Cloud is certainly evolving faster. Cloud testing primary focuses on areas such as system and performance tests. Market studies state that testing-as-a-service (Taas) is estimated to grow by over 33% each year from 2011 to 2013 and the market for Cloud-based testing tools will reach over $700 million by 2013. Therefore, there is a huge opportunity for outsourcers, ISVs and software vendors alike in Cloud-based testing. According to Kalyan Rao, SVP, Global delivery, Cigniti Technologies, Cloud-based frameworks help companies conduct performance tests quickly and economically. “Cloud will work easily in hospitality and retail industries where they can host applications on a third-party Cloud space provider and have it tested from low-cost countries. It definitely adds value in terms of cost, speed to market and better environment for more test coverage,” he said.

A Cloud-based delivery platform enables users to understand service layers, elicit their testing requirements, and consume customised services.  Pradeep Chennavajjuala, CEO & Co-Founder Edista Testing Institute, felt that the most important aspects for testing on Cloud include functionality, performance, security and reliability. The platform is also capable of handling complete test management from workload simulation, integration, provisioning, execution and reporting. According to Dhiraj Sinha, Executive Director – Application Testing, Dell Services, adopting Cloud as the test environment -- whether for hardware infrastructure or test tool perspective -- has certainly gained traction. “Simulating application workload in a more production type infrastructure, trying out Cloud with test workload before moving the production workload are very strong use cases. Similarly, on-demand usage of testing tools delivered over Cloud could reduce overall cost of testing,” he noted.

With TaS, customers are now able to buy services on a pay-per-use model rather than pay for the resource. “Being aware of the way the testing spend goes on various services, progressive customers are now able to redirect their money towards high-value areas such as automation and structurally reduce the spend on operational costs, namely the test execution where the spend used to be significant in the earlier models,” noted Sumanth Tarigopula, Director, Global Delivery-India, HP Enterprise Services.

In spite of these gains, the industry is concerned about the possible security issues on the Cloud. “But with proper checks and controls in place, one can have a successful Cloud –based testing model,” assured Nitin Dang, Country General Manager, Micro Focus, India and SAARC. The value of Cloud-based Peak Load Testing is enormous and hence it offsets all challenges. “Peak-load testing via the Cloud also takes advantage of the ability to run tests virtually on-demand. This avoids testing bottlenecks and prevents long delays as internally managed hardware is acquired and set-up,” Dang added.

Mobile application testing

While hand-held devices become more common in enterprises, businesses are under constant pressure to deliver a smooth experience for apps. As smartphone capabilities further develop, so does the level of expectations for added functionality. Thus, it is crucial that mobile applications should be tested rigorously to ensure a smooth experience for customers. The diversity in mobile computing environments presents unique challenges in developing apps, QA and deployment, which needs higher and a more intricate testing regime. Mobile apps testing require dedicated labs to verify the functionality in different devices and platform. The usage of mobile applications is different.

Somenath Nag, Director Business Development & Marketing, Alten Calsoft Labs commented, “Mobile apps can be used anytime, anywhere and it is context sensitive. It has a complex data entry process such as key-pad, touch and voice and also has high interruptions.” The high environmental input and information processing through an inverted funnel makes testing of mobile apps a challenging process.

Traditional applications do not support multiple operating systems, while mobile apps do support them. So apps should be tested to ensure that they run on key platforms and across a multitude of networks. Kalyanasundaram of Cognizant opined, “Quality testing of applications across operating systems, device platforms, and networks is a necessary but daunting task to ensure long-term success in a highly fragmented and competitive global market.”

Usability testing and inter-operatability are also the key components in mobile testing. Also, network and connectivity issues can cause unexpected errors that crash mobile apps, and it is sometimes nightmare for testers and development team to identify the root cause for malfunction. Energy usability is also a key component in mobile app testing. As Tarigopula of HP put it, “We did not bother about the energy consumption of an application when we tested on a PC or a laptop. But now, in mobile, we need to make sure the app is not guzzling energy and are left with a dead mobile before the end of the day.” Other non-functional testing such as usability, security and adaptability is also critical in the case of apps. Silk Mobile, Robotium (automated tool for Android), Sikuli, Frank (for iOS) are some of the popular mobile apps testing tools.

The way forward

Even with new tools and technologies, the testing landscape is facing a lot of challenges. “A major challenge is that software testing is becoming a highly demanding cross-functional area. This certainly is mandating a re-design of the core role of tester,” opined Chennavajjuala of Edista. That calls for re-imagining and re-aligning the complete function of testing, which would, in turn, needs to find out right people, process and technology. Another challenge is the budget. As mobile, Cloud and other technologies add more to the plate, there is a need to ensure that the conventional testing gets automated, and the resulting savings get reoriented to the emerging areas. Getting the right hand is also an issue in testing industry. As Gaurav Kohli, Development Director, Dion Global Solutions put it, “Software testing is a niche skill and we do not have enough educational and training focus on this. The skill is thus largely built while at work. Thus, the availability of skilled and trained resources is a challenge.” Adopting a hybrid model that combines domain expertise of the company and an external technical expertise hired for the purpose will solve the issue to some extent.

But for sure, there is a huge business opportunity for software testing as there is no tolerance for defective software from the end user’s side. There is a growing understanding that quality will become everybody’s responsibility in the future, and more and more organisations start to look at quality more holistically. Rising recognition, significance and acceptance of network-based applications, wireless tools and mobile technologies with high significance for repeatability, reliability, robustness and re-usability have set a newer facet for testing. At the same time, the core of the application has to be maintained. Thus, there is going to be exciting and changing times in the area of testing. As Prasanna Raghavendra, CTO & Co-founder, CloudMunch puts it, “With newer technologies, test cases will be written before development so that once the software comes in, it gets tested automatically.” Also as mobility is being embraced by enterprises, mobility testing and security testing will be in huge demand. However, software testing companies and professionals have to re-invent themselves and innovate new methodologies, tools, frameworks, and business models to seize the opportunity. 

Source: http://www.expresscomputeronline.com

No comments:

Post a Comment