Está en la página 1de 79

La Calidad del

Software y los
Procesos de
Testing

GFI Informtica
La Calidad del Software y los Procesos de Testing
ndice

Introduccin. Visin general del proceso de


pruebas.
Metodologas de pruebas alineadas con
procesos de desarrollo
Uso de herramientas OpenSource
Aspectos diferenciadores herramientas
comerciales frente a OpenSource
Factora de pruebas
La Calidad del Software y los Procesos de Testing
ndice

Introduccin. Visin general del proceso


de pruebas.
Metodologas de pruebas alineadas con
procesos de desarrollo
Uso de herramientas OpenSource
Aspectos diferenciadores herramientas
comerciales frente a OpenSource
Factora de pruebas
La Calidad del Software y los Procesos de Testing
Introduccin. Definicin de calidad software

La 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).
Concordancia 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)
La Calidad del Software y los Procesos de Testing
Introduccin
Visin General del Proceso de Pruebas
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.
Decisiones de pruebas deberan basarse en satisfaccin del cliente.
Este es el objetivo ltimo.
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.
De perogrullo: los defectos mas costosos son aquellos que no se
detectan.
La Calidad del Software y los Procesos de Testing
Introduccin
Visin General del Proceso de Pruebas
El proceso de Pruebas es una parte del ciclo de vida del
Software.
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.

Planificacin Estandar
Planificacin Estandar Evolucin Real
Evolucin Ideal
Ideal Pruebas
Pruebas
Planificacin Estandar Evolucin Real Ideal Pruebas

INTEGRACIN
INTEGRACIN
INTEGRACIN
CODIFICACIN
CODIFICACIN

INTEGRACININTEGRACIN
CODIFICACIN
DETALLADO

PRUEBAS
PRUEBAS
PRUEBAS
DETALLADO
DISEO DETALLADO
NIVEL
ALTONIVEL

CODIFICACIN
DISEO ALTO NIVEL

INTEGRACIN
DISEO
DISEOALTO

PRUEBAS
DISEO
REQUISITOS
REQUISITOS

PRUEBAS
DISEO
REQUISITOS

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
Introduccin
La falta de cualquiera de estos vertices implica
problemas evidentes:
Carencia Problema Metodologa
Herramientas Falta de
Productividad
Metodologa Proceso
catico y no
repetible

Herramientas Recursos
La Calidad del Software y los Procesos de Testing
ndice

Introduccin. Visin general del proceso de


pruebas.
Metodologas de pruebas alineadas con
procesos de desarrollo
Uso de herramientas OpenSource
Aspectos diferenciadores herramientas
comerciales frente a open-source
Factora de pruebas
La Calidad del Software y los Procesos de Testing
Metodologas de Pruebas alineadas con procesos de desarrollo
Introduccin
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.
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)
La Calidad del Software y los Procesos de Testing
Metodologas de pruebas alineadas con procesos de desarrollo

TMap
TPI
TMM
La Calidad del Software y los Procesos de Testing
Metodologas - TMap

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
Metodologas - TMap

Infraestructura y Herramientas
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

TMap
TPI
TMM
La Calidad del Software y los Procesos de Testing
Metodologas - TPI
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.
El propsito de tales mejoras podra ser alcanzar el nivel 3 del SEI-
CMM ( Capability Maturity Model ).
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.
La Calidad del Software y los Procesos de Testing
Metodologas - TPI
Niveles

Puntos de Verificacin
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 - TPI
Matriz de Madurez
Todos los Niveles y reas Clave
estn interrelacionados en una
Matriz de Madurez de Optimizada (11-13)
Pruebas. Se ha concebido como
una buena manera de expresar
las prioridades internas y Eficiente (6-10)
dependencias entre Niveles y
reas Clave. Controlada (1-5)
No existe graduacin entre
Niveles: mientras que un
proceso de pruebas no est
clasificado enteramente como
nivel B, permanecer en el nivel
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.
La Calidad del Software y los Procesos de Testing
Metodologas - TPI
Aplicacin del Modelo TPI
El 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

