Evolving Landscape of Software Testing
Date: Thursday , June 09, 2011
Software testing has evolved over the last several decades. The ever increasing sophistication of applications and the underlying technologies have forced the testing community to continue to optimize. While earlier the developers took care of the testing, as the applications required more reliability, a separate test team was setup to ensure that the reliability was a key criterion across all stages of the project. With time, people realized that an independent test team can provide a different perspective and help identify more defects. Today, business scenarios demand greater flexibility and require us to be cognisant of the financial cuts while still ensuring the application quality.
The customer space has also evolved with different customers being at different stages of maturity in the Evolution cycle. Large enterprises have stabilized their development and testing processes are now focusing on optimizing their already evolved and mature practices. They are looking for holistic sustainable testing solutions which cover areas like domains, technology, processes and tools. The mid-sized customers have realised the need to be on par with the best of breed industry benchmarks in testing services and have taken initiatives to put in place mature testing processes by setting up Test Centres of Excellence. The smaller customers, specially the new generation that provides niche software solutions in the Mobile and Internet space, are looking for quicker and cost effective testing solutions which are in sync with their market release timelines. It is important for a testing company today to understand the varied needs of these different customer segments and recommend the right solution after analysis of maturity levels.
Several companies are moving towards server consolidation based on virtualization to optimize costs. Cloud computing is also exceedingly finding adoption in enterprises. However, this situation presents two major challenges. First, how to test applications hosted on the cloud and second, how to leverage the cloud to test effectively.
For applications hosted on the cloud, the features do not change much, but the way they are deployed becomes more distributed. While the cloud helps optimize infrastructure, the flip side is that it has pitfalls like performance and security issues due to too many layers and options in the environment. Testers require a more holistic approach for testing such issues since the usual approach of looking at them only from a testing or domain point of view may not always work. Their learning efforts should be directed towards gaining in-depth understanding of how cloud technologies are implemented and bottlenecks possible. To be an effective tester in the cloud world, a tester needs to have a combination of excellent testing skills, the ability to use the basic tools when testing and good understanding of the underlying technology and other software products which go into enabling the application on the cloud. The emphasis should be more on understanding the infrastructure and test environment solutions, areas which was not very critical in the non-cloud world.
Let us now discuss how cloud can be leveraged to test effectively. The whole reason for cloud or virtualization becoming a hot topic is that it gives end customers a flexible pay as you go model to reduce their overall spend and also does not hoard too much infrastructure. The same benefits can be extended to testing as a service. The testing services market, both in-house and outsourced is in the range of $80-100 billion now and customers are expecting optimization in their huge testing infrastructure. At Prakat, we are focusing on leveraging the cloud effectively by building frameworks and solutions on top of existing products and tools which will make it easy for customers to use them as required and not invest in them up front. Also, the customers will not have too many skills to learn, thereby reducing re-skilling expenditure.
Another business opportunity that has emerged for testers today is in the mobile applications market. The phenomenal growth of mobile devices has opened up avenues for organizations to integrate them into the mainstream-computing environment. Todayís mobile applications deliver complex functionality on platforms that have limited resources for computing. Yet, unlike the PC-based environment, the mobile environment comprises a plethora of devices with diverse hardware and software configurations and communication intricacies. This diversity in mobile computing environments presents unique challenges in application development, quality assurance, and deployment, calling for unique testing strategies. Many enterprise applications which were deployed as desktop applications earlier are now being ported to mobile devices. These applications are empowering workforces across various functions, especially in sales, supply chain, field support, and on the shop floor.
Mobile applications, although they have limited computing resources, are often built to be as agile and reliable as PC-based applications. In order to meet the challenge, mobile application testing has evolved as a separate stream of testing. We at Prakat are helping organizations mitigate the risk of running production grade mobile applications on different devices, with different OS versions and on different networks. As the demand for mobile applications continues to increase exponentially, developers, content providers and value added service providers face new challenges: *Does your mobile application work on the real mobile phones? *Are your services accessible from all targeted markets? *Is the performance of the application acceptable on all the networks itís deployed on? *Does the application work while the user is roaming?
Testing of Mobile Applications can be very complex because of the number of environmental changes which can affect the behaviour of the application. Look at a situation where you are doing some stock market transactions on your mobile phone while having coffee at the cafť across the street from your office over a 3G connection. You walk back to your office and the phone switches over to your corporate Wi-Fi connection. You are still transacting on the application. This is just one of the many conditions where you hope and pray that your application has been well tested and that you will not incur any financial losses based on its malfunction. As mobile applications become a part of our lives we must realize that there is a need to ensure that they perform as expected. Challenges such as these which continually come up will keep the excitement in the testerís job alive.
The author is CEO, Prakat Solutions