Está en la página 1de 25

Fundamentos Bsicos de Pruebas

(O: Cmo hacer mejor software y no morir en el intento)

Gerardo Marn

Acerca de
Gerardo: - 30 aos en la industria. - 16 programando nicamente - 15 aos en testing - Algunos problemas de identidad - Dont Panic

@gerardo gmarin@gmail.com

Testing e Ingeniera de Software


La diferencia entre Ingeniera Civil e Ingeniera de Software son seis mil aos que llevan de ventaja formalizando su profesin

Testing e Ingeniera de Software


La otra aproximacin al desarrollo de software es la del artista creativo. Arte: Virtud, disposicin y habilidad para hacer algo.
Good old hackers:
Paul Allen Donald Knuth Steve Wozniack Richard Stallman Linus Torvalds

Testing e Ingeniera de Software


Entonces se necesita un enfoque diferente al del artista. Qu tal ingeniera? En 1975 comienza la inquietud por ingenierizar el software.
The Mithical Man-Month No Silver Bullet

Los sistemas eran ms grandes, con ms recursos. Los requerimientos ms complejos, ms interacciones entre sistemas. No bastaban los virtuosos. Se comenz a requerir tropa y en consecuencia organizacin. Hagamos, entonces Ingeniera.

Testing e Ingeniera de Software


Dos definiciones: Segn Google: engineering /enjni()riNG/ Noun The branch of science and technology concerned with the design, building, and use of engines, machines, and structures.

Real Academia Espaola:


Estudio y aplicacin, por especialistas, de las diversas ramas de la tecnologa.

Metodologas formales y Pruebas.


CMMI considera siempre el proceso final de Mejora Continua como una realimentacin a s mismo. Todo es perfectible CMMI es tmido al hablar de las pruebas de producto. TSP y PSP en sus respectivos Body Of Knowledge lo consideran, lo definen y no dicen jams como aplicarlo. Es bueno tenerlo Y? No sustituye todos los procesos de calidad existentes, sino que los complementa. Metodologas giles: Todos programamos, todos somos testers

Testing e Ingeniera de Software


Teniendo una metodologa bien definida, algunas veces integrar un nuevo proceso a algo que ya funciona bien no es simple.
Pero el resultado debe ser que lo que funciona bien, funcione an mejor.

Testing e Ingeniera de Software


El principio bsico de la calidad:

La Calidad tiene un costo, pero el no tenerla tiene un costo an mayor

Testing e Ingeniera de Software


