Mobile devices have changed our world. Smartphones and tablets allow employees and customers to be available and active online almost 24z7—something unimaginable in the PC era. Mobile devices’ touch-screens support rich media and application functionality and deliver a far more powerful user experience than ever thought possible.
The impact is largely felt in the testing and development community. Consider a few decades ago when the traditional IT environment comprised the standalone PC and the situation was far simpler. Developers only had two browsers to deal with, and there was only one platform to test them on. Developers would simply set the browsers up on one machine, install the application and run through a few functions to make sure everything was working. At that time, manual testing was the viable and effective option.
The proliferation of mobile devices and applications has dramatically altered the development landscape. For instance, today’s testing teams have six or more browsers to contend with. Agile increases the relentless rate at which new application releases and updates are generated, which must be tested against a plethora of new mobile devices continually being introduced to the market. The browser/device configurations are multiplying at an exponential rate, and complexity is reaching alarming levels.
Any organization delivering applications has a number of complex testing and delivery challenges to overcome, which are caused by the mobile multiplier effect. If left unchecked, these challenges will cause product delays, end user frustration and, worst of all, loss of revenue.
Functional testing and performance testing
Being assured that applications meet requirements for end users across devices, and ensuring that the applications perform adequately even as demand scales, is made even more difficult in an agile environment. Agile has actually made software testing a more difficult challenge as it increases the rate at which new releases and updates are generated, which, by default, increases the pace at which testing must take place.
Functional testing has been able to keep up reasonably well with agile as the tools have matured to allow manual testing to develop into automated testing. Factor in the need to perform functional tests across multiple mobile devices, as well as the need to have rigorous functional testing on all devices on which the application is supported becomes even more critical.
Performance testing has become even more important in an agile environment, because if applications don’t perform well and scale under demand, large business impacts can occur. This is often the result of the way distributed server application architectures are implemented. The use of virtual machine technology and cloud resources has, in many cases, changed application resource allocation from static to dynamic. However, allocation isn’t the only concern. What has been found in the APM world is that other root cause issues can lead even the most functionally and transactionally sound applications to degrade if problems are not found and fixed during testing.
Organizations need to work harder than ever to be sure that the application releases they generate with agile methods will perform satisfactorily under all operating conditions, including across a wide range of devices.