Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Testing : tarea de demostrar que un programa realiza las funciones para las cuales fue construido, aun
haciendo lo esperado puede contener errores.
Smoke test: subconjunto de todos los casos de prueba que cubren la principal funcionalidad de un
componente o Sistema, para determinar que las funciones más cruciales de un programa trabajan
adecuadamente.
CALIDAD:
9126 calidad software iso, totalidad de las funcionalidades y características de un producto que
contribuyen a su habilidad de satisfacer las necesidades especificadas
Calidad: ieee std 610: grado en el cual un componente, Sistema o proceso satisfice los requisitos
especificados y/o necesidades del cliente.
SOFTWARE TESTING VS QA
-QA: enfocado a procesos, procedimientos y estándares establecidos para cada una de las fases del ciclo
de vida del software.
-testing : enfocado a productos o servicios, utiliza casos de pruebas para ser ejecutados , se realiza en
una SOLA de las fases del ciclo de vida del software
- similitudes: ambas permiten verificar y afirmar la calidad del producto final/// ambas definen un
conjunto de actividades a realizar dentro del ciclo de vida del software para mejorar y asegurar calidad
Error: accion humana que produce un resultado incorrecto. Ejemplo: error de programación.
Defecto: Desperfecto en un componente o sistema que puede causar que el aplicativo falle al realizar las
funciones requeridas.
EJEMPLO (calculadora): un error de programación como poner una suma en vez de una resta, introduce
un defecto en en la operación resta, lo cual se manifiesta en el fallo del resultado de la resta.
Verificacion: comprobacion de la conformida con los requisitos establecidos /// se ha procedido
correctamente con la construcción del Sistema..///En automatización solemos usar verificar para
referinos a algo visual, por ejemplo a ver un botón, o visualizar un mensaje. Ejemplo: verificar que se
visualice el botón de enviar.
No funcionales: describe las pruebas requeridas para medir las caracteristicas de Sistema, software,
hardware, infraestructura; se pueden cuantificar en una escala, y pueden medir velocidad de respuesta
osea rendimiento… esto incluye: fiabilidad, usabilidad, eficiencia, mantenabilidad, portabilidad,
seguridad (PERFORMANCE)
ENTRE AMBOS DEFINEN LA CALIDAD TOTAL DEL SISTEMA… POR LO QUE SE LLAMAN ATRIBUTOS DE
CALIDAD.
-código Fuente: programa de pc escrito en un lenguaje que puede ser leido por una persona.
-desarrollo de software: proceso que tiene como objetivo desarrollar un Sistema basado en un pc, sigue
modelo desarrollo software.
-requisito: condición o capacidad que un usuario necesita para solucionar un problema o lograr un
objetivo que debe cumplirse, o que tiene un Sistema para satisfacer un contrato.
-Revisión: evaluación de un Proyecto con el fin de detector discrepancias con respecto a los resultados
esperados y para recomendar mejorar.
Ciclo de vida del software: necesidades, análisis requisitos, diseño del Sistema, codificación, pruebas,
implantación o validación, mantenimiento.
Análisis: análisis necesidades de usuarios, documento con requisitos que contiene especificado todo sin
entrar en detalles internos.
Diseño del Sistema: descompone y organiza sistema en elementos que puedan elaborarse por separado,
aprovechando desarrollo en equipo. A partir de esto, surge documento de diseño que contiene
estructura relacional del Sistema y la especificación de lo que hace cada una de sus partes, así como la
manera en que se combinan.
Codificación: se implementa el código Fuente, hacienda uso de prototipos como de pruebas y ensayos
para corregir errores.
Pruebas: lo que ya se programó, se ensambla para componer el Sistema y verificar que funciona
correctamente y que cumple con los requisitos. Se realiza antes de entregar el producto al usuario final.
Implantación: usuario ejecuta sistema en producción, para esto ya los desarrolladores realizaron
pruebas exhaustivas para comprobar que el Sistema no falle.
Mantenimiento: fase dedicada a mantener y mejorar el software para corregir errores descubiertos e
incorporar nuevos requisitos ///Esto puede llevar más tiempo q incluso el propio desarrollo.
Detectar defectos: Adquirir conocimiento de los defectos en un objeto de prueba = documentarlos para
que sea más fácil su corrección.
Ganar confianza sobre el nivel de calidad: software probado de forma adecuada= cumple funcionalidad
+alto nivel de calidad
Proporcionar información para toma de decisiones: informar sobre posibles riesgos del software = evitar
riesgo en producción.
Prevenir defectos: evitamos un costo alto de encontrar defectos en producción, pruebas más tempranas
en el software = menor costo y tiempo de corrección, porque a medida que avanza, los fallos son más
costosos. un mantenimiento puede valer 1.000.000$, mientras que su detección temprana alcanza
máximo 100.000$
El costo de eliminar defectos se aumenta con el tiempo que permanezca este en el Sistema/// la
detección de estos en etapas tempranas permite la corrección de estos mismos a costos reducidos.
2. No es posible realizar pruebas exhaustivas.: en las pruebas exhaustivas se busca abarcar todas
las combinaciones posibles de valores de entrada y precondiciones. ///
-explosión de casos de prueba (test case explosion): incremento exponencial de esfuerzo vs
coste en el caso de pruebas exhaustivas.
-prueba de muestra: incluye de forma sistemática o aleatoria todos los posibles valores de
entrada
5. Paradoja del pesticida: repetir pruebas en la misma condición no resulta ser efectivo., las
pruebas deben ser modificadas y o revisadas regularmente para distintos módulos del código.
PLAN DE PRUEBAS:
-definir alcance+estrategía+riesgos.
-tecnica+cobertura+equipo de pruebas
revisar las bases de las pruebas; analizar la trazabilidad; identificar y priorizar condiciones; diseños de
casos de prueba; identificar condiciones de prueba; ambiente de pruebas; infraestructura; herramientas
Repetición de pruebas:
-Re testing: repetición de prueba tras la corrección de un defecto, para garantizar que el defecto fue
eliminado exitosamente.
Control de pruebas:
-influye en planificación de pruebas; compara progreso logrado con el plan de pruebas; mide y analiza
resultados; seguimiento evolución; inicia medidas correctivas; preparar y tomar decisiones.
Equipo de pruebas:
-el desarrollo es constructivo/// las pruebas son destructivas a primera vista///el desarrollo y las
pruebas son constructivas: Tanto el desarrollo y las pruebas tienen como objetivo buscar y obtener la
menor cantidad de defectos posibles.
Equipo de pruebas:
Equipo de pruebas.: planificar actividades de pruebas, diseña casos de prueba y encuentra defectos.
-curioso, perceptivo atento a detalles: comprende escenarios del cliente, analiza estructura de pruebas,
descubre detalles donde puede haber fallos.
-escéptico y con actitud crítica: por lo general hay defectos y hay que encontrarlos, no creer todo lo que
me dicen en desarrollo (jajajajajaj)///tener precausión para intentar no encontrar ya defectos al final del
Proyecto.
-Aptitudes para la comunicación: necesarios para llevar malas noticias, vencer estados de frustración,
cuestiones técnicas como practicas q sean comprendidas, comunicación positiva, establece relación con
el equipo de desarrollo a corto plazo.
Requisitos(pruebas de aceptación)
Programación jojojo
PRUEBAS
PRUEBAS FUNCIONALES:
prueba el diseño y comportamiento de cada uno de los componentes del Sistema una vez construido.
ambiente desarrollo.
Método caja blanca. (este consiste en que no se conoce el código, cuando hablemos de caja negra, es
que no se conoce el código, solo su interfaz de usuario)
**
comprueba la unión correcta de los componentes del Sistema entre sí a través de sus interfaces, y si
cumplen con la funcionalidad establecida/// también sirve para identificar si se requiere pruebas no
funcionales.
-método caja blanca; top down( se diseña resumen, y luego cada parte nueva es redefinida con más
detalle, hasta q se detalla mucho pa validar
-se usa también método caja negra; bottom-up(al contrario, se diseña cada parte con detalle y se van
aglomerando hasta tener el Sistema., se conoce todas las variables q puede afectar el Sistema).
-prueba funcional: prueban requisitos para un uso específico previsto han sido satisfechos(validación)
-prueba no funcional: verifican los atributos de calidad no funcional: usabilidad, eficiencia, seguridad,
performance.
Lo realizan tester
-objetivo: verificar q Sistema cumpla todos los requisitos establecidos y permite que los usuarios del
sistema den el visto Bueno para su paso a producción.
comprueba el correcto funcionamiento del Sistema dentro del entorno real de producción.
Ambiente: producción.
PRUEBAS NO FUNCIONALES:
requerimientos y calidad del software con base a las pruebas de carga, estrés y escalabilidad.
Evalúa Sistema, la app o ambos contra accesos, internos o externos no autorizados, vulnerabilidad,
-caso de uso si aplica: autenticar usuario en el centro y huella y el otro apuntan a él, las personas
lineas sencillas.
-prueba línea de comando: llamado a programa mediante comandos de maquina y paso parámetros.
(CMD)
-prueba ruta de usuario: se realiza el llamado al programa atraves de las opciones que utiliza el usuario
-prueba debug: trabajo debug, selección puntos de análisis, y al final uso prueba línea comando o
atraves del menú.
-se conectan otros sistemas para validar los resultados esperados en salidas y entradas.
-validación de transacción y recepción de datos. En integración con otra app o subsistema// puede fallar
conexiónes, transformación de datos, maduración de datos, etc.
-acorde a criterios se implementa validación de entradas, salidas y trasformaciones en cada uno de los
componentes, sistemas o app que conforman el proceso de principio a fin.
-reglas de negocio.
-validación logs.
-trasformación datos.
……..-.-.-………..
REGRESION:
-ejecución prueba corregida o/y la ejecución de pruebas para asegurar que no se han introducido
defectos en áreas no alteradas del software o que la corrección de un defecto no introdujo algunos
nuevos (ISTQB)
para ejecutar, se debe conocer el riesgo que implica el cambio e identificar que parte del set de
regresión usar o si es necesario nuevas validaciones.
cuando el riesgo por los tiempos de ejecución del set de regresión lo permiten, este se debe realizar
completo..
Regresión: ejecuta la transacción completa pero las verificaciones se orientan a el cambio que hubo
TANTO REGRESION COMO E2E SON PROCESOS BATCH (que se ejecutan secuencialmente)
Tomemos como ejemplo el proceso de Pago de Factura a través de la Sucursal Virtual (Ingresar a la
sucursal virtual personas con usuario y contraseña, ir a la opción de Pago de Facturas, Ingresar la
información y Pagar)
Supongamos que debido a cambio en la firma de pago por SVP, se modificó el tamaño del campo saldo.
Regresión: Se ejecuta la transacción completa validando con un saldo de acuerdo al tamaño que se
modificó y se revisa que el resto de los campos (trama) no se hayan visto afectados.
Nota: Como se puede ver aquí se ejecuta la transacción completa, pero se realizan las verificaciones
orientadas únicamente al cambio que hubo y lo que posiblemente se afectó.
• Revisar que en los logs de STI y canales coincida la información con lo ingresado en el Front, • Revisar
en Finacle que el pago se haya registrado en las tablas correspondientes acorde a lo ingresado por el
Front • Revisar el archivo de saldos que si se disminuya la cantidad pagada y por ultimo revisar que en el
front se genere el mensaje de éxito y genere el movimiento.
NOTA: Para este ejemplo solo ilustramos las validaciones en los logs del canal y en finacle pero la idea es
hacer las validaciones en cada uno de los componentes que serían:
DevOps permite fabricar software más rápidamente, con mayor calidad, menor coste y una altísima
frecuencia de releases (entregas)
Como conclusión, quedémonos con una definición simple de DevOps con la que todos podamos estar de
acuerdo: DevOps es una metodología de desarrollo software basada en la integración entre
desarrolladores y administradores de sistemas, que permite que los desarrolladores puedan enfocarse
sólo en desarrollar y puedan desplegar su código en segundos.
Git: sistema de control de versionamiento: sirve para volver en el timpo a recuperar código; sirve para
administrar individualmente lineas paralelas de trabajo y luego juntarlas; deja trabajar en forma remota.
Api: Una API es un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar el
software de las aplicaciones. API significa interfaz de programación de aplicaciones.
Las API permiten que sus productos y servicios se comuniquen con otros, sin necesidad de saber cómo
están implementados. Esto simplifica el desarrollo de las aplicaciones y permite ahorrar tiempo y dinero.
Las API le otorgan flexibilidad; simplifican el diseño, la administración y el uso de las aplicaciones, y
proporcionan oportunidades de innovación, lo cual es ideal al momento de diseñar herramientas y
productos nuevos (o de gestionar los actuales).
PRUEBAS E2E
-determina rendimiento app según requisito, de principio a fin en escenarios reales como comunicación
de app con hardware y otras apps.
Importante: la app complete se prueba para funciones criticas como comunicación con otros sistemas,
interfaces, base de datos, redes y otras apps.
ACTIVIDADES:
CONCLUSION: para la salida a producción de un software, la prueba e2e es súper importante porque
prueba toda la app y en un entorno que imita lo más cercanamente al mundo real, como la red, base de
datos etc.
Por lo general con manuales, el costo de automatizar es cara. Esto no es solo para validar Sistema, si no
q sirve mucho para probar integración externa.
PRUEBAS INTEGRALES
-Se centra en probar las comunicaciones entre sus componentes y sus comunicaciones ya sea hardware
o software.
-describe como verificar q las interfaces entre los componentes del software funcionen correctamente
-determinar como la base de datos de pruebas será cargada.
-nos ayuda a tomar decisiones cuando se descubren problemas.
CARACTERISTICIAS:
-ensamblar o integrar los módulos para formar el paquete completo.
-la prueba de integración de dirige a todos los aspectos asociados, tanto la verificación, como la
construcción del programa.
-un módulo puede tener un aspecto adverso o inadvertido sobre otro.
-Integración no incremental:
Combinar todos los módulos y probar todo el programa en conjunto.
-integración incremental:
Se va probando el programa en pequeñas porciones y al final se prueba todo convirtiéndose en
No incremental.
¿PORQUE DUDO Q TODO FUNCIONE EN CONJUNTO SI FUNCIONA BIEN SOLO?
-integración sistemática (ensamble de los actores, uno o más)
-verificación de integración: ¿ensamble hecho según plan?, implementación adecuada de una o más
funciones?
-validación de integración: ¿se construye lo correcto?, el software construido corresponde con los
requerimientos.
RECOMENDACIONES:
-implementación de casos de uso completes.
-construir interfaz pronto para probar desde ella
-organización metódica de un numero grandes pruebas.
-congelar versions para las pruebas
-acompañar estas pruebas de las de regresión.
-generar nuevas versions después de pruebas.
PRUEBAS DE MIGRACION:
-corrección funcional del Sistema, el Sistema debe implementar y funcionar bien según su
especificación, se propone los casos de prueba del Nuevo basados en el Viejo y el análisis de las
actualizaciones.
POR Q HACERLO:
-razones: migrar software, ahorra costos, mejora actualización Sistema, optimización rendimiento y
cambio estructura corporativa.
-con el fin de que esto se haga bien la realización de pruebas y el control de calidad son fundamentales.
-súper relevante (datos apps) por lo que el Sistema debe tener la misma eficiencia y operatividad del
entorno anterior.
ETAPAS:
RIESGOS:
-costos elevados.
-alteración datos.
-daños en la funcionalidad
-fallas performance
-cronograma
PRUEBAS EN REQUISITOS:
-el objetivo: de las pruebas de verificación es buscar discrepancias entre en los requerimientos y la
ejecución del software
CARACTERISTICAS:
PRUEBAS DE SISTEMA:
-SIMILARES A PRUEBAS Caja negra, sin embargo estas ven el Sistema como un todo. Basadas en
requerimientos generales y probar todas las partes combinadas del Sistema.
CARACTERISTICAS.
-puede incluir pruebas basadas en riesgos o requerimientos, procesos de negocios, casos de uso,
interacciones con el Sistema operativo y recursos del Sistema.
-tiene como objetivo primordial verificar que se han integrado adecuadamente todos los elementos de
Sistema.
PRUEBAS Q LO COMPONEN:
-desempeño: probar desempeño software en tiempo de ejecución dentro del contexto Sistema
integrado… suelen vincularse con pruebas de Resistencia, y requerir hardware o software adicional para
mediciones puntuales de recursos.