How is Functional Testing Affected by Cloud Automation?
How is Functional Testing Affected by Cloud Automation?
Join the DZone community and get the full member experience.Join For Free
See why enterprise app developers love Cloud Foundry. Download the 2018 User Survey for a snapshot of Cloud Foundry users’ deployments and productivity.
Functional testing is a staple of QA management. It ensures that software complies with business requirements, and also with software testing that often prioritize based on risk criteria so that the most important ones are completed as soon as possible. Business processes may also be vetted along the way, in order to verify the sustainability of everyday applications such as payroll systems.
Hybrid Cloud Apps and Functional Testing
Some software is ideal for hybrid cloud environments. Take transactional Web applications, for instance. These programs may be hosted on a public cloud for maximum flexibility in handling the capacity bursting that comes with a spike in concurrent transactions. All the while, a VPN connection passes the transactional data from the Web servers back to the application servers that are set up within the organization's data center.
In this way, the company maintains a high level of security and control over the application, while still being able to save money on infrastructure management. Functional testing is crucial here, in order to ensure that this specific balance is achieved: Are end users seeing their transactions being safely and accurately completed? Are any orders being lost in the shuffle? E-commerce businesses in particular live and die on the functional testing of their Web-scale applications.
Since hybrid applications by definition move between disparate types of infrastructure, interoperability testing is also key. Testers will look for program compatibility with legacy and cloud assets, along with how it is experienced on different user interfaces.
The Different Types of Functional Testing
Moreover, functional testing may take specific forms such as:
- User acceptance testing: Also known as beta testing, this category of testing evaluates an application's performance in the real world among its intended audience. It has the added benefits of helping to minimize change requests down the road and keeping overall project costs to a minimum. User acceptance testing can also build goodwill with end users and improve their satisfaction with the software in question.
- Interoperability testing: With interoperability testing, testers are looking to see that programs work with others on a variety of platforms. Many applications are now cross-platform and must meet mission-critical requirements such as exchanging data between different medical records systems. With the emergence of cloud computing, this type of testing may also check whether software can hand off workloads across both cloud and on-premises infrastructure.
- System verification testing: Here we get into slightly more technical testing. System verification may include code audits, revisions to any documentation, and testing of hardware and software components under normal as well as adverse environmental conditions. Voting machines are a prime example of appliances that require thorough system verification.
How has the emergence of cloud computing affected the general practice of functional testing? We can already see signs of its influence on the applications testing that have been "hybridized," i.e. designed to leverage both internal and external (public cloud) IT resources. More specifically, these programs require careful attention to the interoperability of all the systems involved, as we noted above.
Does Cloud Automation Work for Functional Testing?
We can see that cloud applications require functional testing just like any other type of software. But is cloud automation - the use of elastic, on-demand IT resources to perform repeatable tasks at scale - a good way to approach your functional tests?
Writing for TechRepublic a few years ago, Nick Hardiman characterized functional testing as something that was "not easily turned into a repeatable process, let alone a commodity" via cloud automation. In the same article, he noted that the cloud had become a powerful platform for more technical forms of testing, such as development, performance and load testing.
Others have noted how the cloud is excellent for testing specific application components APIs. Research firm Gartner has also honed in on the technical advantages of cloud and eyed its potential for streamlining business-oriented functional testing, too.
"Cloud-delivered testing tools are rapidly becoming commonplace in performance and load testing," stated an excerpt from the Gartner IT Market Clock for Application Development, 2013. "This provides the full value of pay as you use and much greater scaling capacity than traditional tools. In addition, the use of device clouds for testing applications on devices has driven broader adoption of cloud testing tools and is helping drive greater adoption for functional testing via the cloud."
It looks like infrastructure- and platform-as-a-service solutions will become increasingly central to functional testing in the years ahead. Functional tests have so far been less amenable to cloud automation than more technical tests, due to their emphasis on experience rather than the optimization of particular stacks or code. Still, the need to support so many devices from any cloud service may create a natural incentive to make the cloud into a better foundation for functional testing, via test management software.
Published at DZone with permission of Sanjay Zalavadia , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.