<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>52 Weeks of GenAI Testing on Sourav AI Labs</title><link>https://souravailabs.ai/series/52-weeks-of-genai-testing/</link><description>Recent content in 52 Weeks of GenAI Testing on Sourav AI Labs</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://souravailabs.ai/series/52-weeks-of-genai-testing/index.xml" rel="self" type="application/rss+xml"/><item><title>Week 9: How LLMs Work, and Why That Changes How We Test Them</title><link>https://souravailabs.ai/posts/week-9-how-llms-work-and-why-that-changes-how-we-test-them/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-9-how-llms-work-and-why-that-changes-how-we-test-them/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge active"&gt;Week 9 of 52&lt;/span&gt;
&lt;span&gt;Phase 1: LLM Fundamentals&lt;/span&gt;
&lt;span&gt;Status: In Progress&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Phase 1 starts here. Eight weeks of Python and testing tooling, now applied to the thing I actually care about: understanding how language models work from the ground up, so I can test them properly.&lt;/p&gt;</description></item><item><title>Week 8: Fixtures, Parametrization, and Testing at Scale</title><link>https://souravailabs.ai/posts/week-8-fixtures-parametrization-and-testing-at-scale/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-8-fixtures-parametrization-and-testing-at-scale/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 8 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 8 completed the Foundation phase. The topic: pytest advanced features. Fixtures, fixture scopes, parametrization, &lt;code&gt;conftest.py&lt;/code&gt;, and markers.&lt;/p&gt;
&lt;p&gt;This is the week where writing tests stops being tedious and starts being powerful.&lt;/p&gt;</description></item><item><title>Week 7: pytest Basics and Why Test Discovery Matters</title><link>https://souravailabs.ai/posts/week-7-pytest-basics-and-why-test-discovery-matters/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-7-pytest-basics-and-why-test-discovery-matters/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 7 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 7 was the first explicitly testing-focused week of the journey. After six weeks of building Python tooling, it was time to write proper tests for it.&lt;/p&gt;</description></item><item><title>Week 6: Error Handling, Logging, and the Unreliable API Problem</title><link>https://souravailabs.ai/posts/week-6-error-handling-logging-and-the-unreliable-api-problem/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-6-error-handling-logging-and-the-unreliable-api-problem/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 6 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 6 was about building software that fails gracefully. The topic: &lt;code&gt;try/except/finally&lt;/code&gt;, custom exceptions, and the Python logging module.&lt;/p&gt;
&lt;p&gt;The mini-project made the stakes concrete. LLM APIs are not like database queries. They time out. They rate limit. They return partial responses. They fail in ways your happy-path tests will never catch.&lt;/p&gt;</description></item><item><title>Week 5: File Handling, JSON, and Why JSONL Is the Format for AI Testing</title><link>https://souravailabs.ai/posts/week-5-file-handling-json-and-why-jsonl-is-the-format-for-ai-testing/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-5-file-handling-json-and-why-jsonl-is-the-format-for-ai-testing/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 5 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 5 was practical infrastructure: reading and writing files, JSON serialization, pathlib for modern path handling, and JSONL for large datasets.&lt;/p&gt;
&lt;p&gt;Sounds dry. It is not. If you test AI systems, you live in JSONL.&lt;/p&gt;</description></item><item><title>Week 4: Modules, Packages, and Writing Code That Lasts</title><link>https://souravailabs.ai/posts/week-4-modules-packages-and-writing-code-that-lasts/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-4-modules-packages-and-writing-code-that-lasts/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 4 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 4 is when things started feeling like real engineering rather than learning exercises.&lt;/p&gt;
&lt;p&gt;The topic was modules, packages, and virtual environments. The skill: structuring code so other code can use it.&lt;/p&gt;</description></item><item><title>Week 3: Control Flow, Functions, and Validating LLM Responses</title><link>https://souravailabs.ai/posts/week-3-control-flow-functions-and-validating-llm-responses/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-3-control-flow-functions-and-validating-llm-responses/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 3 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 3 was where things started connecting to the actual problem I care about. Control flow and functions are foundational Python - but the mini-project applied them directly to LLM output validation.&lt;/p&gt;</description></item><item><title>Week 2: Data Structures and the List-of-Dicts Pattern</title><link>https://souravailabs.ai/posts/week-2-data-structures-and-the-list-of-dicts-pattern/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-2-data-structures-and-the-list-of-dicts-pattern/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 2 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Week 2 was data structures: lists, dicts, sets, tuples. The goal was not to memorize syntax but to understand which container to reach for and when.&lt;/p&gt;</description></item><item><title>Week 1: Python Basics, Prompt Templates, and a Debugging Rabbit Hole</title><link>https://souravailabs.ai/posts/week-1-python-basics-prompt-templates-and-a-debugging-rabbit-hole/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://souravailabs.ai/posts/week-1-python-basics-prompt-templates-and-a-debugging-rabbit-hole/</guid><description>&lt;div class="week-post-meta"&gt;
&lt;span class="week-post-badge"&gt;Week 1 of 52&lt;/span&gt;
&lt;span&gt;Phase 0: Foundation&lt;/span&gt;
&lt;span&gt;Status: Complete&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;The first week was about proving something simple: that a QA engineer with 10 years of experience but minimal Python could get moving fast when the goal was concrete.&lt;/p&gt;</description></item></channel></rss>