Specifying Constants in TDD

Net Objectives

TDD is different from QA in many respects. The government will dictate how quickly a … Continue reading "Specifying Constants in TDD". Audio Available TDDPart of this involves the tests we choose to write. A case in point is the specification of public constants. Example. When businesses buy assets, they can write-off (amortize) the value of those assets over time, as a taxation issue.

TDD 40

TDD and Reported Defects

Net Objectives

TDD views this very differently. In TDD, a “defect” is code that … Continue reading "TDD and Reported Defects". Audio Available TDDMost organizations have some type of reporting mechanism allowing customers to alert them to defects they have encountered. Typically, a “trouble ticket” or similar artifact is generated, and someone is assigned the task to 1) locate and then 2) fix the errant code.

TDD 40

TDD and Design Patterns

Net Objectives

Similarly, TDD was first promoted around the same time in history as part of eXtreme Programming. Some have suggested that these two points of view stand in opposition to each other, saying Design patterns are about up-front design, while … Continue reading "TDD and Design Patterns". Audio Available Design Patterns TDDDesign patterns in software came from the work of the Gang of Four in the mid-1990’s.

TDD 40

Commonly Missing Tests in TDD

Net Objectives

Because TDD is “test” driven development, people tend to think of TDD as “writing tests first.” In fact, TDD is not a testing activity per se. Because of this … Continue reading "Commonly Missing Tests in TDD". Audio Available TDDIt is the creation of an executable specification prior to the creation of each system element. Unit tests are a very useful by-product of this process.

TDD 40

Team Leadership in the Age of Agile

Speaker: Roy Osherove, Technology and Leadership Consultant

To do this, you've learned a wide variety of techniques and methodologies - SCRUM, Kanban, TDD, DevOps, self-organized teams, and much more.

Practice TDD with Cyber-Dojo

Agile Alliance

In this lightning talk, Seb Rose introduces Cyber-Dojo, a free, open source, online training environment for people who want to get better at TDD. Technology tdd

TDD 102

TDD and Encapsulation

Net Objectives

The type and nature of the tests that you write in TDD helps you to understand how strongly your system is encapsulated. The more your tests are about … Continue reading "TDD and Encapsulation". Everything the system must do, and yet might not, needs a test. Here, “must do” comes from your stakeholders’ requirements, and is therefore connected to business value.

TDD 40

“Good” Tests in TDD

Net Objectives

Often the developers understand and agree that these qualities are important, but they are not … Continue reading "“Good” Tests in TDD". Audio Available Design Patterns Emergent Design TDDAs consultants, we are often asked to review the work of others. One of the things we review is the quality of the design of some part of the system. Is it cohesive, decoupled, non-redundant, encapsulated, open-closed, and so forth?

TDD 40

What Is TDD?

Net Objectives

I am heartened by the surge in TDD training. To me TDD is the 2nd most important thing for devs to learn-ATDD being the 1st TDD’s not just the automation of unit testing. TDD’s formulation of tests, prior to code, drives design. High quality code is easy … Continue reading "What Is TDD?". Emergent Design TDD Technical Agility

TDD 40

TDD and the OCP

Net Objectives

This means that a “good” design will allow for a new behavior to be added to a system without having to change the existing code, or at least to minimize … Continue reading "TDD and the OCP". Audio Available TDDThe Open-Closed Principle (Bertrand Myers, Ivar Jacobsen) states, “Software entities (such as classes, modules, and functions) should be open for extension, but closed for modification.”

TDD 40

TDD and Code Coverage

Net Objectives

Measurement tools are used as a process gate, where the team must achieve this minimum coverage level before code can be checked … Continue reading "TDD and Code Coverage". Audio Available TDDIt’s not unusual these days for development organizations to adopt a code coverage requirement. This is usually expressed as a percentage: at least X% of all code developed must be covered by tests.

TDD 40

TDD: primitive obsession ( part 3 )

Apiumhub

Last month we talked about TDD example in software development ( part 1 ) and TDD first cycle ( part 2 ). In this new TDD and primitive obsession article, we will focus on removing duplication and reinforcing the constructors of our entities, something key to have a robust system. TDD: primitive obsession. We enter the phase of Refactor, in this phase we not only remove duplication, we also design our application within this space that TDD provides us.

TDD 71

TDD does not Replace Traditional Testing

Net Objectives

Some organizations who have adopted TDD as their development strategy have assumed that they no longer need SAT/QA testers, since the developers are now writing tests. Developers write the tests they need to drive correct behavior into the … Continue reading "TDD does not Replace Traditional Testing". Audio Available TDD

TDD 40

TDD First Cycle ( part 2)

Apiumhub

Let’s continue with our series of TDD articles, in the first part we looked at the theory behind the TDD and Unit Testing. In this second part, TDD First Cycle , we begin to develop our application, an application of notes where a user can write notes and everything that comes to our mind. TDD First Cycle. We always have to have in mind the TDD cycle. Okay, we already have a test in red as TDD First Cycle indicates: RED.

TDD 63

TDD and the Single Responsibility Principle

Net Objectives

I mentioned earlier that TDD offers qualitative measurements about production code, namely that a large average fixture size can be used to measure relative coupling in a system. The Single Responsibility Principle states that every class in … Continue reading "TDD and the Single Responsibility Principle". Audio Available TDD

TDD 40

TDD and the Separation of Concerns

Net Objectives

This is one area where … Continue reading "TDD and the Separation of Concerns". Audio Available Design Patterns Emergent Design TDDOne aspect of strong design is that separation is created between the various concerns of the system. This adds clarity, promotes re-use, improves cohesion, and in general adds value to the work. It can be difficult to know, however, if one has separated things sufficiently, or perhaps has overdone it.

TDD 40

TDD Tells Us What is not Known

Net Objectives

TDD tells us what we do not know. Imagine you are developing the software for a casino’s poker slot machine … Continue reading "TDD Tells Us What is not Known". Audio Available TDDYou cannot meaningfully test that which you do not adequately understand. The time to find that out is before you start development. Sometimes, it tells us what our stakeholders don’t realize they also don’t know.

TDD 40

The Multiple Values of Doing TDD

Net Objectives

When … Continue reading "The Multiple Values of Doing TDD". Audio Available TDDTests pay you back for your effort: When you are writing them. They help you to understand the problem you are attempting to solve, they reveal gaps in your knowledge, and lead you to useful questions. When they fail. They inform you of a defect, and if written well, specifically where that defect is.

TDD 40

TDD “Good” Tests Part 1. The test must reliably fail for the reason intended

Net Objectives

TDD requires an expenditure of developer effort. TDD returns value in many ways, but here I will focus on one way in particular: Tests prove their worth when they fail. When a test fails, this is the point when we say “wow, we’re … Continue reading "TDD “Good” Tests Part 1. Audio Available TDDAll such effort is an investment, and thus should yield a return.

TDD 40

TDD Provides Value to Everyone in the Development Process

Net Objectives

Project Managers and Product Owners are sometimes dubious about the development team doing TDD. Also, it seems like a nonsensical idea to write a test … Continue reading "TDD Provides Value to Everyone in the Development Process". Audio Available TDDThey are concerned that the team will slow down because they’ve been burdened with additional work, and that developers might “game” the system with bogus tests to satisfy the process.

TDD 40

TDD “Good” Tests Part 3. There must be no other test that fails for this reason

Net Objectives

When organizations adopt TDD as their development paradigm, early results can be quite good once the teams get over the initial learning curve. But there is a negative trend that can emerge … Continue reading "TDD “Good” Tests Part 3. Audio Available Developer Habits TDD Team Level AgileCode quality goes up, defect rate goes down, and the team gains confidence which allows them to be aggressive in pursuing business value.

TDD 40

TDD Makes Developers and Testers into Valued Colleagues

Net Objectives

