Zusammenfassung der Ressource
Fundamentos
de Pruebas
- Porque son necesarias las
pruebas
Anmerkungen:
- 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
Anmerkungen:
- 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
Anmerkungen:
- 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
Anmerkungen:
- Encuentre un defecto y encontrara mas defectos cerca
Los defectos aparecen agrupados
Los testers deben ser flexibles
- Paradoja del pesticida
Anmerkungen:
- 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
Anmerkungen:
- 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)