[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-mN4MH_ojjTxSoZSzRZiIqt90toupZX52H647k-l0MBM":3,"sanity-Ro58u5JGwUrfLqr1U6Zuz1D8Tjdvim8qy-dIoEf03vc":281},{"data":4,"sourceMap":-1},{"latestPodcast":5,"latestReleases":14,"post":39,"recent":256},[6],{"_id":7,"publishedAt":8,"slug":9,"sponsored":12,"title":13},"d53f9358-3bb2-4f69-aebe-d31d19522cd4","2026-07-10T07:40:00.000Z",{"_type":10,"current":11},"slug","building-more-than-just-an-agent-harness",null,"Building more than just an agent harness",[15,21,27,33],{"_id":16,"publishedAt":17,"slug":18,"title":20},"eb5b66eb-9410-4329-83bb-22bbff39402a","2026-04-28T13:00:00.000Z",{"_type":10,"current":19},"turn-scattered-knowledge-into-trusted-intelligence","Turning scattered knowledge into trusted intelligence: Stack Internal 2026.3",{"_id":22,"publishedAt":23,"slug":24,"title":26},"369c2401-b62e-4a37-8ff8-bf603023ecad","2026-03-02T15:03:00.988Z",{"_type":10,"current":25},"what-s-new-at-stack-overflow-march-2026","What’s new at Stack Overflow: March 2026",{"_id":28,"publishedAt":29,"slug":30,"title":32},"5e9053a4-07ea-447c-91ea-29e0b6228537","2026-02-02T15:00:00.000Z",{"_type":10,"current":31},"what-s-new-at-stack-overflow-february-2026","What’s new at Stack Overflow: February 2026",{"_id":34,"publishedAt":35,"slug":36,"title":38},"a1b538eb-a8a6-46d0-80a1-ac70ec9bb935","2026-01-05T10:00:00.000-05:00",{"_type":10,"current":37},"what-s-new-at-stack-overflow-january-2026","What’s new at Stack Overflow: January 2026",{"_createdAt":40,"_id":41,"_rev":42,"_type":43,"_updatedAt":44,"author":45,"body":64,"comments":229,"dateUrl":230,"excerpt":231,"image":232,"legacyBody":235,"product":12,"publishedAt":238,"slug":239,"sponsored":12,"tags":241,"title":255,"visible":229},"2023-05-24T12:51:05Z","wp-post-21480","XzVcPPDfPNmxxXS3zvEksc","blogPost","2025-10-31T17:27:06Z",[46],{"_createdAt":47,"_id":48,"_rev":49,"_system":50,"_type":53,"_updatedAt":54,"avatar":55,"employee":60,"name":61,"slug":62},"2023-05-23T16:27:18Z","wp-author-213","nRfzWrvFg3DIXOd15U9uv8",{"base":51},{"id":48,"rev":52},"9xJoPFf2DISyAMMJXP7Ct6","blogAuthor","2025-07-29T19:37:47Z",{"_type":56,"asset":57},"image",{"_ref":58,"_type":59},"image-e81c84dcaeb58be1002795a6544b595bd6fc8071-1024x1024-jpg","reference","former","Ben Popper",{"current":63},"benpopper",[65,69,80,89,97,115,130,145,175,190,218],{"_key":66,"_type":67,"markDefs":12,"url":68},"2bd95d496231","embed","https:\u002F\u002Fart19.com\u002Fshows\u002F2355b740-4531-4071-a3ab-5907a95a36d3\u002Fepisodes\u002F87351cc1-3a66-40bd-b0de-ea401785fd19",{"_key":70,"_type":71,"children":72,"markDefs":78,"style":79},"02c185779db3","block",[73],{"_key":74,"_type":75,"marks":76,"text":77},"02c185779db30","span",[],"On today's episode we chat with Prof. Gregory Kapfhammer, Associate Professor in the Department of Computer Science at Allegheny College, and a specialist in the subject of flaky tests. He breaks down his definition of what makes a test flaky, how you can solve for it, and automated solutions that take some of the guesswork and busywork out of avoiding them altogether.",[],"normal",{"_key":81,"_type":71,"children":82,"markDefs":87,"style":88},"9cf2baaac4ab",[83],{"_key":84,"_type":75,"marks":85,"text":86},"9cf2baaac4ab0",[],"Episode Notes",[],"h2",{"_key":90,"_type":71,"children":91,"markDefs":96,"style":79},"a8ed8901b933",[92],{"_key":93,"_type":75,"marks":94,"text":95},"a8ed8901b9330",[],"There is a ton of great research to be found on Prof. Kapfhammer's website, including:",[],{"_key":98,"_type":71,"children":99,"level":109,"listItem":110,"markDefs":111,"style":79},"07df3e8ddfeb",[100,105],{"_key":101,"_type":75,"marks":102,"text":104},"07df3e8ddfeb0",[103],"6291d487eb63","Flaky Tests",{"_key":106,"_type":75,"marks":107,"text":108},"07df3e8ddfeb1",[],": Finding and fixing unpredictable and harmful test cases",1,"bullet",[112],{"_key":103,"_type":113,"href":114,"reference":12},"link","https:\u002F\u002Fwww.gregorykapfhammer.com\u002Fresearch#FlakyTests",{"_key":116,"_type":71,"children":117,"level":109,"listItem":110,"markDefs":127,"style":79},"29ef92bd210a",[118,123],{"_key":119,"_type":75,"marks":120,"text":122},"29ef92bd210a0",[121],"71b36e2556b8","Database Testing",{"_key":124,"_type":75,"marks":125,"text":126},"29ef92bd210a1",[],": Automatically testing relational database schemas",[128],{"_key":121,"_type":113,"href":129,"reference":12},"https:\u002F\u002Fwww.gregorykapfhammer.com\u002Fresearch#DatabaseTesting",{"_key":131,"_type":71,"children":132,"level":109,"listItem":110,"markDefs":142,"style":79},"518b75105076",[133,138],{"_key":134,"_type":75,"marks":135,"text":137},"518b751050760",[136],"15ea94b078d5","Web Testing",{"_key":139,"_type":75,"marks":140,"text":141},"518b751050761",[],": Detecting and repairing poor responsive web page layout",[143],{"_key":136,"_type":113,"href":144,"reference":12},"https:\u002F\u002Fwww.gregorykapfhammer.com\u002Fresearch#WebTesting",{"_key":146,"_type":71,"children":147,"markDefs":170,"style":79},"782c11489e05",[148,152,157,161,166],{"_key":149,"_type":75,"marks":150,"text":151},"782c11489e050",[],"We've ",{"_key":153,"_type":75,"marks":154,"text":156},"782c11489e051",[155],"1cf550fadfdb","written a bit",{"_key":158,"_type":75,"marks":159,"text":160},"782c11489e052",[]," about how Stack Overflow is upping its unit testing game and how you can ",{"_key":162,"_type":75,"marks":163,"text":165},"782c11489e053",[164],"e02a15660da0","evaluate multiple assertions",{"_key":167,"_type":75,"marks":168,"text":169},"782c11489e054",[]," in a single test.",[171,173],{"_key":155,"_type":113,"href":172,"reference":12},"https:\u002F\u002Fstackoverflow.blog\u002F2022\u002F07\u002F04\u002Fhow-stack-overflow-is-leveling-up-its-unit-testing-game\u002F",{"_key":164,"_type":113,"href":174,"reference":12},"https:\u002F\u002Fstackoverflow.blog\u002F2022\u002F11\u002F03\u002Fmultiple-assertions-per-test-are-fine\u002F",{"_key":176,"_type":71,"children":177,"markDefs":187,"style":79},"dde9497a8b43",[178,182],{"_key":179,"_type":75,"marks":180,"text":181},"dde9497a8b430",[],"Thanks to our lifeboat badge winner of the week, Survivor, for answering the question: ",{"_key":183,"_type":75,"marks":184,"text":186},"dde9497a8b431",[185],"2dd5ebf3b6e3","Is it possible to find out if a value exists twice in an arraylist?",[188],{"_key":185,"_type":113,"href":189,"reference":12},"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F14177897\u002Fis-it-possible-to-find-out-if-a-value-exists-twice-in-an-arraylist\u002F14177992#14177992",{"_key":191,"_type":71,"children":192,"markDefs":215,"style":79},"deac5112b279",[193,197,202,206,211],{"_key":194,"_type":75,"marks":195,"text":196},"deac5112b2790",[],"And thanks to Andre for writing in to let us know that yes, there are folks who code on mobile. He suggests trying:\n- Termux ",{"_key":198,"_type":75,"marks":199,"text":201},"deac5112b2791",[200],"e25dfcbc6023","https:\u002F\u002Fwiki.termux.com\u002Fwiki\u002FMain_Page",{"_key":203,"_type":75,"marks":204,"text":205},"deac5112b2792",[]," can be used as a\nterminal emulator. I have all I need here: Vim, git, node.js, Python\n- Markor ",{"_key":207,"_type":75,"marks":208,"text":210},"deac5112b2793",[209],"ccc21d3bfb1d","https:\u002F\u002Fgsantner.net\u002Fproject\u002Fmarkor.html",{"_key":212,"_type":75,"marks":213,"text":214},"deac5112b2794",[]," has a HTML view",[216,217],{"_key":200,"_type":113,"href":201,"reference":12},{"_key":209,"_type":113,"href":210,"reference":12},{"_key":219,"_type":71,"children":220,"markDefs":226,"style":79},"1222b85574e8",[221],{"_key":222,"_type":75,"marks":223,"text":225},"1222b85574e80",[224],"6a6f782d4d79","TRANSCRIPT",[227],{"_key":224,"_type":113,"href":228,"reference":12},"https:\u002F\u002Fthe-stack-overflow-podcast.simplecast.com\u002Fepisodes\u002Fflake-it-till-you-make-it-how-to-handle-flaky-tests\u002Ftranscript\u002F",true,"2023\u002F01\u002F17","But it works on my machine at least half the time! ",{"_type":56,"asset":233},{"_ref":234,"_type":59},"image-472725c034235a56301dc8caf0ed41b3d298c57a-1200x630-png",{"code":236,"language":237},"\u003C!-- wp:html -->\n\u003Ciframe height=\"200px\" width=\"100%\" frameborder=\"no\" scrolling=\"no\" seamless=\"\" src=\"https:\u002F\u002Fplayer.simplecast.com\u002F9d771418-6a99-4b4a-96c7-bd240dbe26be?dark=false\">\u003C\u002Fiframe>\n\u003C!-- \u002Fwp:html -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>On today's episode we chat with Prof. Gregory Kapfhammer, Associate Professor in the Department of Computer Science at Allegheny College, and a specialist in the subject of flaky tests. He breaks down his definition of what makes a test flaky, how you can solve for it, and automated solutions that take some of the guesswork and busywork out of avoiding them altogether.\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:heading -->\n\u003Ch2 id=\"h-episode-notes\">Episode Notes\u003C\u002Fh2>\n\u003C!-- \u002Fwp:heading -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>There is a ton of great research to be found on Prof. Kapfhammer's website, including:&nbsp;\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:list -->\n\u003Cul>\u003C!-- wp:list-item -->\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.gregorykapfhammer.com\u002Fresearch#FlakyTests\">Flaky Tests\u003C\u002Fa>: Finding and fixing unpredictable and harmful test cases\u003C\u002Fli>\n\u003C!-- \u002Fwp:list-item -->\n\n\u003C!-- wp:list-item -->\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.gregorykapfhammer.com\u002Fresearch#DatabaseTesting\">Database Testing\u003C\u002Fa>: Automatically testing relational database schemas\u003C\u002Fli>\n\u003C!-- \u002Fwp:list-item -->\n\n\u003C!-- wp:list-item -->\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.gregorykapfhammer.com\u002Fresearch#WebTesting\">Web Testing\u003C\u002Fa>: Detecting and repairing poor responsive web page layout\u003C\u002Fli>\n\u003C!-- \u002Fwp:list-item -->\u003C\u002Ful>\n\u003C!-- \u002Fwp:list -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>We've&nbsp;\u003Ca href=\"https:\u002F\u002Fstackoverflow.blog\u002F2022\u002F07\u002F04\u002Fhow-stack-overflow-is-leveling-up-its-unit-testing-game\u002F\">written a bit\u003C\u002Fa>&nbsp;about how Stack Overflow is upping its unit testing game and how you can&nbsp;\u003Ca href=\"https:\u002F\u002Fstackoverflow.blog\u002F2022\u002F11\u002F03\u002Fmultiple-assertions-per-test-are-fine\u002F\">evaluate multiple assertions\u003C\u002Fa>&nbsp;in a single test.\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>Thanks to our lifeboat badge winner of the week, Survivor, for answering the question: \u003Ca href=\"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F14177897\u002Fis-it-possible-to-find-out-if-a-value-exists-twice-in-an-arraylist\u002F14177992#14177992\">Is it possible to find out if a value exists twice in an arraylist?\u003C\u002Fa>\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>And thanks to Andre for writing in to let us know that yes, there are folks who code on mobile. He suggests trying:\u003Cbr>- Termux \u003Ca href=\"https:\u002F\u002Fwiki.termux.com\u002Fwiki\u002FMain_Page\" target=\"_blank\" rel=\"noreferrer noopener\">https:\u002F\u002Fwiki.termux.com\u002Fwiki\u002FMain_Page\u003C\u002Fa> can be used as a\u003Cbr>  terminal emulator. I have all I need here: Vim, git, node.js, Python\u003Cbr>- Markor \u003Ca href=\"https:\u002F\u002Fgsantner.net\u002Fproject\u002Fmarkor.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\u002F\u002Fgsantner.net\u002Fproject\u002Fmarkor.html\u003C\u002Fa> has a HTML view\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fthe-stack-overflow-podcast.simplecast.com\u002Fepisodes\u002Fflake-it-till-you-make-it-how-to-handle-flaky-tests\u002Ftranscript\u002F\">TRANSCRIPT\u003C\u002Fa>\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->","html","2023-01-17T14:57:00.000Z",{"current":240},"flake-it-till-you-make-it-how-to-detect-and-deal-with-flaky-tests-ep-528",[242,250],{"_createdAt":243,"_id":244,"_rev":245,"_type":246,"_updatedAt":243,"slug":247,"title":249},"2023-05-23T16:43:21Z","wp-tagcat-podcast","9HpbCsT2tq0xwozQfkc4ih","blogTag",{"current":248},"podcast","The Stack Overflow Podcast",{"_createdAt":243,"_id":251,"_rev":245,"_type":246,"_updatedAt":243,"slug":252,"title":254},"wp-tagcat-the-stack-overflow-podcast",{"current":253},"the-stack-overflow-podcast","the stack overflow podcast","Flake it till you make it: how to detect and deal with flaky tests (Ep. 528)",[257,263,269,275],{"_id":258,"publishedAt":259,"slug":260,"sponsored":12,"title":262},"76c9771b-34e6-4d98-8641-ecefc711f0ef","2026-07-06T15:23:34.559Z",{"_type":10,"current":261},"when-the-sensor-starts-thinking-snortml-agentic-ai-and-the-evolving-architecture-of-intrusion-detection","When the sensor starts thinking: SnortML, agentic AI, and the evolving architecture of intrusion detection",{"_id":264,"publishedAt":265,"slug":266,"sponsored":12,"title":268},"28e560af-f0aa-4d46-bd90-f435ad604aa7","2026-06-26T14:00:27.102Z",{"_type":10,"current":267},"paging-charity-how-can-engineering-leaders-avoid-becoming-bond-villains","Paging Charity! How can engineering leaders avoid becoming Bond villains?",{"_id":270,"publishedAt":271,"slug":272,"sponsored":12,"title":274},"4b22c2a3-3779-4966-93eb-5230391dbdce","2026-06-23T14:08:58.595Z",{"_type":10,"current":273},"your-ai-shipped-a-backend-that-boots-that-is-the-whole-problem","Your AI shipped a backend that boots. That is the whole problem.",{"_id":276,"publishedAt":277,"slug":278,"sponsored":12,"title":280},"5cf362e1-fe7b-45af-b69c-914731c6a052","2026-06-23T14:00:00.000Z",{"_type":10,"current":279},"the-2026-developer-survey-is-now-open-for-human-developers-only","The 2026 Developer Survey is now open (for human developers only)!",{"data":282,"sourceMap":-1},{"count":283,"lastTimestamp":284},3,"2023-05-25T09:48:04Z"]