Desarrollo basado en pruebas y mejora de las habilidades de prueba de la caja blanca

9

Soy un programador Java de nivel de entrada directamente de la escuela. Tengo buen conocimiento y experiencia con J2SE. ¿Alguien puede aconsejarme sobre cómo mejorar o ajustar mis habilidades para ser un probador de caja blanca de Java? Amplia gama de entradas son bienvenidas.

¿Y qué es el desarrollo impulsado por pruebas?

user892871
fuente
¿Por qué no pruebas de caja negra también?
Martijn Verburg
@Martijn, teniendo en cuenta los antecedentes, probablemente debido a los desafíos técnicos de las pruebas de caja blanca. Además, si bien las técnicas de caja negra son muy útiles para los desarrolladores, las personas con buenas cualidades para un desarrollador no son buenos evaluadores de caja negra, somos demasiado curiosos y podemos impacientarnos. Sé que lo hice.
StuperUser

Respuestas:

9

Test Driven Development (TDD) y sus primos extendidos, Acceptance TDD (ATDD) y Behavior Driven Development (BDD) son técnicas útiles para aprender como probador en el ecosistema de Java. Me enfocaré en TDD mientras buscas pruebas de caja blanca.

¿Qué es TDD? - En esencia, es la práctica de escribir una prueba reprobatoria (roja), hacer que la prueba pase escribiendo una implementación (verde) y luego volver a factorizar. El artículo de Wikipedia es un lugar suficiente para comenzar a obtener más información. Pero el tema es amplio, recomiendo leer algunos de los libros más conocidos en este espacio, como Test Driven Development by Example y Trabajar eficazmente con código heredado . También agregaré un complemento descarado para el capítulo de TDD en The Well-Grounded Java Developer

En el ecosistema de Java, esto significa que quieres aprender:

  1. La biblioteca JUnit y / o la biblioteca TestNG .
  2. Una biblioteca burlona como Mockito o JMock
  3. Una herramienta de prueba de carga para atacar el código - JMeter
  4. El concepto de inyección de dependencia (una forma de inversión de control)

Y luego practica, practica, practica, practica. Los buenos probadores de caja blanca de Java son muy raros, los mejores tienen pruebas escritas contra una amplia gama de bases de código.

¡HTH te ayuda a comenzar!

Martijn Verburg
fuente
También son técnicas útiles para aprender como desarrollador en el ecosistema de Java. Según tengo entendido, los evaluadores deben hacer pruebas de caja negra.
Tom
1

Junit es uno de los mejores marcos de pruebas unitarias para el lenguaje de programación Java. Es un marco de código abierto para escribir y ejecutar pruebas repetibles.

Swagatika
fuente
1

Normalmente no me gusta citar Wikipedia, pero la información de este artículo parece lo suficientemente segura ...

http://en.wikipedia.org/wiki/Test-driven_development

Esencialmente en términos simples, es un enfoque Test-First para el desarrollo de software donde las pruebas unitarias se diseñan y escriben para usar primero los casos, luego se produce un desarrollo difícil para ayudar a que esas pruebas unitarias pasen.

árbol de arce
fuente
0

No estoy seguro de si mi sugerencia se considerará como herramientas para las pruebas de caja blanca, pero también puede consultar dbUnit para proyectos basados en bases de datos y Selenium para pruebas web (por ejemplo, inspección de elementos que deberían existir en función de algunos resultados).

Bob Santos
fuente
0

La pregunta hace referencia específica a la "prueba de caja blanca". Aquí es donde sus pruebas tienen un conocimiento íntimo de la estructura interna de su código y afirman el comportamiento en cada paso en lugar de solo la entrada / salida / efecto secundario (prueba de caja negra). Si bien JUnit es excelente para hacer ambas cosas, necesita más marcos adicionales para hacerlo dentro del contexto de una prueba unitaria.

EasyMock y JMock son buenos marcos para hacer esto. Tiendo a favor de JMock.

A riesgo de comenzar un debate OT, debe pensar cuidadosamente sobre las implicaciones de las pruebas de caja blanca. Las pruebas de recuadro blanco están íntimamente ligadas a su código (obviamente), y si no se usan con cuidado, los marcos burlones pueden hacer que sus pruebas sean bastante complicadas, difíciles de leer y tienden a ser más frágiles cuando se refactoriza.

Tiendo a mantener una mezcla de ambos. Las pruebas de recuadro negro siempre que sea posible y las pruebas de recuadro blanco se aplican con moderación a códigos más arriesgados / complicados

Por supuesto, los marcos enumerados anteriormente también se pueden usar en pruebas de recuadro negro donde el número de clases contribuyentes (inyectadas) es grande y el troquelado simple se vuelve difícil de manejar.

Con respecto a TDD, es principalmente un enfoque de mejora del diseño para escribir código, en lugar de simplemente una forma de escribir pruebas. Las pruebas que tiene al final son un resultado importante, pero además, el enfoque está destinado a mejorar el diseño y la estructura de su aplicación.

rupjones
fuente