Many teams report that their developers produce software that is 95% complete, and yet it doesn’t integrate well and is not shippable to customers. This is the reason why pair programming is given serious consideration in many software development organizations. Recently, we wrote about pair testing which is most valuable in teams for which there is at least some tolerance for deeper thinking, exploration, and some creativity. The ideal is to find two team members who are critical thinkers — one who is creative and the other with the capacity for disruption. As in many other aspects of human experience, two minds can be much more productive than one.
While pair testing can be very beneficial — especially for complex challenges — it quite inefficient for most development teams that continue to crank out many new features and changes. Often testers must perform manual exploratory testing on a significant proportion of changes, and then turn to manually update and reconfigure the regression suite. On many development teams, much of the conventional test automation is tedious, time-consuming, and faulty.
To improve productivity, many software QA teams rely heavily on conventional automation frameworks such as Selenium and Appium. More than 80 percent of the respondents to a recent mabl survey currently use Selenium. While frameworks such as Selenium have boosted QA velocity in comparison with manual testing, there are a number of significant disadvantages such as:
As the pace of innovation continues to increase, these disadvantages become acutely painful. It becomes so intense that some teams limit the use of conventional tools. Since they don’t have the capacity for retraining or increasing QA staff, this often results in a decrease in product quality.
As we wrote previously, pair testing involves one person that does the testing — while another person observes, inquires, clarifies, records notes, and spots defects that would otherwise go unnoticed. Pair testing can be especially effective when one programmer sits together with a tester. The dual oversight of this pairing can yield many benefits, thought it is arguably an inefficient use of human capital. No wonder that it is used sparingly.
Pair testing accomplishes the following:
Ideally, pair testing should give each participant an opportunity to take the wheel. When the tester is driving, the programmer can gain deeper, more valuable insights on how a tester uses and perceives the software. While the programmer is driving, the tester can gain a deeper understanding of how the software has been built.
Pair testing is especially effective during development. Many problems will be found at such early explorations, and this early identification will likely result in a much easier solution. Even better, if possible, would be to invite a business analyst to pair testing sessions, and this upstream triad is sure to reveal any lurking logic, design, usability, or functionality issues. Further downstream in the delivery pipeline, post-development pair testing collaboration can be valuable for improving development and testing practices.
What if you could easily learn and manage a learning machine that functions as a testing partner? How much could you benefit from a configurable system that provides not only regressive testing — but also additional testing oversight across the entire development pipeline?
While a machine isn’t going to look over your shoulder, you can enlist and configure automated computing systems to substitute as a pair testing partner — at least to some extent. A robust, AI test automation system can test various permutations and combinations that might otherwise go untested. With such as tool, you can leverage the power of machine learning to find bugs that might not otherwise be found and work faster to perform regression tests that will automatically adapt and update with each new release.
The best of the new wave of automation tools can save significant amounts of testing effort which can then be spent doing more exploratory testing and finding more ways to automate to accommodate new features and changes.
Quickly evolving requirements and specifications, ever more rapid feature development, short release cycles, and nebulous accountability affect overall quality. All of these combine to burden QA with serious and intensive challenges. New tools like mabl are emerging and are making far-reaching headway in mitigating these challenges. Let’s consider a few.
Unlike current automation solutions, next-gen QA tools like mabl don’t require scripting expertise. Scripting will largely be replaced by visualized interfaces that enable rapid test creation, easy and automatic test adjustments, and simple dashboard test management. Test coverage can expand significantly and tests will evolve fluidly with changes and new features.
Because they employ adaptive, robust methods of simulating user interaction, next-gen QA tools don’t exhibit the brittleness of conventional test automation toolsets. It’s no longer necessary to keep the bar low with tests that remain closely bound to volatile front-end elements. Solutions like mabl leverage machine intelligence to create and maintain elaborate yet elastic test models.
Many of the most innovative QA tools today exploit rapid-provisioning cloud computing resources for much more efficient parallel test execution. It’s easy to extend this approach and tap into highly powerful processing and analytics engines to scrutinize every last test result detail and deliver more meaningful QA insights.
Cutting edge AI testing solutions like mabl integrate tightly with automated CI/CD delivery pipelines that are managed by CircleCI, Jenkins, CodeShip, Spinnaker, and any others. One wonderful outcome of this seamless integration is that tests can be set to trigger automatically on frequent, granular product changes. Notifications are sent immediately to key staff when potential concerns arise. Far fewer bugs will make it downstream, and it’s much easier to execute tests — comparing results among various environments and builds. Some will contend that the most glorious result is that release, deployment, promotion, and rollback decisions can truly be much less stressful.
Beyond merely validating particular assertions, the new generation of QA frameworks will use machine intelligence to automatically detect, pre-analyze, and enumerate probable regressions. Quality assurance thought patterns will morph away from pass/fail paradigm, as technical leaders increasingly seek to assess the extent to which a change will have a positive or negative impact on overall user experience. The major focus will shift from code coverage to product coverage — toward a holistic approach that is continually assessing the risk of releasing each successive build.
Let’s look at some specific ways that mabl can be a effective virtual pair testing partner. In a recent article, we wrote about
how our users had been pushing the mabl Trainer to do all the things they could do in Selenium. Of course, mabl has much more capability that goes beyond Selenium, but we have responded fully to user feedback and made a big push in this direction.
Today, the mabl Trainer enables users to interact in many different ways with their applications:
Software QA has never been easy. The accelerating pace of software development is creating more complexity that will only serve to intensify existing challenges and raise new obstacles. Thankfully, mabl is part of a small group of distinguished testing platforms that have emerged to deal with the complexity of today — and the future. At mabl, we continue to innovate our Trainer by exploiting new advances in cloud computing, machine intelligence, and tight CI/CD coupling. The result is a dramatic improvement in QA efficacy for our customers. Let us know if you’d like to partner up.
Originally published at www.mabl.com.