2009-05-29 12 views
9

Estoy luchando para descubrir qué debería excluirse de las pruebas funcionales (en mi caso, usar Rails, pero supongo que el marco probablemente sea irrelevante).Confusión: ¿omite las pruebas funcionales que cubren el mismo terreno que las pruebas unitarias?

Tengo la impresión de que no debería molestarme en usar pruebas funcionales para cosas que quedarán atrapadas en pruebas unitarias, como comprobar que un campo no puede tener demasiados caracteres o que un campo puede ' t estar vacío Si este es el caso, ¿qué contingencias definitivamente deberían probarse con pruebas funcionales, y/o cuál es la regla general para dejar otras solo para pruebas unitarias?

¿O es incorrecta esta impresión para empezar?

He mirado en this y this pero todavía estoy en una pérdida.

Respuesta

7

Prueba funcional: ¿Hace las cosas marketing/usability/customers signed off? es decir, si su especificación establece específicamente que el cuadro de texto ZIP solo permite códigos postales estadounidenses válidos, entonces probablemente debería probarlo en una prueba funcional.

Prueba de unidad: ¿Hace lo que el desarrollador de espera que hacer? En estas pruebas, debe usar dobles de prueba para aislar el código de las dependencias.

Así que sí, habrá un tipo de superposición.

+0

Así que en funcionales, ¿debería probar todas las contingencias posibles? Parece que realmente no puedes dejar nada fuera de lo funcional. – fig

+0

No creo que pruebe todas las contingencias en funcionales, prueba las contingencias que se especifican explícitamente en la especificación. Es probable que también tengas pruebas unitarias para estos y, con suerte, otras pruebas unitarias para las cosas que pensaste y que no hicieron. – Robert

+0

Definitivamente * no * soy un experto en pruebas. Así que ten cuidado de tomar algún consejo de mí, pero al menos verificaría la función requerida en la especificación. Su prueba unitaria puede probar con fuerza bruta todos los códigos postales estadounidenses posibles, pero su prueba funcional puede probar 1 código postal inválido y 1 código postal válido. – dss539

3

Yo, de por sí, 'atravesé' la funcionalidad con pruebas funcionales y no me preocupé por cubrir todo y en su lugar me centré en las pruebas unitarias.

Razones:

  • pruebas funcionales son
  • pruebas funcionales lentos son difíciles de escribir y mantener
  • pruebas funcionales sólo pueden coger dos elementos adicionales, además de las pruebas unitarias:
    • errores GUI
    • incompatibilidades de capa cruzada

En general, he encontrado que no vale la pena cubrir todo dos veces.

+0

Con su enfoque, ¿cómo elegir qué cosas cubrir y qué omitir? ¿Es aleatorio, o hay una regla empírica? – fig

+1

La regla del pulgar es cubrir un caso de uso de una 'historia' con una prueba de integración. Por ejemplo, si tuviera una página de pago, simplemente procesaría un pago exitoso para validar que la integración se realiza correctamente. La prueba unitaria cubriría todos los demás casos. –

Cuestiones relacionadas