Introducción al Testing – Parte I


En esta nueva entrada vamos a tratar de consolidar algunos conceptos, los cuales pueden ser discutidos y algunos estaran de acuerdo y otros no,  pero creo que se entiende la idea de cada actividad la cual puede sufrir pequeñas mutaciones dependiendo de la organizacion donde uno se encuentre.

Bueno, vamos al grano, les dejo algunos definiciones de los principales tipos de testing que se pueden realizar sobre Sistemas de informacion.

Testing Unitario (Unit Testing) :

  • Comunmente realizadas por los desarrolladores antes de entregar su trabajo. Apunta a probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado, en forma independiente.
    La idea es escribir casos de prueba para cada función no trivial o método en el módulo de forma que cada caso sea independiente del resto.


Pruebas funcionales (Functional Testing):

  • Prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software. La pruebas funcionales se hacen mediante el diseño de casos de prueba que buscan evaluar cada una de las opciones posibles con las que cuenta el sistema bajo prueba y veerificar si el mismo cumple con los requerimientos funcionales solicitados por el cliente.

Pruebas de Integracion (Integration Testing):

  • Se refieren a la prueba o pruebas de todos los elementos unitarios que componen un proceso, hecha en conjunto, de una sola vez. Consiste en  la fase del testeo de software en la cual módulos individuales de software son combinados y testeados como un grupo. Son las pruebas posteriores a las pruebas unitarias y preceden el testeo de sistema.

Caja Blanca:

  • Pruebas que se realizan sobre las funciones internas de un módulo. Entre las técnicas usadas se encuentran; la cobertura de caminos (pruebas que hagan que se recorran todos los posibles caminos de ejecución), pruebas sobre las expresiones lógico-aritméticas, pruebas de camino de datos (definición-uso de variables), comprobación de bucles (se verifican los bucles para 0,1 y n iteraciones, y luego para las iteraciones máximas, máximas menos uno y más uno.

Caja Negra:

  • Pruebas que se realizan sobre las funciones del módulo desde el punto de vista de las entradas que recibe y las salidas o respuestas que produce, sin tener en cuenta su funcionamiento interno. En otras palabras, nos interesará su forma de interactuar con el medio que le rodea entendiendo qué es lo que hace, pero sin dar importancia a cómo lo hace. Por tanto, deben estar muy bien definidas sus entradas y salidas, es decir, su interfaz; en cambio, no se precisa definir ni conocer los detalles internos de su funcionamiento.

Pruebas de Aceptacion (UAT):

  • Pruebas realizadas comunmente por parte del cliente (testers, analistas o usuario final) para corroborrar que el sistema cumple con lo solicitado por el mismo. De estas pruebas comunmente se desprenden Requerimientos de cambios y errores criticos.

Pruebas de Regresion (Regresion Test):

  • Cualquier tipo de pruebas de software que intentan descubrir las causas de nuevos errores (bugs), carencias de funcionalidad, o divergencias funcionales con respecto al comportamiento esperado del software, inducidos por cambios recientemente realizados en partes de la aplicación que anteriormente al citado cambio no eran propensas a este tipo de error. Esto implica que el error tratado se reproduce como consecuencia inesperada del citado cambio en el sistema. Por lo tanto, en la mayoría de las situaciones del desarrollo de software se considera una buena práctica que cuando se localiza y corrige un bug, se grabe una prueba que exponga el bug y se vuelvan a probar regularmente después de los cambios subsiguientes que experimente el programa.

Pruebas de Compatibilidad (Compatibility Test):

  • Estas pruebas consisten en realizar las pruebas funcionales en distintos navegadores y verificar el comportamiento de la misma. Es muy comun realizar este tipo de pruebas por medio de scripts automatizados para facilitar la tarea, ya que son actividades repetitivas que solo cambian de ambiente, ya sea de navegador o Sistema operativo.

Prueba de Humo (Smoke Test):

  • Son pruebas que se realizan sobre la aplicación para verificar el estado de la misma antes de iniciar cualquier otro tipo de tarea de testing. Este termino viene de la industria de electrodosmeticos, ya que se hacian pruebas de humo sobre los aparatos fabricados, la cual consistia en encender el aparato y ver si se prendia fuego o tenia algun otro comportamiento que no permitia el uso minimo del mismo. Otro ejemplo es el que da Joel en su blog el cual me pareció muy bueno.

Pruebas de Performance (Performance Testing):

  • Pruebas sobre el sistema donde el objetivo es probar al sistema bajo condiciones reales acercandose lo mas posible a su uso en produccion exponiendo poblemas de concurrencia e inestabilidad de la aplicacion.

Pruebas Automatizadas (Automated Testing):

  • Pruebas sobre el sistema por parte de un automata que realiza acciones programadas y valida que la respuesta del sistema sea la esperada. Comunemente se realiza sobre actividades repetitivas y poco cambiantes para hacer mas eficiente las tareas del tester ya que deja de lado las tareas repetitivas y se dedica a encontrar errores mas importantes. Muchas veces  son pruebas funcionales manuales que ya existen y son llevadas a codigo para que sean realizadas periodicamente de manera mas sencilla. Es muy util para realizar tareas de Testing de Compatibilidad y pruebas de Humo luego de cada nueva versión.

2 pensamientos en “Introducción al Testing – Parte I”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s