Rubber duck debugging, rubber ducking, and the rubber duckie test are informal terms used in software engineering to refer to a method of debugging code. The name is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around arubber duck and debug his code by forcing himself to explain it, line-by-line, to the duck. The practice is also known as "teddy bear debugging" for similar reasons, most notably an anecdote in The Practice of Programming.
Many programmers have had the experience of explaining a programming problem to someone else, possibly even to someone who knows nothing about programming, and then hitting upon the solution in the process of explaining the problem. In describing what the code is supposed to do and observing what it actually does, any incongruity between these two becomes apparent.By using an inanimate object, such as a rubber duck, the programmer can try to accomplish this without having to involve another person.