Cómo hacer TDD con hardware

Todos los proyectos en los que trabajo se conectan a una pieza de hardware y este es a menudo el objetivo principal del software. ¿Hay alguna forma efectiva de aplicar TDD al código que funciona con el hardware?

Actualizar Perdón por no ser más claro con mi pregunta.

El hardware que uso es un capturador de fotogramas que captura imágenes de una cámara. Luego proceso estas imágenes, las visualizo y las guardo en el disco. Puedo simular todo el procesamiento que tiene lugar después de capturar las imágenes utilizando imágenes capturadas previamente que se almacenan en el disco.

Pero es la interacción real con el hardware lo que quiero probar. Por ejemplo, mi software funciona correctamente cuando no hay una cámara conectada, se inicia y detiene correctamente, etc. Pero esto está tan ligado al hardware que no sé cómo probarlo cuando el hardware no está presente o si incluso debería estar tratando de hacer esto?

2da actualización: También estoy buscando algunos ejemplos concretos de cómo exactamente la gente ha manejado esta situación.

Respuestas a la pregunta(7)

Su respuesta a la pregunta