Is testing

Page 1

Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx http://antares.itmorelia.edu.mx/~jcolivar/ @jcolivares Social Network: Facebook, LinkedIn. Hi5


Competencias

• Específica: conoce los términos básicos de la reingeniería de software y aplica técnicas de reingeniería para el mejoramiento de software existente así mismo utiliza mejores prácticas para el desarrollo de software. • Genéricas • Instrumentales: Capacidad de análisis y síntesis, Solución de problemas, Toma de decisiones.


La gran foto


Testing in Refactoring

• Al realizar una reestructuración de códigos se debe probar que los cambios realizados sigan satisfaciendo

las

pruebas

unitarias,

de

integración y de aceptación. • Si un software no contiene pruebas unitarias deberá pruebas.

refactorizarse

para

crear

dichas


Testing in Modeling

• Aunque muchos de los modelos son de tipo estático como los diagramas de clases que definen la arquitectura de un sistema, todo modelo puede probarse previamente para ver si funciona. • De hecho antes de codificar los modelos deben de ser válidos y en la etapa de codificación sólo se debiera de validar que lo que se hizo se hizo bien.


Testing Software

• Las pruebas de software deben de realizarse en cada etapa de desarrollo: inicio, elaboración, construcción y despliegue. Esto se puede lograr a través de la implementación de técnicas de calidad como las Revisiones Técnicas Formales. • Las pruebas de calidad van enfocadas hacia el proceso y producto en base a métricas e indicadores dados como referencia. • Se sugiere utilizar estructuras probadas de diseño: Patrones de Diseño.


Profiling Testing

• Traen información sobre el comportamiento de la aplicación en tiempo de ejecución. • En general las herramientas de perfilado se enfocan en: manejo de hilos, memoria y rendimiento de CPU pero otras variables también pueden ser monitorizadas. • En general todas las herramientas de perfilado necesitan calibrarse para tener un óptimo desempeño.


Profiling Testing

• Las herramientas de perfilado ya tienen un conjunto de pruebas predefinidas para probar aplicaciones. • En general se pueden guardar instantáneas para el análisis posterior de la información. • En el caso del código portátil (Java, .NET) se debe recordar que la máquina virtual consume espacio de memoria y recursos de la máquina. Para aplicaciones pequeñas no se recomienda su uso.


Profile Testing

• En muchas ocasiones se necesita de un perfilado de la aplicación para que se ejecuta de forma óptima bajo una plataforma o características particulares. A este tipo de pruebas se les denomina tunning test. • En general aplica más en aplicaciones de servidor (J2EE) o aplicaciones de cómputo distribuido de alto rendimiento.


Profile Testing

• En lenguajes que utilicen recolectores de basura es necesario revisar constantemente la efectividad del mismo. Se sugiere que cuando un objeto se deje de utilizar se igual a null para un mejor desempeño. • Se sugiere utilizar tipos de datos primitivos a objetos ya que se obtiene un mejor desempeño.


Profile Testing

• El manejo del recolector de basura sólo deberá hacerse cuando la aplicación sea muy compleja. • Se deberán verificar los destructores y/o métodos finalizadores de los objetos. • Se deberá tener cuidado con estructuras de datos como String y char[] que consumen mucha memoria y tardan en ser liberada dicha memoria.


Profile Testing

• El uso de objetos sincronizados hace más lento el desempeño de las aplicaciones. Si la aplicación no maneja concurrencia no hay necesidad de utilizarlas (en java Vector y ArrayList hacen exactamente lo mismo sólo que Vector es sincronizada). • El monitoreo de los recursos fundamental del profiling.

es

parte


Profile Testing

• El manejo cadenas constantes en Java por ejemplo String cad=“hola” es única a diferencia de cadenas creadas con el operador new. • Se pueden utilizar reductores de clases como: DashO-Pro, Jax o Jsrink. Muchas de estas herramientas funcionan como ofuscadores al igual que SourceGuard.


Profile Testing

• A partir del Java SE 6 se puede uitlizar la API de JMX para el monitoreo remoto de aplicaciones • Existen diversos tipos de pruebas de perfilado: estrés, carga, rendimiento y capacidad. • Se sugiere se realicen los siguientes pasos:


• • • • • • •

Profile Testing

Identificar el ambiente de ala prueba Identificar los criterios de aceptación Planear y diseñar las pruebas Configurar el ambiente de prueba Implementar el diseño de las pruebas Ejecutar las pruebas Analizar los resultados, reportes y realizar nuevamente las pruebas.


Referencias

• Roger S. Pressman, Ingeniería de software un enfoque práctico.Ed. McGraw Hill. • • Piattini M.G. y F.O, Calidad en el desarrollo y mantenimiento del software. Ed. RAMA. • • Weitzenfeld, Ingeniería de Software Orientada a Objetos con UML, Java e Intrnet, Thomson.


多Preguntas?


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.