Diseño de tests basado en criterios

Slides:



Advertisements
Presentaciones similares
VIRTUALIZACI Ó N DEL DIPLOMADO “DESARROLLO PROFESIONAL DOCENTE BAJO EL ENFOQUE DE COMPETENCIAS A TREVÉZ DEL ENTORNO VIRTUAL PRESENTADO POR: WALBERTO ANDRÉS.
Advertisements

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD EN CIENCIAS ADMINISTRATIVAS Y ECONÓMICAS INGENIERÍA COMERCIAL INTEGRANTES: CACUANGO GABRIEL FELIX MIKAELA JACOME.
FORMACIÓN EN EL TRABAJO. Desarrollo de personal: PROGRAMAS DE CARRERA Capacitación Administrativa: REALIZAR BIEN EL TRABAJO.
Clasificación del Software Prof. Laura Cardozo. Software Se denomina software, programática, equipamiento lógico o soporte lógico a todos los componentes.
Modelado de sistemas software: Introducción. Modelado de... Sistemas... Sistemas web Sistemas de control/tiempo real Familias de sistemas Variabilidad.
Hacia la Geografía Interactiva. Introducción Esta obra presenta una propuesta de innovación para la enseñanza de la geografía en el Cuarto grado de Educación.
CASA DE LA CALIDAD Por: Xavier Gualán. CASA DE LA CALIDAD Casa de la calidad: Es una herramienta que puede mejorar el procedimiento de operación. ¿Qué.
Buscar y Gestionar Información con Nuevas Tecnologías
Información de PMAR.
Dirección estratégica de operaciones
A quién va dirigido este curso:
Solución de problemas y toma de decisiones administrativas
¿Cómo me va en la escuela?
Mejores Prácticas en Proyectos de Desarrollo de Software
Planificación estratégica de Marketing
Olimpiadas Chilenas de Informática - Formación
Tema 4: Ingeniería del Software
INTRODUCCION A LA TEORIA DE DECISIONES JUAN ANTONIO DEL VALLE F.
La planeación y la organización de los procesos técnicos.
Fundamentos de programación
Moodle.
Proceso de Desarrollo de SW
introducción Ingeniería de software
Autor: Bruno cebolla bono Tutor: juan fancisco dols ruíz
Análisis y Diseño de Sistemas de Información
GRADO 3º COMPARATIVO POR AÑO 2012 – 2013 LENGUAJE GRADO 3º
Information Technology Infrastructure Library ITIL
Actividad n°4 modulo de induccion
Indicadores de Gestión Dr. RAFAEL OCTAVIO SILVA LAVALLE ADMINISTRACION II.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
ANALISIS DE PARETO Manuel Yáñez Arzola.
¿Qué es ITIL? “Information Technology Infrastructure Library”
Las herramientas Case Julian madrigal.
La planeación y la organización de los procesos técnicos
TAREA DEFINICIONES: Software: Equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios.
Diagramas del modelo uml
Formación y contratación de personal técnico
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
De las HERRAMIENTAS a los INSTRUMENTOS
HACIA UN NUEVO PLAN DE ESTUDIOS
1199 Logos Escuela de Bachilleres, S.C.
INTRODUCCIÓN AL CONCEPTO DE CALIDAD Concepto que se ha introducido en forma progresiva en el mundo de la empresa, industrial, comercial y de servicios.
Modulo 2 Actividad 1 IDENTIFICA TUS COMPETENCIAS
Análisis comparativo entre CMMI e ISO
INTRODUCCIÓN AL CONCEPTO DE CALIDAD Concepto que se ha introducido en forma progresiva en el mundo de la empresa, industrial, comercial y de servicios.
Proceso de Desarrollo de SW
El desafío de organizar la información
Aprendizaje de Ingeniería de la Calidad, basado en proyectos.
1.2. Desarrollo de Software
ESCUELA DE MERCADOTECNIA
Testing basado en sintaxis: Introducción
Automatización del testing
Modelo de la cascada (cont.)
Universidad Alonso de Ojeda Facultad de Humanidades y Educación
Aplicación de PSP (Personal Software Process)
Criterios cobertura de grafos: casos de uso
Criterios cobertura de grafos: introducción
METODOS PARA ANALISIS DE TALUDES
PROYECTO INFORMÁTICO ¿QUÉ ES UN PROYECTO INFORMÁTICO?
Pensamiento crítico: ¿Por qué es difícil enseñarlo?
Partición del espacio de inputs (PEI)
Tomado Campus Virtual VDR EDPT
Criterios cobertura de grafos: especificaciones
Manuel Núñez Especificación, Validación y Testing
Testing basado en sintaxis: Gramáticas a partir de programas
Lingüística computacional
INTRODUCCIÓN AL CONCEPTO DE CALIDAD Concepto que se ha introducido en forma progresiva en el mundo de la empresa, industrial, comercial y de servicios.
EXPERIENCIA EN LA IMPLANTACIÓN DE UN SISTEMA CALIDAD ISO
PROFR: OCTAVIO LUGO GONZALEZ
SESIÓN ABIERTA PRESENTACIÓN “RECURSOS DIGITALES PARA LA IMPLEMENTACIÓN DE METODOLOGÍAS ACTIVAS EN LA DOCENCIA” Rafael Seiz Ortiz UNiversitat Politècnica.
Transcripción de la presentación:

