¿Los evaluadores tienen que mirar el código fuente?

8

¿Qué tan necesario es para los evaluadores hacer pruebas de caja blanca además de las pruebas de caja negra? Como desarrollador, considero valioso que una persona con mentalidad de control de calidad revise mi código y busque puntos débiles, pero también parece que si un probador no técnico es lo suficientemente exhaustivo y metódico, puede cubrir bien la aplicación.

Las pruebas de recuadro blanco pueden revelar casos de prueba importantes que no serían obvios mientras se mira solo la aplicación desde la perspectiva del usuario, pero las pruebas de recuadro negro exclusivamente pueden llevar menos tiempo y aumenta significativamente la cantidad de personas que son capaces de hacer el trabajo . Además, el desarrollador debe realizar una cantidad no trivial de pruebas de caja blanca antes de que llegue al probador, ¿estoy en lo cierto?

Señor jefferson
fuente
77
La revisión del código no está probando.
Trabajo
Para algún tipo de software, existe una pequeña desconexión entre el código fuente y la aparente funcionalidad de su aplicación. En otro tipo de software, la desconexión puede ser enorme.
rwong

Respuestas:

15

Las pruebas de caja blanca y caja negra son dos habilidades diferentes: alguien experto en una no necesariamente es experto en la otra.

Gran parte de lo que hace QA será la prueba de caja negra, asegurándose de que el sistema funcione "como se anuncia" y, en este sentido, no necesitan saber cómo funciona el sistema para hacer un buen trabajo. De hecho, el conocimiento del código puede llevarlos a las mismas trampas que atrapan al desarrollador incauto haciendo sus propias pruebas. Es mucho mejor que no tengan ideas preconcebidas sobre cómo el desarrollador piensa que se supone que el sistema debe funcionar.

Eso no quiere decir que no debería haber pruebas de caja blanca, que es (en parte) lo que es la prueba de unidad de desarrollador. Un buen conjunto de pruebas unitarias debería probar entradas válidas, entradas inválidas y entradas de caso límite. Sin embargo, no creo que siempre sea necesario que QA haga esto, aunque no sea por otra razón que es realmente responsabilidad del desarrollador.

Sin embargo, como SnOfus señala en sus comentarios, una buena prueba de caja blanca puede ser extremadamente útil.

ChrisF
fuente
Esta ya es una buena respuesta, pero para complementar, recomendaría ver este video GTAC: youtube.com/watch?v=cqwXUTjcabs
Alvin
1
Este parece un punto de vista bastante limitado sobre el control de calidad y realmente no puedo estar de acuerdo con él. El papel de QA no es simplemente "prueba escrita, no pasó, es el problema del desarrollador ahora, mis manos están limpias". Identificar los errores y su causa es un aspecto crucial de las responsabilidades del control de calidad. Al final, QA está ahí para asegurarse de que el código del desarrollador funcione, siempre . Eso requiere, a veces un conocimiento aún más íntimo de cómo funciona que el que puede tener el desarrollador.
Steven Evers
Quizás el desacuerdo esté en "no necesito saber cómo funciona el sistema". Lo que @ChrisF quiere decir es que las pruebas de recuadro negro se pueden realizar sin tener que mirar el código fuente, pero @SnOrfus entiende esto como "no es necesario que comprenda bien los requisitos del sistema".
rwong
@rwong: No. Eso no es lo que significa.
Steven Evers
1
No creo que sea responsabilidad de los desarrolladores individuales, es responsabilidad del equipo de desarrollo .
4

He tenido buena suerte en mi equipo con las revisiones del código de prueba. Los probadores tienden a mirar el código de la misma manera que a las aplicaciones: se preguntan "de qué manera este código no funcionaría", y a menudo encuentran problemas que los programadores no encuentran durante la revisión del código.

Para una respuesta más larga, escribí este artículo .

Alan
fuente
¡+1 para revisiones de código de probador, y desearía poder +1 nuevamente por el excelente artículo!
Ethel Evans
3

Absolutamente

Como dije en respuesta a @ChrisF: QA está ahí para garantizar que el código de producción funcione siempre . Sin ser exhaustivo, eso significa saber qué plataformas se esperan, cuál será el estado de la máquina implementada, cuáles son los requisitos de rendimiento y estar seguros de que cada línea tendrá éxito.

IME, un buen equipo de control de calidad escribirá, leerá y revisará más código que el equipo de desarrollo.

Si sus equipos de funciones y los equipos (principales) de corrección de errores no tienen un desarrollador de control de calidad que trabaje para diseñar la API, el flujo de trabajo, la seguridad y todos los demás aspectos de la función / corrección, entonces realmente se está perdiendo una fortaleza que su departamento de control de calidad puede aportar a su producto mientras se está desarrollando .

Steven Evers
fuente
1

No es necesario en absoluto. En lugar de que una persona con mentalidad de control de calidad revise su código, le recomiendo que un desarrollador revise su código. Además, si está escribiendo pruebas unitarias a medida que desarrolla su código, que una persona con mentalidad de control de calidad revise su código no es el mejor uso del tiempo del control de calidad.

La persona de control de calidad no debe centrarse en CÓMO se escribió el código, sino en QUÉ hace el código.

La persona de control de calidad no debe centrarse en las pruebas funcionales y aprovechar los requisitos para realizar esas pruebas. Al final, las pruebas unitarias y un probador funcional de control de calidad que haga pruebas de caja negra serán el mejor uso de todos.

Dakotah North
fuente