Los probadores buscan fallos, e informan sobre los mismos, los desarrolladores buscan defectos y los corrigen
La pruebas y revisiones aseguran la mejora de la calidad de
productos de software, asi como la calidad del proceso de
desarrollo en si. Pruebas es parte de calidad, Pruebas ayuda a
reducir riesgos
Causas de fallos
pueden ser por error humano y condiciones ambientales
Error: IEEE 610, siempre lo causa un humano, acción humana que produce un resultado incorrecto,
algo que deje de hacer
Defecto: Desperfecto en un componente o sistema que puede causar que el sistema falle en
desempeñar las funciones requeridas, casi siempre es a nivel de codigo, los defectos causa fallos
Fallo: Manifestacion fisica o funcional de un defecto, desviacion de un componente o sistema
respecto de la presentacion, servicio o resultado esperado, es la consecuencia de un defecto
Papel del proceso de pruebas
en el desarrollo
mantenimiento y operaciones
Mejora la calidad de un producto de software
Reducción del riesgo de detectar errores
Satisface
compromisos
Definiciones
Software: IEEE 610: Programa de ordenador, procedimientos y posiblemente documentación
y datos pertenecientes a la operación de un sistema basado en un ordenaodr
Calidad software: IEC 9126: La totalidad de la funcionalidad y prestaciones de un producto de
software que contribuye con su capacidad de satisfacer sus necesidades explicitas o implicitas
Calidad: IEEE610 Grado en el cual un componente sistema o proceso satisface requsitos
especificados, y o necesidades y expectativas del usuario
Codigo: Programa de ordenador escrito en un lenguaje de programacion que puede ser leido por una persona
Depuración: Localizacion y correcion de defectos en el codigo fuente
Desarrollo de software: Es un proceso complejo/secuencia de actividades cuyo objetivo es desarrollar un sistema basado en un ordenador
Requisito: Describe un atributo funcional o no funcional deseado
Revision: Evaluacion de un producto o proyecto para detectar discrepancias respecto a resultados planificados
La calidad del software consiste en
Atributos Funcionales
Adecuacion
Exactitud
Interoperabilidad
Seguridad
Cumplimiento de funcionalidad
Atributos no funcionales
Fiabilidad
Usabilidad
Eficiencia
Mantenibilidad
Portabilidad
Tipos de aseguramiento de la calidad
Constructivos: prevenir
Organizacion
Guias, estandares, listas de comprobacion, reglas de proceso, requisitos legales
Tecnico
Metodos, herramientas lenguajes, entornos de desarrollo, listas/plantillas
Analiticos : Detectar
Dinamico
Caja negra
Partición de equivalencia, analisis de valores
limites, pruebas de transicion de estados,
tablas de decision y pruebas de casos de uso
Basados en la experiencia
Caja blanca
Cobertura de sentencia, cobertura de rama,
cobertura de condicion y cobertura de camino
Las pruebas dinamicas son la ejecución del software, muestran fallos
que han sido causado por defectos, la depuración, detecta, analiza y
elimina la causa del fallo
Estatico
Annotations:
Pruebas sin la ejecución del programa
Revisiones/ revisiones guiadas, analisis del flujo de
control, analisis de flujo de datos, metricas del
compilador, analizador
Las pruebas estaticas son revision de documentos
Objetivos de las pruebas
Adquirir conocimiento sobre los defectos de un objeto de prueba
Confirmación de la funcionalidad
Generar información
Generar confianza
Cuantas pruebas son suficientes:
Criterios de salida
Pruebas basadas en riesgo
Pruebas basadas en plazos y presupuestos
Casos de prueba - IEEE 610
Precondiciones, conjunto de valores de entrada, conjunto de resultados esperados, , poscondiciones
esperadas, identificador unico, , dependencia de otros casos de prueba. referencia al requisito que sera
probado, forma en que se debe ejecutar el caso de prueba (opcional) y prioridad (opcional)
Base de prueba: Conjunto de documentos que definen los requisitos de un componente o sistema
Que son las pruebas
Proceso de Pruebas
Planificacion y Control, Seleccion de condiciones de prueba, Diseño y ejecución
de casos de prueba, Comprobacion de resultados, Generacion de informes
respecto al proceso de pruebas, Finalizacion y completar actividades de cierre
Objetivos de las pruebas
Detección de defectos, generación de confianza respecto
del nivel de calidad, aportación de información para la toma
de decisiones y prevención de defectos
Principios del proceso de pruebas
El proceso de pruebas demuestra la presencia de defectos
No es posible realizar pruebas exhaustivas
Pruebas tempranas
Annotations:
Planeacion y diseño de pruebas no puede tomar mas del 30%
Cuanto mas temprana es la deteccion de un defecto, menos costosa es su correción
La preparacion de una prueba consume tiempo
Las actividades de pruebas incluidas las revisiones deben ser ejecutadas en paralelo a la especificacion y diseño de software
Agrupamiento de defectos
Annotations:
Encuentre un defecto y encontrara mas defectos cerca
Los defectos aparecen agrupados
Los testers deben ser flexibles
Paradoja del pesticida
Annotations:
Repetir pruebas en las mismas condiciones no es efectivo
Las pruebas deben ser revisadas/modificadas para los distintos codigos de modulos
Las pruebas dependen del contexto
Annotations:
Las pruebas se llevan a cabo de forma diferente en diferentes contextos
Objetos de prueba diferente son probados de forma diferente
La falacia de la ausencia de errores
Proceso de prueba basico
Planificación de pruebas
Determinar alcance y riesgos, determinar objetivos,
determinar enfoque, implementar metodo y
estrategias de prueba, adquirir/obtener y programar
recursos
Plan maestro de prueba (Hoja de ruta),
Estrategia de prueba (Que vamos a probar),
Enfoque de prueba (Como vamos a probar),
Criterios de salida (En que momento puedo
finalizar mis pruebas)
Analisis y Diseño de pruebas
Revisar las bases de pruebas, Analizar la testibilidad,
Identificar y priorizar condiciones, Diseñar pruebas y
casos de pruebas, Identificar condiciones de pruebas,
Diseñar el entorno de prubas, probar infraestructura,
crear trazabilidad
Datos de prueba (test data): Datos que están en la BD y
son suceptibles a ser modificados, Datos de entrada
(Input data): Variables que son leidas por un
componente, Cobertura de prueba (Test coverage):
usado en pruebas de caja blanca con objeto de
determinar la cobertura del codigo, Oraculo de pruebas
(Test ORACLE): Es toda la base de conocimiento que yo
tenga de las pruebas
Implementacion y ejecucion
Finalizar, implementar y priorizar casos de prueba,
Desarrollar y priorizar procedimientos de prueba,
Verificar el entorno de prueba, Verificar y actualizar la
trazabilidad, Ejecutar pruebas, registrar resultados,
comparar resultados, repetición de pruebas, pruebas de
regresión
Juego de pruebas (Test sequence): Conjunto de casos de pruebas.
Especificación de procedimientos de pruebas (Test procedure specification):
paso a paso IEEE 829. Ejecución de pruebas (Test execution): Seguir el paso a
paso. Registro de pruebas (Informe de pruebas), Pruebas de regresion,
Repeticion de pruebas
Evaluacion de criterios de salida y generación de informes
Evaluar la ejecución de pruebas con respecto a los objetivos,
Evaluar los registros de pruebas, Proporcionar información
de pruebas adicionales
Actividades de cierre
Recopilar datos de las pruebas finalizadas. Cerrar informes de incidencias,
Comprobar entregables. Documentar aceptacion. Finalizar y archivar los
productos de soporte de pruebas. Analizar lecciones aprendidas. Utilizar
información recopilada
Control de pruebas
Es transversal a todo el proceso
Se miden y analizan resultados, se mira la evolucion y
cobertura de las pruebas y el cumplimientos de los
criterios de salida, se incian medidas correctivas, se
preparan y toman decisiones
Psicologia en el proceso de pruebas
Roles
Desarrollador
Implementa requisitos. Desarrolla
estructuras. Diseña y programa el software.
Su éxito consiste en la creación de un
producto
Actividad constructiva
Probador
Planifica actividades de prueba. Diseña casos de
prueba. Su unica preocupacion es encontrar defectos.
Encontrar errores producidos por un desarrolador
Actividad destructiva
Caracteristicas
Curiosos, perceptivo, atento a los detalles
Escéptico y con actitud critica
Aptitudes para la comunicacion
Experiencia
Diferencias
Diseñar: Ayudar al cliente a proveer los requisitos adecuados
Desarrollar: Convertir los requisitos en funciones
Probadores: Evaluar la correcta implementacion de los requisitos
Organizacion de pruebas
Pruebas de desarrollador
El desarrollador nunca analizara su creación de forma imparcial.
Las personas tienden a pasar por alto sus propios defectos
Errores debido a mala interpretacion pasaran sin ser detectados
Equipos de Desarrollo
Hablan un mismo lenguaje
Los costes de formacion con respecto a objetos de prueba es moderado
Peligro de generacion de conflictos entre equipos de desarrollo
Mezcla de actividades de desarrollo y pruebas
Genera un mayor grado de independencia
Equipos de pruebas
Equipos de pruebas que den servicio a diferentes areas de proyecto mejoran la calidad
Equipos de pruebas de diferentes areas trabajen de forma independiente
Subcontratacion de pruebas
Separacion de actividades de pruebas y desarrollo aportan mas independencia
Tener en cuenta la curva de aprendizaje del negocio
Cuentan con un alto nivel de conocimiento del proceso de prueba
Diseño de casos de prueba en forma independiente
Dificultades
Incapacidad de compresión mutua
En situaciones de tension la detección de errores puede conducir a conflictos
La comunciacion entre desarrolladores y probadores es insuficiente o inexistente
Un proceso de prueba solido requerie la distancia adecuada con respecto al objeto de prueba
Código ético
Código de conducta
Es necesario para asegurar que la información es utilizada de forma apropiada
Publico: Deben actuar conforme con los intereses de su cliente o empleador, conforme con el interés público
Cliente y empleador: Igual que el público, No filtrar información interna o privada del cliente
Producto: Aseguran que los entregables que suministran alcanzan los estandares profesionales
Juicio: Mantendran su integridad e independencia en su juicio profesional
Gestión: Suscribirán y promoverán un enfoque ético en la gestión de las pruebas de software
Profesión: promoverán la integridad y reputación de la profesión consistente con el interés público
Compañeros de profesión: Serán justos y solidarios con sus compañeros de profesión
Individualmente: Participaran en procesos de formación relacionados con su práctica profesional de forma permanente (cursos de formación y leyendo libros)