Diseño de tests basado en criterios Manuel Núñez Especificación, Validación y Testing Estas transparencias están basadas en las desarrolladas por Ammann & Offutt como acompañamiento de su libro Introduction to Software Testing (2nd Edition)

Cambio de visión en testing La vieja escuela se concentraba en testear en cada fase del desarrollo del software como si fuera muy diferente del resto de fases. Unidad/componente, módulo, integración, sistema … La nueva escuela considera estructuras y criterios. Espacio de inputs, grafos, expresiones lógicas, sintaxis. De hecho, el diseño de tests es esencialmente el mismo en cada fase con dos salvedades: La creación del modelo es diferente. Elegir valores y automatizar los tests es diferente. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Criterios de cobertura La tarea del testeador es simple. Definir un modelo del software y encontrar formas de recorrerlo Vale, no es tan fácil. Se necesita tener en cuenta requisitos de testing: Cada elemento específico de un artefacto software que un test debe satisfacer o cubrir Criterios de cobertura. Colección de reglas que imponen los requisitos sobre el conjunto de tests. Los investigadores han definido muchiiiiiiisimos criterios pero se pueden reducir a muchos menos si los agrupamos por la estructura subyacente. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Criterios basados en estructuras Estructuras: Consideramos cuatro formas de modelar el software. Caracterización del dominio de inputs (conjuntos). A: {0, 1, >1} B: {600, 700, 800} C: {ATM, RM, BCN, OTRO} Grafos. Expresiones lógicas. (not X or not Y) and A and B if (x > y) z = x - y; else z = 2 * x; Estructuras sintácticas (gramáticas). Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Criterios basados en estructuras Pos. % OR Rango de apertura UTG 13,9 AA-33, AKo-AJo, KQo, AKs-ATs, KQs-KTs, QJs-QTs, JTs-J9s, T9s, 98s, 87s, 76s, 65s +1 17,9 AA-22, AKo-ATo, KQo, AKs-A7s, A5s, KQs-KTs, QJs-QTs, JTs-J9s, T9s- T8s, 98s-97s, 87s-86s, 76s-75s, 65s, 54s CO 23,7 AA-22, AKo-ATo, KQo-KJo, QJo, AKs-A2s, KQs-K6s, QJs-Q7s, JTs-J8s, T9s-T8s, 98s-97s, 87s-86s, 76s-75s, 65s-64s,54s BTN 47,5 AA-22, AKo-A2o, KQo-K7o, QJo-Q9o, JTo-J9o, T9o-T8o, 98o, 87o, AKs-A2s, KQs-K2s, QJs-Q2s, JTs-J5s, T9s-T6s, 98s-96s, 87s-85s, 76s-74s, 65s-64s, 54s-53s,43s SB 36,3 AA-22, AKo-A7o, KQo-K9o, QJo-Q9o, JTo-J9o, T9o, 98o, AKs-A2s, KQs-K2s, QJs-Q4s, JTs-J7s, T9s-T7s, 98s-97s, 87s-86s, 76s-75s, 65s-64s,54s Criterios basados en estructuras ¡¡QUE NO CUNDA EL PÁNICO!! Daremos la menos teoría posible para que se entiendan los conceptos. Pero claro, esto es como cualquier disciplina medianamente complicada: Siempre necesitaremos algo de matemáticas/formalismos. Incluso para jugar al poker. ¿No me creéis? Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

