Discover and read the best of Twitter Threads about #tdd

Most recents (14)

TDD is about design. So with @eventmodeling
it goes out the window. What you have is unit tests to help give you regression tests. But even then, you are doing OCP more than recent years allowed. So plow through the happy path ASAP. Use THAT as the backbone to your system.
More on this at tomorrow's meetup. This is truly agile. I never thought I would ever think to discourage #TDD. But here I am saying exactly that after practising it for 20 years.
So plow through the happy path as fast as possible. Add unit tests later to make sure you covered all the nuances of the data transformations. The regression tests aren't as necessary if you are doing #eventsourcing as you have a bread-crumb trail of how you got into any issues.
Read 5 tweets
#UnitTesting and #TDD continue to deliver

Yesterday, I was fighting a pretty nasty bug, all the unit tests passed

I knew there was a corner case not covered by the unit tests but what was it?

Reviewing my assumptions, the key: hw was not exactly sync
Need to test for data 1/
Not aligned, I added new unit test for that assumption, of course the test failed

Now, I just needed to modify the code to make that test pass and not make the rest of the tests fail

The best part, i could work with very small and manageable arrays (instead of the 2GB array) 2/
Once all the tests passed, tested with hardware and everything just worked!

Let's see why this worked:
1) there were 35 unit tests that tested the "happy path" and some corner cases
2) I could confidently modify the code and know I would be alerted if I broke existing code
3/
Read 5 tweets
In my #TDD trainings, I sometimes say that I do not test code that is "too simple to break"; Code where:

1. The chance of the code breaking is very low
2. *If* the code breaks, we would see immediately

What do I mean by that? A thread... 1/
I wrote the following Typescript code running in #electronjs:

const { dialog, } = remote
const filePath = dialog.showSaveDialogSync({...})
if(filePath) {
fs.writeFileSync(...)
}

The code is very hard to test, but I'm OK with that, b/c it fulfills the above criteria. 2/
Before I go into why the code is "too simple to break"... Why is it hard to test?

Well, "dialog" (and even "remote") is not available during unit testing. And even if it was, it would open a dialog that I'd have to remote-control. Not cool in a test. 3/
Read 12 tweets
#DeliveryConf @MrThomasRayner: Messy PowerShell behaviors: A lack of tests, no signed code (not good!), a lack of linting, no peer review (this is a big one!), lack of difference between artifacts in source and prod, no approval, and no dev env.
#DeliveryConf @MrThomasRayner: The same concepts from #CICD that we heard in the keynote earlier are applicable to PowerShell!
#DeliveryConf @MrThomasRayner: A lot of the people doing PowerShell might not have the background in development to provide the basics like storing prod code in source control, having peer reviews to avoid blinders and edge cases, and approval workflows.
Read 13 tweets
تابعت النقاش حول منهجية ال #Agile اللي بدأها الدكتور مازن @mznmel وخلوني ألخص وجهة نظري.
١- الضعف التقني (الشديد أحيانًا) لدى الكثير من فرق البرمجة في السعودية والقفز السريع للادارة هربًا من البرمجة مشكلة كبيرة. شخصيا غير مقتنع بمدير منتج برمجي ما اشتغل برمجة ٥-١٠ سنوات.
ما أعرف صراحة كيف شخص يبي يصير مدير منتج برمجي او يصير scrum master وهو لم يعمل قبل كمبرمج. أحد متطلبات التوظيف ك product manager في قوقل مثلا هي ان تكون software engineer بخبرة طويلة.
٢- هذا الضعف يؤدي الى عدم فهم عمل المبرمجين وسوء (او المبالغة ب) استخدام منهجية ال #Agile (كيف ومتى تستخدم🤔). ما يهمني لو تقرا الف كتاب عن الموضوع. اذا ما اشتغلت بيدك برمجة ضمن فريق لسنوات وحسيت بمشاكل ال delivery وعشتها راح اعتبرك غير فاهم لل #agile بغض النظر عن شهاداتك.
Read 20 tweets
#TDD, #CodeReview and #ContinuousIntegration in action - here is how with @marcandsweep we develop new features in #JaCoCo (jacoco.org/jacoco/):
as an example let's have a look at github.com/jacoco/jacoco/…
… first we add high level "validation" test to study desired behavior, this test targets Records (openjdk.java.net/jeps/359) that are #JDK14 Preview Feature (openjdk.java.net/jeps/12),
so build fails locally, but only on JDK14 …
… yes - locally for development we have many #Java versions installed …
Read 12 tweets
Oh, dang. Now I’m all riled up & can’t focus. Been wanting to go toe-to-toe with <them> in a discussion about #TDD for over a decade. I think I’m going to have to vent. Here. Now.

