Masthash

#tdd

J. B. Rainsberger (he)
1 day ago

The "Test Helper to Production Code" pipeline: one pattern.

Custom assertions become comparison operators become summary values become domain concepts.

#Lightweight #EvolutionaryDesign #refactoring #tdd

Ken Kousen
2 days ago

Are Mocks Bad? I have to ask, in a @YouTube Short from Tales from the jar side
https://youtube.com/shorts/G0mPA_i97F4?feature=share
#Java #Mockito #TDD #testing

Ted M. Young
4 days ago

In about 40 minutes, @jamesshore and I will continue pairing on test-driving code for our role-playing game that uses OpenAI to generate conversation.

Join us for Episode #5 of "The AI Chronicles" at 1pm PDT (20:00 UTC): https://jitterted.stream

#TDD #React #SpringBoot #Java #LiveCoding

James Shore
4 days ago

The recording of last week's AI Chronicles episode is up. In this episode: engineering leadership, evolutionary design, pair programming, and integration testing a fetch() wrapper.

https://www.jamesshore.com/v2/projects/nullables/ai-chronicles/4-fetch-quest

Also, we're livestreaming this week's episode today! It's at 1pm Pacific, about 2.5 hours from now, at jitterted.stream.

#nullables #OpenAI #tdd #pairing #livestream cc @jitterted

The AI Chronicles Episode #4: fetch() Quest
Aral Balkan
1 week ago

Just moved Tap Monkey from GitHub to Codeberg.

What’s Tap Monkey? It’s a tap test runner that’s also a monkey, of course ;)

🍌️🐒️

¹ @Codeberg

#tap #tape #js #nodeJS #test #tdd #testRunner #tapMonkey #GitHub #Codeberg

Screencast of Tap Monkey in action. Terminal window. Command: npm -s test. Progress of tests being run is shown by a single-line animation of the emoji monkey heads alternating between see no evil, hear no evil, speak no evil poses as the titles of test collections being run and passing tests are shown alongside. At the end, an emoji banana is shown next to “All tests passing. Total: 163. Passing 163. Failing 0. Duration 14.19 secs.
Jobs for Developers
1 week ago
Willem Van den Ende
2 weeks ago

Cool to see @BenLinders interview with Michal Svoboda on Test-Driven Development in the Cloud - https://www.infoq.com/news/2023/05/test-driven-development-cloud/ as both #InfrastructureAsCode and #TDD practitioners, @westghost and I found this hard to resist for #XP2023, in amsterdam in two weeks :-) https://events.agilealliance.org/xp2023/session/1449914/test-driven-development-of-cloud-apps

James Shore
2 weeks ago

This afternoon's livestream of The AI Chronicles is about to start! #pairing #tdd #react #SpringBoot and more. https://www.twitch.tv/jitterted

James Shore
2 weeks ago

AI Chronicles #3 is up for your weekend enjoyment. In this episode, we discuss extrinsic vs. intrinsic motivation, how to make code fail faster, and finish implementing an #OpenAI client.

https://www.jamesshore.com/v2/projects/nullables/ai-chronicles/3-fail-faster

#tdd #testing #pairing /cc @jitterted

The AI Chronicles Episode #3: Fail Faster
Nacho Cougil
2 weeks ago

Here you have the presentation I shared yesterday at @TechWeekRO related with #TDD
Let me know if you have any questions around it, I will be really happy to try to answer them 🙂 #techweekro

https://www.slideshare.net/icougil/tdd-seriously-try-it-bucarest-tech-week

J. B. Rainsberger (he)
2 weeks ago

I have noticed a shift in how I talk about the topics in my #tdd training classes.

All things are permitted. Everything is uncertain. Take your fear seriously. When in doubt, optimize for safety.

These attitudes answer (almost?) all questions of the types "Should we do X?" and "When should we do X (instead of Y)?"

James Shore
2 weeks ago

My "Testing Without Mocks" training course is coming up in just two weeks, and I still have some discounted seats available. This is the last time this price will be available, and I won't be offering the course again until October at the earliest.

You can sign up here:

https://www.jamesshore.com/s/nullables-training?mastodon

#training #tdd #testing #nullables

Jan :rust: :ferris:
2 weeks ago

Unit tests are NO boilerplate! They are a very important part of engineering correct and maintainable software!

Please get this right!

