This is a guest post by Shyam Ramanathan
It is imperative for organizations to stay ahead of key software testing trends to save time and prevent failures.
The objectives of QA are to support the team from an overall delivery perspective, provide high end-user satisfaction, and of course, detect software defects before they go live. According to the World Quality Report for 2021-2022, the QA function must contribute to business growth and improved outcomes. The report also emphasizes that company executives are giving more gravity to QA than ever before. QA is becoming less of an afterthought; it serves the purpose of shift left and accelerates delivery and quality of projects.
The ability to quickly scale up automation, improve management of test environments, and ensure there is an approach to increase the skills of the testers in the organization are just a few of the trends that you will need to stay on top of to thrive.
Here are the top ten software testing trends that will help you build a robust QA organization in 2022:
1. Development skills
There is a big demand for software development engineers in test (SDETs) in the current software development landscape. It is no longer enough to have QA testers who specialize in designing and executing tests: you also need to have strong technical skills that complement your domain knowledge or a diverse team with both manual and automation testers. Deep domain knowledge combined with strong functional expertise is the key.
During day-to-day test execution, folks with development skills can help explain bugs with clarity to development teams in their language, thus enabling a faster turnaround. Having testers with development skills also gives you an advantage during defect review meetings when QA can speak from a development team perspective to explain how bugs can be fixed.
2. Agile and DevOps
In the current landscape, there is a lot of demand for faster product life cycles, quicker releases, and small autonomous teams. Agile improves collaboration among the various teams and has specific methodologies which can be tailored to meet each of the project’s demands. The main reason a lot of companies are moving towards agile is because of the faster delivery, continuous integration, and more frequent deployments that ultimately satisfy the end user’s needs better and provide higher quality. The key is to get end-user feedback earlier and make course corrections as needed. The startup culture of releasing a minimum viable product is also an example of this.
DevOps is all about automating and streamlining the entire process involved in the overall development life cycle. The key piece in DevOps testing involves adopting agile testing best practices, and the more Continuous Integration techniques are employed to ensure good execution, the better the quality of results.
Agile and DevOps development models often incorporate the idea of “shift left”. Shift left is one of the key concepts that have helped in the overall improvement in quality. The earlier the QA, development, and business analyst (“BA”) teams collaborate, the better the chances are that the final product is going to be high quality.
With the popularization of DevOps and agile, shift right should also be adopted more frequently going forward. Shift right is basically testing in a production environment, observability, and preparing for the unknown and unexpected. This also enables us to get immediate feedback on deployments. In this approach, the performance, design, and usability of an application is continuously monitored and feedback is provided by users on a continuous basis.
Testing plays a huge part in ensuring agile and DevOps are successful. Involving QA teams earlier on in the life cycle, at the initial elaboration sessions and agreeing on acceptance criteria, enables them to write test cases earlier. This means that the development team can write their code in ways that are more testable and develop a better understanding of what functionality will satisfy the original requirements by understanding how the functionality will be tested and taking on some of the responsibility for testing while the functionality is being developed.
3. Artificial Intelligence
This is still a very nascent area as far as QA is concerned and lots of people in the industry are talking about how AI will change testing, but very few have actually seemed to implement it. The main purpose of AI is to leverage automation (namely machine learning) to deliver better results. This will also enable newer jobs for folks like data scientists and AI quality experts.
Testers who develop skills both in testing AI-based systems and utilizing AI-supported testing techniques will be in high demand for the next few decades. The emergence of AI will change the role of the QA engineer within a software development team, and as testers establish new roles within their organizations, we also have to be creative to augment AI and not allow that to stop our creativity.
the recent advancements pose new opportunities to apply AI in testing. AI algorithms are developed to generate better test data, reports, and test cases, predictive models are used to help to make better decisions, AI-led analytics support teams to detect faults, in order to understand areas of high risk and test coverage.
4. Embrace mobile testing
Mobile devices now represent a majority of all devices used to connect to the internet, taking 55% of the market share vs desktops. 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.
There are generally three types of mobile apps: native applications, web applications, and hybrid applications. A lot of organizations are choosing to build hybrid apps so that they can cover a large array of platforms. When you are testing on mobile, it is absolutely imperative to think from an end-user perspective. This means usability is a key differentiator in terms of understanding if the mobile app is designed per users’ requirements. The look and feel of the screen, the size of the font, the color on the screen, and other characteristics have to be thought through to finality.
Exploratory testing is also important to ensure a good mobile user experience. It is important to listen to customer feedback and act on them immediately. According to many mobile testing experts, the preferred option is always to test using physical devices wherever feasible. Of course, unit testing and smoke testing are ideal pieces that can be tested using emulators. A lot of the testing is done through emulators as it is an easier option. However, QA should be using the physical devices wherever possible as this mimics the end-user experience perfectly. The top tools for mobile testing are Appium, Calabash, Frank, Robotium, and SeeTest.
5. Automate your tests
Automated testing is perhaps the most potent way QA can add value to the overall project both from a quality and cost perspective and is crucial in helping customers develop trust in your product.
The key advantage of automation is that it enables you to run tests in batches and run regression tests that can be executed independently of human intervention. With Automated testing, you can launch multiple scripts and have them run at any hour. This allows for numerous systems and configurations to be tested in parallel and frees up more time for crucial in-depth manual testing. With the advent of DevOps and daily builds, it is imperative to run tests consistently to deliver results from every build. This builds trust in users that all the previous changes are intact and the latest code changes are of good quality.
Once Automation testing reaches a critical mass and a lot of the test cases are automated, it can help reduce costs because defects are found earlier and it enables resource optimization with a lot of manual testing being augmented. A well-crafted automation suite will also increase your team’s overall productivity since bugs can be found quicker and overall turnaround time is faster.
Over the past few years, there has been a shift away from licensed software automation tools towards 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. Some of the most popular open-source testing tools are Selenium, Cypress, Cucumber, Testlink, TestNG, and Watir.
6. Establish metrics to track testing
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 a project. Metrics can be used to measure both product quality and testing itself. Without metrics, how do you know when your quality goals have been achieved?
Reporting 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. Some common metrics include schedule slippage, effort slippage, defect removal efficiency, total defect containment effectiveness.
7. Invest in security testing
Given past publicized security breaches with big-name companies, security has come to the forefront of testing over the last decade. Since the onset of the Covid-19 pandemic, the rate of cybercrimes has increased. Finding expertise in the specialized area of security testing is critical to establishing a well-rounded testing organization. The various types of security testing include vulnerability, penetration testing, security audits, and API security testing. The security requirements generally include specific elements of confidentiality, integrity, authentication, availability, authorization, and non-repudiation.
Another important area to focus your security testing is the cloud environments your team uses for testing and deployment. According to Synopsis.com, “The concept of the cloud implies an unlimited resource pool for sharing and utilization. Deploying applications into the cloud is a process that many expect to benefit from by leveraging distributed computing capabilities—while inheriting associated security risks at the same time.” 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 that the right controls are in place to secure your environment.
8. Quality is owned by the entire team
To conform to modern-day quality compliance requirements, it is becoming more common for software organizations to integrate development and QA functions. This way, quality is not the responsibility of just the QA team. The onus of delivery is on the whole team. So when the QA and development teams work in unison, it provides greater quality and more collaborative solutions. It also helps to pair developers and QA folks together to do exploratory testing. This enables great ideas to be fostered and is the basis of the DevOps movement breaking down silos and operating as one unified team with a common purpose of higher quality software.
9. Rapid Software Testing
As explained by James Bach, Rapid Software Testing (RST), “is a responsible approach to software testing centered around people who do testing and people who need it done. It is a methodology (in the sense of “a system of methods”) that embraces tools (aka “automation”) but emphasizes the role of skilled technical personnel who guide and drive the process. The essence of this methodology lies in its ontology (how we organize and define the various priorities, ideas, activities, and other elements of testing), humanism (we foster responsibility and resilience by putting the methodology under the control of each practitioner), and heuristics (fallible methods of solving a problem).” Modern software development is under the control of people. They can and should do whatever they think is best and RST is a mindset and skillset that advocates for people to take responsibility for whatever testing they do.
10. Scale testing for the Internet of Things (IoT)
According to Oracle.com, the Internet of Things (IoT) describes, “the network of physical objects that are embedded with sensors, software, and other technologies for the purpose of connecting and exchanging data with other devices and systems over the internet. These devices range from ordinary household objects to sophisticated industrial tools.” IoT has huge market potential that is expected to connect more than a billion devices within the next few years. Because of the complexity of these devices, regulations, and various modes of communication, robust test strategies will be more important than ever.
IoT devices are explicitly different from most other devices and the intricately connected nature of IoT ecosystems makes testing them even more important. An IoT platform typically has four elements: data center, sensors, network communication, and application. Each of these different elements needs unique testing procedures that testers must consider in order to craft a comprehensive test strategy.
Traditional software testing does not always work for IoT; the key to enabling IoT testing is to have a reliable and secure network. To ensure software quality, testers need to gain in-depth domain knowledge. Testers who are not experienced in testing embedded systems or hardware must have to develop their skills in those areas. To succeed in developing for the IoT, we need standards and practices to be in place early on in the adoption. Establish clear standards for various devices and sensors, clearly define the data needs, create a real-time dashboard showcasing various activities, and put in place robust controls to ensure the security of all systems involved.
The views expressed here are my own and do not represent my organization.