Today, many enterprises have the option of building their own software for their unique needs or buying prepackaged software, usually delivered as a service from the cloud, and modifying that software for their needs. More often, these enterprises are opting to buy a solution, whether it is customer relationship management, financial management, human resource management or inventory management.
Fewer enterprises have the desire to build their own, instead, they turn to the likes of Salesforce.com, Oracle, SAP, and others to fulfill their enterprise software requirements.
However, that doesn’t mean there isn’t an important role for testers on your team. Though, the role is different than traditional testing of custom software. Instead, testers have two primary functions. Yes, surprisingly enough, testers have to verify the core functionality of the purchased software. Despite the fact that enterprise software vendors do their own testing prior to release, their software still encounters defects.
Three ways to test SaaS enterprise software
Testing commercial SaaS software is a three-prong process. First, testers have to test the core functionality of the product. Despite the fact that these vendors have their own testing and QA teams, some defects still slip through the cracks. Many of the defects in these products are actually found by customers in setup and production use.
Second, testers have to test the configurations of the product for their environment. Configurations are settings within the software that enable enterprises to make it fit for use in their organization. These include security settings and security groups, backup and retention policies, and corporate branding on web pages.
Last, testers have to test all customizations. It’s common for enterprises to modify commercial software to better fit their way of working. This is done most often through add-ons, although they may also modify the core product. This is an entirely new code that is intended to work with the commercial product. They may do such development internally, or they may outsource to a consulting or systems integration team.
These components either use APIs from the commercial product or other integration means to link the core enterprise product with customizations. So customization testing involves not only feature/function testing of new code but also integration testing on how those components work with the core product.
Further, enterprise software delivered from the cloud (which is, of course, the definition of Software as a Service) has the potential to be modified or upgraded overnight. But enterprise users can’t just come into work one day and start using a new version. Testers have to have first access in a test bed, so they can do regression testing, ensuring that the new versions still work with the existing configurations and customizations. Only after continued success with these tests can the enterprise gain full access to the application.
Testing will benefit from automation and AI
To successfully test cloud-based upgrades, testers need to automate their original unit, system, and integration tests so that they can serve as regression tests. This is especially important because new versions may be released as often as every couple of weeks.
An intelligent approach to this strategy could include artificial intelligence (AI), which can be used to select appropriate regression tests based on the capabilities of the new version, and run those tests automatically when the software is dropped into the test bed. Some commercial AI-based testing tools are able to perform these and other activities on SaaS enterprise software today, and more will be able to do so in the future. Human testers can then go and perform selected exploratory testing activities prior to the formal release into the enterprise.
This approach to testing SaaS enterprise software can give enterprises the confidence they need to keep using software that is upgraded fast and seamlessly. Looking at the core product, configurations, and customizations on an ongoing basis ensure that SaaS products will work correctly.