How testing processes should change when you shift left
How testing processes should change when you shift left Lisa Crispin March 13, 2019 <
How testing processes should change when you shift left
How testing processes change when you “ shift left ”
In “ ”, I explained some of the differences in the analog package development used in phased-and-gated approaches, and the “ tryout betimes, test often, test in production ” approach that contemporary agile and DevOps teams practice. Shifting “ left ” doesn ’ t mean that we expend a huge measure of time specifying detailed requisite up front, and transfer “ right ” doesn ’ t mean we precisely throw our code over the paries into production and let client find our bugs. & nbsp;

Illustration from & nbsp; “ Continuous testing in DevOps ”, Dan Ashby, & nbsp;https: //danashby.co.uk/2016/10/19/continuous-testing-in-devops/
Shifting left (and right) mean getting everyone on the speech team engaged in testing activeness. Testing modification from a scramble right before release to something your team talks about and perform every day. Let ’ s look at some healthy changes we make to our testing operation when we assume a continual, holistic testing approach.
Testing lineament mind
As the product team and our speech squad con how our customers use our product and what value they are still assay in it, we get new ideas for characteristic. In waterfall, the ware design team would look until they had a critical slew of new characteristic, then depart a long process of designing them. Testers might not have even be aware that new feature were underway. In modernistic software development, we can examine new feature idea right away, by ask questions like:
-
What ’ s the purpose of the lineament? What problems does it solve for our customers? Our business?
-
How will we cognize this lineament is successfully meeting client demand, once it is in production?
-
What ’ s the pocket-sized slice of this characteristic we can build and use as a “ memorise freeing ” to make certain it has value?
-
What ’ s the bad thing that could bechance when people use this characteristic? What ’ s the best?
Using tests continually to guide development
In the “ bad old years ”, essay was left to the end of the project after the code was “ icy ”, that is, no new features could be lend in. No testing was countenance before that, because it was understand as “ uneconomical ” to test the same code more than erst. The QA team had a mad scramble to test as much as they could before the speech deadline, seldom testing plenty. When we test throughout the round of delivery, breakthrough, and more bringing, we build quality into the codification and avoid unpleasant surprises right before liberation.
Here ’ s a distinctive “ shift left ” scenario: Your team has decided to build Feature ABC. The product owner has written anepicfor it and the team has slice that intosmall, testable stories. You ’ re having aspec shopor a discovery session withthree amigo(or more) to discuss the level before the planning session with the unhurt bringing squad. I ’ ve found that kick this eccentric of discussion off by ask “ How will we test this? ” leads to a productive treatment. We can verbalise about how to test a feature and its individual stories at all levels including unit, service level/API, UI, or other levels as appropriate. & nbsp; In my experience, I ’ ve found this helps the team pattern testable codification, which leads to more reliable code that is easier to understand and maintain.

