<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Writing Quality, Tested Code on DATATWEETS</title><link>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/</link><description>Recent content in Writing Quality, Tested Code on DATATWEETS</description><generator>Hugo</generator><language>en</language><copyright>Copyright (c) 2025 Datatweets</copyright><lastBuildDate>Sun, 05 Jul 2026 09:00:00 +0200</lastBuildDate><atom:link href="https://datatweets.com/courses/software-engineering/writing-quality-tested-code/index.xml" rel="self" type="application/rss+xml"/><item><title>Lesson 1 - Clean Code and Best Practices</title><link>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-1-clean-code-and-best-practices/</link><pubDate>Sun, 05 Jul 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-1-clean-code-and-best-practices/</guid><description>This lesson opens Module 3 by rewriting a tangled Ledgerly function called calc(x, tmp, flag, d) into five small, well-named functions. You will learn how to name things so they need no comment, how to size a function so it does one job, when a comment signals a naming problem instead of adding value, why consistent formatting matters, and how to fail fast with specific exceptions instead of silent failures.</description></item><item><title>Lesson 2 - Software Testing Fundamentals</title><link>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-2-software-testing-fundamentals/</link><pubDate>Sun, 05 Jul 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-2-software-testing-fundamentals/</guid><description>This lesson takes the clean pricing functions from Lesson 1 and puts them under test. You will write pytest unit tests for calculate_invoice_total and its helpers, build a fake PaymentGateway so tests never touch a real payment network, and measure why one broad end-to-end test runs far slower than a full suite of unit tests. It closes with what test coverage actually measures, and a real example of a bug that 100% coverage does not catch.</description></item><item><title>Lesson 3 - Behaviour-Driven Development</title><link>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-3-behaviour-driven-development/</link><pubDate>Sun, 05 Jul 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-3-behaviour-driven-development/</guid><description>This lesson introduces behaviour-driven development (BDD), where business people, developers, and testers describe a feature&amp;rsquo;s behavior in one shared, plain-language format before any code exists. You follow Ledgerly&amp;rsquo;s three-person team through a three-amigos session for a new discount-code feature, then turn that conversation into a Given-When-Then scenario. A working Python example then runs that scenario as a real executable specification, with output captured directly from the interpreter. By the end, you can explain how BDD differs from plain unit testing and why BDD scenarios double as living documentation.</description></item><item><title>Lesson 4 - The Gherkin Language</title><link>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-4-the-gherkin-language/</link><pubDate>Sun, 05 Jul 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-4-the-gherkin-language/</guid><description>This lesson teaches the full syntax of Gherkin, the plain-text language behind the BDD scenarios Lesson 3 introduced. You write real feature files for Ledgerly, covering the Given, When, Then, And, and But step keywords, a Background block that removes setup repeated across every scenario, and a Scenario Outline with an Examples table that runs one scenario against several discount codes. You also learn how tags like @billing and @smoke let a team filter which scenarios a test run executes.</description></item><item><title>Lesson 5 - Guided Project: Testing Ledgerly with BDD</title><link>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-5-guided-project-testing-ledgerly-with-bdd/</link><pubDate>Sun, 05 Jul 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/software-engineering/writing-quality-tested-code/lesson-5-guided-project-testing-ledgerly-with-bdd/</guid><description>In this guided project you build one real Ledgerly feature, pausing a subscription&amp;rsquo;s billing for up to two months with automatic resumption, and prove it works from three angles. You write a small, single-purpose implementation, back it with real unittest tests that run and pass, and specify the same behavior again in a Gherkin feature file with a Background, a Scenario, and a Scenario Outline covering multiple pause lengths. A closing reflection makes explicit what the Gherkin layer adds that the unit tests alone do not.</description></item></channel></rss>