#ArtificialIntelligence #LLM #LLMs #MSBuild #SoftwareEngineering #SoftwareDevelopment #UnitTest #TDD

MarcinW 🖥️🚀
2 weeks ago

I find it hilarious when #TDD people think those on non-TDD projects don't know how to write tests.

I find it hilarious when #DDD people think those on non-DDD projects don't know how to handle complex projects.

J. B. Rainsberger (he)
2 weeks ago

Idle thought: Indeed, #tdd isn't magic---it doesn't automatically lead to success as a programmer; it does, however, help make learning a core part of everyday practice, which leads more often to more kinds of success. It makes room for improvement in a profession where we're often told to improve on our own damn time.

Evan Light
2 weeks ago

Exactly! The hubris necessary to pre-hoc decide, for an arbitrarily complicated piece of custom software, that you 💯 understand all of the constraints and trade-offs is arrogance in the extreme!

This isn't just a reason to strongly consider #tdd but also a huge invitation to re-examine your life choices. Some confidence is useful but hubris is the confidence before the fall.

Are you an actual gremlin? Do you deliberately throw sabots into the machines? Do you like shipping software that breaks in production? No? Then look at ways to challenge your perspectives. #tdd is one such way. There are others. https://mastodon.social/@jbrains/110418334157841431

J. B. Rainsberger (he)
2 weeks ago

In the hands of a programmer who has all the experience they need to feel comfortable that they truly need to build it "that way" from the beginning, then they can judge whether a relentlessly incremental approach would help them add that behavior with more confidence or not. I would trust them to choose. I encourage all others to challenge their assumptions until that becomes one of their core habits. #tdd reinforces that core habits.

And there are other ways to do that.

(4/4, fin)

J. B. Rainsberger (he)
2 weeks ago

Even in this situation, #tdd gives you a chance to challenge your assumptions:

- we must build it this way eventually
- we must build it this way now
- we can never benefit from building it a different way, such as with lightweight technology

I argue the opposite of the author of that article. Precisely because programmers are accustomed to never challenging these assumptions, #tdd would help remind them to consider alternatives that might help the business.

(3/n)

J. B. Rainsberger (he)
2 weeks ago

If you have already decided about the implementation details and are unwilling to change them and are willing to wait until the entire industrial-strength implementation is completed before deploying to production, then you have reduced #tdd to test-first programming.

Maybe this is an argument against the relentlessly incremental style of #tdd, but that's not the only way to do it nor always the best way to do it. Sometimes, we choose some design constraints up front and follow them.

(2/n)

J. B. Rainsberger (he)
2 weeks ago

I read an article with this argument against #tdd: Don't force me to build something incrementally in order to discover implementation details that I've already decided on. I could just build it much faster by following my plan.

I agree with the idea and I disagree that this is an argument against #tdd.

(1/n)

Ted M. Young
3 weeks ago

EPISODE #3 of THE AI CHRONICLES - LIVE

Join @jamesshore and I as we work on using OpenAI to supply the conversation in our role-playing game.

Today we're parsing responses from OpenAI.

Join us in 1.25 hours https://ted.dev/go/ai-chronicles.

#SpringBoot #React #Java #JavaScript #OpenAI #TDD

jbz :catjam:
3 weeks ago

"I often jump into the TDD flow when I’m adding a new feature to a product or confirming the existence of a bug. If it’s not clear how I should approach the problem, the best way for me to start is with a test. Tests force me to break down the problem into steps to reach an initial solution, while refactoring gets me to a cleaner solution"
➥ Increment Magazine

#TDD #Testing #SoftwareDevelopment
https://increment.com/testing/the-art-and-craft-of-tdd/

Rachel Brindle
3 weeks ago

Quick 7 is fully released! Quick 7 introduces a different way to create async tests in a way also lets you create synchronous tests (a la Quick 5 and earlier).

Additionally, Quick 7 will now generate human-readable test selectors! No more mangled "some_thing___in_some_condition___does_a_thing", it's now "some thing, in some condition, does a thing".

Release notes and more at https://github.com/Quick/Quick/releases/tag/v7.0.0

Thanks so much to everyone who has supported me and the rest of the Quick team in getting this out! I really appreciate all the feedback.

#tdd #iOSDevelopment #swiftlang #UnitTesting

Ted M. Young
3 weeks ago