Hasta el 45% del gasto de TI se destina a pruebas y actividades relacionadas (fuente: TMMi Foundation, http://www.tmmi.org/?q=about-us) Dado que pocos centros de TI llevan mtricas formales de costo de defectos, la informacin es escasa, an en Internet

Sin embargo hay casos documentados de retorno en la inversin (ROI) de hasta 900% usando pruebas automatizadas de regresin. (Fuente: Graham y Fewer, Experiences
of Test Automation: Case Studies of Software Test Automation , AddisonWesley Professional, 2012)

Testing
La funcin de pruebas como tradicionalmente se entiende, algunas veces termina siendo un bloqueo en la oportunidad de entrega:
Hasta que el desarrollo ha sido terminado. Mayormente funcional y poca integracin y menos an regresin

Implementacin tarda de ambiente de pruebas


Tiempo insuficiente para probar adecuadamente (y menos an para corregir defectos).

Testing
Como regla de dedo (a veces soportada con mtricas), el 25% de los recursos de un proyecto deben enfocarse a testing. Como costumbre ese 25% inicia tras la liberacin del cdigo
Si hubo retraso en desarrollo ser menos del 25% del tiempo para probar Considerar el ambiente de pruebas. Habr si acaso uno o dos ciclos de prueba No quedar tiempo para correcciones que no sean crticas. Se delega el seguimiento de defectos (bug tracking) al Help Desk

Testing
Si quieres resultados diferente, acta diferente
Integrar el proceso de pruebas al proceso de desarrollo. Aliviar la carga del desarrollador en labores que no necesariamente son su mejor talento Extender la capacidad del equipo con especialistas en pruebas. Desarrollo y testing no son mutuamente excluyentes.

Proceso de Testing
Las personas:
Roles intercambiables: en corto plazo cualquier miembro del equipo debe ser capaz de tomar cualquier rol. Perfiles de puesto bien definidos. Independientemente del resto del perfil profesional debe incluir
Pasin por su trabajo particularmente en equipo Atencin al detalle. Espritu de equipo Tolerancia y Paciencia

Requerimientos profesionales adicionales


Scripting en algn lenguaje de dominio de pruebas o lenguaje de programacin Metodologa de pruebas. Capaces de leer cdigo an si no son grandes programadores

Quien
El tester
Un perfil que ha cambiado con el tiempo, de un simple monkey tester a un profesional del rea de TI, involucrado con el proceso completo de creacin de software (Fuente, IEEE, SWEBOK 2004, Captulo 5) Ms automatizacin (requerimiento de programar al menos lenguajes de scripting), ms cercana a herramientas que agilicen y faciliten su trabajo.

Profesionalizacin y certificacin (ISTQB, TMMi, CSQA)

Quienes
Roles. Siempre intercambiables y conservando una estructura plana:
Administrador de proyecto de testing: Estimaciones, recursos, estadsticas, requerimientos tcnicos, organizacin de juntas internas y con otros equipos. Arquitecto de testing: Diseo y organizacin de suites, escenarios y casos de prueba, creacin de scripts de prueba. Tester: Ejecucin de casos de prueba, reporte de defectos, validacin de correcciones.

Requerimientos (SRS)

Elaboracin de lista de casos de prueba (TCR)

Diseo detallado

Lista de casos de prueba (TCR)

Casos de uso (DTD)

Diseo de Casos de Prueba

Datos de Prueba

Casos de Prueba detallados (TCR)

Codificacin

Control de versiones (VCS)

Automatizacin

No

Asignacin de prueba manual (TCR)

Script de pruebas

Preparacin de Laboratorio

Prueba Creacin de Defecto (BTR)

Resultados de Pruebas(TCR)

Fallo

Anlisis Estadstico

Testing
Involucramiento temprano de testing en el proyecto.
Profesionales de TI: igualmente capaces de involucrarse desde anlisis de requerimientos hasta cdigo. Documentar el proceso de pruebas Disear ambiente de pruebas. Bibliotecas de automatizacin

Testing
Como entre las especies el uso de herramientas adecuadas hace una diferencia

Testing
Herramientas
Repositorio de casos de prueba Repositorio de cdigo (del proyecto y testing) y datos de prueba

Herramienta de automatizacin
Sistema de seguimiento de defectos (Bug Tracking System)

Testing
El repositorio de casos de prueba: (Quality Center, Test Director, TestLink, ClearQuest, Jira, Bugzilla conTestopia,)
Trazabilidad de requerimientos contra pruebas Reutilizacin de casos de prueba Rendicin de cuentas del equipo de pruebas en diseo y ejecucin Pruebas institucionales (como valores de dominio). Mtricas de resultados. Mtricas de desempeo del equipo de pruebas. Disminuye la curva de aprendizaje de nuevos miembros del equipo de pruebas.

Testing
Repositorio de cdigo. (Subversion, GIT, Mercurial, CVS, Remedy)
Integridad de cdigo Scripts de pruebas Ramas estables/inestables para pruebas. Mtricas de cdigo A veces, repositorio de datos y scripts de pruebas.

Testing
Herramienta de automatizacin (QTP, Rational Automation, Watir, Selenium, SilkTest, LDTP)
Apalanca a un equipo de pruebas Disminuye el tiempo de pruebas (particularmente regresin e integracin) hasta en un 70% (se reportan ROI del 900%) Estandariza entradas y salidas en cada caso de prueba. Permite que los testers generen ms casos de prueba, teniendo una mayor cobertura.

Testing
Sistema de seguimiento de defectos (BTS/Bug Tracking System) Bugzilla, Remedy, Quality Center, Jira, Mantis Ayuda a determinar mtricas de defectos:
Severidad y prioridad del problema (Triaje) Tiempo medio de reparacin del defecto y costos asociados Responsables y corresponsables Verificacin de correcciones. Asociativo entre el Help Desk, el programador y el tester.

Conclusiones (parte 1)
La calidad y el testing representan un retorno en la inversin. Requiere un intenso trabajo de equipo e interdisciplinario. Ayuda a estabilizar los productos de un rea de TI. Colabora en la deteccin temprana de defectos, abatiendo costos de correccin. El testing independiente al desarrollo da tiempo al desarrollador a usar ms su mejor talento (programar) en vez de probar. El uso de estndares y herramientas permite reusar los artefactos de testing. Proporciona mtricas importantes de desempeo. Es un rea de oportunidad de negocio y requerimiento de algunos clientes.

También podría gustarte