Ready?
First, the history of my introduction to <them>. We met, at a conference, and they said “Ah! You teach TDD? That stuff is dangerous! If Kent Beck were in Europe, he’d be imprisoned for the damage he’s done!”
Let’s generously assume they were using hyperbole, or really angry about something else, or needing therapy. Assume good intentions.
Read 23 tweets
Programar não é copiar do @StackOverflow. Lá você pode encontrar *como* fazer algo, mas não *o que* fazer.

#TDD é bom porque destaca *o que* antes de *como*.

Em alguns anos vamos escrever só os testes. O código que satisfaz os testes será gerado automaticamente.
Refazendo esse tuíte pra ficar mais claro...
Programar é:
1) entender *o que* precisa ser feito,
2) decidir *como* fazer.

A parte 1 é a mais importante e difícil.

#TDD é bom porque destaca *o que* antes de *como*.

Em alguns anos vamos escrever só os testes. O código que satisfaz os testes será gerado pela máquina.
Read 4 tweets
I can answer the questions from my talk at @jaxcon today. There were only two.
@jaxcon "Can you recommend a book on evolutionary design?"

I can recommend a few. You can probably feel comfortable starting with any of them.

- Beck, _Test-Driven Development: By Example_
- Koskela, _Test-Driven_
- Jeffries, _Extreme Programming Adventures in C#_
Even my own book, _JUnit Recipes_, has content on evolutionary design. I had agreed with the publisher _not_ to write a book about #tdd, but rather about how to use #junit, but in those recipes you will find some parts that start "...and if you're doing TDD, then you will...".
Read 15 tweets
Nessa mini-thread, vamos explorar conceitos sobre Testes Unitários e #TDD. Vem comigo! 👇
Testes Unitários, de Integração e End-to-End são tipos de testes automatizados que compõem o núcleo do Continuous Delivery, uma metodologia de desenvolvimento que permite que você suba implementações para produção em dias ou horas, ao invés de meses ou anos.
Cada tipo de teste possui um papel único e isolado. A partir de agora, iremos começar a explorar conceitos de Testes Unitários com TDD.
Read 14 tweets
All of you #recruiting #fullstack developers, or calling yourselves #fullstack #software #developers, this is the stack. I call #shenanigans.
#UI & #UX
#Accessibility
#Internationalization
#GraphicDesign
#Javascript
WAF and client-side #security
Client-facing #performancetesting
Caching & #CDN
#APIDesign
Identity management
#Microservices
#Database access patterns
#ContinuousIntegration
Build servers (#Jenkins)
Source code management
Deployment methodologies
#ConfigurationManagement
#InfrastructureAsCode
Infrastructure Security
#TDD
Concurrent programming
Backend performance testing
#Monitoring
Alerting
Storage subsystems
Messaging subsytems
#Networking
Read 4 tweets
Getting started with Want to succeed with #TDD ? Stop writing tests! @BurkHufnagel #TDD #DevNexus devnexus.com/presentations/…
We work with software that's way more complex than a simple shape like this. Reasonable people may see the same thing in different ways, based on their perspective! @BurkHufnagel #TDD #DevNexus
You have a goal that you share with me: you want delivering better code faster
... not *writing* code more quickly! @BurkHufnagel #TDD #DevNexus
Read 36 tweets
Bir yazılım geliştiricinin bilmesi gerekenlerle ilgili 15 maddelik flood geliyor.. Mümkün olduğunca fazla keywordü bir araya toplamaya çalıştım.
Hadi Başlıyoruz!

#Developer #Software #Java #code #kod #yazılım #development #computer #bilgisayar #tool #PC #IT #web #tech #data
1-Temel veri yapıları (linkedList, map, tree vb) ve temel algoritmalar (sıralama, arama vb)

Sıfırdan kodlama ihtiyacınız büyük ihtimalle hiç olmayacak. Ancak ihtiyaç anında doğru yerde doğrusunu seçebilmek için o veri yapısının veya algoritmanın nasıl çalıştığını bilmeniz şart
2- Network Temelleri

OSI Modelini ve 7 katmanı; temel protokolleri(#TCP-IP, TCP-UDP, #HTTP, #FTP), güvenlik protokollerini(#HTTPS, #SFTP, #SSL), monitoring protokolleri(#SNMP, ICMP) bilmekte fayda var. Ayrıca ağ ekipmanlarının görevlerini tanımak ve 7Layer yerlerini bilmek lazım
Read 16 tweets
Some days I'm really frustrated by people holding opinions in the face of experiments and data showing the opposite. It's one thing to say that the experiment isn't valid (and then please say why you think so), it's another to misread it entirely.
I'll be the first to admit that experiments around things like TDD are hard, but Medium posts like this one don't even attempt to look at the literature. blog.usejournal.com/lean-testing-o…
To inject some data into the discussion, sciencedirect.com/science/articl… is a good survey on the research on #TDD through 2014.
Read 13 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!