Software Testing in a Pandemic: 5 Keys to Reduce Rollout Delays & Downtime

essidsolutions

It’s been seven months since the global health crisis struck and it has probably affected software developers and testers the most who quickly adapted to the pace of change in IT. Overnight, we witnessed the increasing embrace of SaaS adoption that was already underway even before the crisis began. But the pandemic made it a go-to platform for businesses of all sizes.  “SaaS is now the gold standard for businesses, from old-school accounting firms to bleeding-edge artificial intelligence startups, and from small family-owned shops to large multinational corporations,” Blissfully Founder-CEO Ariel Diaz said. 

Blissfully’s annual 2020 SaaS Trends reportOpens a new window which came out in March, just when the pandemic hit found that overall spend per company on SaaS products is up 50%. Another key indicator of major change is how employees (the end-users) interact with these apps in decentralized environments. The report found employees across every department are using more than 10 apps to get their job done.  

Needless to say,  to meet the market demands, developers have been working hard and fast to deploy new features and services, but without the proper guardrails in place, which lead to severe security flaws, and more, Chris DeRamusOpens a new window , VP of Technology, Cloud Security Practice at DivvyCloud by Rapid7 observed.  A recent articleOpens a new window in Computerworld detailing the biggest software failures in recent history points out the potential risks and monetary damages that a company can face if software is not tested thoroughly.

To ensure that software works properly prior to rollout, testers and developers must ensure that their software testing tools and strategies are robust enough to withstand the stresses that the pandemic places on IT, including working remotely and increased time off for medical issues.

Learn More: Role of DevOps in Cloud Security Adoption 

The Effects of the Pandemic on DevOps and Testing

Per a recent global studyOpens a new window by PagerDuty, over 80% of organizations have experienced increased issues on digital services since the start of the global pandemic. Companies cited a 47% increase in daily incidents compared to six months ago, resulting in 62% of IT and DevOps practitioners spending more than 10 extra hours per week resolving incidents.

“The pandemic has irreversibly changed the way we live, work, communicate, learn and shop. We now exist in a digital default world and the stakes are high. Downtime can mean millions in lost revenue and keeping digital services running perfectly is a complex job,” said Rachel Obstler, Vice President of Product at PagerDuty. “This research underscores the fact that every company is facing the challenge of accelerating their digital transformation to keep pace with customer expectations and needs, while grappling with increased digital complexity and strain. It also candidly points to the human cost of this dramatic change – an immense strain on the practitioners charged with keeping digital services running which can lead to massive burnout.”

The PagerDuty survey also notes that, “Since the pandemic began, 55% of respondents divulged that they are asked to resolve incidents during their personal time five or more times a week, and 39% say they are firefighting or focused on unplanned work 100% of the time, which leaves no room for proactive, innovative work. As a result, organizations have had to cancel or delay an average of 7.6 projects in the last three to six months.”

Some of the highlights of the report include:

  • 53% of survey respondents said the pressure to keep digital services running perfectly has reached unprecedented levels in the last 3-6 months.
  • 46% of practitioners feel overwhelmed when thinking about the next 12 months and feel the volume of work in the future will be significant.
  • 64% believe automation that removes manual processes will be critical to do more with less and meet increased demand on digital services.

“As organizations strive to capitalize on the new norm of digital first, they must modernize and automate how they manage their digital operations, because the old approach doesn’t work anymore. You need AI and machine learning, and automation, in order to remove complexity and be proactive and predictive,” Rachel Obstler continued. “Any company that fails to mature their approach, compromises customer experience, employee health, critical projects and risks significantly impacting cost structure.”

Learn More: Functionality Testing: The Imperative for Your Software Application Quality 

5 Steps to Upgrade Software Testing  Strategies

Clearly, many companies need to update and upgrade their testing strategies to deal with security issues caused by the pandemic. Here are five steps you can take right now to help mitigate the risks.

1. Have a well-defined software testing strategy

Many large organizations and governments include software testing as part of their overall strategic information technology planning. For example, the governments of CanadaOpens a new window , the United States Office of Management and BudgetOpens a new window , Department of DefenseOpens a new window and the General Accounting OfficeOpens a new window publish their IT strategy plans on the web. Many standards for testing are available, including software development standardsOpens a new window from the International Standards Organization (ISO).

