Pronto podré ejecutar mi plan Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Pruebas estadísticas Blanca A. Vargas Govea vargasgovea@itesm.mx Abril 16, 2013
Objetivo Conocer el enfoque de las pruebas estadísticas Aplicar análisis a ejemplos
Papel de los métodos estadísticos Guía para el diseño de pruebas Forma de afinar el proceso de calidad Generalmente se aplica a productos con historial Photo Credit: <a href="http://www.flickr.com/photos/10816734@n03/3492484540/">world Bank Photo Collection</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by-nc-nd/2.0/">cc</a>
Papel de los métodos estadísticos Ayudan a entender los procesos y mejorarlos Ayudan a ubicar las causas del problema y al eliminarlos mejorar la calidad Aquí está! Photo Credit: <a href="http://www.flickr.com/photos/21382508@n05/6867029928/">mikeywally</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by-nc-nd/2.0/">cc</a>
No se orientan a encontrar errores Existe la percepción de que el testing estadístico es inútil porque no se orienta a encontrar errores Es una alternativa viable al testing estructural Photo Credit: <a href="http://www.flickr.com/photos/28695072@n08/5523010197/">feral78</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by/2.0/">cc</a>
Identificar los procesos a medir Objetivos y metas del negocio y cómo se relacionan con el software Identificar procesos críticos Identificar problemas potenciales asociados con el proceso Agrupar los problemas potenciales en áreas comunes ó tópicos
Qué tipo de información es útil? Número de transacciones Periodo de ocurrencia de las transacciones Número de usuarios en el sistema Cualquier dato histórico que ayude a desarrollar datos apropiados de prueba
Perfiles Se desarrollan con el fin de evaluar la confiabilidad del software y se usan como base de las pruebas estadísticas 1. Del cliente 2.Del usuario 3.Del sistema 4.Funcional 5.Operacional
1 y 2. Perfiles: cliente y usuario. Extraer porcentajes. Cliente el que adquiere el software. Ejemplo: sistema para impuestos despachos de contadores 40%, contadores 35% y contribuyentes individuales 25% Usuarios quienes lo usan. Ejemplo: sistema administrativo médico enfermeras 50%, técnicos 30% y administrativos 20%
3. Perfiles: del sistema Conjunto de funciones u operaciones definidas convenientemente para analizar el comportamiento del sistema en ejecución para distintos modos Ejemplo para el sistema médico: modo administrador modo para enfermeras/técnicos modo para administrativos
4. Perfiles: funcionales Se elaboran generalmente en la fase de requerimientos Proporcionan una vista cuantitativa del uso relativo de cada una de las diferentes funciones del sistema Definir variables del ambiente. Ejemplo: tipo de teléfono: analógico, digital
5. Perfiles: operacional Una operación representa una tarea realizada Una función puede estar compuesta de una o más operaciones Ejemplo: la modificación de un registro tiene dos operaciones: eliminar el registro antiguo agregar el nuevo registro
5. Perfiles: operacional Pasos sugeridos para elaborar el perfil operacional Dividir la ejecución en corridas Identificar las entradas Particionar el espacio de entrada en operaciones determinar las probabilidades de ocurrencia para las operaciones El perfil operacional se usa por los testers para seleccionar operaciones y entradas de prueba de acuerdo a las probabilidades de ocurrencia.
Aplicación Se identifican los procesos a medir Se seleccionan muestras de uso del software representado por el perfil operacional Se efectúa análisis estadístico para generar conclusiones Se generan casos de prueba
Beneficios Las pruebas se concentran en las partes del sistema que se usan con mayor frecuencia sistema más confiable desde el punto de vista del usuario Proporciona criterios cuantitativos para decisiones de la completez de las pruebas y liberación del sistema
Organizar la información La información que se recopila tiene por objetivo la búsqueda de patrones, tendencias y relaciones Al eliminar el error del cuadro de diálogo, la cantidad de usuarios se incrementó
Herramientas (métodos) Diagramas de dispersión Gráficas de ejecución Diagramas de causa y efecto (fishbone) Histogramas Barras Pareto
Diagrama de dispersión Indican si hay relación entre dos variables Tendencias No necesariamente indican causalidad
Gráficas de ejecución No. de defectos encontrados Tipo de diagrama de dispersión que puede usarse para examinar tendencias que ocurren sobre el tiempo 80 70 60 50 40 30 20 10 0 0 1 2 3 4 5 6 7 8 Semana Promedio: 43.1 errores por semana 9
Diagramas de causa-efecto (fishbone) Identifica las posibles causas de un problema representando las relaciones entre efecto y su posibles causa http://www.mc.vanderbilt.edu/root/vumc.php?site=qicourse&doc=11811 http://www.stcsig.org/quality/newsletters/nl0603/nl0603_six_sigma.html
Diagramas de causa-efecto (fishbone) http://www.stcsig.org/quality/newsletters/nl0603/nl0603_six_sigma.html
Histograma Descripción gráfica de valores de acuerdo a la frecuencia de ocurrencia. Ejemplo: valores de una muestra de 100 tiempos de respuesta (oprime una tecla hasta que el servidor responde) La especificación dice que los tiempos de respuesta deben ser menores a 3 segundos El requerimiento no está siendo satisfecho y hay un problema de performance
Histogramas Tiempo de respuesta de 100 muestras Histograma del tiempo de respuesta
Histogramas Útiles para caracterizar los valores observados de cada atributo. Ejemplos: tiempo de reparación de defectos, tiempo entre fallas, defectos encontrados por prueba o inspección y registros diarios. Son útiles para revelar diferencias entre procesos, proyectos o tiempo.
Diagramas de Pareto Los eventos se ordenan por frecuencia. Permite identificar las principales causas de problemas. Permite una rápida separación entre lo importante y lo trivial.
Diagramas de Pareto Los eventos se ordenan por frecuencia. Permite identificar las principales causas de problemas. Permite una rápida separación entre lo importante y lo trivial. Pueden usarse para comparar el estado antes y después de las mejoras.
Ejemplo
14 / 34 Prototype: Surfeous hungry delicious Social age: 25 likes vegan credit card entrepreneur Context location ugh slow chinese sunny rainy indoor outdoor yum! awful superb noisy
16 / 34 Contextual models service (23) environment (2) user (21)
17 / 34 Rules and relations: examples user - service profile person(x) hasoccupation(x, student) restaurant(r) hascost(r, low) select(x, R) user - environment profile person(x) isjapanese(x, true) queryplace(x, USA) restaurant(r) isveryclose(r, true) select(x, R) environment - service profile currentweather(today, rainy) restaurant(r) space(r, closed) select(r) Relations likesfood(x, Y) X: person, Y : cuisine-type currentweather(x, Y) X: query, Y : weather space(x, Y) X: restaurant, Y : {closed, open}
Análisis de atributos
Actividad y Tarea 30
Actividad 20 - individual Análisis de atributos Instala el software WEKA http://www.cs.waikato.ac.nz/ml/weka/ Descarga los archivos itematts2.csv y useratts2.csv En WEKA: construye un árbol de decisión Carga el archivo itematts2.csv (Pre-process Open File) Classify J48 Test options Cross validation 10 Define la clase rating Start Revisa y anota la precisión 31
Actividad 20 - individual En la pestaña Select Attributes selecciona como Attribute Evaluator CfsSubsetEval Selecciona como Search Method Best First Selecciona Cross Validation con Folds 10 Anota los atributos que evalúa con 100% - esos son los relevantes Ve a la pestaña Preprocess Elimina los atributos no relevantes (los que obtuvieron 0%) Vuelve a construir un árbol con ese archivo reducido y observa si la evaluación mejoró, empeoró o quedó muy parecida. Haz el mismo proceso para useratts2.csv Reporta tus resultados y envía por correo. 32
Tarea 20: individual Une los archivos itematts2.csv y useratts2.csv Haz el análisis de atributos de la misma forma que la actividad. Obtienes mejores resultados con el modelo de usuario (useratts2.csv), con el modelo de ítem (itematts2.csv) o con la unión de los modelos? qué atributos son los mejores? Reporta resultados (pdf) y envía. Fecha de entrega: Abril 19 2013 33
Referencias Cobb, R. H. and Mills, Harlan D., "Engineering Software Under Statistical Quality-Control" (1990). The Harlan D. Mills Collection. http://trace.tennessee.edu/utk_harlan/14 34