Charla 26/04/2021

Testing y Calidad de Software

Testing no mejora directamente la calidad

Testing es un componente de aseguramiento de la calidad

Testing busca comprender las causas raíz de los defectos

Errores que comenten las personas que están especificando, diseñando.

¿Por qué es necesario el testing ?

Aprender fiabilidad del software

Fallas pueden ser muy caras

Software puede tener fallas

Evita conflictos con el cliente

Mantenimiento del negocio

Económicos

Humanos

Imagen

¿Qué es testing?

Busca satisfacer los siguientes objetivos

Ganar confianza de la calidad del sistema

Proveer información

Encontrar y prevenir defectos

Conceptos generales de Testing y niveles de pruebas

Ciclo de vida de desarrollo SEGURO de software

Desarrollo

Pruebas

Diseño

Despliegue

Requerimientos

Operaciones

Actividades de testing

Análisis y diseño

Implementación y ejecución

Planificación y control de pruebas

Actividades que plantean la planificación del proyecto de pruebas

Evaluación de los criterios de salida e informes

Cierre de pruebas

Cronograma, actividades, objetivos

Cómo se aborda los objetivos y se hace el diseño de pruebas específicas para cada objetivo

Se genera un ambiente de pruebas y ejecutar las pruebas en este.

No solo reportes. Es tomar decisiones sobre el proyecto

Determinar resultados y toma decisiones de dirección y rumbo

Cerrar el ciclo de pruebas como un todo que determina ciertos ambientes o módulos.

Niveles y Tipos de Testing

Nivel

TIPOS: Naturaleza de la prueba que se va a correr

Determinan el alcance de lo que se vaya a probar.

Integración

P. Sistema

P. Componentes

comunicación o conexión de n componentes

Conexión con otros sistemas

P. Aceptación

Alcance

Si se cubrió o no el requisito

P. Arquitectura

P. Cambios

P. No funcionales

P. Mantenimiento

P. Funcionales

Cómo trabaja sistema, formato, tiempo, seguridad, etc.

Generación del sistema, como generar reporte

Cambios autorizados o defectos

Ver comportamientos para verificar

validaciones y comunicación entre sistemas y versiones

Modelo V

Cada sección tiene una contraparte

Requerimientos de Usuario -- Aceptación y ejecución de pruebas

Requerimientos del sistemas -- Ejecución pruebas del sistema

Diseño global -- Ejecución pruebas de integración

Diseño detallado -- Ejecución pruebas de componentes

Desarrollo de código

Certificación Foundation Level del ISTQB

ISTQB

Entidad certificadora de calidad de software

Seis capítulos

Mercado amplio

Recomendado para los que no tiene experiencia en testing

Pruebas durante ciclo de vida

Técnicas estadísticas

Principios básicos

Técicas diseño pruebas

Gestión de pruebas

Herramientas de soporte de pruebas

Pruebas estátidas

No existe un ambiente definido para ejecutar las pruebas

Pruebas dinámicas

Se ejecutan directamente sobre un ambiente de pruebas

Curso udemy o libro y Sylabus

Conceptos destacados

Psicología del testing

Cómo se debe de pensar

Testing independiente

Comunicación entre área

Testing se considera un proceso destructivo a pesar de ser constructivo

mindset que se debe de tener

Porque a veces las observaciones a los trabajos que llevan esfuerzos tiene un peso significativo.

Para buscar y encontrar errores requiere

Pesimismo profesional

Ojo crítico

Curiosidad

Atención a detalles

Profundizar ¿qué pasa si...?. Ponerse zapatos de otros usuarios que no son de TI

No basarse en la confianza de otros por más buenos que sean

Identificar lso defectos o mejoras. Cómo lo verían los clientes

Ver a ojos del cliente. Determinar los detalles del sistema

Buena comunicación

Adivinar errores

Para poder aclarar requerimientos

Diseñar pruebas que los desarrolladores descuiden un poco más

Mente del tester

Su objetivo es encontrar fallas y por ende su éxito es que el sistema falle

Genera casos de prueba fuertes para que queden menos errores identificados

Dependiente a independiente

Tener cierto nivel de independencia hace que el tester sea más efectivo a la hora de encontrar defectos y fallas

Desarrollador

Tester en equipo de desarrollo

Equipo de test independiente

Cliente

Tester especialistas

Tester o equipos de tester subcontratados

Tener tacto

El equipo de calidad es como el enemigo pero realmente es un aliado para el trabajo en equipo

Técnicas

Mantener el objetivo de entregar un software de calidad

Comunicarse de manera objetiva y no subjetiva

Tratar de entender cómo se sienten los demás

Confirmar que ambos entendieron y han sido entendidos

Equipo de calidad

Alto nivel de independencia

Cronogramas compartidos

Desproporcionado

Producto de la relación de las unidades

Testing portador de malas noticias

Calidad es cuello de botella

Como hay recursos limitados se implica un direccionamiento bien administrado de esfuerzos

Lecciones aprendidas

Ver área de calidad como una unidad integral del proyecto

Involucrar al equipo de calidad tan pronto como sea posible

Velar por la gestión del conocimiento generado en calidad

Invertir en recursos en el uso de herramientas de apoyo a calidad

Tiene peso tanto a nivel individual como empresarial