POPULARITY
“Legacy code is a code without tests. If you have code, and it has lots of tests, it's relatively easy to change. But if you don't have the tests, you're really in serious trouble.” Do you dread working with legacy code? Michael Feathers, renowned software expert and author of the classic “Working Effectively with Legacy Code,” joins me to discuss the challenges and strategies for working with legacy code, a topic that remains highly relevant even after 20 years! Michael explains why he defines legacy code as “code without tests,” emphasizing the crucial role of automated tests for code maintainability, rather than simply defining it as an old inherited code. He also provides insights on the psychological challenges of working with legacy code and stresses the importance of approaching it with curiosity and a sense of adventure. The conversation also explores the evolving world of AI assistant in software development, drawing from Michael's forthcoming book, “AI-Assisted Programming”. He shares how AI can assist developers in various tasks, such as explaining code, identifying potential issues, generating tests, and exploring new possibilities. Listen to this episode to explore the intersection of legacy code, AI, and the future of software development! Listen out for: Career Journey - [00:01:24] “Working Effectively with Legacy Code” Book - [00:02:05] Definition of Legacy Code - [00:04:55] The Importance of Automated Tests - [00:06:39] Understanding Legacy Code - [00:09:47] Mindset for Working with Legacy Code - [00:11:15] Rewrite vs Fixing Legacy Code - [00:13:50] Microservice for Legacy Code - [00:15:36] Approach to Dealing with Legacy Code - [00:17:33] Seams - [00:20:03] Strangler Fig - [00:21:42] Understanding Refactoring - [00:22:48] Testing Pyramid - [00:24:28] Code Nobody Wants to Touch - [00:26:10] AI for Understanding Legacy Code - [00:27:53] AI Churning More Legacy Code - [00:30:06] “AI Assisted Programming” Book - [00:32:47] Prompt Engineering - [00:34:16] Doing in Small Steps - [00:35:09] Best Use Case for AI - [00:37:29] Developer's Fear of AI - [00:39:16] SudoLang - [00:40:59] AI as Test Assistant - [00:43:42] Context Window - [00:45:19] Waywords - [00:47:14] Managing AI Sessions - [00:48:53] Using Different AI Tools - [00:50:30] 3 Tech Lead Wisdom - [00:52:28] _____ Michael Feathers's BioMichael Feathers is the Founder and Director of R7K Research & Conveyance, a company specializing in software and organization design. Over the past 20 years he has consulted with hundreds of organizations, supporting them with general software design issues, process change and code revitalization. A frequent presenter at national and international conferences, Michael is also the author of the book Working Effectively with Legacy Code. Follow Michael: Twitter – @mfeathers LinkedIn – linkedin.com/in/michaelfeathers Substack – substack.com/@michaelfeathers
React and JavaScript expert Cory House discusses the creation of custom development tools for React applications, sharing insights from his recent talk at React Rally and exploring how the right tools can shape development workflows and enhance automated testing strategies. Links https://www.bitnative.com https://github.com/coryhouse/ama https://x.com/housecor https://github.com/coryhouse https://stackoverflow.com/users/26180/cory-house https://www.linkedin.com/in/coryhouse https://www.pluralsight.com/authors/cory-house https://www.reactjsconsulting.com We want to hear from you! How did you find us? Did you see us on Twitter? In a newsletter? Or maybe we were recommended by a friend? Let us know by sending an email to our producer, Emily, at emily.kochanekketner@logrocket.com (mailto:emily.kochanekketner@logrocket.com), or tweet at us at PodRocketPod (https://twitter.com/PodRocketpod). Follow us. Get free stickers. Follow us on Apple Podcasts, fill out this form (https://podrocket.logrocket.com/get-podrocket-stickers), and we'll send you free PodRocket stickers! What does LogRocket do? LogRocket provides AI-first session replay and analytics that surfaces the UX and technical issues impacting user experiences. Start understand where your users are struggling by trying it for free at [LogRocket.com]. Try LogRocket for free today.(https://logrocket.com/signup/?pdr) Special Guest: Cory House.
How do you do automated tests?
Can AI really write working tests for your app or software? How can businesses use AI to cut costs in testing QA? What is the biggest mistake you can make in load testing? On this week's episode of the Test Automation Experience, Loadmill Co-founder and CEO Ido Cohen joins our host Nikolay Advolodkin to do a deep dive on using AI for test automation, how AI can cut costs on testing QA, and how Loadmill can help you do both. Stay informed, stay ahead with Test Automation Experience - your source for all things test automation!CONNECT WITH IDO COHEN
What is the best unit testing framework? How do good engineers write their tests? How will AI affect test automation? In this episode, dive deep into the realm of high-quality testing and the fundamentals of automated testing with our guest, Anton Angelov, CTO and co-founder of Automate The Planet. Join us as we explore essential techniques and innovative approaches to ensure top-notch automated testing. Tune in now to enhance your skills with Test Automation Experience!Automated Testing Unleashed: Automated Testing Engineering Fundamentals: The Complete Handbook Volume 1 - https://amzn.to/3Pz82Pl Volume 2 - https://amzn.to/3tcR81l Volume 3 - https://amzn.to/46tsV5oVolume 4 - https://amzn.to/3tbJHaLVolume 5 - https://amzn.to/3Zy2edgCONNECT WITH ANTON ANGELOV
Jonathan Hall joins the Adventure this week to discuss the advice he gives to clients to start continuous deployment before they have automated tests around their code. He explains why he starts here and the power of having a continuous deployment system. He, Will, and Chuck go into how to set it up and the pro's and con's of the approach and how it fits into a larger DevOps practice. Panel Charles Max Wood Will Button Guest Jonathan Hall Sponsors Dev Influencers Accelerator Raygun | Click here to get started on your free 14-day trial Links Jonathan Hall Twitter: Jonathan Hall ( @TinyDevOps ) Picks Charles- Quick Spit Charles- Devchat.tv/levelup Jonathan- Accelerate Jonathan- Irish Tweed Caps and Hats Will- The DevOps Career Guide Contact Charles: Devchat.tv DevChat.tv | Facebook Twitter: DevChat.tv ( @devchattv ) Contact Will: DevOps For Developers Twitter: Will Button ( @wfbutton )
Jonathan Hall joins the Adventure this week to discuss the advice he gives to clients to start continuous deployment before they have automated tests around their code. He explains why he starts here and the power of having a continuous deployment system. He, Will, and Chuck go into how to set it up and the pro's and con's of the approach and how it fits into a larger DevOps practice. Panel Charles Max WoodWill Button Guest Jonathan Hall Sponsors Dev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trial Links Jonathan HallTwitter: Jonathan Hall ( @TinyDevOps ) Picks Charles- Quick Spit Charles- Devchat.tv/levelupJonathan- AccelerateJonathan- Irish Tweed Caps and HatsWill- The DevOps Career Guide Contact Charles: Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv ) Contact Will: DevOps For DevelopersTwitter: Will Button ( @wfbutton ) Special Guest: Jonathan Hall .
Jonathan Hall joins the Adventure this week to discuss the advice he gives to clients to start continuous deployment before they have automated tests around their code. He explains why he starts here and the power of having a continuous deployment system. He, Will, and Chuck go into how to set it up and the pro's and con's of the approach and how it fits into a larger DevOps practice. Panel Charles Max Wood Will Button Guest Jonathan Hall Sponsors Dev Influencers Accelerator Raygun | Click here to get started on your free 14-day trial Links Jonathan Hall Twitter: Jonathan Hall ( @TinyDevOps ) Picks Charles- Quick Spit Charles- Devchat.tv/levelup Jonathan- Accelerate Jonathan- Irish Tweed Caps and Hats Will- The DevOps Career Guide Contact Charles: Devchat.tv DevChat.tv | Facebook Twitter: DevChat.tv ( @devchattv ) Contact Will: DevOps For Developers Twitter: Will Button ( @wfbutton )
TestTalks | Automation Awesomeness | Helping YOU Succeed with Test Automation
Want to know how to monitor all your automation test results in one place? In this episode, Juan Negrier, a co-founder of Delta Reporter, will discuss why he created this solution and how it can help you. Discover how it can help your organization with automation testing, main features, possible implementations, and ways to deploy it. Listen up!
The guys can't help but laugh when they hear the test tests one well-known online giant is testing. You might say they get a bit testy.
Become a sponsor: https://www.se-unlocked.comLinks:The previous episode with KentKent C. Dodds' TwitterTesting JavascriptTesting LibraryAccessibility Tool: AxeApplitools: Functional and Visual TestingCypress testing tool Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.
Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.Code Review Workshops:Michaela’s Code Review WorkshopsWebinar: Michaela's secret sauce for fast and effective code reviewsLinks:Kent C. Dodd’s testingjavascript.comAll Testing Blog Posts of KentTesting PyramidWrite Tests. Not too many. Mostly integration.Test Confessions: How Plug-in Systems are tested – StudyTesting Implementation DetailsWrite fewer, longer tests
Steve McConnell continues to describe the 28 key principles in his new book, More Effective Agile (Construx Press, 2019). The principles described this time:"Create and Use a Definition of Done." A good Definition of Done helps catch incomplete or faulty work early, minimizing the gap between defect insertion and detection. (See page 157 in the book.)"Maintain a Releasable Level of Quality." Maintaining a releasable level of quality helps catch additional defects that slip through an earlier DoD. (See page 160.)"Use Automated Tests, Created by the Development Team." Automated tests help to minimize the defect detection gap. Making everyone on the team responsible for the tests reinforces the idea that quality is everyone’s responsibility. (See page 168.)
Today Angie Jones, a master inventor and automated testing engineer, speaks with us about what a master inventor is and what it took to receive that title, what testing automation is, having parallel between testers and developers, what developers can be doing to build more testable apps, and finally how modern web development has complicated automated testing.Angie talks about some common problems when it comes to testing. The test team is often separate from the developer team, and it leads to communication problems. Testers should be working in parallel with the dev team to ensure that from the get-go they are writing a testable app!Another common problem is that 100% test coverage gets pushed. However, that's the wrong idea. Automated testing is expensive to implement, so Angie talks about how she figures out what'll give the most "bang for your buck" when deciding what tests get automated.Apps aren't as simple as they used to be, and thicker client-side UIs have made it much harder to implement automated tests. Automated Engineer is a fully fledged development position requiring skill across platforms, which is why Angie says that developers shouldn't be leading automated testing. There is a lot that automated testers have to do and separate skills that they need to develop. There's only so much a person can keep up on at once.Transcript"Incorporating Testers with Every Development Phase with Angie Jones" TranscriptResources:Level up: playing the automation gameBartle taxonomy of player typesWhy Developers Should Not Lead Your Automation EffortsWhich Tests Should We AutomateAngie Jones:TwitterGithubWebsiteYouTubeJoel HooksTwitterWebsite
This interview with Trey Hunner discusses his use of automated tests to help teach programming. Automated testing is a huge part of developing great software. But many new developers don't get exposed to testing for quite a while. But this is changing. New ways to teach programming include automated tests from the beginning. Trey Hunner is one of the PSF directors and a Python and Django team trainer, and he has been using automated tests to help people learn Python. Special Guest: Trey Hunner.
00:16 – Welcome to “Goats On Podcasts” …we mean, “Greater Than Code!” 01:19 – Origin Story 04:36 – The Development of Development 06:58 – Automated Tests and Mistake Detection 09:21 – Designing Releases and Best Practices 20:13 – “The Code is Better” There is no "the code is better."There is only "our experience is better." (users and developers)@greaterthancode with @janellekz— Jessica Kerr (@jessitron) April 12, 2017 15:08 – Measuring Effort, #CollaborativePain, and The Error Handling Process abstraction: great when it works.when something breaks it's like an egg cracking and all its guts spill out.@janellekz @greaterthancode— Jessica Kerr (@jessitron) April 12, 2017 Why Software Gets In Trouble by Gerald M. Weinberg (https://leanpub.com/whysoftwaregetsintrouble) 33:24 – Discovery and Documentation 37:44 – Agile Fluency Agile Fluency Project: Chart Your Agile Pathway (https://www.agilefluency.org/) Quality Management Maturity Grid (https://en.wikipedia.org/wiki/Quality_Management_Maturity_Grid) 40:42 – Building a Conceptual Model of our Brains with Code Hindsight Bias (https://en.wikipedia.org/wiki/Hindsight_bias) 51:56 – Identifying Project Pain: Slicing and Dicing 57:23 – Change Sizing Reflections: Rein: Gerald M. Weinberg’s Quality Software Management Series Janelle: The Fifth Discipline: The Art & Practice of The Learning Organization by Peter M. Senge (https://www.amazon.com/Fifth-Discipline-Practice-Learning-Organization/dp/0385517254) Sam: The pain that we experience in software development is really cognitive dissonance. Jessica: Programming is like summoning a demon. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode). To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Amazon links may be affiliate links, which means you’re supporting the show when you purchase our recommendations. Thanks!
Today on Fatal Error: a crash course on a bunch of useful concepts for testing iOS apps in Swift. Automated Tests as Documentation Code Coverage in Xcode Danger CI & Fastlane View Models: see episodes 2 and 3 Dependency Injection Mocking Classes You Don't Own Protocol-Oriented Programming in Swift (WWDC 2015) Don't mock what you don't own Screenshot testing: Facebook's SnapshotTestCase; objc.io article Working Effectively with Legacy Code by Michael Feathers Testing, for people who hate testing OHHTTPStubs OCMock Other links Chris likes, which we didn't discuss in this episode: 5 Questions Every Unit Test Must Answer Mocks Aren't Stubs When is it safe to introduce test doubles? Test Isolation is about Avoiding Mocks Chris's Pinboard on Testing
How do you convert manual tests to automated tests? This episode looks at the differences between manual and automated tests and presents two strategies for converting manual to automated.
Michael Bernstein of Code Climate explains how to monitor your code's quality with static analysis. He tells us how you can maintain or improve quality over time, and what you can do to fix poor code.
Fred Stevens-Smith of Rainforest explains the need for quality assurance testing and how to actually do it in the resource constrained environment of a startup.
Florian Motlik on how testing and validation using the continuous integration and deployment model results in manageable, quality software.