TMap
TPI
TMM
La Calidad del Software y los Procesos de Testing
Metodologas - TMM

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 de
niveles de madurez y un
modelo de evaluacin.
La Calidad del Software y los Procesos de Testing
Metodologas TMM: Conjunto de Niveles
Se describe cada nivel considerando los objetivos de la organizacin y la
capacidad de test.
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.
Las actividades y tareas
representan las acciones que deben
ser desempeadas en cada nivel
con el propsito de mejorar la
capacidad del test
Se asignan responsabilidades para
las actividades y tareas, a los
gestores, a los desarrolladores y
testers y a los usuarios y clientes
La Calidad del Software y los Procesos de Testing
Metodologas TMM: Modelo de Evaluacin

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.
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

Introduccin. Visin general del proceso de


pruebas.
Metodologas de pruebas alineadas con
procesos de desarrollo
Uso de herramientas OpenSource
Aspectos diferenciadores herramientas
comerciales frente a open-source
Factora de pruebas
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource

Gestin del Ciclo de Pruebas


Automatizacin de Pruebas Funcionales
Pruebas de Carga
Inspeccin de Cdigo
Pruebas Unitarias
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource

Gestin del Ciclo de Pruebas


Automatizacin de Pruebas Funcionales
Pruebas de Carga
Inspeccin de Cdigo
Pruebas Unitarias
La Calidad del Software y los Procesos de Testing
Gestin del Ciclo de Pruebas - Algunas Claves
Documentar las pruebas
Casos de prueba, estrategia de pruebas, ejecuciones
Registrar los problemas encontrados
Separar entornos y manejar configuraciones
Ensayando la implementacin
Definir casos de prueba durante el anlisis es una
forma de documentar el producto
Es una forma de adelantarnos al problema
Testing independiente
El que desarrolla no prueba
Mayor experiencia y concentracin
Nadie est motivado para encontrar sus propios errores
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Herramienta de Gestin

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
Como ejemplo, se muestra la herramienta TestLink.
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Herramienta de Gestin

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
Herramientas Opensource Herramienta de Gestin

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.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource

Gestin del Ciclo de Pruebas


Automatizacin de Pruebas Funcionales
Pruebas de Carga
Inspeccin de Cdigo
Pruebas Unitarias
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Automatizacin Pruebas Funcionales

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

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

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
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

Los casos de prueba,


pueden ser modificados
para introducir puntos de
control, pausas,
verificaciones, etc.
La ejecucin de los
mismos se puede
planificar, agrupando casos
y programndolos.
Se obtienen informes
sobre los resultados de las
ejecuciones.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource

Gestin del Ciclo de Pruebas


Automatizacin de Pruebas Funcionales
Pruebas de Carga
Inspeccin de Cdigo
Pruebas Unitarias
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Pruebas de Carga

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 continuacin podemos ver


la operativa ejemplificada
con la herramienta OpenSta
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Pruebas de Carga

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

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

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

Gestin del Ciclo de Pruebas


Automatizacin de Pruebas Funcionales
Pruebas de Carga
Inspeccin de Cdigo
Pruebas Unitarias
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
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
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.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Entrega de una nueva versin
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail informe SAC

Se realiza la entrega de una nueva


versin de software por parte del
proveedor.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Publicacin de la nueva versin
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail informe SAC

Herramientas:
El jefe de proyecto
publica el entregable en
CVS:
el repositorio comn Implementa un sistema de gestin de
CVS
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 .
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Proceso de integracin continua
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail Informe SAC

El proceso de integracin
continua (automtico) Herramientas:
detecta la nueva versin
en el repositorio y
Continuum v1.0.2:
ejecuta un conjunto de Servidor de integracin continua.
tareas programadas
Realiza tareas programadas sobre
proyectos basados en java.
Alto grado de integracin con Maven.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Notificacin va mail
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail Informe SAC

Se notificar por mail, al conjunto de


usuarios definidos, la nueva entrega.:
Jefe de proyecto.
SAC.
Etc.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Generacin de informes automticamente
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail informe SAC

