Over the top-flight formation

5 software testing insights that will put your organization on top

Software testing is no longer just about preventing bugs, but is now a strategic function. In the modern development shop, quality is everyone’s concern, given the potential impact of poor quality on an entire development pipeline. The need to ship code faster is critical for software development teams everywhere.

So what are the critical insights that place the most advanced testing and development organizations ahead of the pack? Here are the five elements of effective software testing that every organization should get behind.

Continuous testing: A practical guide

1. Automate testing everywhere possible

Automated testing enables the greatest software development organizations. It helps to mitigate the cost of testing software, which is rising with the accelerated pace of agile and DevOps release cycles. The more tests you automate, the fewer investments you need for manual testing, and the more you can rely on testing to provide rapid feedback during your development process.

The standardization of open source frameworks such as Selenium and Appium makes it easy and cost effective to automate your tests across a broad spectrum of operating system, browser, and device combinations. Being able to write your tests just once and have the platforms you need automatically supported is a huge advantage.

2. Do your testing in the cloud

Testing is the exact kind of problem at cloud computing excels. Tests can be run in parallel, and the need for quick testing feedback cycles makes for spikes in the load pattern. With cloud computing, software testers can devote significant computing resources to testing when needed, without bearing the cost of those resources when they don't need them. Because they're provisioned on demand, cloud resources also help provide a consistent testing environment, increasing test stability by eliminating problems related to persistent state.

Why not just spread out those load spikes by using fewer computing resources over a longer period of time? Because the benefits of rapid testing feedback to a software development cycle are too important to compromise.

Software testing sits at the center of a feedback loop that is critical to innovation. A bad software testing process can significantly hinder innovation, either by providing an insufficient safety net to prevent issues from affecting customers; or by slowing the feedback cycle, making it difficult to learn and iterate toward innovative solutions.

By the same token, a good software testing process can be a key enabler of innovation, making feedback cycles quick and enabling safe experimentation by containing the risk of customer impact. The key is to make testing rapid, reliable, and comprehensive. Cloud systems are uniquely positioned to make this possible.

3. Looks for answers in the testing data

Mine your testing data for insights. Organizations have a wealth of automated testing data they can analyze to discover bottlenecks and problematic tests. If used successfully, this data can dramatically speed development by making tests more reliable, and accelerating the overall testing process.

Unfortunately, organizations are often overwhelmed by the sheer volume of data, as well as the development effort involved in analyzing and disseminating the information to the development and QA organizations. Recently, however, several open source efforts have emerged to ease the analysis of testing data, and the creation of dashboards. Two notable ones are Capital One's Hygieia project and Walmart Labs' TestArmada Admiral tool.

Big data and machine learning technologies are already in use, and more enterprises will come to rely on the benefits of adopting them. The advancements in these technologies make data powerful in helping with strategic and tactical business decisions.

4. You need good testing standards

As browser vendors added support for the increasingly standardized WebDriver protocol, automated testing for the web has become dramatically simpler, and more effective. The need for test automation standards in mobile testing is a part of what has driven adoption of Appium (also based on WebDriver).

Expect the same trend to continue. Even more than with the adoption of mobile, IoT software testing promises to be challenging. Because the variety of devices and device capabilities is so much greater than even in mobile testing, balancing adequate device coverage against testing costs will be a complex problem.

Testing framework standards and device virtualization technology may be helpful and necessary in bringing software development and testing costs under control. There's an opportunity here to bring some of the lessons learned from web and mobile testing to bear on IoT, so that as an industry we can get a running start on a difficult problem.

5. Focus is key

The lesson that has had the biggest impact on my organization was to focus as much as possible on our core competency. In build versus buy situations regarding non-core technologies, we lean toward "buy" as much as possible.

We've seen the benefits of this choice every time we've made it. If you don't need to build infrastructure, and can instead use cloud solutions, don't hesitate to go with the cloud. Doing so lets you focus on putting together business solutions, rather than worrying about building and maintaining infrastructure. And it allows CIOs to spend more time and energy on business strategy, rather than non-core technology tactics.

Continuous testing: A practical guide

Image source: Flickr

Topics: App DevQuality