New Technology, New Tools…New Automation Strategies?

Automation is one component of improving team performance. Automating repetitive manual tasks gives team members time to solve other problems and come up with innovations that help the business. Automated regression tests give teams fast feedback and let them add new capabilities to their product without fear of breaking anything.

Back in the 90s we had rudimentary automated test tools and dreamed of bigger solutions, tools that not only test system behavior, but also:

Ch-Ch-Ch-Changes: Experiences of Testers Who Have Shifted Left & Right

In previous posts, I've shared my own experiences with "shifting left and right," also known as continuous testing, and how testing-related activities change when you make this shift. I'd like to share experiences from other testing practitioners as they have moved into participating throughout the software development build, observe, measure, and learn loop.

Let's learn what a few testers have found as they got involved with testing at various points in the continuous development cycle. If you haven't yet been able to embrace continuous testing, these stories may give you some ideas on how to get started making the move.

Shift Left, Shift Right — What Are We Shifting, and Why?

As more teams embrace the challenges of continuous delivery, we hear lots of people talking about "shift left" and "shift right" in a testing context. What does that mean, exactly, and why does everyone want to do it?

When Software Development Was Linear

I joined my first "waterfall" process project back in the mid-1980s, as a developer. It was a linear progression, and in my head, I saw it unfurl from left to right. It seemed reasonable (to my naive eyes) to start with a thorough analysis of the system to be built, finding out what the customers wanted. This "phase" produced an analysis document which triggered the "requirements phase," during which analysts and product managers created a document detailing every bit of functionality to be built. And on it went, handoffs from one phase, and often one team, to the next, with thick Word documents changing hands, until the developers finally "froze" the code so that no more changes could be done. Finally, QA could start the testing phase, usually with very little time left until the release deadline!

Practical Uses for Machine Learning in Software Delivery

As explained in the 2018 State of DevOps Report, high-performing software teams use key technical practices such as continuous testing, monitoring, and observability. We’re trying to shorten that learning loop. As a developer about to check in changes for a new feature, wouldn’t it be nice to know before you commit whether the changes will behave as desired, and whether they will break something else in the application? That would be the ultimate feedback loop!

Getting Feedback

Part of continuous testing is having automated test suites at various levels, such as unit, API, UI, testing various quality attributes, such as functionality, security, accessibility, performance. We run these tests in our pipelines. Unit-level tests give us quick feedback. Feedback from UI tests takes longer, but gives us more confidence in our product.