Yeah we knew that”) or bad news (“there … Continue reading "TDD Makes Developers and Testers into Valued Colleagues". Audio Available TDDIn many large organizations there is a kind of wall between development and testing. Developers do their work and “throw it over the wall” to be tested. This can create negative attitudes on both sides. Developers see testers either as a source of no information (“it works?

TDD 40

TDD example in software development (Part I)

Apiumhub

The application will be a notes manager with users where we can see how we test each layer of our application using TDD. The first and most important thing is that TDD and unit testing are different things. TDD Example: expect(suma(1,2)).toEqual(3); Feedback: TDD example.

TDD 70

TDD “Good” Tests Part 2. The test must never fail for any other reason

Net Objectives

Developer time … Continue reading "TDD “Good” Tests Part 2. Audio Available TDDWhen a test fails for a reason other than intended, then upon investigating the cause of that failure the natural assumption will be that it is failing for the reason intended. Thus, the failure will mislead the team into investigating the wrong problem. Anything that wastes developer time is to be avoided resolutely. The test must never fail for any other reason".

TDD 40

Test Driving and Unit Testing Thread Safety

Agile Alliance

This session shows how to use TDD to drive the design of a multithreaded code. Technology tdd unit testIf you've confronted test driving for thread-safety this session is for you.

Why TDD is more about design, emergence & sustainability than testing

Net Objectives

With a name like TEST-driven development you’d expect TDD is mostly about testing. This is why the 1st mantra … Continue reading "Why TDD is more about design, emergence & sustainability than testing". Especially when the end result is tests. In our book Design Patterns Explained we discussed how testability (how easily code can be tested) is an intrinsic property of software and is highly correlated with good design.

TDD 40

April 25th in Seattle, Washington: TDD Without Mocks (Hands-On)

James Shore

TDD Without Mocks. 15 Feb 2019. James Shore/Calendar. I’ll be at the Seattle Software Crafters Meetup on April 25th talking about test-driven development and testing without mocks. This is a hands-on, free event. Don't miss it! Are your tests slow and brittle? Do you get a sinking feeling when you need to refactor? Do you worry your unit tests aren’t actually testing anything important? If so, you could benefit from writing tests that don’t use mock objects.

TDD 48

“You're Doing It Wrong”

Ron Jeffries

success Practices tdd“Probably not a good thing to say. Possibly a good thing to think about.”.

TDD 53

Incremental Development

Ron Jeffries

Practices increment tdd successA lovely post by GeePawHill led to a Twitter conversation about up front design, inspiring this article.

Braitenberg Vehicles - 4

Ron Jeffries

braitenberg Codea Practices tddFirst some refactoring - then some behavior.

TDD 40

Extended Role of QA in Test Driven Development (TDD)

Xoriant

TDD is an Agile Development technique in which developers write test cases before writing the corresponding code for the user story assigned to him. TDD focuses on writing the necessary code to pass the test thus making the process simple and clear. How TDD is different than others?

Braitenberg Vehicles - 1

Ron Jeffries

braitenberg Codea Practices tddI'm playing in Codea with 'Braitenberg Vehicles', just for fun. I'll be sharing what I do with you all.

TDD 52

Braitenberg Vehicles - 2

Ron Jeffries

braitenberg Codea Practices tddLet's Turn - making our little guy turn. And see the comments on Gross Hackery at the end of the article.

TDD 52

All tests Passing

I'm Programmer

Programming Funny Images Programming Jokes All tests Passing Setting Test Status to Pass or Fail TDD environment Test driven developmentThe post All tests Passing appeared first on I'm Programmer.

Braitenberg Vehicles - 3

Ron Jeffries

braitenberg Codea Practices tddI decide to follow Braitenberg's approach a bit more closely, driving the wheels at different speeds rather than rotating the vehicle.

TDD 40

Understanding the Concept of Testability – A Worthwhile Remembrance

Net Objectives

I remember getting into avid discussion on the XP user group about TDD. I could never remember what it stood for, often calling it test-driven design because I recognized that TDD helped people design their code when using … Continue reading "Understanding the Concept of Testability – A Worthwhile Remembrance". TDD Technical AgilityUnderstanding the Concept of Testability – A Worthwhile Remembrance I was first introduced to XP in ’99.

Tests are Client Number 1

Net Objectives

First, the interfaces TDD drives into the system are always client-focused. Audio Available Design Patterns TDDWhen a test precedes development, it essentially becomes the first “client” for the behavior being developed. This fact is helpful in several ways. They are not implementation-focused because at the moment they are created there is no implementation yet. In their seminal book on … Continue reading "Tests are Client Number 1".

Mocking as a Design Smell

Net Objectives

In TDD, we seek to create granular, unique tests, tests that fail for a single reason only. Audio Available TDDTo achieve this, when testing an entity that has dependencies, a typical way to prevent the test from failing for the wrong reason is to create mocks of those dependencies. A mock can be simply a replacement that … Continue reading "Mocking as a Design Smell".

A Framework for Thinking About Risk

Net Objectives

In TDD, there are always more potential scenarios to test, other than the “happy path” of desirable behavior. Audio Available TDDWe need a way to decide how far to go. This is often a question of risk assessment. Having a framework for thinking about risk can be useful. Consider this framework that has two dimensions: Likelihood and … Continue reading "A Framework for Thinking About Risk".

How Much Testing is Enough?

Net Objectives

A typical question those adopting TDD ask is: How much testing is enough? Audio Available TDDOr, put another way, does everything really need to be tested? How do you decide what to test and what not to test? It’s an interesting question, but I prefer to address it this way: everything will be tested. The real question … Continue reading "How Much Testing is Enough?".