En un equipo muy pequeño, donde las pruebas de caja negra y caja blanca son realizadas por la misma persona, ¿qué debe hacer primero el probador?
En un equipo muy pequeño, donde las pruebas de caja negra y caja blanca son realizadas por la misma persona, ¿qué debe hacer primero el probador?
Respuestas:
Lo que sea más correcto.
En serio, las pruebas de caja blanca (es decir, probar las partes internas del código) deberían hacerse idealmente con pruebas unitarias por el desarrollador que escribió el código. Las pruebas unitarias se construirían con el tiempo, y parte del proceso de construcción para que no perdamos el tiempo del pobre probador con un código que sabemos que no funciona como debería. Las pruebas unitarias se vuelven más importantes cuanto más pequeño sea su equipo, especialmente porque no tiene un ejército de evaluadores para deshacerse de los problemas.
Las pruebas de caja negra (es decir, las pruebas a través de la interfaz de usuario / sistema) suelen ser lo que hacen la mayoría de los evaluadores.
Es necesario priorizar todas las pruebas sobre la importancia de una función para el producto terminado. Si la misión es proporcionar una herramienta para hacer X y el producto no hace X, ese es un gran problema.
Prueba de caja negra para verificar las características. Prueba de caja blanca según sea necesario si las cosas están rotas. Si todas las pruebas de caja negra pasan y la cobertura es buena, la prueba de caja blanca es innecesaria.
Caja negra.
Los componentes del cuadro blanco generalmente dependen de los componentes del cuadro negro, por lo que me gustaría probar primero el cuadro negro y luego pasar al cuadro blanco.
Primero realiza pruebas en blanco pensando como codificador / desarrollador para asegurarse de que las cosas funcionen bien. Luego haces pruebas de recuadro negro, generalmente tratando de pensar como si fueras el usuario final, sin pensar en la estructura interna del programa. A veces, debe pensar como un programador / desarrollador, incluso si está haciendo una prueba negra porque podría estar probando un módulo interno que fue escrito por otra persona y no tiene acceso al código.
Si desea tener un buen ciclo de prueba, debe tener diferentes personas haciendo ambos :
Un desarrollador centrado principalmente en las pruebas de caja blanca sabe qué ha cambiado recientemente en el código, qué áreas son más complejas (y por lo tanto es probable que se rompan), etc. y puede enfocar los esfuerzos de manera apropiada en estas áreas con mayor probabilidad de introducir nuevos defectos.
Por otro lado, un probador de control de calidad centrado en las pruebas de caja negra puede acercarse más fácilmente a las pruebas como un usuario final. Sin ningún conocimiento interno del código, pueden adoptar un nuevo enfoque y no están sesgados por el conocimiento de cómo se implementan las diferentes partes de la solución. Detectarán errores que el desarrollador pudo haber pasado por alto o regresiones de cambios en el código que accidentalmente rompieron otras áreas de la aplicación.
Para responder a su pregunta, la prueba de caja blanca debe hacerse primero. Pero realmente necesita que una persona diferente haga la prueba de caja negra si desea que sea efectiva.
Me gusta comenzar con las pruebas de recuadro negro, luego usar la información de cobertura del código o el depurador para descubrir lo que estoy haciendo y analizar lo que está sucediendo.
Pero la verdadera respuesta es que depende . Es probable que me sumerja en el código antes (o incluso primero) si estoy haciendo pruebas de API, pero mucho más tarde si mi objetivo es mirar algunos escenarios grandes de extremo a extremo.
Diría que Black Box prueba primero, simplemente porque como defensor de TDD, las pruebas se escriben antes de que el código (o caja) exista de todos modos :)
La prueba de White Box (hasta donde yo entiendo) es más útil en una mentalidad de depuración.
Prueba de caja negra, porque está escribiendo pruebas antes de que exista el código. El probador necesita desarrollar pruebas automáticas que consuman mucho tiempo en paralelo con el código de escritura del desarrollador para ser eficiente en un equipo pequeño.
Si el código ya está escrito, te sugiero que pases un tiempo dibujando la cobertura de la prueba desde un punto de vista de recuadro negro para asegurarte de tener algo de lluvia de ideas antes de saturar tu cerebro con el código real. Sin embargo, puede cambiar a la casilla blanca y mirar el código antes de llegar demasiado lejos con las pruebas reales para tener una idea de las áreas de riesgo y priorizar esas pruebas que hizo una lluvia de ideas antes (y aumentarlas con nuevas pruebas pensadas por mirando partes del código que parecen complicadas o cuestionables).
Ninguno. Trato de escribir buenas pruebas usando mi BICEP derecho , teniendo en cuenta las condiciones de contorno CORRECTAS sin importar el orden en que se me ocurran. Esos son los dos acrónimos propuestos en Pragmatic Unit Testing .
Mi objetivo es concentrarme en escribir buenas pruebas y no en qué color escribir primero.
Primero haz la prueba de caja blanca .
Segundo ir para la prueba de caja negra.
> Prueba de caja negra
I. El probador debe verificar el funcionamiento de la aplicación, como cuadro de texto, botón de radio, cuadro de lista, botón de comando, ... etc.
II El probador debe verificar el funcionamiento no funcional de la aplicación, como el logotipo, la imagen, la ortografía, etc., etc.
III. El probador debe verificar todo el flujo de la aplicación.
Nota: Para verificar las condiciones positivas y negativas.