Herramientas:
Changelog v1.8.2 Se generarn
QALab v0.7.2 automticamente
CheckStyle v2.5 los informes de
JavaDoc Reporte v1.7 calidad
Jcoverage v1.0.9 programados.
Jdepend v1.5
NCSS v1.3
Pmd v1.6
FindBugs v0.9.2
File-Activity 1.5.2
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Publicacin de Informes
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail informe SAC

Herramientas:
Maven v1.0.2:
Se publicarn de forma
Herramienta para la gestin y comprensin de proyectos java.
automtica los informes
Estndar de mercado en el mundo free. generados en el portal de
Metodologa XP. calidad

Herramientas:
Apache v utilizada por explotacin:
Servidor http referente del mercado.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Generacin de resumen
Nueva versin Publicar Integracin Generacin Publicacin
software versin continua informes informes

Notificacin va Generacin
mail informe SAC

El SAC generar un informe con los resultados de las


inspecciones realizadas al cdigo:
Resumen ejecutivo (direccin).
Detalle tcnico (equipo tcnico).
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspeccin de Cdigo
Arquitectura
Internet Internet

CVS Continuum Apache


desarrollo

Equipo SAC
desarrollo

Responsable CVS Maven


proyecto SAC
Desarrollo
(entregas)

Gesti
Gestin Recursos Frontal
versiones SAC

Preexplotacin Explotacin
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource

Gestin del Ciclo de Pruebas


Automatizacin de Pruebas Funcionales
Pruebas de Carga
Inspeccin de Cdigo
Pruebas Unitarias
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Pruebas Unitarias

El peso de la generacin de las pruebas unitarias recae


sobre el equipo de desarrollo.
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.
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 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

Junit es un framework ampliamente


utilizado para la automatizacin de
pruebas unitarias.
El equipo SQA ejecutar
las 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

Cobertura 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.
El 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

A continuacin se muestra una salida


estndar de la herramienta:
La Calidad del Software y los Procesos de Testing
Herramientas Opensource Pruebas Unitarias

Cobertura calcula la cobertura de las


pruebas contabilizando:
Nmero de lneas de cdigo ejecutadas.
Nmero de ramas ejecutadas.
Adicionalmente 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

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

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

Esta 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.
Los resultados de la herramienta permiten
ampliar el plan de prueba unitario con
casos de prueba especficos que cubran el
cdigo no testeado.
Tambin permite identificar porciones de
cdigo muerto que no es posible
ejecutar.
La Calidad del Software y los Procesos de Testing
ndice

Introduccin. Visin general del proceso de


pruebas.
Metodologas de pruebas alineadas con
procesos de desarrollo
Uso de herramientas OpenSource
Aspectos diferenciadores herramientas
comerciales frente a Opensource
Factora de pruebas
La Calidad del Software y los Procesos de Testing
Aspectos diferenciadores Herramientas comerciales frente a Opensource

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!
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

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!)
Inconvenientes Comerciales
Coste licencias. Suele asustar!
La Calidad del Software y los Procesos de Testing
Aspectos diferenciadores Herramientas comerciales frente a Opensource

Conclusiones:
Empezar con opensource no es mala idea:
En entornos web/java exclusivamente
Las herramientas funcionan
Parte del conocimiento adquirido es reaprovechable.
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 tcnico
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
Herramientas Comerciales

Gestin de
Pruebas

Automatiza- Carga y
cin Estrs

Reporte de Pruebas
Incidencias Manuales
La Calidad del Software y los Procesos de Testing
ndice

Introduccin. Visin general del proceso de


pruebas.
Metodologas de pruebas alineadas con
procesos de desarrollo
Uso de herramientas OpenSource
Aspectos diferenciadores herramientas
comerciales frente a Opensource
Factora de pruebas
La Calidad del Software y los Procesos de Testing
Factora de Pruebas - Conceptos

Grupo dedicado que provee testing como un servicio


