14/11/2012

Por qué es importante el testeo unitario

Por qué es importante el testeo unitario

El testeo unitario es la primera de las pruebas que componen un plan de QA. El aseguramiento de calidad controla todas las etapas del desarrollo del software para garantizar que el producto final satisfaga las expectativas del usuario. Para ello, es importante realizar un análisis separado de todos los componentes que integran la aplicación. Y de eso se encarga, precisamente, la prueba unitaria.

El testeo unitario prueba que todos los módulos de código funcionen correctamente por separado, antes de su consolidación. La idea central es que, si los módulos funcionan bien de manera independiente, al estar integrados no deberían presentar grandes inconvenientes. En cambio, si alguno funciona mal, su integración no podrá llevarse a cabo.

Es sabido que los problemas se resuelven más fácilmente dividiéndolos en partes pequeñas. Esta regla es crucial en el ámbito de la programación, y una buena prueba unitaria debe estudiar módulos de código lo más pequeños posible. De esa manera, será más fácil que cada uno supere los casos de test impuestos. Si no lo supera, detectar el origen del error no será difícil. Esta limitación en el alcance de los casos de test también ayuda a que cada prueba se complete en poco tiempo.

El diseño del caso de test también es importante. Debe ser automatizable (aumentando aun más su rapidez de ejecución) y reutilizable (recordemos que el plan de QA atraviesa todo el proceso de desarrollo y las pruebas deben repetirse en cada paso). Pero, principalmente, debe ser independiente, es decir, evaluar únicamente las características del módulo que no impliquen su interacción con los demás. Recién en siguientes etapas del plan se estudiará el programa en su conjunto.

Además de facilitar la detección de errores para una fácil mejora del código, el testeo unitario ayuda a la documentación del programa, ya que los propios test exponen su forma de uso.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce