software testing juan carlos olivares rojas msn: [email protected]...
TRANSCRIPT
![Page 1: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/1.jpg)
Software Testing
Juan Carlos Olivares Rojas
MSN: [email protected]@itmorelia.edu.mx
http://antares.itmorelia.edu.mx/~jcolivar/@jcolivares
Social Network: Facebook, LinkedIn. Hi5
![Page 2: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/2.jpg)
• 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.
Competencias
![Page 3: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/3.jpg)
La gran foto
![Page 4: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/4.jpg)
• 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á refactorizarse para crear dichas pruebas.
Testing in Refactoring
![Page 5: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/5.jpg)
• 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 in Modeling
![Page 6: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/6.jpg)
• 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.
Testing Software
![Page 7: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/7.jpg)
• 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
![Page 8: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/8.jpg)
• 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.
Profiling Testing
![Page 9: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/9.jpg)
• 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
![Page 10: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/10.jpg)
• 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
![Page 11: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/11.jpg)
• 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
![Page 12: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/12.jpg)
• 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 es parte fundamental del profiling.
Profile Testing
![Page 13: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/13.jpg)
• 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
![Page 14: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/14.jpg)
• 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
![Page 15: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/15.jpg)
• 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.
Profile Testing
![Page 16: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/16.jpg)
• 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.
Referencias
![Page 17: Software Testing Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx jcolivar/ @jcolivares](https://reader036.vdocuments.site/reader036/viewer/2022081506/5665b4651a28abb57c91316b/html5/thumbnails/17.jpg)
¿Preguntas?