Unit Testing
Publicado por Efrén Díaz 8 Diciembre 2005 en General, Java, Patrones de Diseño, Ruby, Rails, Testing. Etiquetas: No Tags. english • español¿Qué es un Unit Test?, según Wikipedia y en el contexto de programación, un Unit Test es un procedimiento utilizado para verificar que un módulo de un código fuente está funcionando adecuadamente. La idea del Unit Test es escribir casos de pruebas para todas las funciones y métodos, para que cuando se haga alguna modificación en el código, posibles errores derivados de esa modifiación puedan ser rápidamente identificados y corregidos.
Suena muy bonito en teoría, pero ¿Qué son los Unit Test en la práctica?. Según uno de los desarrolladores de Delicious Monster Wil Shipley “unit testing is teh suck” . Leyendo bbum’s el autor nos habla de su experiencia desarrollándo Core Data y de como el uso de Unit Testing lo ayudó inmensamente. ¿Dónde está la verdad?, yo creo que en algún lugar en el medio y sobre todo dependiendo del tipo de aplicación que estemos desarrollándo y de la forma en que lo estemos haciéndo.
En el caso de Delicious Monster, tenemos una aplicación basáda practicamente en la interfaz de usuario, enriquecerla, y mejorarla, este es el tipo de cosas que no se pueden testear con unit testing, por otro lado tenemos Core Data, un framework MVC para desarrollo de aplicaciones para MAC, esto es lo que llamaríamos el “Unit Test Wet Dream”.
En mi opinión, todo software necesita ser testeado, bien sea con Unit Testing o con Beta Testing, lo ideal sería una combinación de ambos, pero ¿Cómo decidimos que va a ser testeado por Unit Testing y que va a ser testeado por los Beta Testers?, ¿Que parámetros utilizamos para decidir?.
¿Qué opinan ustedes?
hola, estoy buscando formas de hacer testing a las paginas hechas en php, conoces un codigo que haga esto?
Javier, tendrias que usar un framework que tenga soporte para Unit Tests… Hasta donde se CAKE y el desaparecido MOJAVI lo soportaban.
De todas maneras, echate un vistazo a PHPUnit, un framework solo para pruebas. El problema es que no he conseguido mucha documentacion: http://phpunit.sourceforge.net/
Saluts.
Hola yo quisiera saber como puedo hacer para que un unit test con el test proyect de .net pueda ejecutarse varias veces?? ose que sea repetitivo. tal como se puede hacer von los test web.
saludos y gracias
Yo he estado pensando en eso en estos dias. Leia que lo ideal es que los Unit Test pasen por todas los path del codigo, pero es que yo programo cosas cortas pero muy complicadas. En muchas ocasiones los casos donde se caen me hacen aprender propiedades del algoritmo o concepto que estoy usando. Osea que tampoco para mi son la panacea. Aunque mucho me quito de encima con asserts, etc.
en el contexto web a mi me suena mas para reglas del negocio y cosas así, que suelen estar bien definidas. Para interfaces :-S no creo.
En realidad los Unit Tests son considerados una “buena práctica” dentro del desarrollo actual, asi que en la medida de lo posible, deberían utilizarse.
Lamentablemente, no existe mucha lectura en internet de este tópico en nuestro idioma, por lo que tendrán que utilizar sus conocimientos en inglés ( en la industria del desarrollo de software, es mandatorio…)
Una desventaja de los unit tests, es que al final dependen del programador, si haces malos unit tests, entonces no habrás hecho mucho, asi que no son el “santo grial” de la programación
Pero bien efectuados, sirven para desarrollar un código de mejor calidad, facilitan los testeos de regresión, y además documentan el código (viendo unit tests de otra persona uno puede tener una buena idea de que hace cierto código).
Otra ventaja, es que fuerzan a que el desarrollo sea modular e independiente del resto, teniendo código más robusto y resistente a cambios (refactoring, es recomendado)
Lean más, busquen por internet y sobre todo, practiquenlo mucho!
Saludos
Estoy buscando un software que me ayude a realizar pruebas de software de una manera más rápida y segura, es decir que desde los casos de uso el pg me genere los casos de prueba, que si algún caso de prueba falla en la ejecución el lo lleve al bugtracker automáticamente y me de medida de tiempos de ejecución, faltante, desfase etc
Gracias por la colaboración
Quisiera la implementar pruebas pero no se como hacerlas, m gustaria que me ayuden enviandome codigo por favor
Creo que los tests de unidad deben utilizarse para comprobar algoritmos concretos (métodos), y que las interfaces de usuario se pueden testear con tests de aceptación. Para interfaces web existe Selenium, por ejemplo. Por otro lado, para realizar tests de integración se pueden utilizar mocks o stubs. Hacer pruebas automatizadas es bueno en general, pero se deben hacer con las herramientas apropiadas.
Un saludo.