[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-KUpVDSJ9EtghtecUnP_oAHAlQh2zEsOUM9leMVBXzmM":3},{"data":4,"sourceMap":-1},{"info":5,"latest":13,"pinned":748},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"descriptionText":10,"slug":11,"title":12},"2023-05-23T16:43:21Z","wp-tagcat-testing","9HpbCsT2tq0xwozQfkc4ih","blogTag",null,{"current":12},"testing",[14,68,121,153,252,287,330,376,406,447,477,508,555,604,639,675,706],{"_id":15,"author":16,"commentCount":36,"comments":37,"excerpt":10,"featureTag":10,"image":10,"publishedAt":38,"slug":39,"sponsored":10,"tags":41,"title":67},"747affaa-418e-4113-9475-56aefb1b71b4",[17,28],{"_id":18,"avatar":19,"name":24,"role":10,"slug":25},"99a0f65f-79ff-4018-87c6-36fd0ab68798",{"_type":20,"asset":21},"image",{"_ref":22,"_type":23},"image-d055cf67dce541e0f0691f45adfe19e33c693ae7-1080x1022-jpg","reference","Praveen Kumar Gunasekaran",{"_type":26,"current":27},"slug","praveen-kumar-gunasekaran",{"_id":29,"avatar":30,"name":33,"role":10,"slug":34},"6cdb850d-d5f7-4386-805a-51fed036bd94",{"_type":20,"asset":31},{"_ref":32,"_type":23},"image-b60a71f13cbe23b7487987cd0059b51cbdb79f69-512x512-jpg","Syed Ahamed",{"_type":26,"current":35},"syed-ahamed",1,true,"2026-06-15T15:22:54.784Z",{"_type":26,"current":40},"selenium-vs-cypress-vs-playwright-choosing-your-test-automation-framework",[42,65],{"_createdAt":43,"_id":44,"_rev":45,"_system":46,"_type":9,"_updatedAt":49,"description":50,"slug":62,"title":64},"2025-04-24T16:28:57Z","797b8797-6e65-4723-b53f-8bc005305384","IpfPEqg1c3Byvj9RrB3Xaj",{"base":47},{"id":44,"rev":48},"oc42Nphz1oZNOg9ttSv7Tn","2026-05-07T14:43:30Z",[51],{"_key":52,"_type":53,"children":54,"markDefs":60,"style":61},"bb32f75814b4","block",[55],{"_key":56,"_type":57,"marks":58,"text":59},"dbcf27ef29b3","span",[],"Community-generated articles submitted for your reading pleasure. If you’re interested in seeing your work here, log in with your Stack Overflow account and click the link below. Articles will be licensed under a CC BY-SA 4.0 grant. ",[],"normal",{"_type":26,"current":63},"contributed","The Heap",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":66,"title":12},{"current":12},"Selenium vs. Cypress vs Playwright: Choosing your test automation framework",{"_id":69,"author":70,"commentCount":80,"comments":37,"excerpt":81,"featureTag":10,"image":82,"publishedAt":86,"slug":87,"sponsored":10,"tags":89,"title":120},"0209dcb3-93dc-4d80-a918-d8e3e00251cc",[71],{"_id":72,"avatar":73,"name":76,"role":77,"slug":78},"dbdef9f7-acce-4431-8f4f-c2025df1c8c8",{"_type":20,"asset":74},{"_ref":75,"_type":23},"image-5f1073fdcf2ebde7fee8570769d9d82d21573870-2316x3088-jpg","Phoebe Sajor","Content Associate",{"_type":26,"current":79},"phoebe-sajor",0,"Ryan hosts SmartBear’s VP of AI and Architecture Fitz Nowlan to explore how we’re moving away from old assumptions about software development, the challenges of testing MCP servers as LLM-driven agents introduce non-determinism that breaks tradition, and how data locality and data construction are becoming more valuable when source code is so easy to generate.",{"_type":20,"asset":83,"attribution":85},{"_ref":84,"_type":23},"image-e35a0c5eb319e7928c9ac0a2c2c782d29e644876-3120x1640-png","Alexandra Francis","2026-03-31T07:40:00.000Z",{"_type":26,"current":88},"how-can-you-test-your-code-when-you-don-t-know-what-s-in-it",[90,95,99,103,105,113],{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":92,"title":94},"wp-tagcat-podcast",{"current":93},"podcast","The Stack Overflow Podcast",{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":97,"title":98},"wp-tagcat-se-tech",{"current":98},"se-tech",{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":101,"title":102},"wp-tagcat-se-stackoverflow",{"current":102},"se-stackoverflow",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":104,"title":12},{"current":12},{"_createdAt":106,"_id":107,"_rev":108,"_type":9,"_updatedAt":109,"slug":110,"title":112},"2025-09-15T19:09:46Z","2f81237f-b564-479e-97eb-fece931613b6","WYJJvyiYQVroW2X5W2lsRx","2025-09-15T19:10:11Z",{"_type":26,"current":111},"mcp","MCP",{"_createdAt":6,"_id":114,"_rev":115,"_type":9,"_updatedAt":116,"slug":117,"title":119},"wp-tagcat-ai","fpDTFQqIDjNJIbHDKPBGpV","2025-01-30T16:19:01Z",{"current":118},"ai","AI","How can you test your code when you don’t know what’s in it?",{"_id":122,"author":123,"commentCount":132,"comments":37,"excerpt":133,"featureTag":10,"image":134,"publishedAt":137,"slug":138,"sponsored":10,"tags":140,"title":152},"aa01241f-46db-4873-adaa-fd56e1119c32",[124],{"_id":125,"avatar":126,"name":129,"role":10,"slug":130},"wp-author-cap-20700",{"_type":20,"asset":127},{"_ref":128,"_type":23},"image-ee9d1c3b05019c9f39bcc8020c4d9e95d0bc9d26-163x163-png","Jared Toporek",{"current":131},"jared-toporek",11,"Maintaining a minimum of 80% code coverage affects code decisions and not always for the better.",{"_type":20,"asset":135,"attribution":85},{"_ref":136,"_type":23},"image-63b109f66c88e119171dd064655e57c7fa926026-12000x6300-jpg","2025-12-22T10:00:07.120-05:00",{"_type":26,"current":139},"making-your-code-base-better-will-make-your-code-coverage-worse",[141,143,145,147],{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":142,"title":98},{"current":98},{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":144,"title":102},{"current":102},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":146,"title":12},{"current":12},{"_createdAt":6,"_id":148,"_rev":8,"_type":9,"_updatedAt":6,"slug":149,"title":151},"wp-tagcat-code-quality",{"current":150},"code-quality","code quality","Making your code base better will make your code coverage worse",{"_id":154,"author":155,"commentCount":80,"comments":37,"excerpt":165,"featureTag":10,"image":166,"publishedAt":169,"slug":170,"sponsored":10,"tags":172,"title":251},"410c39a1-9126-4af8-a92e-19131b9c5a0d",[156],{"_id":157,"avatar":158,"name":161,"role":162,"slug":163},"wp-author-295",{"_type":20,"asset":159},{"_ref":160,"_type":23},"image-d670f8093b43e483a52ba692d929578633f70eb5-1024x1024-jpg","Eira May","B2B Editor",{"current":164},"emay","How Diffblue leverages machine learning techniques to write effective unit tests.",{"_type":20,"asset":167,"attribution":85},{"_ref":168,"_type":23},"image-56c6dab9c7d1b66bc662c5f43ea9573418d94d17-2400x1260-webp","2025-02-24T08:40:00.000Z",{"_type":26,"current":171},"writing-tests-with-ai-but-not-llms",[173,175,177,179,184,189,191,196,202,206,211,213,217,221,228,232,236,241,246],{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":174,"title":98},{"current":98},{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":176,"title":102},{"current":102},{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":178,"title":94},{"current":93},{"_createdAt":6,"_id":180,"_rev":8,"_type":9,"_updatedAt":6,"slug":181,"title":183},"wp-tagcat-software-development",{"current":182},"software-development","software development",{"_createdAt":6,"_id":185,"_rev":8,"_type":9,"_updatedAt":6,"slug":186,"title":188},"wp-tagcat-software-engineering",{"current":187},"software-engineering","software engineering",{"_createdAt":6,"_id":114,"_rev":115,"_type":9,"_updatedAt":116,"slug":190,"title":119},{"current":118},{"_createdAt":6,"_id":192,"_rev":8,"_type":9,"_updatedAt":6,"slug":193,"title":195},"wp-tagcat-generative-ai",{"current":194},"generative-ai","generative AI",{"_createdAt":197,"_id":198,"_rev":8,"_type":9,"_updatedAt":197,"slug":199,"title":201},"2023-06-20T15:05:33Z","wp-tagcat-autonomous-agents",{"current":200},"autonomous-agents","autonomous agents",{"_createdAt":6,"_id":203,"_rev":8,"_type":9,"_updatedAt":6,"slug":204,"title":205},"wp-tagcat-automation",{"current":205},"automation",{"_createdAt":6,"_id":207,"_rev":8,"_type":9,"_updatedAt":6,"slug":208,"title":210},"wp-tagcat-unit-tests",{"current":209},"unit-tests","unit tests",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":212,"title":12},{"current":12},{"_createdAt":6,"_id":214,"_rev":8,"_type":9,"_updatedAt":6,"slug":215,"title":216},"wp-tagcat-java",{"current":216},"java",{"_createdAt":6,"_id":218,"_rev":8,"_type":9,"_updatedAt":6,"slug":219,"title":220},"wp-tagcat-refactoring",{"current":220},"refactoring",{"_createdAt":6,"_id":222,"_rev":223,"_type":9,"_updatedAt":224,"slug":225,"title":227},"wp-tagcat-productivity","ZP7627ZkmfDRGke9Ig9IwB","2024-01-23T15:01:58Z",{"current":226},"productivity","Productivity",{"_createdAt":6,"_id":229,"_rev":8,"_type":9,"_updatedAt":6,"slug":230,"title":231},"wp-tagcat-llm",{"current":231},"llm",{"_createdAt":6,"_id":233,"_rev":8,"_type":9,"_updatedAt":6,"slug":234,"title":235},"wp-tagcat-copilot",{"current":235},"copilot",{"_createdAt":6,"_id":237,"_rev":8,"_type":9,"_updatedAt":6,"slug":238,"title":240},"wp-tagcat-ai-coding",{"current":239},"ai-coding","ai coding",{"_createdAt":6,"_id":242,"_rev":8,"_type":9,"_updatedAt":6,"slug":243,"title":245},"wp-tagcat-dev-tools",{"current":244},"dev-tools","dev tools",{"_createdAt":6,"_id":247,"_rev":8,"_type":9,"_updatedAt":6,"slug":248,"title":250},"wp-tagcat-developer-tools",{"current":249},"developer-tools","developer tools","Writing tests with AI, but not LLMs",{"_id":253,"author":254,"commentCount":132,"comments":37,"excerpt":264,"featureTag":10,"image":265,"publishedAt":268,"slug":269,"sponsored":10,"tags":271,"title":286},"6f088802-bd6d-4546-85c7-65b1c65173fa",[255],{"_id":256,"avatar":257,"name":260,"role":261,"slug":262},"f9b651eb-e6eb-4711-9643-62dca2437442",{"_type":20,"asset":258},{"_ref":259,"_type":23},"image-a8b61266cfce35fa9b91643652867a883f122a67-400x400-jpg","Austin Spiegel","Co-founder and CTO of Sift",{"_type":26,"current":263},"austin-spiegel","Is anyone designing software where failures don't have consequences?",{"_type":20,"asset":266,"attribution":85},{"_ref":267,"_type":23},"image-7f309e9e03ddeb3517f2c81fac3db2e390a8868c-12000x6293-jpg","2025-01-22T15:00:00.000Z",{"_type":26,"current":270},"why-all-developers-should-adopt-a-safety-critical-mindset",[272,274,276,278,282],{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":273,"title":98},{"current":98},{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":275,"title":102},{"current":102},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":277,"title":12},{"current":12},{"_createdAt":6,"_id":279,"_rev":8,"_type":9,"_updatedAt":6,"slug":280,"title":281},"wp-tagcat-observability",{"current":281},"observability",{"_createdAt":6,"_id":283,"_rev":8,"_type":9,"_updatedAt":6,"slug":284,"title":285},"wp-tagcat-failover",{"current":285},"failover","Why all developers should adopt a safety-critical mindset",{"_id":288,"author":289,"commentCount":80,"comments":37,"excerpt":294,"featureTag":10,"image":295,"publishedAt":297,"slug":298,"sponsored":10,"tags":300,"title":329},"399409be-9e8f-4e08-8f12-3a2da73fe731",[290],{"_id":157,"avatar":291,"name":161,"role":162,"slug":293},{"_type":20,"asset":292},{"_ref":160,"_type":23},{"current":164},"Happy New Year! In this episode, Ryan talks with Jetify founder and CEO Daniel Loreto, a former engineering lead at Google and Twitter, about what AI applications have in common with Google Search. They also discuss the challenges inherent in developing AI systems, why a data-driven approach to AI development is important, the implications of non-determinism, and the future of test automation.",{"_type":20,"asset":296,"attribution":85},{"_ref":168,"_type":23},"2025-01-03T08:40:00.000Z",{"_type":26,"current":299},"how-ai-apps-are-like-google-search",[301,303,305,307,309,311,313,317,321,325,327],{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":302,"title":98},{"current":98},{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":304,"title":102},{"current":102},{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":306,"title":94},{"current":93},{"_createdAt":6,"_id":114,"_rev":115,"_type":9,"_updatedAt":116,"slug":308,"title":119},{"current":118},{"_createdAt":6,"_id":192,"_rev":8,"_type":9,"_updatedAt":6,"slug":310,"title":195},{"current":194},{"_createdAt":6,"_id":247,"_rev":8,"_type":9,"_updatedAt":6,"slug":312,"title":250},{"current":249},{"_createdAt":6,"_id":314,"_rev":8,"_type":9,"_updatedAt":6,"slug":315,"title":316},"wp-tagcat-google",{"current":316},"google",{"_createdAt":6,"_id":318,"_rev":8,"_type":9,"_updatedAt":6,"slug":319,"title":320},"wp-tagcat-search",{"current":320},"search",{"_createdAt":6,"_id":322,"_rev":8,"_type":9,"_updatedAt":6,"slug":323,"title":324},"wp-tagcat-environments",{"current":324},"environments",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":326,"title":12},{"current":12},{"_createdAt":6,"_id":203,"_rev":8,"_type":9,"_updatedAt":6,"slug":328,"title":205},{"current":205},"How AI apps are like Google Search",{"_id":331,"author":332,"commentCount":80,"comments":37,"excerpt":337,"featureTag":10,"image":338,"publishedAt":340,"slug":341,"sponsored":10,"tags":343,"title":375},"3b71ab0f-503f-44a4-ad57-841684b21100",[333],{"_id":157,"avatar":334,"name":161,"role":162,"slug":336},{"_type":20,"asset":335},{"_ref":160,"_type":23},{"current":164},"The home team is joined by Kinnaird McQuaid, founder and CTO of NightVision, which offers developer-friendly API and web app security testing. Kinnaird talks about his path from school-age hacker to white-hat security expert, why it’s important to build security practices into the software development lifecycle, how GenAI is changing security testing, and what security teams need to understand about developers’ working lives.",{"_type":20,"asset":339,"attribution":85},{"_ref":168,"_type":23},"2024-12-10T08:40:00.000Z",{"_type":26,"current":342},"you-don-t-want-to-be-that-person-what-security-teams-need-to-understand-about-developers",[344,346,348,350,352,354,356,360,362,367,371],{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":345,"title":98},{"current":98},{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":347,"title":102},{"current":102},{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":349,"title":94},{"current":93},{"_createdAt":6,"_id":180,"_rev":8,"_type":9,"_updatedAt":6,"slug":351,"title":183},{"current":182},{"_createdAt":6,"_id":114,"_rev":115,"_type":9,"_updatedAt":116,"slug":353,"title":119},{"current":118},{"_createdAt":6,"_id":247,"_rev":8,"_type":9,"_updatedAt":6,"slug":355,"title":250},{"current":249},{"_createdAt":6,"_id":357,"_rev":8,"_type":9,"_updatedAt":6,"slug":358,"title":359},"wp-tagcat-security",{"current":359},"security",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":361,"title":12},{"current":12},{"_createdAt":6,"_id":363,"_rev":8,"_type":9,"_updatedAt":6,"slug":364,"title":366},"wp-tagcat-application-testing",{"current":365},"application-testing","application testing",{"_createdAt":6,"_id":368,"_rev":8,"_type":9,"_updatedAt":6,"slug":369,"title":370},"wp-tagcat-hacker",{"current":370},"hacker",{"_createdAt":6,"_id":372,"_rev":8,"_type":9,"_updatedAt":6,"slug":373,"title":374},"wp-tagcat-hacking",{"current":374},"hacking","“You don’t want to be that person”: What security teams need to understand about developers",{"_id":377,"author":378,"commentCount":383,"comments":37,"excerpt":384,"featureTag":10,"image":385,"publishedAt":387,"slug":388,"sponsored":10,"tags":390,"title":405},"39cf5082-ad03-4081-97d4-76b8268c849d",[379],{"_id":157,"avatar":380,"name":161,"role":162,"slug":382},{"_type":20,"asset":381},{"_ref":160,"_type":23},{"current":164},20,"Ben and Ryan are joined by Robin Gupta for a conversation about benchmarking and testing AI systems. They talk through the lack of trust and confidence in AI, the inherent challenges of nondeterministic systems, the role of human verification, and whether we can (or should) expect an AI to be reliable.",{"_type":20,"asset":386,"attribution":85},{"_ref":168,"_type":23},"2024-05-24T07:40:00.000Z",{"_type":26,"current":389},"would-you-board-a-plane-safety-tested-by-genai",[391,393,395,397,399,401,403],{"_createdAt":6,"_id":96,"_rev":8,"_type":9,"_updatedAt":6,"slug":392,"title":98},{"current":98},{"_createdAt":6,"_id":100,"_rev":8,"_type":9,"_updatedAt":6,"slug":394,"title":102},{"current":102},{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":396,"title":94},{"current":93},{"_createdAt":6,"_id":114,"_rev":115,"_type":9,"_updatedAt":116,"slug":398,"title":119},{"current":118},{"_createdAt":6,"_id":192,"_rev":8,"_type":9,"_updatedAt":6,"slug":400,"title":195},{"current":194},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":402,"title":12},{"current":12},{"_createdAt":6,"_id":203,"_rev":8,"_type":9,"_updatedAt":6,"slug":404,"title":205},{"current":205},"Would you board a plane safety-tested by GenAI?",{"_id":407,"author":408,"commentCount":80,"comments":37,"excerpt":413,"featureTag":10,"image":414,"publishedAt":417,"slug":418,"sponsored":10,"tags":420,"title":446},"wp-post-22367",[409],{"_id":157,"avatar":410,"name":161,"role":162,"slug":412},{"_type":20,"asset":411},{"_ref":160,"_type":23},{"current":164},"Syed Hamid, founder and CEO of no-code test automation platform Sofy, joins Ben and Ryan to talk about scriptless automation, why his platform targets mobile app developers, and what he learned in nearly two decades at Microsoft. ",{"_type":20,"asset":415},{"_ref":416,"_type":23},"image-472725c034235a56301dc8caf0ed41b3d298c57a-1200x630-png","2023-06-23T04:40:00.000Z",{"current":419},"throwing-away-the-script-on-testing-ep-583",[421,423,425,427,432,437,439,441],{"_createdAt":6,"_id":114,"_rev":115,"_type":9,"_updatedAt":116,"slug":422,"title":119},{"current":118},{"_createdAt":6,"_id":363,"_rev":8,"_type":9,"_updatedAt":6,"slug":424,"title":366},{"current":365},{"_createdAt":6,"_id":203,"_rev":8,"_type":9,"_updatedAt":6,"slug":426,"title":205},{"current":205},{"_createdAt":6,"_id":428,"_rev":8,"_type":9,"_updatedAt":6,"slug":429,"title":431},"wp-tagcat-mobile-development",{"current":430},"mobile-development","mobile development",{"_createdAt":6,"_id":433,"_rev":8,"_type":9,"_updatedAt":6,"slug":434,"title":436},"wp-tagcat-no-code",{"current":435},"no-code","no code",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":438,"title":12},{"current":12},{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":440,"title":94},{"current":93},{"_createdAt":6,"_id":442,"_rev":8,"_type":9,"_updatedAt":6,"slug":443,"title":445},"wp-tagcat-the-stack-overflow-podcast",{"current":444},"the-stack-overflow-podcast","the stack overflow podcast","Throwing away the script on testing (Ep. 583)",{"_id":448,"author":449,"commentCount":458,"comments":37,"excerpt":459,"featureTag":10,"image":460,"publishedAt":463,"slug":464,"sponsored":10,"tags":466,"title":476},"wp-post-21091",[450],{"_id":451,"avatar":452,"name":455,"role":10,"slug":456},"wp-author-cap-19328",{"_type":20,"asset":453},{"_ref":454,"_type":23},"image-86a0c56b829a0bbe0f28e601dd213fe0e769b7b6-40x40-jpg","Mark Seeman",{"current":457},"mark-seeman",22,"One test case, not one test assertion. ",{"_type":20,"asset":461},{"_ref":462,"_type":23},"image-0b31f3f5c575642b01c17db8bcb330d68a4fdf37-2560x1344-jpg","2022-11-03T14:00:00.000Z",{"current":465},"multiple-assertions-per-test-are-fine",[467,472,474],{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":469,"title":471},"wp-tagcat-code-for-a-living",{"current":470},"code-for-a-living","Code for a Living",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":473,"title":12},{"current":12},{"_createdAt":6,"_id":207,"_rev":8,"_type":9,"_updatedAt":6,"slug":475,"title":210},{"current":209},"Stop requiring only one assertion per unit test: Multiple assertions are fine",{"_id":478,"author":479,"commentCount":487,"comments":37,"excerpt":488,"featureTag":10,"image":489,"publishedAt":492,"slug":493,"sponsored":10,"tags":495,"title":507},"wp-post-20345",[480],{"_id":481,"avatar":482,"name":483,"role":484,"slug":485},"wp-author-307",{"_type":20},"Wouter de Kort","Senior Software Engineer",{"current":486},"wdekort",13,"We neglected unit tests for a long time because our code base made them difficult. But now we're putting in the work to change that. ",{"_type":20,"asset":490},{"_ref":491,"_type":23},"image-430b5071ab9c9dc308dd7be4849a3cd51d8b173d-2560x1344-jpg","2022-07-04T14:00:00.000Z",{"current":494},"how-stack-overflow-is-leveling-up-its-unit-testing-game",[496,498,503,505],{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":497,"title":471},{"current":470},{"_createdAt":6,"_id":499,"_rev":8,"_type":9,"_updatedAt":6,"slug":500,"title":502},"wp-tagcat-engineering",{"current":501},"engineering","Engineering",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":504,"title":12},{"current":12},{"_createdAt":6,"_id":207,"_rev":8,"_type":9,"_updatedAt":6,"slug":506,"title":210},{"current":209},"How Stack Overflow is leveling up its unit testing game",{"_id":509,"author":510,"commentCount":519,"comments":37,"excerpt":520,"featureTag":10,"image":521,"publishedAt":524,"slug":525,"sponsored":10,"tags":527,"title":554},"wp-post-19767",[511],{"_id":512,"avatar":513,"name":516,"role":10,"slug":517},"wp-author-cap-18115",{"_type":20,"asset":514},{"_ref":515,"_type":23},"image-8cf69a05d6ef9dfd6db2ac2da2518a7d5e4b90d1-386x426-png","Daniel Orner",{"current":518},"daniel-orner",9,"When rewriting software in a new language, how do you test that your new and old programs do the same thing?",{"_type":20,"asset":522},{"_ref":523,"_type":23},"image-110976f49a93b63fd335e9081d04f240045ce9a2-2400x1260-jpg","2022-03-09T15:00:00.000Z",{"current":526},"rewriting-bash-scripts-in-go-using-black-box-testing",[528,532,534,538,542,544],{"_createdAt":6,"_id":529,"_rev":8,"_type":9,"_updatedAt":6,"slug":530,"title":531},"wp-tagcat-bash",{"current":531},"bash",{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":533,"title":471},{"current":470},{"_createdAt":6,"_id":535,"_rev":8,"_type":9,"_updatedAt":6,"slug":536,"title":537},"wp-tagcat-go",{"current":537},"go",{"_createdAt":6,"_id":539,"_rev":8,"_type":9,"_updatedAt":6,"slug":540,"title":541},"wp-tagcat-porting",{"current":541},"porting",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":543,"title":12},{"current":12},{"_createdAt":43,"_id":44,"_rev":45,"_system":545,"_type":9,"_updatedAt":49,"description":547,"slug":553,"title":64},{"base":546},{"id":44,"rev":48},[548],{"_key":52,"_type":53,"children":549,"markDefs":552,"style":61},[550],{"_key":56,"_type":57,"marks":551,"text":59},[],[],{"_type":26,"current":63},"Rewriting Bash scripts in Go using black box testing",{"_id":556,"author":557,"commentCount":566,"comments":37,"excerpt":567,"featureTag":10,"image":568,"publishedAt":571,"slug":572,"sponsored":10,"tags":574,"title":603},"wp-post-19686",[558],{"_id":559,"avatar":560,"name":563,"role":10,"slug":564},"wp-author-cap-19510",{"_type":20,"asset":561},{"_ref":562,"_type":23},"image-7c4e91f7a46bfdc5870dd420f29a964da6830fbe-1920x1920-jpg","Joyce Lin",{"current":565},"joyce-lin",2,"How you can debug the APIs that you consume but don't own.",{"_type":20,"asset":569},{"_ref":570,"_type":23},"image-0737afecafd6c096e754b86037245ebc06d862a9-2400x1260-jpg","2022-02-28T15:01:18.000Z",{"current":573},"debugging-best-practices-for-rest-api-consumers",[575,580,582,586,591,593],{"_createdAt":6,"_id":576,"_rev":8,"_type":9,"_updatedAt":6,"slug":577,"title":579},"wp-tagcat-api",{"current":578},"api","API",{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":581,"title":471},{"current":470},{"_createdAt":6,"_id":583,"_rev":8,"_type":9,"_updatedAt":6,"slug":584,"title":585},"wp-tagcat-debugging",{"current":585},"debugging",{"_createdAt":6,"_id":587,"_rev":8,"_type":9,"_updatedAt":6,"slug":588,"title":590},"wp-tagcat-rest-api",{"current":589},"rest-api","rest api",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":592,"title":12},{"current":12},{"_createdAt":43,"_id":44,"_rev":45,"_system":594,"_type":9,"_updatedAt":49,"description":596,"slug":602,"title":64},{"base":595},{"id":44,"rev":48},[597],{"_key":52,"_type":53,"children":598,"markDefs":601,"style":61},[599],{"_key":56,"_type":57,"marks":600,"text":59},[],[],{"_type":26,"current":63},"Debugging best practices for REST API consumers",{"_id":605,"author":606,"commentCount":611,"comments":37,"excerpt":612,"featureTag":10,"image":613,"publishedAt":616,"slug":617,"sponsored":10,"tags":619,"title":638},"wp-post-19326",[607],{"_id":451,"avatar":608,"name":455,"role":10,"slug":610},{"_type":20,"asset":609},{"_ref":454,"_type":23},{"current":457},26,"Which dependencies should be present in your code base? This article suggests an answer to that question.",{"_type":20,"asset":614},{"_ref":615,"_type":23},"image-a787256fba2cd1e1505a4a4f39eccfbe89740909-2400x1260-jpg","2022-01-03T15:16:05.000Z",{"current":618},"favor-real-dependencies-for-unit-testing",[620,622,626,628],{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":621,"title":471},{"current":470},{"_createdAt":6,"_id":623,"_rev":8,"_type":9,"_updatedAt":6,"slug":624,"title":625},"wp-tagcat-dependencies",{"current":625},"dependencies",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":627,"title":12},{"current":12},{"_createdAt":43,"_id":44,"_rev":45,"_system":629,"_type":9,"_updatedAt":49,"description":631,"slug":637,"title":64},{"base":630},{"id":44,"rev":48},[632],{"_key":52,"_type":53,"children":633,"markDefs":636,"style":61},[634],{"_key":56,"_type":57,"marks":635,"text":59},[],[],{"_type":26,"current":63},"Favor real dependencies for unit testing",{"_id":640,"author":641,"commentCount":36,"comments":37,"excerpt":647,"featureTag":10,"image":648,"publishedAt":651,"slug":652,"sponsored":10,"tags":654,"title":674},"wp-post-19088",[642],{"_id":643,"avatar":10,"name":644,"role":10,"slug":645},"wp-author-cap-19087","Tobias Kupek",{"current":646},"tobias-kupek","Deep learning models still need testing, but many of the common testing approaches don't apply. But with the right methods, you can still make sure your pipeline produces good results. ",{"_type":20,"asset":649},{"_ref":650,"_type":23},"image-19f18f378ed0a3e8fc0b8f6c394a3fff0ff2f473-2400x1260-jpg","2021-11-15T15:08:32.000Z",{"current":653},"building-a-qa-process-for-your-deep-learning-pipeline-in-practice",[655,657,662,667,672],{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":656,"title":471},{"current":470},{"_createdAt":6,"_id":658,"_rev":8,"_type":9,"_updatedAt":6,"slug":659,"title":661},"wp-tagcat-data-science",{"current":660},"data-science","data science",{"_createdAt":6,"_id":663,"_rev":8,"_type":9,"_updatedAt":6,"slug":664,"title":666},"wp-tagcat-data-testing",{"current":665},"data-testing","data testing",{"_createdAt":6,"_id":668,"_rev":8,"_type":9,"_updatedAt":6,"slug":669,"title":671},"wp-tagcat-machine-learning",{"current":670},"machine-learning","machine learning",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":673,"title":12},{"current":12},"Building a QA process for your deep learning pipeline in practice",{"_id":676,"author":677,"commentCount":686,"comments":37,"excerpt":687,"featureTag":10,"image":688,"publishedAt":691,"slug":692,"sponsored":10,"tags":694,"title":705},"wp-post-18472",[678],{"_id":679,"avatar":680,"name":683,"role":10,"slug":684},"wp-author-288",{"_type":20,"asset":681},{"_ref":682,"_type":23},"image-4d7e3dbcf660093a7b71ee9ca01a338d43af6bcc-1024x1024-jpg","Max Horstmann",{"current":685},"mhorstmann",33,"If you’re building a new app today, it might be worth taking a closer look at making it cloud-native and using Kubernetes from the jump. The effort to set up Kubernetes is less than you think. Certainly, it’s less than the effort it would take to refactor your app later on to support containerization. ",{"_type":20,"asset":689},{"_ref":690,"_type":23},"image-85aab60b813262f199befeef3d8065231b48a5d9-1200x630-png","2021-07-21T20:58:17.000Z",{"current":693},"why-you-should-build-on-kubernetes-from-day-one",[695,697,701,703],{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":696,"title":471},{"current":470},{"_createdAt":6,"_id":698,"_rev":8,"_type":9,"_updatedAt":6,"slug":699,"title":700},"wp-tagcat-kubernetes",{"current":700},"kubernetes",{"_createdAt":6,"_id":180,"_rev":8,"_type":9,"_updatedAt":6,"slug":702,"title":183},{"current":182},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":704,"title":12},{"current":12},"Why you should build on Kubernetes from day one",{"_id":707,"author":708,"commentCount":725,"comments":37,"excerpt":726,"featureTag":10,"image":727,"publishedAt":730,"slug":731,"sponsored":10,"tags":733,"title":747},"wp-post-18061",[709,717],{"_id":710,"avatar":711,"name":714,"role":10,"slug":715},"wp-author-cap-15133",{"_type":20,"asset":712},{"_ref":713,"_type":23},"image-fb42299918166f47819645a45267277d31eb0ce0-40x40-jpg","Charles R. Martin",{"current":716},"charles-r-martin",{"_id":718,"avatar":719,"name":722,"role":10,"slug":723},"wp-author-213",{"_type":20,"asset":720},{"_ref":721,"_type":23},"image-e81c84dcaeb58be1002795a6544b595bd6fc8071-1024x1024-jpg","Ben Popper",{"current":724},"benpopper",12,"",{"_type":20,"asset":728},{"_ref":729,"_type":23},"image-1ddeca986ceabdee5f67b19f325377350b67f0da-2048x1365-jpg","2021-05-11T18:31:07.000Z",{"current":732},"testing-software-so-its-reliable-enough-for-space",[734,736,741,745],{"_createdAt":6,"_id":468,"_rev":8,"_type":9,"_updatedAt":6,"slug":735,"title":471},{"current":470},{"_createdAt":6,"_id":737,"_rev":8,"_type":9,"_updatedAt":6,"slug":738,"title":740},"wp-tagcat-software-in-space",{"current":739},"software-in-space","software in space",{"_createdAt":6,"_id":742,"_rev":8,"_type":9,"_updatedAt":6,"slug":743,"title":744},"wp-tagcat-spacex",{"current":744},"spacex",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":746,"title":12},{"current":12},"Testing software so it's reliable enough for space",[]]