Le test du canard, est une forme d’inférence (une abduction) qui s’énonce ainsi :
« Si ça ressemble à un canard, si ça nage comme un canard et si ça cancane comme un canard, c’est qu’il s’agit sans doute d’un canard. »
L’expression est souvent attribuée au poète américain James Whitcomb Riley, où, dans un contexte anticommuniste, ce dernier aurait dit :
« Je ne peux pas prouver que vous êtes un communiste. Mais quand je vois un oiseau qui cancane comme un canard, qui marche comme un canard, qui a des plumes et des pieds palmés, et qui s’associe avec des canards, je vais certainement affirmer qu’il est un canard »
Le test du canard, a inspiré en Informatique un style de typage dynamique de certains langages de programmation (comme Python), ce style s’appelle le duck typing (typage canard).
Son principe repose sur le fait que, le type d’un objet, dans le contexte où il est utilisé, est déterminée par l’ensemble de ses méthodes et de ses attributs et non de manière définie et statique.
Ainsi, un objet de type A, peut être considéré dans certaines opérations comme étant un objet du type B, sans qu’il y ait aucun relation d’héritage entre A et B !
Exemple en Python :