936_Lacalidaddelsoftwareylosprocesosdetesting

79
La Calidad del Software y los Procesos de Testing GFI Informática

description

Ingenieria Software

Transcript of 936_Lacalidaddelsoftwareylosprocesosdetesting

  • La Calidad del Software y los Procesos de Testing

    GFI Informtica

  • La Calidad del Software y los Procesos de Testing

    ndice

    aIntroduccin. Visin general del proceso de pruebas.

    aMetodologas de pruebas alineadas con procesos de desarrollo

    aUso de herramientas OpenSource aAspectos diferenciadores herramientas

    comerciales frente a OpenSource aFactora de pruebas

  • La Calidad del Software y los Procesos de Testing

    ndice

    aIntroduccin. Visin general del proceso de pruebas.

    aMetodologas de pruebas alineadas con procesos de desarrollo

    aUso de herramientas OpenSource aAspectos diferenciadores herramientas

    comerciales frente a OpenSource aFactora de pruebas

  • La Calidad del Software y los Procesos de Testing

    aLa calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario. (IEEE, Std. 610-1990).aConcordancia del software producido con los requerimientos explcitamente establecidos, con los estndares de desarrollo prefijados y con los requerimientos implcitos no establecidos formalmente, que desea el usuario (Pressman, 1998)

    Introduccin. Definicin de calidad software

  • La Calidad del Software y los Procesos de Testing

    Introduccin Visin General del Proceso de Pruebasa El software lo desarrollan las personas, y stas comenten errores; no

    se puede prevenir completamente la introduccin de stos defectos, pero si se puede trabajar para localizarlos especialmente los mas crticos.

    a Decisiones de pruebas deberan basarse en satisfaccin del cliente. Este es el objetivo ltimo.

    a Mayor parte de los defectos se concentran en las etapas tempranas del proceso de desarrollo y el costo de correccin aumenta a medida que permanece no detectado.

    a De perogrullo: los defectos mas costosos son aquellos que no se detectan.

  • La Calidad del Software y los Procesos de Testing

    Planificacin Estandar Evolucin Real Ideal Pruebas

    a El proceso de Pruebas es una parte del ciclo de vida del Software.

    a Interviniendo desde la concepcin detallada de la aplicacin y colaborando hasta su puesta final en produccin, dando as en su conjunto un alto nivel de calidad.

    R

    E

    Q

    U

    I

    S

    I

    T

    O

    S

    D

    I

    S

    E

    O

    A

    L

    T

    O

    N

    I

    V

    E

    L

    D

    I

    S

    E

    O

    D

    E

    T

    A

    L

    L

    A

    D

    O

    I

    N

    T

    E

    G

    R

    A

    C

    I

    N

    P

    R

    U

    E

    B

    A

    S

    C

    O

    D

    I

    F

    I

    C

    A

    C

    I

    N

    I

    N

    T

    E

    G

    R

    A

    C

    I

    N

    P

    R

    U

    E

    B

    A

    S

    R

    E

    Q

    U

    I

    S

    I

    T

    O

    S

    D

    I

    S

    E

    O

    A

    L

    T

    O

    N

    I

    V

    E

    L

    D

    I

    S

    E

    O

    D

    E

    T

    A

    L

    L

    A

    D

    O

    I

    N

    T

    E

    G

    R

    A

    C

    I

    N

    P

    R

    U

    E

    B

    A

    S

    C

    O

    D

    I

    F

    I

    C

    A

    C

    I

    N

    I

    N

    T

    E

    G

    R

    A

    C

    I

    N

    P

    R

    U

    E

    B

    A

    S

    R

    E

    Q

    U

    I

    S

    I

    T

    O

    S

    D

    I

    S

    E

    O

    A

    L

    T

    O

    N

    I

    V

    E

    L

    D

    I

    S

    E

    O

    D

    E

    T

    A

    L

    L

    A

    D

    O

    I

    N

    T

    E

    G

    R

    A

    C

    I

    N

    P

    R

    U

    E

    B

    A

    S

    C

    O

    D

    I

    F

    I

    C

    A

    C

    I

    N

    Planificacin Estandar Evolucin Real Ideal Pruebas

    I

    N

    T

    E

    G

    R

    A

    C

    I

    N

    P

    R

    U

    E

    B

    A

    S

    C

    O

    D

    I

    F

    I

    C

    A

    C

    I

    N

    Planificacin Estandar Evolucin Real Ideal Pruebas

    Introduccin Visin General del Proceso de Pruebas

  • La Calidad del Software y los Procesos de Testing

    Introduccin Algo mas que pruebas Software

    Pruebas Software

    Gestin del Ciclo de

    Vida de la Calidad

    Software

  • La Calidad del Software y los Procesos de Testing

    Proceso catico y no repetible

    Metodologa

    Falta de Productividad

    HerramientasProblemaCarencia

    Recursos

    Metodologa

    Herramientas

    Introduccin

    aLa falta de cualquiera de estos vertices implica problemas evidentes:

  • La Calidad del Software y los Procesos de Testing

    ndice

    aIntroduccin. Visin general del proceso de pruebas.

    aMetodologas de pruebas alineadas con procesos de desarrollo

    aUso de herramientas OpenSource aAspectos diferenciadores herramientas

    comerciales frente a open-sourceaFactora de pruebas

  • La Calidad del Software y los Procesos de Testing

    a La evolucin de los modelos especficos de test aumenta satisfactoriamente la calidad de dichos procesos y consecuentemente, los coloca en una posicin relevante dentro de la ingeniera del software.

    a Los modelos y estndares de evaluacin de procesos de software ofrecen herramientas para establecer niveles de madurez de desarrollo y mantenimiento del software. Sin embargo, la sido constatado que estos modelos y estndares no dirigen adecuadamente sus enfoques a los procesos de test. En este sentido, se presentan, a continuacin, tres modelos de evaluacin y mejora de procesos de test:`Acercamiento a la gestin de pruebas (Test Management

    Approach, TMap)`Modelo de Mejora del Proceso de test (Test Process Improvement,

    TPI)`Modelo de Madurez del Test (Test Maturity Model, TMM)

    Metodologas de Pruebas alineadas con procesos de desarrollo

    Introduccin

  • La Calidad del Software y los Procesos de Testing

    Metodologas de pruebas alineadas con procesos de desarrollo

    aTMapaTPIaTMM

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TMap

    a La metodologa TMAP, est basada en cuatro piedras angulares:`Proceso de desarrollo relacionado con el modelo de

    ciclo de vida para las actividades de pruebas (L)`Slida Organizacin (O)`Recursos e Infraestructura (I)`Tcnicas utilizables para varias actividades de

    pruebas (T)

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TMap

    Modelo de ciclo de vida de Pruebas

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TMap

    Tcnicas

  • La Calidad del Software y los Procesos de Testing

    Infraestructura y Herramientas

    Metodologas - TMap

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TMap

    Organizacin

  • La Calidad del Software y los Procesos de Testing

    Metodologas de pruebas alineadas con procesos de desarrollo

    aTMapaTPIaTMM

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TPI

    a El modelo se compone de 20 reas Clave, cada una con diferentes niveles de madurez. Los niveles de todas las reas Clave estn integrados en una Matriz de Madurez. Cada nivel est descrito por varios Puntos de Verificacin. Tambin forman parte del modelo algunas Sugerencias de Mejora que ayudan a alcanzar el nivel deseado.

    a El modelo TPI est basado en las mejores prcticas de la industria relativas a la mejora del proceso de pruebas. El modelo incluye guas prcticas para evaluar el nivel de madurez de pruebas de una organizacin as como los pasos para mejorar el proceso.

    a El propsito de tales mejoras podra ser alcanzar el nivel 3 del SEI-CMM ( Capability Maturity Model ).

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TPINiveles

    Puntos de Verificacina Los requisitos para cada nivel estn

    definidos en forma de Puntos de Verificacin ( Checkpoints ): son preguntas que necesitan ser respondidas afirmativamente para poder calificar a dicho nivel. A partir de las listas de verificacin se puede evaluar un proceso de pruebas y se puede determinar para cada rea Clave el Nivel alcanzado. A medida que se considera mejorada cada rea Clave, los Puntos de Verificacin son acumulables: para poder clasificar para el nivel B, el proceso de pruebas necesita responder afirmativamente tanto a los Puntos de Verificacin del nivel B como del nivel A.

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TPIMatriz de Madureza Todos los Niveles y reas Clave

    estn interrelacionados en una Matriz de Madurez de Pruebas. Se ha concebido como una buena manera de expresar las prioridades internas y dependencias entre Niveles y reas Clave.

    a No existe graduacin entre Niveles: mientras que un proceso de pruebas no estclasificado enteramente como nivel B, permanecer en el nivel A.

    a El propsito principal de la matriz es mostrar los puntos fuertes y dbiles del actual proceso de pruebas y ofrecer una ayuda a la hora de determinar la prioridad de las acciones de mejora.

    Optimizada (11-13)

    Eficiente (6-10)

    Controlada (1-5)

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TPIAplicacin del Modelo TPI

    aEl proceso de mejora de pruebas es similar a cualquier otro proceso de mejora. La figura siguiente muestra las diferentes actividades de un proceso de mejora.

  • La Calidad del Software y los Procesos de Testing

    Metodologas de pruebas alineadas con procesos de desarrollo

    aTMapaTPIaTMM

  • La Calidad del Software y los Procesos de Testing

    Metodologas - TMM

    a El modelo TMM es un modelo de evaluacin del proceso de test, guiado por el conjunto bsicos de conceptos del CMM y compuesto por dos componentes principales: un conjunto deniveles de madurez y un modelo de evaluacin.

  • La Calidad del Software y los Procesos de Testing

    a Se describe cada nivel considerando los objetivos de la organizacin y la capacidad de test.

    a La estructura de cada nivel (excepto el primero), consiste en un conjunto de objetivos de madurez soportado por sub-objetivos (o metas) de madurez que son alcanzados por las actividades, tareas y responsabilidades.

    a Las actividades y tareas representan las acciones que deben ser desempeadas en cada nivel con el propsito de mejorar la capacidad del test

    a Se asignan responsabilidades para las actividades y tareas, a los gestores, a los desarrolladores y testers y a los usuarios y clientes

    Metodologas TMM: Conjunto de Niveles

  • La Calidad del Software y los Procesos de Testing

    Metodologas TMM: Modelo de Evaluacin

    a El Modelo de Evaluacin consiste en un mtodo que permite a la organizacin evaluar y mejorar sus procesos de test, basndose en un cuestionario de evaluacin, un procedimiento de evaluacin y el entrenamiento y criterios de seleccin del equipo de evaluacin.

    a Los objetivos de este componente son: proveer un esquema de evaluacin de procesos de test de software y un fundamento para la mejora de dichos procesos a travs de anlisis de datos y planteamiento de acciones, as como contribuir con la ingeniera del proceso de software.

  • La Calidad del Software y los Procesos de Testing

    ndice

    aIntroduccin. Visin general del proceso de pruebas.

    aMetodologas de pruebas alineadas con procesos de desarrollo

    aUso de herramientas OpenSource aAspectos diferenciadores herramientas

    comerciales frente a open-sourceaFactora de pruebas

  • La Calidad del Software y los Procesos de Testing

    Uso de Herramientas Opensource

    aGestin del Ciclo de PruebasaAutomatizacin de Pruebas FuncionalesaPruebas de CargaaInspeccin de CdigoaPruebas Unitarias

  • La Calidad del Software y los Procesos de Testing

    Uso de Herramientas Opensource

    aGestin del Ciclo de PruebasaAutomatizacin de Pruebas FuncionalesaPruebas de CargaaInspeccin de CdigoaPruebas Unitarias

  • La Calidad del Software y los Procesos de Testing

    a Registrar los problemas encontradosa Separar entornos y manejar configuraciones

    `Ensayando la implementacina Definir casos de prueba durante el anlisis es una

    forma de documentar el producto`Es una forma de adelantarnos al problema

    a Testing independiente`El que desarrolla no prueba`Mayor experiencia y concentracin`Nadie est motivado para encontrar sus propios errores

    Gestin del Ciclo de Pruebas - Algunas Claves

    a Documentar las pruebas`Casos de prueba, estrategia de pruebas, ejecuciones

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Herramienta de Gestin

    a La gestin de las pruebas, requiere que la herramienta con la que se trabaje cumpla algunas caractersticas como:`Soportar en paralelo el desarrollo de la aplicacin y la gestin de las

    pruebas` Trazabilidad de requisitos a pruebas gestionando ejecuciones as como

    defectos y su resolucin`Mejora la predictibilidad del proyecto`Acceso en cualquier momento y lugar a pruebas e informes de ejecucin`Control centralizado`Mejora la colaboracin y comunicacin entre equipos y proyectos`Potencia la reutilizacin de objetos de prueba`Acceso protegido a elementos del proyecto`Sistema de informes

    a Como ejemplo, se muestra la herramienta TestLink.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Herramienta de Gestin

    a TestLink, permite de manera intuitiva, la elaboracin de casos de prueba, con los pasos a seguir para su posterior ejecucin, as como de los resultados esperados, quedndose todo ordenado y accesible a travs de un rbol de navegacin.

  • La Calidad del Software y los Procesos de Testing

    a Durante todo el ciclo de vida se pueden obtener mtricas tanto del los casos de prueba generados como de estado de la ejecucin de los mismos.

    Herramientas Opensource Herramienta de Gestin

  • La Calidad del Software y los Procesos de Testing

    Uso de Herramientas Opensource

    aGestin del Ciclo de PruebasaAutomatizacin de Pruebas FuncionalesaPruebas de CargaaInspeccin de CdigoaPruebas Unitarias

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Automatizacin Pruebas Funcionales

    a Las herramientas de Automatizacin de pruebas funcionales cumplen el siguiente ciclo de trabajo:`Planificacin de pruebas automticas`Registro de las acciones de usuario`Control y verificacin de los Checkpoints`Comprobacin resultado esperado = resultado obtenido`Gestin del mapa de interfaz de usuario`Testing modular y batch

    a Como ejemplo, tenemos la herramienta Selenium, que nos permite la operativa de trabajo descrita.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Automatizacin Pruebas Funcionales

    a Primeramente, se graban las acciones del usuario sobre la aplicacin, quedndose stas recogidas en la aplicacin para su posterior tratamiento, que se realizar modificando el cdigo generado

    a Prcticamente la totalidad de las herramientas Opensource, trabajan solo sobre aplicaciones Web.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Automatizacin Pruebas Funcionales

    a Los casos de prueba, pueden ser modificados para introducir puntos de control, pausas, verificaciones, etc.a La ejecucin de los mismos se puede planificar, agrupando casos y programndolos.aSe obtienen informes sobre los resultados de las ejecuciones.

  • La Calidad del Software y los Procesos de Testing

    Uso de Herramientas Opensource

    aGestin del Ciclo de PruebasaAutomatizacin de Pruebas FuncionalesaPruebas de CargaaInspeccin de CdigoaPruebas Unitarias

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas de Carga

    a Las herramientas para la realizacin de pruebas de Carga, tiene las siguientes funcionalidades`Planificacin de pruebas de carga`Creacin de los escenarios de prueba`Simulacin de n usuarios concurrentes`Anlisis de resultados de ejecucin de los distintos

    escenarios

    a A continuacin podemos ver la operativa ejemplificada con la herramienta OpenSta

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas de Carga

    a Para la ejecucin del test, se introducen datos como nmero de usuarios, scripts que compondrn la ejecucin y elementos a ser testados como % Cpu,memoria, etc...

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas de Carga

    a Durante la ejecucin de la prueba, se puede monitorizar todos los recursos que sean de nuestro inters.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas de Carga

    a Posteriormente a la ejecucin, se pueden obtener tanto log como grficas con las estadsticas de la prueba. Algunas de ellas son las de puntos de medida respecto del tiempo, puntos de medida respecto del nmero de usuarios, nmero de usarios activos, errores HTTP, etc

  • La Calidad del Software y los Procesos de Testing

    Uso de Herramientas Opensource

    aGestin del Ciclo de PruebasaAutomatizacin de Pruebas FuncionalesaPruebas de CargaaInspeccin de CdigoaPruebas Unitarias

  • La Calidad del Software y los Procesos de Testing

    a Las inspecciones del cdigo tienen el objetivo de detectar aspectos que influyen en la calidad de ste:`Errores de ejecucin`Mermas de rendimiento`Cdigo muerto`Redundancia de cdigo` Incumplimiento de arquitectura` Incumplimiento de estndares tcnicos a nivel de codificacin.`Mantenibilidad del cdigo

    a Metodologa de trabajo:`Priorizacin: Se suele aplicar orientacin al riesgo. `Medicin: Uso de herramientas de anlisis. Se obtienen mtricas de

    nivel tcnico que permiten la deteccin de incumplimientos y/o deficiencias, cuyo conjunto se expresa en:

    ` Informes de auditoria.` Plan de mejora. Informe de recomendaciones para la mejora.

    Uso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Publicarversin

    Nueva versin software

    Se realiza la entrega de una nueva versin de software por parte del proveedor.

    Integracincontinua

    Generacininformes

    Publicacininformes

    Notificacin vamail

    Generacininforme SAC

    Uso de Herramientas Opensource . Inspeccin de CdigoEntrega de una nueva versin

  • La Calidad del Software y los Procesos de Testing

    Integracincontinua

    Generacininformes

    Publicacininformes

    Notificacin vamail

    Generacininforme SAC

    Publicarversin

    Nueva versin software

    El jefe de proyecto publica el entregable en el repositorio comn CVS

    Herramientas: CVS:

    Implementa un sistema de gestin de versiones. Mantiene el registro de todo el trabajo y los cambios en la implementacin de un proyecto, permitiendo la colaboracin entre distintos desarrolladores. Es un referente en software libre de gestin de versiones .

    Uso de Herramientas Opensource . Inspeccin de CdigoPublicacin de la nueva versin

  • La Calidad del Software y los Procesos de Testing

    El proceso de integracin continua (automtico) detecta la nueva versin en el repositorio y ejecuta un conjunto de tareas programadas

    Herramientas: Continuum v1.0.2:

    Servidor de integracin continua. Realiza tareas programadas sobre proyectos basados en java. Alto grado de integracin con Maven.

    Generacininformes

    Publicacininformes

    Notificacin vamail

    GeneracinInforme SAC

    Nueva versin software

    Publicarversin

    Integracincontinua

    Proceso de integracin continuaUso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Generacininformes

    Publicacininformes

    GeneracinInforme SAC

    Nueva versin software

    Publicarversin

    Notificacin vamail

    Integracincontinua

    Se notificar por mail, al conjunto de usuarios definidos, la nueva entrega.:

    Jefe de proyecto. SAC. Etc.

    Notificacin va mailUso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Publicacininformes

    Notificacin vamail

    Generacininforme SAC

    Nueva versin software

    Publicarversin

    Integracincontinua

    Generacininformes

    Se generarn automticamente los informes de calidad programados.

    Herramientas: Changelog v1.8.2 QALab v0.7.2 CheckStyle v2.5 JavaDoc Reporte v1.7 Jcoverage v1.0.9 Jdepend v1.5 NCSS v1.3 Pmd v1.6 FindBugs v0.9.2 File-Activity 1.5.2

    Generacin de informes automticamenteUso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Generacininformes

    Generacininforme SAC

    Nueva versin software

    Publicarversin

    Integracincontinua

    Se publicarn de forma automtica los informes generados en el portal de calidad

    Notificacin vamail

    Publicacininformes

    Herramientas: Maven v1.0.2:

    Herramienta para la gestin y comprensin de proyectos java.Estndar de mercado en el mundo free.Metodologa XP.

    Herramientas: Apache v utilizada por explotacin:

    Servidor http referente del mercado.

    Publicacin de InformesUso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Generacininformes

    Nueva versinsoftware

    Publicarversin

    Integracincontinua

    Notificacin vamail

    Publicacininformes

    Generacininforme SAC

    El SAC generar un informe con los resultados de las inspecciones realizadas al cdigo: Resumen ejecutivo (direccin). Detalle tcnico (equipo tcnico).

    Generacin de resumenUso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Responsableproyecto

    Internet

    CVSSAC

    (entregas)

    Continuum

    Maven

    Apache

    Preexplotacin

    SAC

    Desarrollo

    GestiGestinnversionesversiones

    RecursosRecursosSACSAC

    FrontalFrontal

    Explotacin

    CVSdesarrollo

    Equipodesarrollo

    Internet

    ArquitecturaUso de Herramientas Opensource . Inspeccin de Cdigo

  • La Calidad del Software y los Procesos de Testing

    Uso de Herramientas Opensource

    aGestin del Ciclo de PruebasaAutomatizacin de Pruebas FuncionalesaPruebas de CargaaInspeccin de CdigoaPruebas Unitarias

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    a El peso de la generacin de las pruebas unitarias recae sobre el equipo de desarrollo.

    a La responsabilidad del equipo de SQA es la de ejecutar el conjunto de pruebas unitarias, validar los resultados y medir el grado de cobertura de las mismas.

    a El conjunto de pruebas unitarias proporcionadas por el equipo de desarrollo debe cumplir los siguientes normas:` Ejecutables de forma automtica.` Independencia del entorno.` Autocontenidas.

    Preprocesamiento.Ejecucin.Postprocesamiento.

    a A continuacin se muestra un ejemplo de la labor del equipo de SQA en un conjunto de pruebas basadas en Junit y Cobertura.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    aJunit es un framework ampliamente utilizado para la automatizacin de pruebas unitarias.

    aEl equipo SQA ejecutarlas pruebas unitarias proporcionadas por el equipo de desarrollo obteniendo un informe con el resultado de la ejecucin de las mismas.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    aCobertura es una herramienta opensource que mide la cobertura de las pruebas por medio de la instrumentalizacin del cdigo y la posterior medicin de las lneas de cdigo ejecutadas por el conjunto de casos de prueba unitarios.

    aEl equipo de SQA instrumentalizara el cdigo y posteriormente ejecutara el conjunto de pruebas unitarias analizando los resultados.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    aA continuacin se muestra una salida estndar de la herramienta:

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    aCobertura calcula la cobertura de las pruebas contabilizando:`Nmero de lneas de cdigo ejecutadas.`Nmero de ramas ejecutadas.

    aAdicionalmente Cobertura calcula la complejidad ciclomtica (Mc-Cabe) de cada una de las clases.

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    a La herramienta permite realizar drill-down para visualizar la cobertura de las clases pertenecientes a un determinado paquete

    a Y llegar al mximo detalle visualizando las lneas de cdigo ejecutadas en una determinada clase

  • La Calidad del Software y los Procesos de Testing

    Herramientas Opensource Pruebas Unitarias

    aEsta herramienta permite al equipo de SQA validar el porcentaje de cobertura de las pruebas unitarias realizadas por el equipo de desarrollo, identificando mdulos poco probados o no probados.

    aLos resultados de la herramienta permiten ampliar el plan de prueba unitario con casos de prueba especficos que cubran el cdigo no testeado.

    aTambin permite identificar porciones de cdigo muerto que no es posible ejecutar.

  • La Calidad del Software y los Procesos de Testing

    ndice

    aIntroduccin. Visin general del proceso de pruebas.

    aMetodologas de pruebas alineadas con procesos de desarrollo

    aUso de herramientas OpenSourceaAspectos diferenciadores herramientas

    comerciales frente a OpensourceaFactora de pruebas

  • La Calidad del Software y los Procesos de Testing

    Aspectos diferenciadores Herramientas comerciales frente a Opensource

    a Ventajas OpenSource` Coste licencias es nulo!` Construidas con los mismos principios que las comerciales:

    Arquitectura Metodologa/Tcnicas

    ` Extensibles/Integrables (Cdigo abierto)` En algunos casos y para ciertos entornos, son ms potentes que las comerciales!

    a Inconvenientes OpenSource` Normalmente slo disponibles para entornos web/java` Entornos de desarrollo espartanos` En ocasiones, lenguajes propietarios` En su desarrollo prima la funcionalidad bsica frente a la avanzada y/o

    utilidades/gadgets` El aprendizaje suele ser costoso

    Material de formacin muy bsico o inexistente No suele disponerse de guidelines metodolgicos

    ` Estabilidad/Fiabilidad` El soporte suele ser una incgnita (comunidades de usuarios/desarrolladores).

    Normalmente es escaso o nulo

  • La Calidad del Software y los Procesos de Testing

    Aspectos diferenciadores Herramientas comerciales frente a Opensource

    a Ventajas Comerciales` Multientorno: web/java, middleware, C/S, legacy (mainframe)` Entornos de desarrollo

    IDE grficos plenos de utilidades Lenguajes abiertos

    ` Entornos de ejecucin con herramientas de anlisis, monitorizacin, diagnstico, ` Robustez y Escalabilidad

    Arquitecturas tolerantes a fallos` Metodologa/Tcnicas: El fabricante aporta las suyas propias` Integradas

    Por supuesto las de un mismo fabricante En muchas ocasiones, entre fabricantes

    ` Integrables (mediante APIS)` Herramientas de Reporting potentes

    Integradas con paquetes ofimticos con su correspondiente plantillaje Dashboards ejecutivos (Web)

    ` Soporte tcnico solvente (cuesta, pero existe!)a Inconvenientes Comerciales

    ` Coste licencias. Suele asustar!

  • La Calidad del Software y los Procesos de Testing

    Aspectos diferenciadores Herramientas comerciales frente a Opensource

    Conclusiones:a Empezar con opensource no es mala idea:

    ` En entornos web/java exclusivamente` Las herramientas funcionan` Parte del conocimiento adquirido es reaprovechable.

    a Pero ojo, hay que tener en cuenta los costes!` Hay un sobreesfuerzo asociado al uso de opensource con

    respecto a comerciales (la productividad no es la misma) que hay que tener en cuenta: Un proyecto grande o varios proyectos pequeos pueden

    justificar la inversin en comerciales` Migrar de opensource a comerciales tiene un coste de

    reciclaje tcnicoa Definitivamente, en algn momento tendremos que

    adquirir alguna herramienta comercial:` Por adecuacin al entorno` Por limitaciones en la funcionalidad de las opensource` Por necesidades de reporting avanzado` Por capricho? A quin no le gusta el Ferrari?

  • La Calidad del Software y los Procesos de Testing

    AutomatizaAutomatizaAutomatiza---cicicinnn

    Reporte de Reporte de Reporte de IncidenciasIncidenciasIncidencias

    Carga y Carga y Carga y EstrEstrEstrsss

    Pruebas Pruebas Pruebas ManualesManualesManuales

    GestiGestiGestin de n de n de PruebasPruebasPruebas

    Herramientas Comerciales

  • La Calidad del Software y los Procesos de Testing

    ndice

    aIntroduccin. Visin general del proceso de pruebas.

    aMetodologas de pruebas alineadas con procesos de desarrollo

    aUso de herramientas OpenSourceaAspectos diferenciadores herramientas

    comerciales frente a OpensourceaFactora de pruebas

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas - Conceptos

    a Grupo dedicado que provee testing como un servicio compartido

    a Emplea un conjunto de personas que se especializan en uno o mltiples tipos de testing o uno o mas dominios de negocio o tecnolgicos.

    a Entre los roles de una Factora de Pruebas se pueden incluir:`Definicin de los procesos y estndares de testing a ser

    adoptados por los proyectos`Implantacin de los procesos y estndares definidos`Provisin de personal cualificado y entrenado a los proyectos`Planificacin y ejecucin de testing para varios proyectos

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas- Tradicional vs FdP

    Se aprovecha ptimamente las diversas habilidades a travs de los diferentes proyectos

    Posible duplicacin de habilidades y entrenamiento a travs de los diferentes proyectos

    Se aprovechan los procesos de testing a travs de los diferentes proyectos Consistencia

    Los procesos de testing son implementados inconsistentemente a travs de los proyectos

    Se dedica un pool de recursos de testing para uno o mas proyectos

    Se dedican diferentes testers durante las diferentes etapas del proceso de testing o a travs de diferentes proyectos

    Se emplean tester especializados con habilidades y que han sido entrenados para realizar testing

    Los desarrolladores se emplean como testers durante las ltimas etapas del proyecto

    Se contrata al equipo de test para mltiples proyectos basados en compromisos

    Se contrata al equipo de test por proyecto, dependiendo de la disponibilidad de los recursos

    Factora de PruebasAcercamiento Tradicional

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Requisitos de una Factora de Pruebas

    a Centro de pruebas externoa Proyectos de Pruebasa Interlocucin a travs del clientea Ciclo de vida iterativo

    incremental

    a Entregar cdigo fuentea Entornos altamente emulablesa Pruebas 80% caja negra

  • La Calidad del Software y los Procesos de Testing

    G

    e

    s

    t

    i

    n

    d

    e

    C

    l

    i

    e

    n

    t

    e

    s

    Gestin de la configuracin SW

    Seguridad

    Aseguramiento de la Calidad

    Gestin de Pruebas

    H

    e

    l

    p

    D

    e

    s

    k

    Factora de Pruebas Funcionalidad

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Operativa

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Perfil del Proveedor

    a Experiencia probada en:` Trabajar (testear) en el entorno de negocio del Cliente` Trabajar en formato Factora de Pruebas, con todas sus implicaciones

    Comunicacin Gestin del proceso Gestin de la Infraestructura Formacin

    a Alcance de su experiencia` Tipos de Test` Entornos de Test` Testing basado en riesgo` Experiencia en su dominio especfico del negocio` Empleados propios y con experiencia en testing

    a Disponibilidad de equipamiento, infraestructura, herramientasa Flexibilidad y adaptabilidada Niveles de servicio ofrecidos

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Composicin del Equipo

  • La Calidad del Software y los Procesos de Testing

    Factoras de Pruebas focalizadas en el cliente

    a Equipo base + recursos bajo demandaa Diferentes acercamientos

    ` Focalizados en tipo de testing Web Testing, Load and Performance testing, Localizacin

    ` Focalizados en herramientas` Focalizados en Tecnologas

    Web, .Net, Java, Cliente/Servidor, Mainframea Mayores ventajas hacia nuestros clientes en trminos

    de:` Competencias tcnicas` Reutilizacin de infraestructuras, test wares...` Retencin de conocimiento` Optimizacin de los procesos

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Que ha funcionado con los clientes

    a Desafos iniciales` Justificacin de costos iniciales para el cliente` Falta de sinergia a travs de diferentes reas de negocio del cliente` Sin certeza de por donde empezar y como proceder` Conflictos entre estandarizacin del proceso y el ahorro del costo a

    travs del outsourcing

    a Como los superamos` Fase Piloto/Pruebas de concepto (rea de bajo riesgo)` Establecimiento de un modelo compartido de servicios de testing,

    recursos del cliente y del proveedor trabajando muy cerca` Se comienza en pequeo, llevando un rea cada vez al modelo de

    Factora de Pruebas.Opcin A: Se comienza con una evaluacin, a travs de las diferentes reas

    para analizar y recomendar estandarizacin de procesosOpcin B: Un rea o aplicacin en concreto, en base a las prioridades

    existentes` Se comienza a incrementar la carga de trabajo/proyectos/reas a

    medida que la confianza va creciendo

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Flexibilidad bajo demanda

    a Mejorar el uso de los recursos internos optimizando los periodos de sobrecarga

    a Introducir su producto en el mercado mas rpidoa Arranque inmediatoa Absorber los retrasos y cambios repetitivos

  • La Calidad del Software y los Procesos de Testing

    Valor ObjetivoIndicadorCriticidad

    Valor ObjetivoIndicadorCriticidad

    >90%2 iteraciones>90%20% n de componentes instalados respecto a la planificacin

    2

    >90%2 iteraciones>90%10% n de componentes instalados respecto a la planificacin

    1

    FASE DE IMPLANTACIN/PASO A PRODUCCIN

    >90%2 iteraciones>90%40% sobre el total de pruebas en el plan de pruebas

    2

    >90%3 iteraciones>90%20% sobre el total de pruebas en el plan de pruebas

    1

    FASE DE PRUEBAS

    >90%3 iteraciones=100%=10% requisitos no incorporados en la solucin

    2

    >90%3 iteraciones=100%=0% requisitos no incorporados en la solucin

    1

    Valor ObjetivoIndicadorCriticidad

    FASE DE ANALISIS DISEO Y CONSTRUCCIN

    Factora de Pruebas SLA: Acuerdo de Nivel de Servicio

  • La Calidad del Software y los Procesos de Testing

    Factora de Pruebas Conclusiones

    a Las Factoras de Pruebas son un concepto focalizado en el outsourcing estratgico del testing

    a Las Factoras de Pruebas centradas en el cliente pueden ofrecer significativos beneficios ya que estn enfocados a mejorar continuamente en base a la experiencia y el conocimiento

    a El valor del negocio del test outsourcing puede ser medido y mejorado a travs de un programa de mtricas consensuado

  • La Calidad del Software y los Procesos de Testing

    Ruegos y Preguntas

    Test de caja negra basados en los requisitos y las

    especificaciones funcionales

    ValidacinFuncional

    Conjunto de pruebas dinmicas que aseguran el

    comportamiento del sistema en determinados escenarios

    Pruebas deCarga

    Validacin del diseo y facilidad de uso de los interfaces de usuario,

    siguiendo los estndares de mercado

    Test deUsabilidad

    Validacin, verificacin y trazabilidad de requisitos y documentacin funcional

    InspeccindocumentalRevisin de la seguridad de

    las aplicaciones, principalmente web ante las vulnerabilidades conocidas

    Revisin de la seguridaddel cdigo

    Automatizacin de las actividades de SQA: anlisis

    de cdigo, ejecucin de casos, reporte de defectos,

    gestin de pruebas

    Automatizacindel Servicio

    Revisin del diseo y codificacin de las distintas capas: Interfaz de usuario,

    datos e integracin

    Test deCaja Blanca

  • La Calidad del Software y los Procesos de Testing

    Gracias