I've got my #TDD Game on my mind because I just updated the Print & Play version*. Right now the REFACTOR card was intended to work on the "production code", but I'm now thinking of a rule expansion that takes into account neglecting to refactor your TEST Code.

* Print & Play: https://jitterted.podia.com/print-and-play-version-of-jitterted-s-tdd-game

** Physical Copy: https://tddga.me

OmbuLabs
3 weeks ago

Want to improve the quality of your test code? Learn how the AAA pattern can help you write more effective tests for your codebase #coding #Testing #TDD

https://go.fastruby.io/n3l

Willem Van den Ende
3 weeks ago

@GeePawHill Barrier to delete code has been lowered (as I always want, but also always needs work). Doing yet-another-spike only took two #pomodori, after which - more #QuietConfidence - I understand better how and why this stuff is built, and everything new is a library by default. It's a bit like the 'ratchet' metaphor of #tdd but with skill instead of code. Moving a step up, and then being relaxed in the knowledge, so I don't have to think or worry about it anymore.

JC Mann
3 weeks ago

I've been an avid user of #TDD for almost 20 years (yikes!). It's hard for me to write code any other way. Unfortunately, most of my coworkers don't understand my way of working and, therefore, don't value it. It has been a very lonely professional journey for me.

Michael Henriksen
3 weeks ago

Gokiburi version 0.2.0 is now out, with improvements that allow you to examine build errors and timeouts right in the web UI, keeping you within the workflow.

https://github.com/michenriksen/gokiburi

#Golang #UnitTesting #TDD

The Gokiburi web UI showing details of a test run that failed because of a build error. The output from the test command is displayed, which tells the developer why the build failed.
The Gokiburi web UI showing the test output of a test that failed because of timeout. The output is help for developers to debug and correct the issue.
Mark Gardner ‍:sdf:
3 weeks ago

Post-commit #SoftwareTesting was a mistake. If you can’t test your working copy, you’re not doing #TDD

Your #UnitTests are Trying To Tell You Something by Victor Rentea at #DevoxxUK

https://www.youtube.com/watch?v=1-Aw-sRfqsQ

#TDD #BDD #java #kotlin

Alvaro Jose
3 weeks ago

What are the benefits of TDD? TDD helps to ensure that code is well-tested, reliable and consistent. #TDD #SoftwareArchitecture

Willem Van den Ende
3 weeks ago

https://youtube.com/watch?v=3JymQay0Ic0&feature=share "there is no such thing as #mastery '" . how to suck at anything. on to the next set of tests. #tdd #spike

Ted M. Young
4 weeks ago

On today's live coding stream, we actually did inside-out #TDD. We knew what the new UI needed to look like and behave, and so we started with the innermost domain object: the Ensemble.

TDD'd the ability for the Ensemble to know about "Spectators" and then ensure Spectators couldn't also be "Participants".

Then moved on to the EnsembleService, and added a test to ensure that doing `joinAsSpectator` loaded the Ensemble into memory, updated it, and saved it (using an OutputTracker-like mechanism). Did some refactoring while we were there.

Finally moved on to the DTOs that support the UI, faked it a bit and finished the HTML and then went back to finish the DTOs.

QUnit
4 weeks ago

Guess who's number 1 on the test-runners Speedlify, for the third year in a row!

https://www.speedlify.dev/test-runners/

https://qunitjs.com

#qunit #perfmatters #tdd #crossbrowsertesting

First place: qunitjs.com,
Lighthouse score is 400,
Page weight is 80 kilobytes.

Second place: webhint.io,
score 391, weight 177 kilobytes.

Third place: eslint.org,
score 391, weight 780 kilobytes.
Kerfuffle
4 weeks ago

It baffles me how easy some people are to dismiss techniques and perspectives that are advocated by developers as "something for developers" and thus not for business or product management:

- #TDD
- #DDD
- #Agile
- #Scrum

These are all concepts meant to improve delivering the right product and delivering the product right. Thinking it's merely developers doing their thing outside the realm or concern of product management is so detrimental to both.

Ken Kousen
4 weeks ago

The sale continues at PragProg (use code TOOLS2023 for a 50% discount), so I made the thing I made before, but this time I made it better
#Java #Mockito #TDD #testing
https://youtube.com/shorts/ng75A92zhbo?feature=share

Andrew Tropin
1 month ago

