1. Datos Generales de la asignatura
Nombre de la asignatura:
Clave de la asignatura:
SATCA1:
Carrera:
Verificación y Validación del Software. ISF-1304 3 – 2 - 5 Ingeniería en Sistemas Computacionales
2. Presentación
Caracterización de la asignatura
Esta asignatura aporta al perfil del Ingeniero en Sistemas Computacionales la formación de personal con un dominio sobre el proceso de verificación y validación con un enfoque que promueve la calidad del software.
La importancia de esta asignatura se centra en la realización de pruebas completas al software antes de ser liberado hacia el usuario final, esto debido a que se ha comprendido la importancia de las pruebas de calidad y su impacto en la industria del software.
Los aspectos principales a considerar son las revisiones y las pruebas como parte del ciclo de vida del software que se utilizan para detectar fallas en las diferentes etapas del mismo. Se centra en la detección de defectos en el producto, dándole mucha importancia a las revisiones.
La verificación y la validación del software incluyen un conjunto de procedimientos, actividades, técnicas y herramientas, que se utilizan paralelamente al desarrollo del mismo para asegurar que el producto cubre los diferentes aspectos de calidad. El objetivo es prevenir las fallas desde los requerimientos hasta su implementación.
Intención didáctica
La asignatura es teórico – práctica y permite desarrollar en el estudiante la habilidad para la aplicación de las diferentes técnicas de verificación y validación de software, considerando los principios de la ingeniería de software, para lo cual el temario se organiza en cinco bloques.
En el bloque uno, introducción a la verificación y validación del software, se retoma de manera importante la calidad del software como fundamento para conocer y comprender el proceso de verificación y validación del software, así como la identificación de los estándares de la IEEE que le son aplicados.
El bloque dos apoyará en la definición de las revisiones al software así como el proceso de pruebas de software.
En el bloque tres se detalla el proceso de verificación del software.
1 Sistema de Asignación y Transferencia de Créditos Académicos
En el bloque cuatro de hace una relación entre el modelado y el proceso de verificación. En el bloque cinco, se aborda el proceso de implementación y las diferentes herramientas que se pueden utilizar en el proceso.
En el último bloque, se plantea el proceso a desarrollar en el proceso de validación del software por parte del cliente.
3. Participantes en el diseño y seguimiento curricular del programa
Lugar y fecha de
elaboración o revisión
Participantes
Observaciones
Instituto Tecnológico Superior de Irapuato Fecha: 15 al 17 de Abril de 2013..
Academia de Ingeniería en
Sistemas Computacionales
– Desarrollo de Software
Análisis y adecuación por competencias del módulo de
la especialidad "Ingeniería
de Software" de la carrera
de Ingeniería en Sistemas
Computacionales.
4. Competencia(s) a desarrollar
Competencia(s) específica(s) de la asignatura
Aplicar técnicas para verificaciones y validaciones al software, considerando los aspectos de revisión y pruebas como parte del ciclo de vida para detectar fallas en el desarrollo del mismo. Competencias instrumentales:
• Capacidad de análisis y síntesis. • Capacidad de organizar y planificar. • Conocimientos básicos de la carrera. • Comunicación oral y escrita. • Habilidades del manejo de la computadora. • Habilidad para buscar y analizar información proveniente de fuentes diversas. • Solución de problemas. • Toma de decisiones. Competencias interpersonales: • Capacidad crítica y autocrítica. • Trabajo en equipo. • Habilidades interpersonales. Competencias sistémicas: • Capacidad de aplicar los conocimientos en la práctica. • Habilidades de investigación. • Capacidad de aprender. • Capacidad de generar nuevas ideas (creatividad). • Búsqueda del logro.
5. Competencias previas
Identifica el proceso de ingeniería de software
Conoce el ciclo de vida
Utiliza herramientas de modelado
Capacidad de análisis
Capacidad de crítica constructiva
6. Temario Unidad
Temas
Subtemas
1
Introducción al proceso de verificación y validación.
1.1 Contextualización de la verificación y validación. 1.2 Terminología del proceso. 1.3 El proceso de la verificación y validación. 1.4 Tipos generales de los errores. 1.5 Responsabilidad de pruebas. 1.6 Organigrama de proceso de testing (un modelo propuesto). 1.7 Costos del error.
2
Pruebas.
2.1 Tipos de pruebas. 2.2 Cobertura de las pruebas. 2.3 Preparación de la prueba. 2.4 Productos de la prueba. 2.5 Criterios para la realización de pruebas. 2.6 Plan Pruebas (validación y verificación). 2.7 Estructura de los casos de Prueba. 2.8 Conceptos Generales los diseño de las pruebas
(validación y verificación). 2.9 Reporte y Seguimiento de errores. 2.10 Informe de la Prueba. 2.11 Fuentes de información de QA para el control
estadística o métricas. 2.12 Control estadístico vs métricas. 2.13 Importancia de la calidad, las métricas y el control
estadístico.
3
Verificación.
3.1 Marco de Referencia para el desarrollo de software. 3.2 Herramientas para apoyar al proceso y la ejecución de las
revisiones de software. 3.3 Manejo de Requerimientos (Verificación). 3.4 Verificación en este proceso. 3.5 Entradas propuestas para el proceso de verificación de
requerimientos. 3.6 Método de verificación. 3.7 Aspectos a verificar en esta etapa. 3.8 Entendimiento de problema (Verificación). 3.9 Revisión general de requerimientos. 3.10 Fase de manejo de requerimientos.
4
Modelado.
4.1 Modelado de pruebas con UML. 4.2 Cumplimiento de la especificación en los requerimientos. 4.3 Importancia en la efectividad en el diseño. 4.4 Patrones (tipos de patrones, como utilizar los patrones para
validar). 4.5 Contratación y Outsourcing.
5
Implementación.
5.1 Implementación. 5.2 Entradas para pruebas. 5.3 Plan de pruebas (estrategia de prueba, ambientes, test
team, atacar y asegurar regresión). 5.4 Ejecución de tipos generales de pruebas. 5.5 Caja negra y caja blanca. 5.6 Otros tipos de test. 5.7 GUI, Funcionalidad, Performance, entre otros. 5.7.1 Documentación (técnica y de usuario). 5.7.2 Seguridad. 5.7.3 Diseño de las pruebas.
7. Actividades de aprendizaje de los temas
Introducción al proceso de la verificación y validación.
Competencias Actividades de aprendizaje
Específica(s): Identifica el proceso de verificación y validación del software. Genéricas: Habilidad para buscar y analizar información, capacidad para trabajar en equipo, aplicar los conocimientos en la práctica.
Investigar los conceptos de calidad del software.
Analiza el proceso de verificación y validación del software.
Desarrollar un glosario de términos
Integración de la verificación y validación al proceso de desarrollo de software.
Conocer el papel de los estándares en el proceso de verificación y validación del software.
Pruebas.
Competencias Actividades de aprendizaje
Específica(s): Identifica las características y los tipos de pruebas que se le aplican al software. Genéricas: Habilidad para buscar y analizar información, capacidad para trabajar en equipo, aplicar los conocimientos en la práctica.
Investigar la definición y características de las revisiones de software.
Diseñar un caso de prueba
Realizar un reporte de pruebas y seguimiento de errores.
Utilizar formatos propuestos para la documentación de las pruebas de software.
Verificación.
Competencias Actividades de aprendizaje
Específica(s): Analiza el proceso de verificación al software. Genéricas: Capacidad para buscar y
analizar información, capacidad para
trabajar en equipo, aplicar los
conocimientos en la práctica.
Investigar el proceso de la verificación.
Realizar en un caso práctico el manejo de requerimientos por medio de un método de verificación.
Modelado.
Competencias Actividades de aprendizaje
Específica(s): Utiliza herramientas para el
modelado en el proceso de verificación y
validación del software.
Investigar el uso de herramientas para apoyar al proceso y la ejecución de las revisiones de software.
Investigar el uso de herramientas para
Genéricas: Capacidad para buscar y
analizar información, capacidad para
trabajar en equipo, aplicar los
conocimientos en la práctica.
apoyar al proceso, el diseño y la ejecución de las pruebas de software.
Modelar casos prácticos de pruebas.
Implementación.
Competencias Actividades de aprendizaje
Específica(s): Planea el proceso de verificación y validación del software, y aplicar métricas para evaluar los resultados finales. Genéricas: Habilidad para buscar y analizar información, capacidad para trabajar en equipo, aplicar los conocimientos en la práctica.
Investiga el proceso de planeación.
Ejecuta pruebas y analiza los resultados.
Validación y logística de pruebas.
Competencias Actividades de aprendizaje
Específica(s): Analizar el proceso de verificación y validación del software, y aplicar métricas para evaluar los resultados finales. Genéricas: Habilidad para buscar y analizar información, capacidad para trabajar en equipo, aplicar los conocimientos en la práctica.
Analiza e interpreta los resultados de las pruebas.
Elabora carta de aceptación del cliente.
Documenta el seguimiento a cambios
del proyecto.
8. Práctica(s)
1. Seleccionar un caso práctico de desarrollo de software para someterlo al proceso de verificación y validación del software.
2. Utilizar las herramientas para apoyar al proceso de verificación y validación del software.
3. Diseñar un plan de verificación y validación del software, así como aplicar las métricas para evaluar los resultados arrojados por la verificación y validación del software.
4. Diseñar un formato de pruebas. 5. Realizar visitas a empresas dedicadas al desarrollo de software. 6. Desarrollar una mesa de debates, en la cual se cuente con la presencia de un
experto en desarrollo, a fin de conocer las experiencias con respecto a los procesos de verificación y validación del software.
9. Proyecto de asignatura
El objetivo del proyecto que planteé el docente que imparta esta asignatura, es demostrar
el desarrollo y alcance de la(s) competencia(s) de la asignatura, considerando las
siguientes fases:
Fundamentación: marco referencial (teórico, conceptual, contextual, legal) en el cual
se fundamenta el proyecto de acuerdo con un diagnóstico realizado, mismo que
permite a los estudiantes lograr la comprensión de la realidad o situación objeto de
estudio para definir un proceso de intervención o hacer el diseño de un modelo.
Planeación: con base en el diagnóstico en esta fase se realiza el diseño del proyecto
por parte de los estudiantes con asesoría del docente; implica planificar un proceso: de
intervención empresarial, social o comunitario, el diseño de un modelo, entre otros,
según el tipo de proyecto, las actividades a realizar los recursos requeridos y el
cronograma de trabajo.
Ejecución: consiste en el desarrollo de la planeación del proyecto realizada por parte
de los estudiantes con asesoría del docente, es decir en la intervención (social,
empresarial), o construcción del modelo propuesto según el tipo de proyecto, es la fase
de mayor duración que implica el desempeño de las competencias genéricas y
especificas a desarrollar.
Evaluación: es la fase final que aplica un juicio de valor en el contexto laboral-
profesión, social e investigativo, ésta se debe realizar a través del reconocimiento de
logros y aspectos a mejorar se estará promoviendo el concepto de “evaluación para la
mejora continua”, la metacognición, el desarrollo del pensamiento crítico y reflexivo en
los estudiantes.
Además de considerar la revisión del diseño de la arquitectura, es los siguientes aspectos:
Mapas conceptuales, cuestionario sobre conceptos relacionados con la arquitectura.
Revisión de la documentación del modelado.
10. Evaluación por competencias
La evaluación debe ser continua y formativa por lo que se debe considerar el desempeño de cada una de las actividades de aprendizaje, haciendo especial énfasis en:
Aplicación de un examen de diagnóstico al inicio del curso.
Ponderar tareas.
Información obtenida durante las investigaciones solicitadas, plasmadas en documentos escritos o digitales
Dar seguimiento al desempeño en el desarrollo del temario (dominio de los conceptos, capacidad de la aplicación de los conocimientos en problemas reales y de ingeniería)
Se recomienda utilizar varias técnicas de evaluación con un criterio específico para cada una de ellas (teórico-práctico).
Examen escrito correspondiente a cada unidad.
Ejercicios dentro de laboratorios.
Examen práctico (resolviendo aspectos reales) correspondiente a cada unidad.
Desarrollo de un proyecto final que integre todas las unidades de aprendizaje
Presentación del proyecto final. (Informe, presentación y defensa congruencia del proyecto final).
Uso de una plataforma educativa en internet la cual puede utilizarse como apoyo para crear el portafolio de evidencias del alumno (integrando: tareas, prácticas, evaluaciones, etc.)
11. Fuentes de información
1. Test Process Improvement, Tim Koomen and Martin Pol. Addison-Wesley. 1999 2. Software Testing and Continuous Quality Improvement, Willam E. Lewis. Aurebach.
2000 3. Effective Methods for Software Testing (second edition), William E. Perry.
WileyComputer Publishing. 2000 4. Software Verification and Validation, Steven R. Rakitin. Artech House.1997 5. UML y Patrones Craig Larman. Pearson. 1999 6. Software Testing and Quality Assurance Theory and Practice, Kshirasagar Naik
& Priyadarshi Tripathy, Wiley. 7. Verification and Validation in Systems Engineering, Assessing UML/SysML Design
Models, Mourad Debbabi, Fawzi Hassaine - Yosr Jarraya, Springer.
ANEXO ITESI
ELEMENTOS DESCRIPTIVOS DE LA ASIGNATURA
Verificación y validación Ingeniería en Sistemas Computacionales
Materia(s) Prerrequisito(s) la(s) cual(es) preferentemente se deben desarrollar las
Competencias Previas
Ingeniería de Software Gestión de Proyectos de Software Programación Orientada a Objetos Tópicos selectos de programación
Recursos Necesarios
Laboratorio con Computadoras
Cañón
Software hoja de cálculo, procesador de palabras y de planificación de proyectos.
Horas de utilización de infraestructura de Cómputo
Para las Actividades de aprendizaje de los temas Tiempo estimado
Analizar el proceso de verificación y validación del software. 3 horas
Conocer el papel de los estándares en el proceso de verificación y validación del software.
2 horas
Investigar la definición y características de las revisiones de software.
3 horas
Diseñar un caso de prueba 4 horas
Realizar un reporte de pruebas y seguimiento de errores. 2 horas
Investigar el proceso de la verificación. 3 horas
Investigar el uso de herramientas para apoyar al proceso y la ejecución de las revisiones de software.
3 horas
Investigar el uso de herramientas para apoyar al proceso, el diseño y la ejecución de las pruebas de software.
3 horas
Investiga el proceso de planeación de pruebas. 3 horas
Diseñar un plan de pruebas 6 horas
Para las Prácticas Tiempo estimado
Caso práctico sobre el manejo de requerimientos por medio de un método de verificación.
5 horas
Modelar casos prácticos de pruebas 5 horas
Plan y ejecución de pruebas sobre un software propuesto por el profesor.
5 horas
Forma de Evaluación
RÚBRICA PARA EVALUAR MAPAS MENTALES.
REALIZADO: 10 NO REALIZADO: 0
CRITERIOS LISTA DE COTEJO
1. Utiliza un mínimo de palabras posibles, de preferencia “palabras clave” o mejor aún imágenes.
2. Se inicia desde el centro de la hoja colocando la idea central que está desarrollada hacia fuera de manera irradiante.
3. La idea central está representada con una imagen clara y poderosa que sintetiza el tema general del Mapa Mental.
4. Ubica por medio de la lluvia de ideas las ideas relacionadas con la idea central.
5. Por medio de ramas enlaza la idea o tema central con ideas relacionadas o subtemas.
6. Temas y subtemas están articulados y jerarquizados según el sentido de las manecillas del reloj.
7. Utiliza el espaciamiento para acomodar de manera equilibrada las ideas o subtemas.
8. Subraya las palabras clave o encerrándolas en un círculo colorido para reforzar la estructura del Mapa.
9. Utiliza el color para diferenciar los temas, sus asociaciones o para resaltar algún contenido.
10. Utiliza flechas, iconos o cualquier elemento visual que permiten diferenciar y hacer más clara la relación entre ideas.
PUNTAJE TOTAL OBTENIDO
RÚBRICA PARA EVALUAR PROYECTOS
20 Puntos 18 Puntos 14 Puntos 12 Puntos
Excelente Bueno Regular Deficiente Puntaje
Trabajo En
Equipo
Se trabajó en
clase,
compartió y
apoyo el
Usualmente
escucho,
trabajó,
compartió y
Raramente
escucha,
comparte y
apoya el
No apoyo a
sus
compañeros
esfuerzo con
sus
compañeros.
Trato de
mantener la
unión de los
miembros
trabajando en
grupo.
apoyo el
esfuerzo en
clase. Y no
causo
“problemas”
en el trabajo
en grupo
esfuerzo de sus
compañeros.
de equipo en
clase
Resolución
de
Problemas
Busca, aporta
soluciones y
resuelve a los
problemas
propuestos.
Busca y
aporta
soluciones a
los problemas
propuestos
No sugiere o
apoya en la
resolución de
problemas, pero
se mantiene en
el equipo.
No aporta, ni
ayuda a
resolver los
problemas.
Originalidad Uso de ideas
creativas e
innovadoras
Copia idea de
otros pero las
ajusta al
problema a
resolver
Copia Ideas de
otros pero busca
ayuda para
implementarlas
No aporta
ideas
Puntualidad
en la
Entrega
Se entregó en
tiempo y forma
el proyecto
Se entregó el
proyecto con
1 día de
retraso
El proyecto lo
entregó de 2 a 3
días de retraso
Lo entregó
con más de 3
días de
retraso o no lo
entregó
Producto
Final
El proyecto
presentado
resuelve el
problema y se
puede
identificar las
soluciones de
acuerdo a la
experiencia de
todos los
alumnos
El proyecto
presentado
resuelve el
problema
pero solo
presenta las
soluciones de
acuerdo a la
experiencia
de algunos
alumnos
El proyecto
presentado
resuelve el
problema pero
es solución
copiada de
internet
No se
presentó el
proyecto
Perfil Deseable del Profesor
Ingeniero en sistemas computacionales o afín Con experiencia en desarrollo de sistemas en base a procesos de calidad Experiencia docente
Fuentes de Información Locales
Larman, Craig. (2003) UML y patrones: una introducción al análisis y diseño
orientado a objetos y al proceso unificado. Segunda edición. España: Pearson
Education.
Pressman, Roger S. (2010) Ingeniería del software: un enfoque práctico. Séptima
edición. México: Mc Graw Hill.
Microsoft. Crear y definir un plan de pruebas. En línea:
https://msdn.microsoft.com/es-es/library/dd286583(v=vs.110).aspx
Tuya, Javier (2007). Las pruebas del software. En línea:
http://in2test.lsi.uniovi.es/repris/actividades/TestingCadiz20070309.pdf
SEI (1988). Introduction to Software Verification and Validation. En línea:
http://www.sei.cmu.edu/reports/89cm013.pdf