Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
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
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.
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
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
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.
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)
Diseo detallado
Datos de Prueba
Codificacin
Automatizacin
No
Script de pruebas
Preparacin de Laboratorio
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.