¿De donde salen las estructuras? Las estructuras se pueden extraer de muchos artefactos software. Los grafos se pueden extraer de casos de uso UML, máquinas de estados finitos, código fuente,… Las expresiones lógicas se pueden extraer de decisiones en el código fuente, de las guardas de transiciones, de condicionales en casos de uso, … Esto no es lo mismo que Model-Based Testing. MBT consiste en derivar tests de un modelo que describe algunos aspectos del sistema bajo testing. El modelo usualmente describe parte del comportamiento. El código fuente NO se considera un modelo. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Ejemplo: Cobertura de gominolas Tenemos seis sabores: Limón. Pistacho. Melón. Pera Mandarina. Albaricoque. Tenemos cuatro colores: Amarillo (Limón, albaricoque). Verde (Pistacho). Naranja (Melón, mandarina). Blanco (Pera) Criterios de cobertura posibles: Coger una gominola de cada sabor. Decidir si la gominola amarilla es de sabor limón o albaricoque es un problema de controlabilidad. Coger una gominola de cada color. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Especificación, Validación y Testing (M. G. Merayo y M. Núñez) Cobertura Dado un conjunto de requisitos de test RT para un criterio de cobertura C, un conjunto de tests T satisface la cobertura de C sii para todo requisito de test 𝑟𝑡∈𝑅𝑇, existe al menos un test 𝑡∈𝑇 tal que t satisface 𝑟𝑡. Requisitos de test inviables: Aquellos que no se pueden satisfacer. No existen valores para los tests que cumpla los requisitos. Ejemplo: Código muerto. La detección de requisitos inviables es indecidible para la mayoría de los criterios de testing. Por lo tanto, conseguir 100% de cobertura es imposible en la práctica. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Ejemplo: Cobertura de gominolas T1={ tres de limón, una de pistacho, dos de melón, una de pera, una de mandarina, cuatro de albaricoque } ¿Safistace T1 el criterio de sabor? T2={ una de limón, dos de pistacho, una de pera, tres de mandarina } Amarillo (Limón, albaricoque). Verde (Pistacho). Naranja (Melón, mandarina). Blanco (Pera) ¿Safistace T2 el criterio de sabor? ¿Safistace T2 el criterio de color? Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Especificación, Validación y Testing (M. G. Merayo y M. Núñez) Grado de cobertura Porcentaje de los requisitos de tests satisfechos por los tests de un conjunto. Por ejemplo, T2 cumple cuatro de los seis requisitos del criterio “sabor”. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Como usar los criterios Generar directamente los valores de test que satisfacen un criterio. Asumido habitualmente por la comunidad científica. Modo más obvio de usar los criterios. Muy difícil de hacer sin usar herramientas. Generar valores de test de forma externa y medir su bondad con respeto al criterio. Usualmente utilizados en la industria. Algunas veces son confusos. ¿Qué significa no alcanzar 100% de cobertura? Los criterios de testing también se llaman métricas. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Generadores y reconocedores Generador. Un procedimiento que genera automáticamente valores que satisfacen un criterio. Reconocedor. Un procedimiento que decide si un conjunto de valores de tests satisfacen un criterio. Ambos problemas son indecidibles para la mayoría de los criterios. Usualmente es más fácil reconocer si un conjunto de valores satisface un criterio que generar valores que satisfagan un criterio. Afortunadamente, existen muchas herramientas para analizar cobertura. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Comparación de criterios Subsunción. El criterio C1 subsume a C2 sii cada conjunto de tests que satisface C1 también satisface C2. Importante: Se debe cumplir para todos los conjuntos de tests. Ejemplos: El criterio de sabor subsume al criterio de color: si comemos de todos los sabores entonces comemos una de cada color. Si un conjunto de tests cubre todas las ramas de un programa entonces cubre todas las instrucciones. En cualquier caso, subsunción es una aproximación grosera de la capacidad de mostrar defectos y sería necesario tener mejores nociones. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Ventajas de diseñar tests basándonos en criterios Los criterios maximizan el beneficio del tiempo dedicado a testing. Menos tests que son más efectivos para encontrar defectos. Amplios conjuntos de tests con mínimo solapamiento. Trazabilidad en el paso de artefactos software a tests. Respondemos al “por qué” de cada test. Nos proporciona un mecanismo para facilitar regression testing. Tenemos una regla de parada: nos da una pista sobre el número de tests que necesitamos. Se automatiza de forma natural. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Carácterísticas de un buen criterio de cobertura Debería ser relativamente sencillo calcular los requisitos de test automáticamente. Generar valores de tests debería poderse hacer eficientemente. El conjunto de tests resultante debería mostrar tantos defectos como sea posible. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Criterios de cobertura Testing, tradicionalmente, es caro e intensivo en trabajo. Los criterios formales de cobertura se usan para decidir que valores usamos para los inputs. Es más probable que el testeador encuentre problemas. Dan mayor confianza en que el software sea de alta calidad y fiable. Nos dan una regla de parada para testing. Los criterios hacen que testing sea más eficiente y efectivo. ¿Cómo aplicamos estas ideas en la práctica? En primer lugar, ¿cómo mejoramos los procesos de testing? Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Especificación, Validación y Testing (M. G. Merayo y M. Núñez) ¿Cómo mejorar testing? Los testeadores necesitan más y mejores herramientas software. Los testeadores necesitan adoptar técnicas que lleven a que testing sea más efectivo y eficiente. Necesitan más formación. Diferentes estrategias de gestión de las organizaciones. Equipos de testing y QA (Quality Assurance) necesitan obtener competencias técnicas. Por el contrario, las competencias de los desarrolladores han incrementado notablemente. Equipos de testing y QA (Quality Assurance) necesitan especializarse más. Esta era la tendencia en los 1990s para los equipos de desarrollo. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Cuatro barreras al cambio Falta de formación universitaria en testing. Microsoft y Google dicen que la mitad de sus ingenieros son testeadores…. los programadores testean la mitad del tiempo. De hecho, no existen en USA grados ni masters en CS que requieran testing. Aproximadamente hay 50 cursos de testing en USA. Necesidad de cambiar el proceso. La adopción de las técnicas y herramientas de testing requieren cambios en el proceso de desarrollo. Esto es demasiado caro para la mayoría de las compañías que producen software. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Cuatro barreras al cambio Usabilidad de las herramientas. Muchas herramientas de testing requieren que el usuario conozca la teoría subyacente para usarlas. ¿Necesitamos conocer como funciona un motor de combustión para conducir un coche? ¿Necesitamos conocer parsing y generación de código para usar un compilador? Herramientas débiles e inefectivas. La mayoría de las herramientas no son muy útiles, pero la mayoría de los usuarios no son conscientes de que pueden ser mejores. Muy pocas herramientas NO resuelven el principal problema técnico, esto es, generar valores de tests automáticamente. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