Implemented bencode encoding/decoding in Guile Scheme.

TDD is a pleasure, when you have proper tools and can [re]run specific test groups instantly.

https://git.sr.ht/~abcdw/guile-nrepl/tree/257353b1/item/src/bencode.scm

#guile #scheme #lisp #tdd #emacs

The source code for bencode scheme tools in the left emacs window and the result of tests execution in the right.
Rob Myers 🍵 禅 Ⓥ
1 month ago

Let's discuss your concerns & the various common misperceptions about #TDD; & how it helps #Scrum #SoftwareDevelopment teams rapidly deliver quality product iteratively & incrementally over the long term.

Meetup Hosted by Collaborative Leadership Team

https://www.meetup.com/ignite-agility/events/293467502/

James Shore
1 month ago

I have to confess to some hubris. After evaluating the various Node.js testing frameworks, I've decided to write my own instead. In this 🧵, I'll explain why. Mostly so I can remember it for the future.

#NodeJs #tdd #testing

James Shore
1 month ago

My #nullables and testing without mocks office hours starts in 10 minutes! Zoom link here: https://www.jamesshore.com/v2/calendar/2023-05-10

#tdd #testing

Michael Henriksen
1 month ago

📣 I finally managed to get a little project I've been working on ready for a “beta” release. Introducing:

Gokiburi: Automatic Test Runs for Go Projects

https://github.com/michenriksen/gokiburi

I've used it privately for a while now with no major issues, but bugs should be expected. Give it a try and share your thoughts!

#golang #testing #tdd

Pictogram of a person shocked by seeing a cockroach crawling on the floor. Below it says, “GOKIBURI: automatic test runs for go projects”.
Screenshot of Gokiburi's web UI settings where sound notifications, among other settings, can be configured.
Screenshot of a test result overview in Gokiburi's web UI.
Screenshot of Gokiburi's code coverage view, which shows the tested code colored on a scale to show the level of code coverage in the tests.
Jon Reid
1 month ago

#TDD helps me write correct code. SwiftLint helps me write clear code. ☀️ Here's how I like my SwiftLint. https://qualitycoding.org/swiftlint/

molily
1 month ago

Re: Moving #Angular CLI to #Jest and Web Test Runner:

I'm having mixed feeling about this. Deprecating Karma makes sense. Its architecture is 10+ yrs old. But since Facebook handed Jest over to the community, Jest is seriously under-maintained. It has become the proverbial project some random person in Nebraska is thanklessly maintaining.
If the Angular team is serious about this switch, Google should pay someone contributing to Jest.

https://techhub.social/@develwithoutacause/110272255733926133

#Testing #TDD #SoftwareTesting

Andrew Flegg
1 month ago

There's a pattern of Not Invented Here Syndrome when people put a catchy name in things.

But these fundamentals lead directly to #TDD etc.

"The test design should be made at the same time as the design decision."

#NIH #TestDrivenDevelopment #Software #Development

"Two observations on integration test plans:

* Test plans will be simple if the software is modular;
   Test plans will be impossible if the software is not modular.

* Test in plans will not happen if they are delayed until the test phase; everyone will be too busy testing."

Handwritten underneath is my dad's note:

"The test design should be made at the same time as the design decision."
Ted M. Young
1 month ago

