Software Testing Juan Carlos Olivares Rojas MSN:

Slides:



Advertisements
Presentaciones similares
Ingeniería de Software II
Advertisements

También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
III - Gestión de memoria
ANÁLISIS DE REQUERIMIENTOS
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
DIAGNÓSTICO DE CALIDAD AMS
FLAN “F- LINKS AND NODES”
Modelo de ciclo de vida clásico o en cascada
Proyecto de Ingeniería de Software 2008
Emir Treviño
Programación 1 Introducción
Conceptos Fundamentales
Reingeniería del Software
Análisis de Requerimientos M.C. Juan Carlos Olivares Rojas Mayo 2010.
Ingeniería de Software
Introducción a la Programación. Lenguaje de Máquina.
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
CICLO DE VIDA DEL SOFTWARE
Reestructuración del Código M.C. Juan Carlos Olivares Rojas Marzo 2010.
Ingenieria de software
Actividad 11. Conceptos de gestión de proyectos. M.C. Juan Carlos Olivares Rojas Syllabus May, 2009.
IIS Evaluación de productos, procesos, recursos Mejorando las predicciones (¿o estimaciones?)
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Test-Driven Development Juan Carlos Olivares Rojas MSN:
1 Diseño Orientado al Objeto Agustín J. González ELO-326: Seminario de Computadores II 2do. Sem
Programación de Dispositivos Móviles “Conceptos de J2ME” Rogelio Ferreira Escutia.
Programación Java y Desarrollo de Aplicaciones
Importancia en la efectividad del:
Calidad y Seguridad del Software M.C. Juan Carlos Olivares Rojas
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
(GESTIÓN DE PROCESOS DE NEGOCIO)
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
UNIVERSIDAD LATINA BASES DE DATOS DISEÑO DE BASES DE DATOS (modelos para el diseño)
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Reuso y Reingeniería M.C. Juan Carlos Olivares Rojas.
Introducción a UML Departamento de Informática Universidad de Rancagua
Juan Carlos Olivares Rojas
UNIVERSIDAD LATINA II. FUNCIONES DEL ADMINISTRADOR.
Ingeniería de Software Ingeniería en Computación M.C. J. Jesús Arellano Pimentel.
Actividad 15. Software y Calidad M.C. Juan Carlos Olivares Rojas Syllabus June, 2009.
Diseño Orientado al Flujo de Datos
Elaboración de algoritmos usando lógica de programación
Juan Alvites 02/08/2015 INTRODUCCIÓN A LA INGENIERÍA DE SISTEMAS Semana 3 Alvites Huamaní Juan.
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
M.C. Juan Carlos Olivares Rojas
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Relación con otras asignaturas del plan de estudio
Introducción al proceso de verificación y validación.
G ESTIÓN DE LA C ONFIGURACIÓN DEL S OFTWARE G ESTIÓN DE LA C ONFIGURACIÓN DEL S OFTWARE Daniel Eduardo Almeciga Angie Katterine Cruz O. Diego Fernando.
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
Preocupaciones del Analista Programador & Usuarios
Ciclo de desarrollo del software
INTRODUCCIÓN A INGENIERIA KARLA TATIANA OLAYA TORRES ID ( )
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
Proceso de desarrollo de Software
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
Las fases del ciclo de la vida de desarrollo de sistemas
Modelo de procesos de software
INSTITUTO TECNOLÓGICO DE LIBRES INGENIERÍA EN SISTEMAS COMPUTACIONALES FUNDAMENTOS E DESARROLLO DE SISTEMAS “PRUEBAS E IMPLEMENTACIONES” INTEGRANTES: SOTERO.
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
Servicio de Implementación Proceso de Desarrollo de Software Ventanilla Única de Comercio Exterior Mexicana.
Junio, 2013.
Transcripción de la presentación:

Software Testing Juan Carlos Olivares Rojas MSN: Social Network: Facebook, LinkedIn. Hi5

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

La gran foto

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

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

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

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. Profiling 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 es parte fundamental del profiling. 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. Profile Testing

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

¿Preguntas?