Desafíos del Testing Funcional Mónica Wodzislawski mwodzis@ces.com.uy PUCRS, Testing Day II Abril 2009
Centro de Ensayos de Software Consorcio CUTI FACULTAD DE INGENIERÍA Brindar servicios especializados de testing a la industria de TI, para mejorar su capacidad productiva en cuanto a calidad, diversidad de plataformas e innovación de sus productos
Centro de Ensayos de Software En un comienzo Proyecto: Desarrollo Tecnológico en sectores claves de la economía uruguaya. URY/2003/5906. Financió Unión Europea (UE). Co-financió PNUD Actualmente Empresa autosustentable Proyecto Innova, Unión Europea
Características Neutralidad / Independencia Confidencialidad Especialización Búsqueda de la excelencia Vínculo Academia-Industria
Servicios Testing funcional Ensayos de plataforma Capacitación en testing Grado Posgrado Empresas Consultoría en testing Departamento de testing Proceso de testing Producto bajo prueba
Qué es el testing? Es una investigación técnica Orientada a proporcionar información sobre la calidad De un producto de software Para un actor o usuario Es una actividad cognitiva, no es una actividad repetitiva Cem Kaner
Juguemos en el Las fallas cuántas son? Las fallas dónde están? Cuántas fallas pueden quedar? Cuáles defectos pueden quedar? Cuáles errores hay que corregir? Cuántos defectos quedan? De qué tipo?
Ocultamiento -Adiós -dijo el zorro-. He aquí mi secreto, que no puede ser más simple : Sólo con el corazón se puede ver bien. Lo esencial es invisible para los ojos. EL PRINCIPITO Antoine de Saint-Exupéry -Lo esencial es invisible para los ojos -repitió el principito para acordarse.
Desafío 1 -Sólo se conocen bien las cosas que se domestican -dijo el zorro-. - Eres responsable para siempre de lo que has domesticado. Tú eres responsable de tu rosa...
Mucho más que bugs El testing aporta información sobre Procesos Construcción del Software Adquisición del Software Organización Expectativas de calidad Gestión de riesgos Gestión de cambios Esencial para la toma de decisiones
Desafío 2 Utilizar la información para influir sobre Los procesos La organización La estrategia de calidad La cultura Las personas
El conocimiento y el testing Testear para conocer Conocer para testear
Eventos 2006 1, 2, 3..probando!, 1era jornada de testing en vivo 2007 A las pruebas me remito, 2da jornada de testing 2008 Ciclo Testing en la Práctica
Algunas dificultades (*) Importancia y jerarquización del testing El equipo de testing Capacitación Recursos, planificación Relación de testing con otras áreas Compromiso conjunto en la calidad del producto (*) Talleres de discusión Ciclo Testing en la práctica 2008
Desafío 3 Difundir el conocimiento La profesionalización Carrera del tester Responsabilidad y compromiso conjunto por la calidad!
El profesional en testing
Custodio de la calidad? El tester no crea calidad ni la destruye Solemos decir que rompemos el producto pero en realidad llega a nosotros ya roto La calidad surge de todo el equipo constructor y es una gran responsabilidad Parte de nuestra misión es ayudar a manejar esa responsabilidad, suministrando información que facilita la gestión de la calidad Pero contribuye a transformarla
Visión tradicional Siempre están desaprobando, quejándose Les gusta romper lo que funciona Disfrutan de dar malas noticias
Visión alternativa Desaprobar vs ofrecer evidencia Les gusta romper vs prefieren disipar la ilusión de que las cosas funcionan No disfrutan de dar malas noticias, sino de liberar a sus clientes de falsas creencias
Plan de Carrera Crecimiento funcional Capacitación y entrenamiento Especialización funcional
Crecimiento funcional Categorías Junior o principiante Intermediate o intermedio Senior o experto Sobre la base de 3 tipos de roles en testing Rol de diseño y ejecución Rol de consultor Rol de liderazgo
Especialización funcional Ejecución del proceso de testing Herramientas para el proceso de testing Automatización Gestión Gestión del proceso de testing Se combina con los roles anteriores
Capacitación Apoyar el crecimiento funcional y la especialización Orientado hacia las demandas de la organización Seminarios Internos Teoría y práctica
La riqueza de la diversidad El perfil tester-desarrollador Automatización A partir de módulos ejecutables y no de la interfaz de usuario Comparación de la base oráculo y las obtenidas luego de la ejecución Modificación de herramientas Modificación de estructuras de la GUI Desarrollo de pequeñas herramientas para obtener grandes resultados
Una carrera en testing Definir perfiles y competencias Capacitación Estructurar la carrera Oportunidades de crecimiento dentro del área fuera del área Análisis de un dominio específico Un líder de testing puede convertirse en líder de proyecto
El testing y su contexto Mayor impacto de las TICs en las organizaciones/sociedad Complejidad creciente de las aplicaciones Conflicto entre necesidades de Nivel de calidad del software Plazo para la salida al mercado Producción de software más eficiente
El testing y su contexto Complejidad creciente de la verificación Aumento de la escala Complejidad de las arquitecturas Multiplicidad de plataformas Mayor peso relativo del testing Métodos y herramientas especializados Criterios de selección y cobertura Automatización creciente
Desafío 4 Profundizar el conocimiento Dedicar esfuerzos a estudiar Proyectar el futuro Identificar temas interesantes
La innovación Tener coraje para quebrar los paradigmas existentes Tener disposición para aprender nuevas técnicas o detectar áreas aún poco investigadas Estar atento a las oportunidades de mejora para promover que se apliquen También los modelos de negocio del testing son dinámicos
Algunas líneas de trabajo Proceso de testing funcional Automatización del testing funcional I+D+i Testing de aplicaciones intensivas en BD (ETL; ERP) Testing guiado por modelos (Model Driven Testing) Testing de Líneas de Productos (Software Product Line Testing) Estimación de esfuerzo y costos
Desafío 5 La convergencia! En los desafíos En la forma de resolverlos Masa crítica para avanzar, proyectos colaborativos