If you do not have a current software testing strategy, research others that are publicly available. Pay particular attention to those elements of testing that are relevant to your IT DevOps mission. For example, if you frequently implement cloud-based apps, be sure to include cloud-related logic and security testing. Another common issue is performance testing of apps that access multiple, distributed data sources. For example, if you have a customer-facing product sales application that accesses customer and product information at one site and also uses AI at another site to investigate potential financial fraud, you should include network performance testing metrics.

By clearly defining and documenting your test strategy, a new or replacement Devops team can be brought up-to-speed quickly.

2. Use a software testing suite that plays to your IT organization’s strengths

Many vendors have testing software that can assist in automating application testing as part of your development process. According to GartnerOpens a new window research, “In 2023, 90% of current applications will still be in use with insufficient modernization.” Some examples of such modernization include the following:

  • If you are using Oracle XE or EE database, Oracle has an Application Testing SuiteOpens a new window that incudes functional testing, load testing, agents for testing web logic and a test management console. This suite works best with web-based apps that use one or more Oracle databases in your network.
  • If your organization uses Microsoft Azure cloud services, Microsoft provides test plans, test suites and test cases through its Azure DevOpsOpens a new window server. Of course, this suite is Microsoft-centric.
  • IBM IGNITE Quality and TestOpens a new window uses AI to improve testing speed and efficiency. Forrester WaveOpens a new window noted that, “IBM has clearly strengthened its focus on Agile-plus-DevOps to support clients with continuous testing.” On top of IBM’s long focus on test optimization, the report cites IBM’s “scale, strong IGNITE innovation road map, high revenue per tester and flexible client approaches.”

In addition to specific vendor products, several IT research sites publish comparisons of testing tools. Some of these include the SoftwareTestingHelpOpens a new window list of 2020 web application testing tools, MediumOpens a new window ‘s list of automation testing tools and TestingXpertsOpens a new window various blogs on web application testing best practices.

Such software testing suites reduce the risk that temporary (or permanent) loss of IT staff will cause the organization to lose essential corporate knowledge that is critical to testing.

Learn More: Airtable Rakes In $185M in Series D, Rolls Out Tools for Non-Coders

3. Don’t skimp on training

Training in specific software tools may not be enough for your staff. Consider the benefits of having some staff attend virtual software testing conferences. Several of the best upcoming conferences are listed at SoftwareTestingHelpOpens a new window . It is usually not necessary to send all of your staff; typically, the individuals attending should be able to cover the relevant presentations (including by vendors) and report back to IT on what they learned.

Another possibility is getting your software development team industry certified in software testing. The International Software Testing Qualifications BoardOpens a new window has links to training and certification examinations.

Well-educated and trained staff can mitigate the risk that the health issues of a small number of critical workers will negatively affect DevOps.

4. Include security testing in your test plans

While security is a major concern for IT, it is sometimes forgotten during application testing. To avoid costly security-related mishaps, your IT organization should invest in some combination of specialized full-time QA (Quality Assurance) teams and a third-party organization that concentrates on security testing. For cloud-based DevOps, consult with your cloud vendor regarding such testing.

Proper security testing greatly reduces the amount of time and resources required to resolve incidents.

5. Automate regression testing as well as unit testing

Test automation has been part of DevOps for a long time. However, most of current automation usually consists of scripts for testing individual applications based on specifications. For example, if application logic calls for accepting a customer transaction, testing will center on verifying fields. The testing staff (or DevOps) then tests this logic and places testing scripts in a central location.

Expand this script-based testing to do regression testing. This is a process where an entire application is tested after making modifications for bug fixes or new features or functionality. Since unit test scripts already exist, they can be combined as a group and then used as a test of the entire application, and then saving the test results. After bug fixes or modifications, you can run the regression script again and compare the results with the prior results. Hopefully, your changes will not have affected previously-working logic.

Being able to automate the re-test and results comparison will save testing time and resources, thus reducing the risk that staff health issues will lengthen your testing window.

Learn More: The DevOps Checklist: 5 Steps of a Feature Launch 

Takeaway

The pandemic has placed DevOps and testing staff at risk for lost hours, leading to longer DevOps development times. With an application rollout deadline approaching for a critical application, it may seem necessary to skimp on testing time in order to meet your implementation schedule. Avoid the risks and costs of application outages by implementing the steps presented above.

Let us know if you liked this article on LinkedInOpens a new window , TwitterOpens a new window , or FacebookOpens a new window . We would love to hear from you!