¿Qué hacer en la Universidad? Disfrazar la teoría a los ingenieros en sus clases. Omitir la teoría cuando no sea necesaria. Reestructurar los curricula para enseñar algo más que diseño de test y teoría. Automatización del proceso de testing. Evaluación de tests. Testing basado en el factor humano. Desarrollo dirigido por testing. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

¿Qué hacer en la empresa? Reorganizar los grupos de testing y QA para hacer un uso efectivo de las capacidades individuales. Por ejemplo, un matemático puede dar soporte a muchos testeadores. Reciclar los grupos de testing y QA . Usar un proceso similar a MDTD. Aprender más conceptos de testing. Animar a los investigadores a que la teoría quede oculta en los métodos y herramientas de testing. Participar en el diseño de curricula a través de Consejos consultivos industriales. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Cuatro estructuras para modelar software Grafos Lógica Espacio de inputs Syntaxis Casos de uso Especs. Diseño Código Aplicado a FNDs Especs. FSMs Código Aplicado a Input Modelos Integración Código Aplicado a Forma Normal Disyuntiva Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Resumen introducción EVT ¿Por qué testeamos? Para reducir el riesgo de usar un software. Defectos y fallos. RIPR (Reachability, Infection, Propagation, Revealability). Niveles de pensamiento. Deseable alcanzar el cuarto. MDTD (Model-Driven Test Design). Cuatro tipos de actividades de testing: diseño, automatización, ejecución y evaluación. Automatización del testing Testeabilidad. Observabilidad y controlabilidad. JUnit. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)

Resumen introducción EVT Desarrollo dirigido por tests. Diseño de tests basado en criterios. Cuatro estructuras. Requisitos de testing y criterios. Especificación, Validación y Testing (M. G. Merayo y M. Núñez)