Anda di halaman 1dari 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.

PRUEBAS
PRUEBAS
PRUEBAS

CODIFICACIN

INTEGRACIN
INTEGRACININTEGRACIN

Ideal
Ideal Pruebas
Pruebas
Ideal Pruebas

PRUEBAS
PRUEBAS
PRUEBAS

Evolucin Real
Evolucin
Evolucin Real

INTEGRACIN
INTEGRACIN
INTEGRACIN

CODIFICACIN
CODIFICACIN
CODIFICACIN

DISEO DETALLADO
DISEO
DETALLADO
DISEO
DETALLADO

REQUISITOS
REQUISITOS
REQUISITOS
DISEO ALTO NIVEL
DISEO
DISEOALTO
ALTONIVEL
NIVEL

Planificacin Estandar
Estandar
Planificacin
Planificacin Estandar

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
Herramientas Falta de
Productividad
Metodologa Proceso
catico y no
repetible

Metodologa

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 SEICMM ( 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
Eficiente (6-10)
las prioridades internas y
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
software

Publicar
versin

Se realiza la entrega de una nueva


versin de software por parte del
proveedor.

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
informe SAC

Publicacin
informes

La Calidad del Software y los Procesos de Testing

Uso de Herramientas Opensource . Inspeccin de Cdigo

Publicacin de la nueva versin


Nueva versin
software

Publicar
versin

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

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
informe SAC

Publicacin
informes

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 .

La Calidad del Software y los Procesos de Testing

Uso de Herramientas Opensource . Inspeccin de Cdigo

Proceso de integracin continua


Nueva versin
software

Publicar
versin

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

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
Informe SAC

Publicacin
informes

Herramientas:
Continuum v1.0.2:
Servidor de integracin continua.
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
software

Publicar
versin

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
Informe SAC

Se notificar por mail, al conjunto de


usuarios definidos, la nueva entrega.:
Jefe de proyecto.
SAC.
Etc.

Publicacin
informes

La Calidad del Software y los Procesos de Testing

Uso de Herramientas Opensource . Inspeccin de Cdigo

Generacin de informes automticamente


Nueva versin
software

Publicar
versin

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

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
informe SAC

Publicacin
informes

Se generarn
automticamente
los informes de
calidad
programados.

La Calidad del Software y los Procesos de Testing

Uso de Herramientas Opensource . Inspeccin de Cdigo

Publicacin de Informes
Nueva versin
software

Publicar
versin

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
informe SAC

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
informes

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

La Calidad del Software y los Procesos de Testing

Uso de Herramientas Opensource . Inspeccin de Cdigo

Generacin de resumen
Nueva versin
software

Publicar
versin

Integracin
continua

Generacin
informes

Notificacin va
mail

Generacin
informe SAC

Publicacin
informes

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
desarrollo

Continuum

Apache

SAC

Equipo
desarrollo
Responsable
proyecto

CVS
SAC
(entregas)

Gesti
Gestin
versiones

Preexplotacin

Maven
Desarrollo

Recursos
SAC

Frontal

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
Automatizacin

Carga y
Estrs

Reporte de
Incidencias

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


dependiendo de la disponibilidad de los
recursos

Se contrata al equipo de test para mltiples


proyectos basados en compromisos

Los desarrolladores se emplean como


testers durante las ltimas etapas del
proyecto

Se emplean tester especializados con


habilidades y que han sido entrenados para
realizar testing

Se dedican diferentes testers durante las


diferentes etapas del proceso de testing o a
travs de diferentes proyectos

Se dedica un pool de recursos de testing


para uno o mas proyectos

Los procesos de testing son implementados


inconsistentemente a travs de los
proyectos

Se aprovechan los procesos de testing a


travs de los diferentes proyectos
Consistencia

Posible duplicacin de habilidades y


entrenamiento a travs de los diferentes
proyectos

Se aprovecha ptimamente las diversas


habilidades a travs de los diferentes
proyectos

La Calidad del Software y los Procesos de Testing

Factora de Pruebas Requisitos de una Factora de Pruebas

Centro de pruebas externo


Proyectos de Pruebas
Interlocucin a travs del cliente
Ciclo de vida iterativo
incremental

Entregar cdigo fuente


Entornos altamente emulables
Pruebas 80% caja negra

La Calidad del Software y los Procesos de Testing

Factora de Pruebas Funcionalidad

Aseguramiento de la Calidad

Gestin de Pruebas

Seguridad

Help Desk

Gestin de Clientes

Gestin de la configuracin SW

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

Indicador

Valor Objetivo

=0% requisitos no incorporados en la solucin

=100%

3 iteraciones

>90%

=10% requisitos no incorporados en la solucin

=100%

3 iteraciones

>90%

FASE DE PRUEBAS
Criticidad
1
2

Indicador

Valor Objetivo

20% sobre el total de pruebas en el plan de pruebas

>90%

3 iteraciones

>90%

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

>90%

2 iteraciones

>90%

FASE DE IMPLANTACIN/PASO A PRODUCCIN


Criticidad
1
2

Indicador

Valor Objetivo

10% n de componentes instalados respecto a la planificacin

>90%

2 iteraciones

>90%

20% n de componentes instalados respecto a la planificacin

>90%

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
Funcional

Pruebas de
Carga

Test de caja negra basados


en los requisitos y las
especificaciones funcionales

Conjunto de pruebas
dinmicas que aseguran el
comportamiento del sistema
en determinados escenarios

Automatizacin
del Servicio

Test de
Usabilidad

Automatizacin de las
actividades de SQA: anlisis
de cdigo, ejecucin de
casos, reporte de defectos,
gestin de pruebas

Validacin del diseo y


facilidad de uso de los
interfaces de usuario,
siguiendo los estndares de
mercado

Revisin de la seguridad
del cdigo
Revisin de la seguridad de
las aplicaciones,
principalmente web ante las
vulnerabilidades conocidas

Inspeccin
documental
Validacin, verificacin y
trazabilidad de requisitos y
documentacin funcional

Test de
Caja Blanca
Revisin del diseo y
codificacin de las distintas
capas: Interfaz de usuario,
datos e integracin

La Calidad del Software y los Procesos de Testing

Gracias

Anda mungkin juga menyukai