What about tryout plans?
For autonomous testing across multiple user personas, check out SUSATest — it explores your app like 10 different real users.
For most business arena, the day of heavyweight exam plans are over (it ’ s confutative how many people e'er read them anyway!). Many teams findmind mapsare a best result for planning and tracking testing. A simpleone-page test plancan also act well. So can a test matrix compose on a whiteboard! Experiment with different formats to see what work best for your squad.

Instead of formal test plans, I like to charm a few examples of coveted and unsought conduct for each story as we discourse them in our “ amigo ” meeting. The squad can become those into workable tests that maneuver ontogeny. Once the feature is in production, these tryout become living documentation of how it act, as well as automated regression exam to make sure future alteration don ’ t break it. My team found that as we built each feature, we reckon of more test cases to automatise or research manually, which is one of the ways to better your hazard to deliver exactly what your client want.
Test early and much, automatize early and often
Models such as the help guide discussions around how to automate various character of test. Sometimes when my team discussed how to automate testing for a peculiar feature at different grade, the developer said it would be easier to test-drive their code with API-level tests. Other times they could cover everything at the unit level and we didn ’ t want higher level tryout. & nbsp;
In agile development, we build features incrementally, and we can automate as we go. Here ’ s an illustration from one of my teams. We supply a new footstep into an be UI process. First, we simply delivered an empty page where the new pace would be. It wasn ’ t functional, but we could demonstrate navigating to it, and we could automate a unproblematic UI test for it. Then we added some read-only data on the step, and a way to skip over the step if it wasn ’ t want. We demo this to our stakeholder, and updated our automated UI test consequently. We maintain building onto both the production and the tryout code for this potentiality in the UI. By add and expand automated tests with every incremental delivery, we could avoid a scramble to automate tests at the final minute, and yet better, avoid putting test mechanisation off until a future looping, which would add to ourtechnical debt.
If some or all of your production isn ’ t yet support by automated tests, that ’ s another challenge for the whole team to tackle. Nobody has time and money to automate everything, peculiarly in the short condition. I find it helpful to get a representative cross-functional group together and force the eminent level system architecture on a whiteboard (real or practical), and identify the bad areas. Make intelligent decisions about what to automatize next. Ashley Hunsberger ’ sTest Suite Canvasrender a outstanding fabric for these risk-based discussions as well.

When testers, developers and other team members collaborate to automatize tests as coding payoff, there ’ s less wait around to get questions answered, more expertise to indite maintainable tests, and less rework. Quite a contrast to thehandoffsin waterfall processes.
Applying what we learn from production
Back in the day, when we finally kicked a release out to production after month of work, we could spend a few days recuperating from all that last-minute testing and bug mend, then slowly commence our adjacent task. That old projection went completely off our radiolocation. We didn ’ t yield any intellection to how customers be using the features we ’ d render.
Today ’ s technology lets us log all kinds of info about how client use our product ’ s features, fault come in production, and eventracking eyeball movementin a user interface. Machine learning and former advanced techniques aid us quickly analyze huge amounts of data. Monitoring tools alarm us to problems. Teams can instrument every event in their codification forobservabilityto cursorily nail any production number. Analytics tools give us amazing detail on how citizenry use our software. All of this information give back into our discovery process to image out the future valuable feature we should establish. It besides helps us focalize our limited testing time tomitigate hazard and ascertainour customers enjoy features that are truly valuable to them.
I ’ ve collaborated with the operations folks who keep our production software up and running for my whole career, so the move to DevOps was a natural progression for me. Not all testers have had those opportunities, but now is the clip to build your span to Ops. Collaborate with the people who carry the on-call pater, who look after protection, and who plan for catastrophe retrieval. Testing skills such as risk analysis, power to see form, and asking great questions cipher else thought of are worthful for DevOps activities.
Watch those Monitor, find out what customers are reporting to your support staff, and learn to use analytics tools andlet production use guide your testingand development. This wreak us back entire circle to feature ideas. Understanding our customer needs and painfulness point facilitate us question and test those new feature ideas. & nbsp;
The unnumberable loop of continual testing is an exciting drive! Compared with what we suppose of as traditional over the wall testing, it ’ s a wholly new process. Collaborate with everyone on the team to build quality in by engaging in testing activities throughout the discovery and bringing loop.
Resources for additional learning:
“ Key skills modern examiner need ”, Interview with Janet Gregory on StickyMindshttps: //www.stickyminds.com/interview/key-skills-modern-testers-need-interview-janet-gregory
https: //www.agileconnection.com/article/three-amigos-strategy-developing-user-stories
Discovery: Explore Behavior Using Examples, Seb Rose and Gáspár Nagy,http: //bddbooks.com/
“ The One Page Test Plan ”, Claire Reckless,https: //www.ministryoftesting.com/dojo/lessons/the-one-page-test-plan
“ Monitoring and Observability ”, Cindy Sridharan, 2017,https: //medium.com/ @ copyconstruct/monitoring-and-observability-8417d1952e1c
Quality Engineering Resources
Automate This With SUSA
Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts needed.
Try SUSA FreeTest Your App Autonomously
Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.
Try SUSA Free