Pruebas durante el ciclo de vida
Tema 3: Pruebas estáticas y técnicas de pruebas
“... Por lo tanto la lucha por la calidad del producto es una
lucha revolucionaria y de vanguardia”
Ernesto “Che” Guevara
Objetivos
• Reconocer los productos de trabajo que pueden evaluarse
mediante pruebas estáticas.
• Describir la importancia de las pruebas estáticas.
• Explicar los diferentes tipos de revisiones: revisión informal,
revisión técnica, revisión guiada y la inspección.
• Explicar los factores para llevar a cabo revisiones con éxito.
• Identificar los defectos y errores típicos de código identificados
por herramientas de análisis estáticos.
Bibliografía
• Roman, Adam; Roman, Gerstner. Study Guide to the ISTQB Foundation
Level 2018 Syllabus. Springer International Publishing, 2018.Capítulos 1 y
2.
• Boria, J.L., V.L. Rubinstein, and A. Rubinstein La Historia de Tahini-Tahini:
Mejora de Procesos de Software con Métodos Ágiles (Spanish Edition). 1
edition ed. 2013: CreateSpace Independent Publishing Platform. p. 252.
ISBN 1492278505: 978-1492278504.
• Chrissis, M.B., M. Konrad, and S. Shrum, CMMI for Development:
Guidelines for Process Integration and Product Improvement. 2011:
Addison-Wesley Professional. p. 688. ISBN 0321711505, 9780321711502.
• Institute, P.M., A Guide to the Project Management Body of Knowledge:
PMBOK(R) Guide. 2013: Project Management Institute. p. 589. ISBN
1935589679, 9781935589679.
• Oktaba, H., et al., Modelo de Procesos para la Industria de Software
MoProSoft. 2005.
Pruebas estáticas
En contraste con las pruebas dinámicas, que requieren la ejecución del software
que se está probando, las pruebas estáticas se basan en revisiones o en el
análisis estático.
Las pruebas estáticas y dinámicas pueden tener los mismos objetivos:
Pruebas estáticas encuentran defectos en los productos de trabajo mientras que
las dinámicas las fallas causadas por defectos cuando se ejecuta el software.
Un defecto puede residir en un producto de trabajo durante mucho tiempo sin
causar una falla.
Pruebas estáticas se pueden usar para mejorar la consistencia y la calidad
interna de los productos de trabajo, mientras que las pruebas dinámicas
generalmente se enfocan en comportamientos visibles externamente.
Pruebas estáticas
Productos de trabajo que pueden ser examinados por pruebas estáticas:
• Especificaciones, incluidos los requisitos, historias de usuario y criterios de
aceptación
• Especificaciones de arquitectura y diseño
• Código
• Planes de prueba, casos de prueba, procedimientos de prueba y scripts de
prueba automatizados
• Guías del usuario
• Páginas web
• Contratos, planes de proyecto, cronogramas y presupuestos
• Modelos, diagramas
Pruebas estáticas
En el transcurso de las revisiones se podrían detectar los siguientes
defectos:
• Defectos en las especificaciones. (inconsistencias, ambigüedades,
contradicciones, omisiones, imprecisiones y redundancias)
• Defectos en el diseño y arquitectura del software. (algoritmos ineficientes,
alto acoplamiento, baja cohesión)
• Defectos de codificación (variables con valores no definidos, declaradas
pero nunca utilizadas, código inalcanzable, código duplicado)
• Defectos en las especificaciones de interfaces (diferencias)
• Mantenibilidad insuficiente (modularización inadecuada, deficiente
reusabilidad de los componentes, código que es difícil de analizar y
modificar sin introducir nuevos defectos).
Pruebas estáticas
• Desviaciones con respecto a estándares acordados (falta de cumplimiento
de las normas de codificación)
• Vulnerabilidades de seguridad (susceptibilidad a desbordamientos de búfer)
• Brechas o inexactitudes en la trazabilidad o cobertura de la base de la
prueba (pruebas faltantes para un criterio de aceptación)
Pruebas estáticas
Ventajas
Detección temprana de defectos.
Costos más bajos.
Detectar y corregir defectos de manera más eficiente y antes de la ejecución.
Identificar defectos que no se pueden encontrar fácilmente mediante pruebas
dinámicas.
Prevenir defectos en el diseño o la codificación al descubrir inconsistencias,
ambigüedades, contradicciones, omisiones, inexactitudes y redundancias.
Incremento de la productividad de desarrollo.
Reducción de costos y tiempo de desarrollo y de pruebas.
Reducción del costo total de la calidad.
Mejora de la comunicación entre los miembros del equipo que participan en
las revisiones.
Pruebas estáticas
Las revisiones informales se caracterizan por no seguir un proceso definido y no tener
Informal resultados documentados formales.
• La formalidad de un proceso de revisión se relaciona con factores
tales como:
El modelo de ciclo de vida del desarrollo del software
La madurez del proceso de desarrollo
Revisiones La complejidad del producto de trabajo y del negocio
• Las actividades y los resultados de una revisión varían según el tipo
de revisión y la formalidad.
Las revisiones formales se caracterizan por la participación del equipo, los resultados y
Formal los procedimiento son documentados.
10
Pruebas estáticas. Actividades de un proceso de revisión
Planificación
• Definición del alcance, el propósito, documentos a revisar y las
características a evaluar
• Estimación del esfuerzo y tiempo
• Identificación de las características de la revisión, tipo de revisión, roles,
actividades y listas de verificación
• Selección de las personas a participar en la revisión y asignación de roles
• Definición de los criterios de entrada y salida (solo en revisiones formales)
• Comprobación de cumplimiento de los criterios de entrada
Pruebas estáticas. Actividades de un proceso de revisión
Iniciar la revisión
• Distribuir el producto de trabajo
• Explicar el alcance, los objetivos, el proceso y los roles y productos de
trabajo
• Responder a cualquier pregunta que los participantes puedan tener sobre
la revisión
Preparación individual
• Revisar todo o parte del producto de trabajo
• Anotar defectos potenciales, recomendaciones y preguntas
Pruebas estáticas. Actividades de un proceso de revisión
Comunicación y análisis de problemas
• Comunicar defectos potenciales identificados.
• Analizar defectos potenciales, asignar responsable y estado.
• Evaluar y documentar las características de calidad.
• Evaluar los resultados de la revisión en comparación con los criterios de
salida para tomar una decisión de revisión (rechazar, cambios necesarios,
cambios menores, aceptar)
13
Pruebas estáticas. Actividades de un proceso de revisión
Corrección e informe
• Creación de informes de defectos.
• Arreglo de defectos encontrados (el autor).
• Comunicación de defectos a la persona responsable.
• Registro del estado actualizado de los defectos.
• Recopilación de métricas (revisión formal).
• Comprobación de que se cumplen los criterios de salida (revisión formal).
• Aceptación del producto de trabajo si alcanza los criterios de salida.
14
¿Quiénes participan?
Pruebas estáticas. Roles de una revisión formal
Autor
• Crea el producto de trabajo bajo revisión
• Corrige los defectos en el producto de trabajo bajo revisión
Gestor
• Es responsable de la planificación de la revisión
• Decide sobre la ejecución de las revisiones
• Asigna personal, presupuesto y tiempo
• Supervisa la eficacia en función de los costos en curso
• Ejecuta las decisiones de control en caso de resultados inadecuados
16
Pruebas estáticas. Roles de una revisión formal
Moderador
• Asegura la ejecución efectiva de las reuniones de revisión.
• Mediar, si es necesario entre distintos puntos de vista.
• A menudo es la persona de quien depende el éxito de la revisión.
Revisor líder
• Asume la responsabilidad general de la revisión.
• Decide quién participará y organiza cuándo y dónde se llevará a cabo.
17
Pruebas estáticas. Roles de una revisión formal
Revisores
• Pueden ser: expertos, personas que trabajan en el proyecto, partes
interesadas y / o personas con antecedentes técnicos o empresariales
específicos.
• Identifica posibles defectos en el producto de trabajo que se está
revisando.
• Ellos representan diferentes perspectivas.
Escribano
• Recopila los posibles defectos encontrados.
• Registra los defectos y decisiones de la reunión de la revisión.
18
¿Todas las revisiones
serán iguales?
Pruebas estáticas. Tipos de revisiones
Revisión
informal
Tipos de Revisión
Inspección Revisiones guiada
Revisión
Técnica
20
Pruebas estáticas. Revisión Informal
• Propósito principal: detectar posibles defectos.
• Posibles propósitos adicionales: generar nuevas ideas o soluciones, resolver
rápidamente problemas menores.
• Es la forma más simple de revisión.
• Frecuentemente iniciada por el autor.
• No se basa en un proceso formal (documentado).
• No realiza reunión de revisión.
• Puede ser realizada por un colega del autor o por más personas.
• Los resultados pueden documentarse.
• Su utilidad varía dependiendo de los revisores.
• El uso de listas de verificación es opcional.
• Muy comúnmente utilizado en el desarrollo ágil.
21
Pruebas estáticas. Revisión guiada
• Principales propósitos: encontrar defectos, mejorar el producto, considerar
alternativas, evaluar el cumplimiento de las normas y especificaciones
• Posibles propósitos adicionales: intercambiar ideas técnicas, capacitación de los
participantes, lograr un consenso
• Opcionalmente puede haber preparación individual
• Sesiones abiertas
• La reunión está dirigida por el autor del producto de trabajo
• El registro es obligatorio
• El uso de listas de verificación es opcional
• Puede tomar la forma de escenarios o simulaciones
• Pueden producirse registros de defectos potenciales e informes de revisión
• Puede variar en la práctica, desde muy informal a muy formal
• No es necesario el moderador 22
Pruebas estáticas. Revisión técnica
• Principales propósitos: obtener consenso y detectar posibles defectos.
• Posibles propósitos adicionales: evaluar la calidad y generar confianza en el
producto de trabajo, generar nuevas ideas, motivar y permitir a los autores
mejorar los futuros productos de trabajo, considerando alternativas.
• Realizada por revisores y expertos técnicos en la misma o en otras disciplinas.
• Realizan preparación individual antes de que se requiera la reunión de
revisión.
• La reunión de revisión es opcional, idealmente dirigida por un moderador
entrenado (normalmente no es el autor).
• Escribir es obligatorio y no debe ser el autor.
• El uso de listas de verificación es opcional.
• Los registros de defectos potenciales y los informes de revisión se producen
normalmente. 23
Pruebas estáticas. Inspección
• Propósitos principales: detectar defectos potenciales, evaluar la calidad y
generar confianza en el producto de trabajo, prevenir defectos similares en el
futuro a través del aprendizaje del autor y el análisis de la causa raíz.
• Posibles propósitos adicionales: motivar y permitir a los autores mejorar los
futuros productos de trabajo y el proceso de desarrollo del software, lograr un
consenso.
• Sigue un proceso definido con resultados formales documentados, basados en
reglas y listas de verificación.
• Utiliza roles claramente definidos.
• Preparación individual antes de que se requiera la reunión de revisión.
• Los revisores son colegas del autor o expertos en otras disciplinas.
• Se utilizan los criterios de entrada y salida especificados.
24
Pruebas estáticas. Inspección
• El registro es obligatorio.
• La reunión de revisión está dirigida por un moderador capacitado (no el
autor).
• El autor no puede actuar como el líder de la revisión, el lector o el
escribano.
• Se producen los registros de posibles defectos y el informe de revisión.
• Se recolectan datos para mejorar todo el proceso de desarrollo de software,
incluido el proceso de inspección.
25
Pruebas estáticas. Factores de éxito para las revisiones
Los factores de éxito organizacional para las revisiones incluyen:
• Asignar objetivos claros a cada revisión.
• Usar criterios de salida medibles.
• Se aplican tipos de revisión que son adecuados para alcanzar los objetivos y
que son apropiados para el tipo y nivel de productos.
• Todas las listas de verificación utilizadas abordan los riesgos principales.
• Asignar tiempo suficiente a los participantes para prepararse.
• Las revisiones son notificada con tiempo suficiente.
• La administración respalda el proceso de revisión.
• Se aplican de técnicas de revisión.
26
Pruebas estáticas. Factores de éxito para las revisiones
Los factores de éxito relacionados con las personas incluyen:
• Las personas correctas están involucradas para cumplir los objetivos de la
revisión
• Los revisores son considerados como valiosos revisores
• Los participantes dedican el tiempo y la atención adecuados a los detalles.
• Las revisiones se realizan en partes pequeñas.
• Los defectos encontrados se reconocen, se aprecian y se manejan de
manera objetiva.
• La reunión está bien gestionada, por lo que los participantes consideran que
es un uso valioso de su tiempo.
27
Pruebas estáticas. Factores de éxito para las revisiones
Los factores de éxito relacionados con las personas incluyen:
• La revisión se lleva a cabo en un ambiente de confianza; el resultado no se
utilizará para la evaluación de los participantes.
• Los participantes evitan el lenguaje corporal y las conductas son
constructivas.
• Se proporciona la capacitación adecuada, especialmente para tipos de
revisión más formales, como inspecciones.
• Se promueve una cultura de aprendizaje y la mejora de los procesos.
28
Pruebas estáticas. Tips a tener en cuenta en las revisiones
• En las revisiones pueden participar expertos temáticos, jefes de áreas, de
actividad o de procesos siempre puesto de acuerdo los revisores y los
equipos de proyectos.
• Las revisiones se deben ejecutar de manera profesional.
• Las evidencias objetivas deben ser claramente identificadas.
• Se debe evitar realizar conjeturas, reportar hechos y cuidar las opiniones y
sugerencias.
• Es importante no comentar los resultados fuera de los marcos adecuados.
Pruebas estáticas. Ejemplo
Ejercicio
Relacione el tipo de
revisiones con las
afirmaciones
30
Pruebas estáticas. Ejemplo
Ejercicio
C
Relacione el tipo de
revisiones con las D
afirmaciones
D
B
A
B
31
Pruebas estáticas. Herramientas para análisis estático
Las herramientas para análisis estáticos son: compiladores y analizadores
Compilador
• Detectar errores sintácticos en el código.
• Crear datos de referencia del programa (por ejemplo lista de referencia cruzada,
llamada jerarquía, tabla de símbolos)
• Comprueba la consistencia entre los tipos de variable
• Detecta variables no declaradas y código inaccesible (código muerto)
Analizador:
• Comprueba el uso de estándares
• Calcula métricas de complejidad
32
• Identifica acoplamiento entre objetos
Pruebas estáticas. Análisis estático
El valor del análisis estático es la prevención de defectos:
• Para encontrar defectos tan pronto como sea posible antes de la ejecución
de pruebas.
• Para advertir sobre aspectos sospechosos del código.
• Para detectar discrepancias en el diseño a través del cálculo de métricas
como la medida de una alta complejidad.
• Estos defectos pueden no ser encontrados fácilmente con pruebas
dinámicas
• Detectando inconsistencias y dependencias.
• Para comprobar la mantenibilidad del código o diseño.
33
Créditos
AUTOR(ES): Derechos de uso
- Yaimí Trujillo Casañola No se permite un uso comercial
de este recurso ni de las posibles
- Aymara Marin Diaz
obras derivadas, la distribución
- Alionuska Velázquez Cintra de las cuales se debe realizar
con una licencia igual a la que regula
Fecha de creación: la obra original y el reconocimiento
3/2/2021 de sus autores.
Última modificación:
6/2/2021
Contacto:
[email protected]