Este documento presenta una charla sobre inspección y evaluación de la calidad de producto software. La charla cubre conceptos básicos de calidad de producto, métricas para medir la calidad como tamaño de código, duplicación, complejidad y pruebas unitarias. También se discuten herramientas para evaluar el código como SonarQube y se muestran ejemplos prácticos.
Este documento trata sobre la calidad en las pruebas de software. Explica que las pruebas son un mecanismo importante para asegurar la calidad de un software mediante la detección de errores. También describe diferentes tipos de pruebas como las pruebas unitarias y las de aceptación, e indica que es importante diseñar planes de pruebas que incluyan casos de prueba con datos correctos e incorrectos. Además, resalta que las pruebas deben realizarse lo antes posible durante el desarrollo para prevenir errores.
Este documento describe los principios y conceptos de la construcción de software, incluyendo la codificación, las pruebas, y el despliegue. Explica que la codificación debe seguir principios de preparación, codificación y validación. Describe los diferentes niveles de pruebas como las pruebas de unidad, integración, validación y aceptación. También enumera cinco principios clave para cada una de estas áreas de la construcción de software.
El documento presenta una charla sobre las diferencias entre testers y desarrolladores. Explica que aunque los testers necesitan conocimientos de desarrollo, su rol principal es garantizar la calidad mediante pruebas, mientras que los desarrolladores se enfocan en el desarrollo de código. También describe las cualidades de un "tester perfecto" y nuevas técnicas como BDD que promueven la colaboración entre roles.
El documento habla sobre métricas y pruebas de software. Explica que las pruebas son importantes para descubrir desviaciones de las especificaciones y que deben realizarse en todas las fases del desarrollo de software. También describe diferentes tipos de pruebas como pruebas de aceptación, integración, unitarias, de caja blanca y caja negra. Además, ofrece sugerencias para diseñar casos de prueba y utilizar un enfoque de desarrollo impulsado por pruebas.
Las pruebas de software permiten evaluar y mejorar la calidad del producto detectando fallas y errores. Consisten en verificar el comportamiento dinámico de un programa a través de casos de prueba seleccionados. Es útil realizar pruebas en todas las etapas del desarrollo para corregir errores a tiempo.
SonarQube es una plataforma de código abierto que analiza el código para proporcionar informes sobre problemas como código duplicado, estándares de codificación, cobertura de pruebas, complejidad ciclomática y bugs potenciales. Se integra con herramientas como Maven, Jenkins y JIRA. Ofrece características como el almacenamiento de métricas históricas, gráficos de evolución y vistas comparativas. Admite más de 25 lenguajes de programación a través de plugins.
Administración de la calidad del software a través del análisis estático de c...César Hernández
Descripción del concepto de análisis estático de código para mejorar la calidad del software así como gestionar de mejor forma el proceso de aseguramiento de la calidad con plataformas como Sonarqube.
Este documento trata sobre la calidad en las pruebas de software. Explica que las pruebas son un mecanismo importante para asegurar la calidad de un software mediante la detección de errores. También describe diferentes tipos de pruebas como las pruebas unitarias y las de aceptación, e indica que es importante diseñar planes de pruebas que incluyan casos de prueba con datos correctos e incorrectos. Además, resalta que las pruebas deben realizarse lo antes posible durante el desarrollo para prevenir errores.
Este documento describe los principios y conceptos de la construcción de software, incluyendo la codificación, las pruebas, y el despliegue. Explica que la codificación debe seguir principios de preparación, codificación y validación. Describe los diferentes niveles de pruebas como las pruebas de unidad, integración, validación y aceptación. También enumera cinco principios clave para cada una de estas áreas de la construcción de software.
El documento presenta una charla sobre las diferencias entre testers y desarrolladores. Explica que aunque los testers necesitan conocimientos de desarrollo, su rol principal es garantizar la calidad mediante pruebas, mientras que los desarrolladores se enfocan en el desarrollo de código. También describe las cualidades de un "tester perfecto" y nuevas técnicas como BDD que promueven la colaboración entre roles.
El documento habla sobre métricas y pruebas de software. Explica que las pruebas son importantes para descubrir desviaciones de las especificaciones y que deben realizarse en todas las fases del desarrollo de software. También describe diferentes tipos de pruebas como pruebas de aceptación, integración, unitarias, de caja blanca y caja negra. Además, ofrece sugerencias para diseñar casos de prueba y utilizar un enfoque de desarrollo impulsado por pruebas.
Las pruebas de software permiten evaluar y mejorar la calidad del producto detectando fallas y errores. Consisten en verificar el comportamiento dinámico de un programa a través de casos de prueba seleccionados. Es útil realizar pruebas en todas las etapas del desarrollo para corregir errores a tiempo.
SonarQube es una plataforma de código abierto que analiza el código para proporcionar informes sobre problemas como código duplicado, estándares de codificación, cobertura de pruebas, complejidad ciclomática y bugs potenciales. Se integra con herramientas como Maven, Jenkins y JIRA. Ofrece características como el almacenamiento de métricas históricas, gráficos de evolución y vistas comparativas. Admite más de 25 lenguajes de programación a través de plugins.
Administración de la calidad del software a través del análisis estático de c...César Hernández
Descripción del concepto de análisis estático de código para mejorar la calidad del software así como gestionar de mejor forma el proceso de aseguramiento de la calidad con plataformas como Sonarqube.
Este documento presenta información sobre el desarrollo de software multimedia, incluyendo las etapas del ciclo de vida del software, tipos de pruebas, errores comunes, y la importancia de garantizar la calidad. Describe las fases de definición de requisitos, diseño, implementación, pruebas y documentación necesarias para el desarrollo exitoso de aplicaciones multimedia. También explica diferentes tipos de pruebas como pruebas unitarias, de integración, alfa y beta para detectar errores de forma temprana.
El documento describe diferentes técnicas de pruebas de software, incluyendo pruebas estáticas, funcionales (caja negra) y estructurales (caja blanca). También discute la predicción de errores y los conceptos asociados con la calidad del software. Las revisiones ayudan a encontrar defectos temprano, mientras que el análisis estático puede encontrar fallas sin ejecutar el código. Las pruebas de caja negra se basan en los requisitos funcionales, y las pruebas de caja blanca se enfocan en la estruct
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. Los requisitos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios.
Expositoras
María Fernanda Escudero., PMP
Project Manager
mescudero@thoughtworks.com
María José Ormaza
Business Intelligence
mjormaza@thoughtworks.com
El documento habla sobre diferentes técnicas de pruebas de software, incluyendo pruebas de caja blanca, pruebas de ruta básica, pruebas de estructura de control, y pruebas de caja negra. Explica que las pruebas de caja blanca examinan los detalles internos del software, mientras que las pruebas de caja negra se enfocan en los requerimientos funcionales. También cubre temas como pruebas de interfaces de usuario, arquitecturas cliente-servidor, y documentación.
Plantilla trabajo final de karina y lupitaKaryana Uribe
Este documento presenta una tabla comparativa de diferentes estándares y normas de calidad para sistemas de tecnologías de la información. Describe brevemente el estándar ISO 9000-3, el Personal Software Process (PSP), el Team Software Process (TSP), y otros estándares como ISO/IEC 27005, IEEE 1233, IEEE 1058.1, e IEEE 829. El objetivo es analizar las ventajas y desventajas de cada estándar, así como ejemplos de su aplicación, con el fin de garantizar la calidad en el desarrollo de software.
El documento describe un proyecto para desarrollar un software que genere exámenes automáticamente para maestros. El objetivo es reducir el tiempo que los maestros pasan calificando exámenes y generar reportes sobre el desempeño de los estudiantes y maestros. Se discuten posibles modelos como prototipos y espiral para el desarrollo del software.
Los requerimientos ágiles deben estar escritos desde la perspectiva del usuario, ser negociables, enfocarse en el valor de negocio y ser lo suficientemente pequeños como para ser implementados en una iteración. Analizando los items propuestos:
- Los items 1, 3, 5 cumplen con escribirse desde la perspectiva del usuario usando "Como usuario quiero..."
- Los items 2, 4, 6 describen funcionalidad pero no desde la perspectiva de un usuario específico
- El item 7 está bien redactado pero podría dividirse en historias más pequeñas para
Diseño instruccional y jornalizacion de ingenieria de software ii, i 2015wiinyzepeda
Este documento presenta la asignatura Ingeniería de Software II dictada en la Universidad Gerardo Barrios. Describe los datos generales de la asignatura incluyendo objetivos, competencias, contenido, metodología, evaluación y referencias bibliográficas. El contenido se centra en el desarrollo de software bajo estándares de calidad, métricas, patrones de diseño, pruebas y documentación. La evaluación consta de varios proyectos y exámenes parciales para verificar el aprendizaje de los estudiantes.
Notas sobre los contenidos de un reporte de usabilidad. Últimas notas del curso de HCI 1 de la Maestría de Medios Interactivos de la UTM. We miss you Michael...
Este documento presenta una introducción al tema de pruebas de software. Explica conceptos clave como objetivos de pruebas, tipos de pruebas, niveles de pruebas, métodos de pruebas y su aplicación en las diferentes fases del ciclo de vida del software. El objetivo principal es brindar una visión general de la disciplina de pruebas y su importancia para garantizar la calidad del software.
Este documento presenta una introducción al tema de pruebas de software. Explica conceptos clave como objetivos de pruebas, tipos de pruebas, niveles de pruebas, métodos de pruebas y su aplicación en las diferentes fases del ciclo de vida del software. El objetivo principal es brindar una visión general de la disciplina de pruebas y su importancia para garantizar la calidad del software.
Metricas del proyecto de Software - introduccionJose Diaz Silva
Introducción al manejo de las métricas de proyectos de software, considerando los aspectos de tamaño y los elementos de funcionalidad. Se explora la diferencia entre error y defecto , aclarando los conceptos de medida, medición, métrica e indicador. De la misma manera se exploran las métricas privadas y las públicas. Las ventajas y desventajas de estas métricas son mencionadas
La norma ISO/IEC 14598 establece un marco de trabajo para evaluar la calidad de los productos de software. Se definen las actividades necesarias para analizar los requisitos de evaluación, especificar y diseñar acciones de evaluación, y concluir la evaluación. Existen diferentes tipos de pruebas de software como las pruebas de caja blanca, que examinan la lógica interna, y las pruebas de caja negra, que se basan en las especificaciones para probar el comportamiento.
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta
Este documento resume los conceptos clave del testing de software, incluyendo la automatización y optimización del testing a través de herramientas y técnicas como testing automático, de performance y basado en modelos. Explica los beneficios de estas técnicas como mejorar la calidad, reducir costos y tiempos. También discute temas como la selección adecuada de herramientas, diseño de pruebas y métricas clave para medir el desempeño de sistemas.
Este documento presenta una comparación de varias metodologías de desarrollo de software, incluyendo Desarrollo en Cascada, Incremental, Evolutivo, en Espiral y Basado en Prototipos. Explica las ventajas y desventajas de cada metodología, así como consideraciones clave para seleccionar la metodología apropiada para cada proyecto. También introduce conceptos más modernos como Ingeniería Web y Proceso Unificado.
1) El documento habla sobre métricas técnicas para medir la calidad del software. 2) Describe factores de calidad como la facilidad de mantenimiento, portabilidad y reusabilidad. 3) Explica que las métricas pueden medir atributos directamente como defectos por línea de código o indirectamente como facilidad de uso.
Investigación acerca de las normas de calidad, la evolución de las normas ISO. Realizado en el contexto de la asignatura de testing y calidad para la carrera de Ing en Computación e Informática de la UNAB.
Este documento presenta factores de calidad de software como funcionalidad, corrección, confiabilidad, eficiencia, usabilidad y mantenibilidad. También describe tres principales organizaciones de estandarización de software: CMMI, ISO y MOPROSOFT, destacando sus características y enfoques. Además, enumera varios estándares y normas de ISO relacionados con el desarrollo de software.
Más contenido relacionado
Similar a Inspección y evaluación de calidad de producto software... talk is cheap, show me the code!
Este documento presenta información sobre el desarrollo de software multimedia, incluyendo las etapas del ciclo de vida del software, tipos de pruebas, errores comunes, y la importancia de garantizar la calidad. Describe las fases de definición de requisitos, diseño, implementación, pruebas y documentación necesarias para el desarrollo exitoso de aplicaciones multimedia. También explica diferentes tipos de pruebas como pruebas unitarias, de integración, alfa y beta para detectar errores de forma temprana.
El documento describe diferentes técnicas de pruebas de software, incluyendo pruebas estáticas, funcionales (caja negra) y estructurales (caja blanca). También discute la predicción de errores y los conceptos asociados con la calidad del software. Las revisiones ayudan a encontrar defectos temprano, mientras que el análisis estático puede encontrar fallas sin ejecutar el código. Las pruebas de caja negra se basan en los requisitos funcionales, y las pruebas de caja blanca se enfocan en la estruct
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. Los requisitos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios.
Expositoras
María Fernanda Escudero., PMP
Project Manager
mescudero@thoughtworks.com
María José Ormaza
Business Intelligence
mjormaza@thoughtworks.com
El documento habla sobre diferentes técnicas de pruebas de software, incluyendo pruebas de caja blanca, pruebas de ruta básica, pruebas de estructura de control, y pruebas de caja negra. Explica que las pruebas de caja blanca examinan los detalles internos del software, mientras que las pruebas de caja negra se enfocan en los requerimientos funcionales. También cubre temas como pruebas de interfaces de usuario, arquitecturas cliente-servidor, y documentación.
Plantilla trabajo final de karina y lupitaKaryana Uribe
Este documento presenta una tabla comparativa de diferentes estándares y normas de calidad para sistemas de tecnologías de la información. Describe brevemente el estándar ISO 9000-3, el Personal Software Process (PSP), el Team Software Process (TSP), y otros estándares como ISO/IEC 27005, IEEE 1233, IEEE 1058.1, e IEEE 829. El objetivo es analizar las ventajas y desventajas de cada estándar, así como ejemplos de su aplicación, con el fin de garantizar la calidad en el desarrollo de software.
El documento describe un proyecto para desarrollar un software que genere exámenes automáticamente para maestros. El objetivo es reducir el tiempo que los maestros pasan calificando exámenes y generar reportes sobre el desempeño de los estudiantes y maestros. Se discuten posibles modelos como prototipos y espiral para el desarrollo del software.
Los requerimientos ágiles deben estar escritos desde la perspectiva del usuario, ser negociables, enfocarse en el valor de negocio y ser lo suficientemente pequeños como para ser implementados en una iteración. Analizando los items propuestos:
- Los items 1, 3, 5 cumplen con escribirse desde la perspectiva del usuario usando "Como usuario quiero..."
- Los items 2, 4, 6 describen funcionalidad pero no desde la perspectiva de un usuario específico
- El item 7 está bien redactado pero podría dividirse en historias más pequeñas para
Diseño instruccional y jornalizacion de ingenieria de software ii, i 2015wiinyzepeda
Este documento presenta la asignatura Ingeniería de Software II dictada en la Universidad Gerardo Barrios. Describe los datos generales de la asignatura incluyendo objetivos, competencias, contenido, metodología, evaluación y referencias bibliográficas. El contenido se centra en el desarrollo de software bajo estándares de calidad, métricas, patrones de diseño, pruebas y documentación. La evaluación consta de varios proyectos y exámenes parciales para verificar el aprendizaje de los estudiantes.
Notas sobre los contenidos de un reporte de usabilidad. Últimas notas del curso de HCI 1 de la Maestría de Medios Interactivos de la UTM. We miss you Michael...
Este documento presenta una introducción al tema de pruebas de software. Explica conceptos clave como objetivos de pruebas, tipos de pruebas, niveles de pruebas, métodos de pruebas y su aplicación en las diferentes fases del ciclo de vida del software. El objetivo principal es brindar una visión general de la disciplina de pruebas y su importancia para garantizar la calidad del software.
Este documento presenta una introducción al tema de pruebas de software. Explica conceptos clave como objetivos de pruebas, tipos de pruebas, niveles de pruebas, métodos de pruebas y su aplicación en las diferentes fases del ciclo de vida del software. El objetivo principal es brindar una visión general de la disciplina de pruebas y su importancia para garantizar la calidad del software.
Metricas del proyecto de Software - introduccionJose Diaz Silva
Introducción al manejo de las métricas de proyectos de software, considerando los aspectos de tamaño y los elementos de funcionalidad. Se explora la diferencia entre error y defecto , aclarando los conceptos de medida, medición, métrica e indicador. De la misma manera se exploran las métricas privadas y las públicas. Las ventajas y desventajas de estas métricas son mencionadas
La norma ISO/IEC 14598 establece un marco de trabajo para evaluar la calidad de los productos de software. Se definen las actividades necesarias para analizar los requisitos de evaluación, especificar y diseñar acciones de evaluación, y concluir la evaluación. Existen diferentes tipos de pruebas de software como las pruebas de caja blanca, que examinan la lógica interna, y las pruebas de caja negra, que se basan en las especificaciones para probar el comportamiento.
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta
Este documento resume los conceptos clave del testing de software, incluyendo la automatización y optimización del testing a través de herramientas y técnicas como testing automático, de performance y basado en modelos. Explica los beneficios de estas técnicas como mejorar la calidad, reducir costos y tiempos. También discute temas como la selección adecuada de herramientas, diseño de pruebas y métricas clave para medir el desempeño de sistemas.
Este documento presenta una comparación de varias metodologías de desarrollo de software, incluyendo Desarrollo en Cascada, Incremental, Evolutivo, en Espiral y Basado en Prototipos. Explica las ventajas y desventajas de cada metodología, así como consideraciones clave para seleccionar la metodología apropiada para cada proyecto. También introduce conceptos más modernos como Ingeniería Web y Proceso Unificado.
1) El documento habla sobre métricas técnicas para medir la calidad del software. 2) Describe factores de calidad como la facilidad de mantenimiento, portabilidad y reusabilidad. 3) Explica que las métricas pueden medir atributos directamente como defectos por línea de código o indirectamente como facilidad de uso.
Investigación acerca de las normas de calidad, la evolución de las normas ISO. Realizado en el contexto de la asignatura de testing y calidad para la carrera de Ing en Computación e Informática de la UNAB.
Este documento presenta factores de calidad de software como funcionalidad, corrección, confiabilidad, eficiencia, usabilidad y mantenibilidad. También describe tres principales organizaciones de estandarización de software: CMMI, ISO y MOPROSOFT, destacando sus características y enfoques. Además, enumera varios estándares y normas de ISO relacionados con el desarrollo de software.
Similar a Inspección y evaluación de calidad de producto software... talk is cheap, show me the code! (20)
A1 u1 tabla comparativa de organizaciones normalizadoras
Inspección y evaluación de calidad de producto software... talk is cheap, show me the code!
1. 14/11/2014
Seminarios
Miércoles 12 de Noviembre de 2014
INSPECCIÓN Y EVALUACIÓN DE LA
CALIDAD DE PRODUCTO SOFTWARE
TALK IS CHEAP, SHOW ME THE CODE
Antonio Calero, Jesús Badenas
Área de Innovación, Arquitectura y Calidad de Software
2. 14/11/2014
Agenda
Introducción a la calidad de producto software
Medición y evaluación
Herramientas de soporte
Ejemplos prácticos
12 y 13 de noviembre de 2014 Valencia, España 3
INTRODUCCIÓN Y
CONCEPTOS BÁSICOS
¿Qué es la calidad de
producto software y por
qué tenemos que
evaluarla?
8. 14/11/2014
“Lo que no se puede definir, no se puede medir, lo que no se
puede medir no se puede mejorar, y lo que no se puede mejorar
se deteriora siempre”
“Si algo puede ser medido y expresado con números,
entonces es que se sabe algo acerca de eso”
Lord Kelvin Thompson
¿Por qué medir?
9. 14/11/2014
Número de líneas físicas
Número de líneas reales
Número de clases
Número de paquetes
Número de métodos
Número de gets/sets
Número de sentencias
Número de APIs públicas
Tamaño del entregable
El tamaño
• Seguimiento y evolución del proyecto
• Complejidad en términos muy
generales
• Si se relaciona con métricas de gestión
puede dar información relevante
como:
• Número de errores por líneas de
código
• Número de líneas de código por
requisito
• Número de líneas de código por
desarrollador
• Facilita el mantenimiento
• Independencia del desarrollador
• Mantener las APIs públicas
documentadas es muy importante
porque es código susceptible de ser
utilizado por otros desarrolladores
• No deberían nunca existir líneas de
código comentadas
Número total de líneas con comentarios
Líneas de código comentadas
Densidad de comentarios
APIs públicas no documentadas
Porcentaje de APIs públicas documentadas
La densidad de comentarios
10. 14/11/2014
• Cut and Paste Detection
• Dificulta el mantenimiento
• Aumenta el tamaño
innecesariamente
• Es indicativo de malas prácticas
• Produce un efecto bola de nieve
Bloques de código duplicado
Líneas de código duplicadas
Ficheros con código duplicado
Porcentaje de código duplicado
El código duplicado
¡CUESTIÓN DE PRINCIPIOS!
DRY – Don’t Repeat Yourself
DIE – Duplication Is Evil
"Every piece of knowledge must have a single, unambiguous, authoritative representation within a
system.“
• Complejidad ciclomática o índice
McCabe
• Mide el número de caminos de
ejecución diferentes
• Cuantos más caminos, más difícil de
probar, más difícil de entender
• Es interesante estudiar la distribución
de la complejidad en los proyectos
Complejidad por método
Complejidad por clase
Complejidad total
La complejidad
11. 14/11/2014
• Permite identificar problemas de
complejidad a un nivel mayor que
en método o un fichero
• Ciclos entre clases y paquetes
• Identifica un alto acoplamiento y
baja cohesión
Ciclos
Dependencias entre paquetes
Dependencias entre ficheros
El diseño
• La cobertura determina como de
buenas son las pruebas unitarias
• A mayor cantidad de cobertura
mayor cantidad de código está
sometido a las pruebas
• El 20% del código contiene la
funcionalidad más crítica. Ese
código debería estar probado al
100%
• Si un desarrollador no hace pruebas
unitarias, ¿con qué derecho pide
que se hagan pruebas funcionales?
Porcentaje de cobertura de código
Cobertura de líneas
Cobertura de ramas
Porcentaje de éxito en las pruebas unitarias
Número de fallos
Número de errores
Número de tests
Duración de los tests
Las pruebas unitarias
12. 14/11/2014
El cumplimiento de estándares
• Se definen la normativa de desarrollo con los patrones y
estándares a seguir por todos los desarrolladores
• El conjunto de buenas prácticas a cumplir define el nivel de
exigencia
• Cada patrón o regla se fija con un nivel de prioridad y un peso
específico:
• Bloqueante (10)
• Crítica (5)
• Mayor (3)
• Menor (1)
• Informativo (0)
“A well-written program is a program
where the cost of implementing a
feature is constant throughout the program’s lifetime.”
Itay Maman
La deuda técnica
14. 14/11/2014
Herramientas de inspección
Analizan el código fuente en busca de errores y malas prácticas
12 y 13 de noviembre de 2014 Valencia, España 27
Herramientas de inspección
Vale, pero… ¿Y si queremos agruparlo todo?
12 y 13 de noviembre de 2014 Valencia, España 28
15. 14/11/2014
SonarQube: análisis
1.Descarga del código fuente
1.Compilación
1.Inspección de código
1.Interpretación de resultados
12 y 13 de noviembre de 2014 Valencia, España 29
SonarQube: análisis
12 y 13 de noviembre de 2014 Valencia, España 30
16. 14/11/2014
EJEMPLOS PRÁCTICOS Talk is cheap, show me the
code!
¿Alguna pregunta?
12 y 13 de noviembre de 2014 Valencia, España 32
17. 14/11/2014
Antonio Calero, Jesús Badenas
Área de Innovación, Arquitectura y Calidad
partner oficial en latinoamérica
partner exclusivo en España
12 y 13 de noviembre de 2014 Valencia, España 33