Tests that have lengthy, tedious, detailed setup sections take a long time to understand, and are prone to subtle errors themselves. (Mostly a problem with Test-After vs. #TDD.)

Speed of understanding is therefore probably more important than speed of writing. That's why I've been more focused on refactoring my tests than I have been in the past.

Jakub Zalas
1 month ago

Ugh. Yet another "mocks are bad, use fakes" post. They're all test doubles and suffer from the same problems. Use what works for you. #tdd

Rob Myers 🍵 禅 Ⓥ
1 month ago

I'm again teaming up with Collaborative Leadership Team to offer another in-person Certified Scrum Developer (CSD) double-feature, in Minneapolis in late July (often the best time of year, weather-wise: not too cold, not too hot).

First, the basic CSD...

https://coleadteam.ticketspice.com/csd-jul-25-26-2023-in-person-with-rob-myers

...followed by the two-day Advanced CSD...

https://coleadteam.ticketspice.com/a-csd-july-27-28-2023-rob-myers-advanced-certified-scrum-developer

(#Scrum #Developer #training includes #TDD #refactoring #cicd #pairprogramming and various other #agile #engineering practices.)

Alvaro Jose
2 months ago

A few days ago, I released the second #chapter of the #continiousDelivery #bootcamp let's do an intro to #TDD https://youtu.be/MG-Uqve41BQ

Brad Wilson
2 months ago

Feeling a bit confused by my decision making in @xunit.

This passes:

`Assert.Equal(42, 42L);`

This fails:

`Assert.Equivalent(42, 42L);`

That feels wrong. It's either backward, or both should pass. Equivalent was designed to be the "less strict" version of things, so why did I decide that equal values of different intrinsic types were a failure?

Equal has passed for 15 years. Equivalent is relatively new. I'm leaning towards both passing.

What do you think I should do?

#TDD #UnitTesting

James Shore
2 months ago

Nullables are a novel approach to testing that allow you to create fast, reliable tests without using mocks (or interfaces). They're a way of "turning off" production code so you can have sociable, state-based tests that don't talk to the outside world.

I'm hosting office hours on May 10th at 9am Pacific / 12pm Eastern / 18:00 CEST for anybody who'd like to discuss these ideas. Bring your code! Details and a calendar reminder are available here: https://www.jamesshore.com/v2/calendar/2023-05-10

#nullables #tdd #testing

Jakub Zalas
2 months ago

What are the worst examples of using #testdoubles #mocks you’ve seen? Send me your mocking hell. #testing #tdd

Alvaro Jose
2 months ago
Jan :rust: :ferris:
2 months ago

Generating implementation code with AI is one thing...

But generating unit tests with #AI is on a different level. This should actually be illegal!

#ArtificialIntelligence #TDD #UnitTest #LLM #TestDrivenDevelopment #SoftwareEngineering

Stevie Oberg
2 months ago

So I really want to try creating a #WebComponents app but can someone tell me: what are some of your favorite ways to test them?

#tdd #softwaredevelopment #webdev #webdevelopment

Rachel Brindle
2 months ago

Some #iosdev #tdd news:

I just pushed Quick 7 Beta 1 out. This dramatically changes how async tests run (... again...). Honestly, this is the approach I wish I had taken with Quick 6. Much happier with it.

If you're an iOS dev and you use Quick, I'd love to hear your thoughts.

https://github.com/Quick/Quick/releases/tag/v7.0.0-beta.1

Alex Chaffee
2 months ago

@qcoding fwiw my dream is to use an #AI to do actual #TDD -- I want to get a loop going where the human writes a test, then the AI writes code until it passes (and all prior tests too), then suggests refactorings, then repeat

i am putting this out there because I've had this idea for literally 20 years and any feedback might motivate me to actually spike it this weekend

robin
2 months ago

Denys Poltorak just shared an article on TTD in the "A Philosophy of Software Design" Google Group.

https://herbertograca.com/2018/08/27/distillation-of-tdd-where-did-it-all-go-wrong/

It contains a great reminder that #TDD as it was originally envisioned should in fact already avoid many of its modern pitfalls. There's an amazing list int he article of great principles for designing tests from Ian Cooper.

> In the end, the message is:
> Test module behaviours, not implementations!

Love it.

Jon Reid
2 months ago

I just asked #ChatGPT an easy one: write FizzBuzz using #TDD.
It answered with a full implementation of FizzBuzz, and tests.
But that's not TDD. It took repeated coaxing to get it to write a single test. And it didn't know how to write the code to make it fail, or the minimal code to make it pass.

It kept defining TDD correctly, but had no idea how to do it. ChatGPT was trained with what's out there, so this tells me:
- Many people can define TDD
- Very few people understand how to TDD

Ted M. Young
2 months ago

Pre-orders are now open until April 12th!

Buy JitterTed's TDD Game today and get one of the first copies! (Get a free logo magnet and sticker, too!)

#TDD #BoardGame #CardGame

https://ted.dev/products/jitterted-tdd-game.html?utm_source=mastodon&utm_medium=social&utm_campaign=4daysleft

10 hex tiles organized in an upside-down triangle forming the playing board, emulating the Test-Driven Development process steps. Clockwise from top-left: "What should it do?", "How do you know it did it?", "Write code for test", "Predict test will fail to compile", "Write code so test compiles", "Predict test will fail", "Write code for feature", "Predict test now passes", and "Commit code".