The proportion of IT spend allocated to QA and testing is predicted to rise to 40 percent by 2018 according the World Quality Report for 2015–2016. On average, organizations spend a lesser portion of their IT budgets on testing, but avoidable costs of failure often account for more of their IT budgets. These crippling expenses make it imperative that organizations stay ahead of key software testing trends to save money and prevent failures.
Consequently, leading software development companies are adopting these eleven proven practices not only to avoid unnecessary costs but also to improve quality.
- Establish a true testing cost of excellence (TCoE): QA and testing budgets, as part of the overall IT budgets, have leapt to 33 percent, an 11 percent increase from 2014. In. TCoEs allow organizations to consolidate their testing operations in response to market demands and differing models of testing delivery. The keys to building a successful TCoE are getting sponsor buy-in; evangelizing with project teams; defining end-to-end communication channels; and establishing clear processes, templates, reports, and metrics.
- Embrace mobile testing: Mobile devices are here to stay. Today’s main focus in mobile testing is managing various devices and operating systems. Any organization that can establish a mobile testing lab, take ownership by managing devices, and automate test coverage on mobile devices will have an edge in the current business landscape.
- Automate your tests: Automated testing has been around for a long time and will continue to thrive due to its ability to reduce user error during the testing process. Test automation can also help the customer develop trust in your software product. There is a shift away from licensed software automation tools toward open source tools like Selenium, which gives organizations with expertise in open source tools an edge in the emerging market. It is imperative to do a proof of concept to ensure that the selected tool works successfully in the client environment.
- Establish metrics: There are different schools of thought with respect to metrics. Some say software testing is a creative endeavor and that it is not useful to measure creativity. But all stakeholders want to know where their projects stand, and establishing metrics to measure progress is critical to the overall success of the project. Metrics can be used to measure both product quality and the testing itself. Without metrics, how do you know when your quality goals have been achieved? Reporting these metrics on a regular basis ensures project quality is always maintained, and the stakeholders are well informed. This is vital to helping the customer make project decisions and appropriate course corrections, which will eventually lead to better business outcomes.
- Invest in security testing: Given the publicized security breaches with Target and other big name companies, security has come to the forefront of testing. Cloud-based testing has recently slowed due to security concerns. This is because public clouds share resources between different organizations, and virtualization creates a lot of vulnerabilities. The best way to overcome this is to ensure adequate controls are in place to secure your environment. Finding expertise in the specialized area of security testing is critical to establishing a well-rounded testing organization.
- Provide an independent view of quality: To conform to modern day quality compliance requirements, it is becoming more common for software organizations to have separate development and QA functions, each with its own resources and procedures. Separate organizations can ensure that quality is built in and that there is no engineering bias in test results.
- Shift left: IT organizations are now using a larger portion of their budget for QA. In order to ensure that the budget increase provides value and is effective, the QA team must be involved from the very beginning of the development lifecycle. The earlier defects are detected, the lower the cost of fixing them. Getting testing resources involved as early as the requirements definitions phase reduces any misunderstanding of the work to be performed, undertaken, and completed.
- Set up test environments early: QA teams have to become better informed at the beginning of a project to clearly identify the environments to be tested. It may be costly, but it is imperative to have separate environments for different testing efforts, like unit testing, system testing, user acceptance testing, performance testing, and automation testing. Without separate environments, a project timeline can be unnecessarily delayed as equipment is being repurposed for testing. This wasted time can also introduce human error where systems are not properly initialized for each round of tests.
- Scale testing for the Internet of Things (IoT): IoT has huge market potential that is expected to connect more than a billion devices within the next few years. A robust test strategy is needed because of the complexity of a slew of devices, regulations, and various modes of communication. Another key to enabling IoT testing is to have a reliable and secure network. To succeed in developing for IoT, we need standards and practices in place early in the adoption. Establish clear standards for various devices and sensors, clearly defining the data needs, creating a real-time dashboard showcasing various activities, and, finally, putting in place robust controls to ensure the security of all systems involved.
- Adapt tests to new technology: New technologies like cloud and mobile testing are on the rise. According to the 2013–2014 World Quality Report, mobile testing has seen a rapid rise from 31 percent in 2012 to 55 percent in 2013. Currently almost 36 percent of software is hosted in the cloud, but a lot of businesses still don’t have the necessary infrastructure for cloud testing. This might cause businesses to opt for testing as a service (TaaS) options. TaaS is an outsourcing model in which testing activities associated with an organization’s business activities are performed by a service provider rather than by its own testing resources.
- Validate big data: Big data is a term that describes large quantities of data generated from a business on a daily basis. This is an emerging trend worldwide, and a lot of organizations (thanks to social media) have access to data they could only dream about in the past. The main premise is that this data can be analyzed for key insights that eventually lead to better decisions and business moves that help the organization. According to some experts, big data will account for 50 percent of the total software testing budget. The essential point for software testing teams is ensuring the highest order of security when validating a large amount of data.
This is an exciting time to be in the software testing industry. Larger budgets are being allocated to the testing effort, and every testing organization should focus on these eleven trends.
The article was originally published in the Spring issue of Better Software magazine on March 2016 and is re-posted here by permission.