Testeando y orientando objetos! (El ultimo del semestre)

Sabemos que es testing y OO pero y si los juntamos?

Solo por si alguien no llega tener una idea al 100% de testing o que significa OO es sencillo:

  • Testing, como su traducción dice, es el hacer pruebas en tu software producto, de modo que intentemos romper todo lo que podamos al punto que el programa simplemente deje de funcionar. No es solo a lo loco experimentar si no que también debemos llevar ciertas metodologías, las cuales ya hable un poco de ellas en blogs pasados.
  • OO (Object Oriented) es la programación que se orienta a objetos, es un paradigma extremadamente popular al punto que varios de los lenguajes de programación mas usados son siguen este paradigma, del que creo no he hablado con anterioridad pero lo haré próximamente.
GitHub CEO Nat Friedman

The 10 most popular programming languages

Entonces cambia o no la cosa?

Para mi gran sorpresa las metodologías si cambian, la principal razón de sus cambios son por el paradigma, recordemos que la programación orientada a objetos genera instancias de clases y sumado con la herencia esto puede generar muchos mas problemas que sin el uso de OO. Esto hace que las pruebas deban tener unas ciertas características:

  • Siempre se debe especificar la clase que se probara, SIEMPRE.
  • El propósito del test jamas debe ser omitido para evitar confusiones en herencias.
  • Las condiciones externas a los casos deben ser bien descritas para tomarlas a consideración.
  • Siempre los estados de los objetos deben ser especificados ya que muchas veces los estados cambian de un objeto por ende también su comportamiento.
  • Deben haber instrucciones para conducir correctamente las pruebas en cada caso.

También hay diferentes escenarios para el testeo como por error o por escenario, pero como nunca he testeado de manera profesional creo lo mas recomendable es revisar esta pagina lo describe de una manera muy profesional y comprensible.

Los niveles de testeo

Resultado de imagen para destroying stuff

Para cerrar quisiera hablar de los tres niveles de testing existentes:

  • Clase: Es el testeo por unidad, cada clase se prueba en búsqueda de bugs, sirve para asegurarse que los atributos de las clases se implementaron acorde al diseño y especificaciones.
  • Inter-Clase: Es un testeo de integración, revisa si el funcionamiento de varias clases a la vez es correcto.
  • System: Se prueba todo el sistema o software, de esta manera se asemeja mas al uso real y se pueden encontrar bugs de una manera mas cercana a la experiencia de usuario.

Para un poco mas de información entra a esta página.

Finalmente si te gustaría estudia un poco mas encontré estos slides que son muy buenos para estudiar si tienes un examen de este tema.

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website at WordPress.com
Get started
%d bloggers like this: