A curated list of blogs, articles, videos, and podcasts on software testing.
I've been in the software quality industry for more than two decades. I read a lot of blogs and try to keep up with happenings. A long time ago, I created a Google Doc to manage this list. In hindsight, it should have been a web page since I run a blog, but by the time I decided to do anything about it, I realized an Awesome repo made more sense. Special thanks to Awesome Testing for the inspiration and some "borrowed" boilerplate.
All links have been curated by me personally as beneficial to software testing in general or the specific work I do (a focus on iOS automation).
* denotes an article I've written or site I maintain.
- @Beaglesays (Site)
- 100% Coverage is Possible
- A Career Retrospective
- A Mobile App Test Strategy (Video)
- A Seasoned Tester’s Crystal Ball (Site)
- A Tester's Report On The Quality Assitance Model
- Accessibility Testing Tools
- Awesome Testing (Site/Repo)
- The Bearded Tester (Site)
- Big List of Nasty Strings
- Bug Bash (Definition)
- Developsense (Site) - Michael Bolton
- Eli Schiff (Site) - Design
- Evil Tester (Site)
- Feel Free to Deploy on Friday
- Free Learning Resources for Testers
- Goodbye Testing Columns: Part 1
- Goodbye Testing Columns: Part 2
- Goodbye Testing Columns: Part 3
- Google Testing Blog (Site)
- How Microsoft Does QA
- How Should I Organize My Test Team?
- How They Test
- How To Break Your Apps Before I Do (Video)
- Integrated Tests Are A Scam
- iammike.org - QA Tag (Site)*
- I’m A Little Tester (Site)
- Jean’s Blog (Site)
- Kevin Tuck (Site)
- Learning By Shipping (Site)
- Lessons Learned By A Software Tester (Site)
- Lessons Learned From 20 Years of Software Testing
- Maybe Getting Rid of Your QA Team was Bad, Actually
- Ministry of Testing (Site/Community)
- Mobile Testing Checklist
- Overcoming Imposter Syndrome
- The Practical Test Pyramid
- The Pragmatic Engineer (Site)
- Prisoner’s Dilemma in Testing
- Quality Assurance and Testing
- Quality Narratives Are a Better Form of Quality Reporting
- Responsible Automation
- Software Testing Heuristics & Mnemonics
- StickyMinds (Site)
- Story Points v. Time
- Test Case Points
- Test Heuristics Cheat Sheet
- Test Heuristics Cheat Sheet (another)
- Testers and the Quote Culture
- Testers Don’t Break Software
- Testers Have To Be The Ones To Advocate For Quality
- Testers, Now More Than Ever
- TestGuild Automation (Podcast)
- Testing Advice To Your Younger Self
- Testing Checklists
- Testing Deep and Shallow 1: Coverage
- Testing Deep and Shallow 2: “Shallow” is a feature, not an insult!
- Testing Is…
- Testing Mnemonics Card Desk
- Testing Peers (Podcast)
- Testing Unknown Unknowns, The
- That’s a Bug (Site)
- Tooth of the Weasel (Site) - Alan Page
- Undeveloped Bruce (Site)
- Unveiling the Mythical Creatures of Software QA Job Descriptions
- Visual Risk Planning
- What 3 Testing Books Would You Recommend?
- What To Do When You Have Nothing To Test
- Why Bother Writing Tests?
- Why You Need To Have A Dashboard
- The Zero Defect Fallacy
- 11th (and Golden) Commandment of Test Automation
- Agile Testing Automation
- Angie Jones (Site)
- Automate For Yourself
- Automated Testing on Devices (Netflix)
- Automation Comic (XKCD)
- Automation Step By Step (Site)
- Automation Testing Practice Website for UI and API
- BDD Conference Notes
- The Build That Cried Broken (Video, 40min)
- Can We Effectively Use Thread.sleep?
- Developers Who Test (Podcast)
- Do You Really Need That Cucumber With Your Selenium?
- Don’t Let Flaky Test Ruin Your Automation
- Don’t Eat Stale Automation
- Flaky Testing
- From Fragile to Agile: Automating the fight against flaky tests
- How to Decide Which Tests to Automate
- How Slow is Too Slow to Run Your Tests?
- The Myth of "Unstable" Code
- Oh No! I Can’t Get My Test Automation Scripts To Pass!
- One Tool To Rule Them All?
- Parallelization test automation? Read this first.
- Problems with Test Automation and Modern QA
- Prune Your Automation!
- Redefining Test Automation (Video)
- Regression Testing Can Never Be Fully Automated
- Responsible Automation (Site)
- Setting the Foundation for Test Automation Success
- Test Automation Patterns Wiki (Site)
- Test Automation University (Site/Community)
- Test Double
- Testing Flakiness (Part 2)
- Three Ways to Achieve In-Sprint Automation
- Two Easy Questions To Help You Automate The Right Tests
- Unscripted Automation
- What To Automate And When*
- Which Tests Should We Automate (Video, 35min) [Slides and spreadsheet]
- Avoid the Long Parameter List
- Best Practices When Doing Code Reviews - Part 1
- Don't DRY Your Code Prematurely
- Essays on Programming
- How Principled Coders Outperform the Competition (Video)
- How to Make Your Code Reviewer Fall in Love With You
- Naming Things in Code (Video, 7 minutes)
- On the Importance of Naming
- Premature Optimization (Video)
- Proof Your Thousand Line PRs Result In More Bugs
- Refactoring and Design Patterns (Site)
- Write Change-Resilient Code with Domain Objects
- Build and Improving Page Objects One Step At A Time
- Page Object Model: Abstract Everything*
- Tips for Healthy Page Object Classes
- What is the Screenplay Pattern? - Part 1
- Adventures in Automation (Site) - Good guide for initial setup and how the pieces/parts work.
- Appium Pro (Site)
- Android BDD with Cucumber and Espresso
- Android Testing Code Samples
- Android Testing Tools
- Automate User Interface Tests - Android Dev Guide
- Espresso - Android Dev Guide
- Espresso Cheat Sheet
- How to Reduce Flakiness in Automated UI Testing on Android
- How to Test Jetpack Compose
- Jetpack Compose Testing Cheatsheet
- Test-Driven Development Tutorial
- Wait for it… Idling Resource and ConditionWatcher
- Writing and Using Hamcrest Matchers
- Bundle IDs for Native iOS Apps
- Catbird HTTP Mocking Framework
- Clean Waiting in XCUITest
- Deflaking CI Tests with xcresults
- Deleting Your App During UI Tests
- Getting Started with Mocking Networking in UI Tests
- Handle Interruptions and Alerts in UI Tests - WWDC 2020 (Video)
- How to Test Push Notifications with UI Tests
- How to Train Your XCTest
- Getting Started with Test Plans
- Improving XCTest Name Readability
- iOS Testing Mindmap
- iOS UI Testing using Apple XCUITest
- Making Xcode UI Tests Faster and More Stable
- Mocking Network Data
- Page Object in XCTest UI Tests
- Painless UI Testing in iOS (Part 1) - Mocking the Network
- Painless UI Testing in iOS (Part 3) - Disabling Animations
- Parallel Tests with XCUITest
- r/XCUITest*
- Reddit's UI Testing Strategy and Tooling
- Safari and XCUITest*
- Shock HTTP Mocking Framework
- TDD iOS Network API Call w/ XCTest
- Testing in Xcode - WWDC 2019 (Video)
- Timer Patterns in XCUITest*
- Typing Text in XCUITest*
- Waits in XCUITest
- Write Tests To Fail - WWDC 2020 (Video)
- XCTest Tips and Tricks
- XCTest-Gherkin
- XCTool
- XCToolbox*
- XCTSkip Your Tests - WWDC 2020 (Video)
- XCUITest Automation Tutorial (Video Playlist)
- XCUITest Basics
- XCUITest Cheat Sheet
- XCUITest Parallelization and Optimization*
- XCUITest Primer (Video)
- XCUITest Training Course
- Getting an xcresult out of CircleCI*
- iOS CI Olympics
- Setting Up XCUITest for iOS CI
- Test Automation University (Video)
- Testing iOS Appications on macOS - CircleCI
- XCUITest, Parallelization, and CircleCI*
- My Favorite Chrome Dev Tools Tips and Tricks
- Weird Debugging Trucks Your Browser Doesn't Want You To Know
- What the Heck is Shadow DOM?
- Cypress: PageObjects vs AppActions
- Visual Regression Testing with Cypress.io and cypress-image-snapshot
- jq: A Practical Guide (Video)
See the Awesome QA Links contribution guide for details on how to contribute.
See the Code of Conduct for details. Basically it comes down to:
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
To the extent possible under law, the contributors have waived all copyright and related or neighboring rights to this work. See the license file for details.