A presentation at CAST2019 in in United States by Trisha Chetani
Creating Test Stability to achieve Continuous Delivery Trisha Chetani @trisha_1212 @trisha_1212
ME ● Introduction ● Networking - Conferences, Meetups ● Recently moved to Spain ● 125 awesome software testers by Agile Testing Days ● 1st International talk ● Twitter: @trisha_1212 @trisha_1212
WHAT IS THIS TALK ALL ABOUT ● How automated tests were slowing us down ● Increase in flaky tests ● A long journey of investigation and tackling different problems ● Lessons learned ● How I transformed myself from being a bottleneck to an enabler ● Maintained to avoid the fall back. @trisha_1212
THAT’S ME @ VISENZE Years : 2016 ● ● About Visenze My Role @trisha_1212
JOURNEY AT VISENZE - THE PROBLEM SERVICE LEVEL AGREEMENT NOT MAINTAINED FLAKY TESTS Definition:sometimes passes or fails* @trisha_1212 TEAM WERE PUTTING EXTRA EFFORT
THE LONG JOURNEY AHEAD OF THE TEAM FIX FLAKINESS 30:00 MIN CURRENT TIME TAKEN FOR EXECUTION(TEST FAILED MULTIPLY THE TIME) @trisha_1212 COLLABORATE STABILITY AND MUCH MORE… 10:00 MIN GOAL FOR EXECUTION
JOURNEY OF HOW I MADE TEST STABLE @trisha_1212
ADAPTING TO CURRENT SYSTEM ● Exploring about system and application ● Exploring existing tests, at that time being maintained by developers ● Writing very first test ● Deciding the tests flows with the team @trisha_1212
LEARNING TOOLS/TECHNOLOGY ● Existing tool ○ Protractor ○ Docker ○ Jenkins ○ Internal tools and many more ● Tools I thought could help ○ Selenium Grid @trisha_1212
DIGGED DEEPER DEAD CODE @trisha_1212 DUPLICATE TEST OUTDATED TEST MISSING TESTS
CURRENT STATUS - AFTER 5 MONTHS ADAPT TO SINGAPORE ABLE TO FIX THE TEST ALONE @trisha_1212 WORKING ON MULTIPLE PROJECTS ME ADD SO IONSS REGRE S CHECK
BUILD TIME IS… STILL 30 MINUTES @trisha_1212
PROBLEMS ENDLESS EFFORT ONGOING CHANGES @trisha_1212 WORK LIFE BALANCE RED AND GREEN VICIOUS CYCLE
STEP TOWARDS THE SOLUTION ROOT CAUSE ANALYSIS @trisha_1212
UNDERLYING ISSUES FOUND IN ROOT CAUSE ANALYSIS COUPLE OF WEEKS LATER WHILE FOLLOWING RED GREEN CYCLE ● Locators were changing ● Basic flows were changing ● Unexpected changes ● Application slowness ● Automate all tests ● No time to make significant improvement for tests @trisha_1212
FEW WEEKS LATER - I WENT ON LEAVE @trisha_1212
TEAM @trisha_1212 ME - NOT SUSTAINABLE
RETROSPECTIVE DISCUSSION @trisha_1212
RETROSPECTIVE ACTIONS ITEMS ● Stop developing new feature ● Focus on test improvement ● Team decides that developer increase unit and integration tests ● Automate test cases based on risk, priority, business impact* ● Focused on operational excellence tasks @trisha_1212
MY ACTION ITEM - 7 MONTHS ● Digging deeper - focused not only on testing but improve on overall quality aspects. ● Open task - support on operational excellence task ● Not automating all test cases - focus on end to end user flow ● Fixing the existing flaky test cases. @trisha_1212
CODING DEBUGGING ● Locators(id> name> css> xpath) ● Logs ● Assertion ● Screenshots ● Waits ● Retry before failing test ● Small & Independent tests ● JS console errors ● Integrated with library test reports @trisha_1212
FRAMEWORK ENVIRONMENT ● Ease of configuration to test ● Docker ● Test data management ● Selenium grid ● Community support ● Clean test environment ● Test environment and production environment @trisha_1212
IMPROVED PRODUCT TESTABILITY ● Developer help to optimize page load, reduce downtime ● Reduce uncertainty inside application and infrastructure issues ● Reduce the technical debts and refactoring of code ● Seperate the backend and frontend code base and pipeline @trisha_1212
IMPROVED PROCESS TESTABILITY ● Root Cause Analysis for the actual failure of automated code ● Rotation task in maintaining the test code among team member ● Code review of test code ● Priority in maintaining and writing new test code @trisha_1212
IMPROVED PEOPLE TESTABILITY ● Everyone in team started contributing to automated checks ● Increase tech stack understanding ● Improved AWS/Google cloud understanding ● Developed our knowledge on containers @trisha_1212
FINALLY BUILD TIME IS… 5 MINUTES @trisha_1212
MAINTAIN THE PEOPLE TESTABILITY ● Increased cross team system knowledge by evolving more people in system deployments ● Team knowledge asking for feedback about tests and product. ● Pairing with new joiners and making them up to the speed @trisha_1212
MAINTAIN THE PROCESS TESTABILITY ● Update our automated tests continuously ● Maintain pipeline always green ● Having operational day in a sprints @trisha_1212
MAINTAIN THE PRODUCT TESTABILITY ● Monitoring the APIs, ● Continuous Refactoring of code. ● Infrastructure improvement ● Added additional logs and implemented Kibana @trisha_1212
SUMMARY IF YOU WANT TO STABILISE YOUR TESTS YOUR NEED TO… ● ● ● ● ● ● @trisha_1212 IMPLEMENT GOOD CODING PRACTICES ENCOURAGE TEAM RESPONSIBILITY FOR TEST IMPROVEMENT FOCUS ON HAVING STABLE TEST ENVIRONMENTS HAVE PEOPLE WITH THE RIGHT SKILLS AND KNOWLEDGE HAVE GOOD PRODUCT TESTABILITY CREATE AN ENVIRONMENT OF CONTINUOUS IMPROVEMENT AND LEARNING
THANK YOU @ajay184f @ajay184f @trisha_1212 @friendlytester @friendlytester @aahunsberger @mariakedemo @mariakedemo @kriscorbus @kriscorbus
Questions? @trisha_1212 @trisha_1212
The following resources were mentioned during the presentation or are useful additional information.
Here’s what was said about this presentation on social media.
If you are submitting to a conference and are unsure because someone told you the topic isn't unique, remember - your EXPERIENCES are. No one can duplicate your feelings, your work, your problem solving process... YOU are unique, and don't let someone negate your experiences.
— Ashley Hunsberger (@aahunsberger) April 27, 2018
I broke my rest to give a final round of review/edits to @trisha_1212 who is hoping to give her first conference talk at @seleniumconf Chicago.
— Richard Bradshaw (@FriendlyTester) May 24, 2018
Good luck with your submission, watch out for it @aahunsberger and @mmerrell!
We welcome @trisha_1212 ! #CAST2019 https://t.co/edVJJ8nM7m
— Maria Kedemo (@mariakedemo) May 10, 2019
Just had a great call with @trisha_1212, we are working on her talk for #CAST2019.
— Richard Bradshaw (@FriendlyTester) June 10, 2019
She has a great story to tell on making tests more stable to help her team achieve continuous delivery.
Tonight we focused more on the flow of her story, and identified a rough slide layout
About to watch a practice run of @trisha_1212’s #CAST2019 talk, Creating Test Stability to Create Continuous Delivery.
— Richard Bradshaw (@FriendlyTester) July 18, 2019
#CAST2019 @FriendlyTester @ajay184f @kriscorbus @mariakedemo Thank you for the support and the reason for me to travel new continent.Stayed in Asia , Staying in Europe, traveling to USA. Thank you all other whom I could pair up and reharse my talk . #feelinghappy #feelingthankful
— Trisha Chetani (@trisha_1212) August 10, 2019
yay! It amazing to meet so many people at #cast2019 whom i just talked via different medium
— Trisha Chetani (@trisha_1212) August 13, 2019
Followed by a fun conference birthday dinner with these lovely ladies! pic.twitter.com/CGKmwmsE6a
— angela (@AngelaRiggs_) August 14, 2019
Time for Creating Test Stability to Achieve Continuous Delivery with @trisha_1212 a #CAST2019! So excited!!
— Jenny Bramble (@jennydoesthings) August 14, 2019
She started out as the sole tester and was working on multiple projects--she had a huge issue with flakey tests. They couldn't maintain the SLA and the team was putting in too much extra effort! @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
The team couldn't learn new things because they were spending so much time working on the flakey tests. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
Just learning the product wouldn't help--I needed to also learn the tools that everyone was using. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
As I explored, I dug deeper--there was a lot of dead code. Duplicate tests, outdated tests, missing tests. I sat down with the team to analyze these tests. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
The problems were endless effort, work/life balance because of the endless effort, ongoing changes to the code, and the vicious red/green test cycle. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
I went on leave for a few weeks, and the team realized how much I'd been doing. I was a bottleneck for the team. So, we started having retrospectives and talking about how the team could self organize. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
I needed to dig even deeper--focus not only on testing but improve on overall quality aspects. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
Debugging tools: logs, screenshots, retry tests before failing them, js console errors, and integrating with a test library to see how the application is behaving. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
Improving the infrastructure reduced uncertainty and reduced the tech debt. Tests were more stable, and everyone was happier! @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
Once we started having code reviews, we were able to get a better idea of the types of test cases we could add and the coverage we had. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
Everyone in the team started contributing to automated checks. We also increased our tech stack understanding! @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
Everyone had a chance to be involved. Everyone's knowledge was getting used in real time and they were much more motivated. We also paired with new team members and they came up to speed quickly. @trisha_1212 #CAST2019
— Jenny Bramble (@jennydoesthings) August 14, 2019
@trisha_1212 #CAST2019 pic.twitter.com/36LkSVyUUe
— Jenny Bramble (@jennydoesthings) August 14, 2019
Super excited for @trisha_1212’s talk Test Stability to Achieve Continuous Delivery!#CAST2019
— angela (@AngelaRiggs_) August 14, 2019
Discover a need > learn about it > collaborate & contribute > iterate > repeat. @trisha_1212’s journey beginning probably sounds err familiar to many testers!#CAST2019
— angela (@AngelaRiggs_) August 14, 2019
Root cause analysis of flaky tests included unexpected changes, lack of time to make significant improvements, basic user flows weren’t consistent, attempting to automate all the tests. (Note many of these are people-related, not code-related!)#CAST2019 @trisha_1212
— angela (@AngelaRiggs_) August 14, 2019
I think it’s easy for testers to become bottlenecks without realizing it, simply because we are often silo’ed in the work we do. #CAST2019 @trisha_1212
— angela (@AngelaRiggs_) August 14, 2019
@trisha_1212’s team decided to stop developing new features until their testing was fixed! A hard choice, but great to see the maturity that allows short-term trade offs for long-term benefits 💫#CAST2019
— angela (@AngelaRiggs_) August 14, 2019
Adding debugging methods to support the tests made a big difference! Logging, visual validation, console errors, and test reporting. Tests that fail silently aren’t useful, but tests that fail with information are!#CAST2019 @trisha_1212
— angela (@AngelaRiggs_) August 14, 2019
Refactoring the application and addressing tech debt to make it easier to test and maintain 🙌🏼 This is one of the hardest things to advocate for, really awesome to see @trisha_1212 and her team doing this successfully!#CAST2019
— angela (@AngelaRiggs_) August 14, 2019
Great wrap-up from @trisha_1212 about how to improve and stabilize tests. #CAST2019 pic.twitter.com/WFN2iYIT9q
— angela (@AngelaRiggs_) August 14, 2019
Whole team winning with #testability! I love it! @trisha_1212 here at #CAST2019 pic.twitter.com/strbZ37cuV
— Ash Winter (@northern_tester) August 14, 2019
Digging deeper into your existing test automation is a neglected skill & activity. Do they still provide value and cover what matters? @trisha_1212 here at #CAST2019 #testing pic.twitter.com/2RobmdyjVX
— Ash Winter (@northern_tester) August 14, 2019
@trisha_1212 sharing her story on how to create test stability to create continuous delivery. Thanks for doing your very first talk at #CAST2019 pic.twitter.com/K0mzG5tMFG
— Maria Kedemo (@mariakedemo) August 14, 2019
👏💃🙏🙌Thank you for everyone to attend my talk #cast2019 . There was 3 track going on but surprised to see great crowdhttps://t.co/qNWfcXjKMm
— Trisha Chetani (@trisha_1212) August 18, 2019
Thank you everyone who attend my talk and tweets ! It meant a lot to me.#cast#2019 Thank you to all my mentor who supported me to deliver this talk
— Trisha Chetani (@trisha_1212) August 14, 2019
I have been on your talk. Good job Trisha!
— Aleksander Lipski (@aleetesting) August 14, 2019