compartido
Emplea un conjunto de personas que se especializan
en uno o mltiples tipos de testing o uno o mas
dominios de negocio o tecnolgicos.
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

Acercamiento Tradicional Factora de Pruebas


Se contrata al equipo de test por proyecto, Se contrata al equipo de test para mltiples
dependiendo de la disponibilidad de los proyectos basados en compromisos
recursos
Los desarrolladores se emplean como Se emplean tester especializados con
testers durante las ltimas etapas del habilidades y que han sido entrenados para
proyecto realizar testing
Se dedican diferentes testers durante las Se dedica un pool de recursos de testing
diferentes etapas del proceso de testing o a para uno o mas proyectos
travs de diferentes proyectos
Los procesos de testing son implementados Se aprovechan los procesos de testing a
inconsistentemente a travs de los travs de los diferentes proyectos
proyectos Consistencia
Posible duplicacin de habilidades y Se aprovecha ptimamente las diversas
entrenamiento a travs de los diferentes habilidades a travs de los diferentes
proyectos proyectos
La Calidad del Software y los Procesos de Testing
Factora de Pruebas Requisitos de una Factora de Pruebas

Centro de pruebas externo Entregar cdigo fuente


Proyectos de Pruebas Entornos altamente emulables
Interlocucin a travs del cliente
Pruebas 80% caja negra
Ciclo de vida iterativo
incremental
La Calidad del Software y los Procesos de Testing
Factora de Pruebas Funcionalidad

Gestin de la configuracin SW

Aseguramiento de la Calidad

Help Desk
Gestin de Clientes

Gestin de Pruebas

Seguridad
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

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
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
Disponibilidad de equipamiento, infraestructura, herramientas
Flexibilidad y adaptabilidad
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

Equipo base + recursos bajo demanda


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, Mainframe
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
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
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 procesos
Opcin 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

Mejorar el uso de los recursos internos optimizando los


periodos de sobrecarga
Introducir su producto en el mercado mas rpido
Arranque inmediato
Absorber los retrasos y cambios repetitivos
La Calidad del Software y los Procesos de Testing
Factora de Pruebas SLA: Acuerdo de Nivel de Servicio
FASE DE ANALISIS DISEO Y CONSTRUCCIN
Criticidad Indicador Valor Objetivo
=0% requisitos no incorporados en la solucin =100%
1
3 iteraciones >90%
=10% requisitos no incorporados en la solucin =100%
2
3 iteraciones >90%

FASE DE PRUEBAS
Criticidad Indicador Valor Objetivo
20% sobre el total de pruebas en el plan de pruebas >90%
1
3 iteraciones >90%

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


2
2 iteraciones >90%

FASE DE IMPLANTACIN/PASO A PRODUCCIN


Criticidad Indicador Valor Objetivo
10% n de componentes instalados respecto a la planificacin >90%
1
2 iteraciones >90%
20% n de componentes instalados respecto a la planificacin >90%
2
2 iteraciones >90%
La Calidad del Software y los Procesos de Testing
Factora de Pruebas Conclusiones

Las Factoras de Pruebas son un concepto focalizado en


el outsourcing estratgico del testing
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
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
Validacin Pruebas de
Funcional Carga
Test de caja negra basados Conjunto de pruebas
en los requisitos y las dinmicas que aseguran el
especificaciones funcionales comportamiento del sistema
en determinados escenarios

Automatizacin Test de
del Servicio Usabilidad
Automatizacin de las Validacin del diseo y
actividades de SQA: anlisis facilidad de uso de los
de cdigo, ejecucin de interfaces de usuario,
casos, reporte de defectos, siguiendo los estndares de
gestin de pruebas mercado

Revisin de la seguridad Test de


del cdigo Inspeccin Caja Blanca
Revisin de la seguridad de documental Revisin del diseo y
las aplicaciones, Validacin, verificacin y codificacin de las distintas
principalmente web ante las trazabilidad de requisitos y capas: Interfaz de usuario,
vulnerabilidades conocidas documentacin funcional datos e integracin
La Calidad del Software y los Procesos de Testing

Gracias