Tester
Ética profesional – garantizar confidencialidad al cliente ya que se maneja información privilegiada
Valores: cuidar integridad de cliente y empleador (personal y publico) garantizar que se cumpla
estándar
Evitar que personas ajenas alteren información
*****investigar código de ética de tester
7 principios
1. Sirven para demostrar que existen defectos en el software
2. No es posible realizar una prueba que cubra todas las variables
3. Se realizan al inicio del ciclo de vida de los productos
4. Agrupa las pruebas por tipo para revisar el software
5. Deben actualizarse periódicamente
6. Se realiza dependiendo del funcionamiento del software
7. El producto final debe cumplir con las expectativas del usuario
Proceso de pruebas
Planificación y control
Análisis y diseño
Ejecución
Evaluación de los criterios de salida e informes
Actividades de cierre
Modelos de prueba
-Modelo V (ó desarrollo secuencial)
Nivel 1: Pruebas de componente
Nivel 2: Pruebas de aceptación
Nivel 3: Pruebas de sistema
Nivel 4: Pruebas de aceptación
-Modelo de desarrollo iterativo-incremental
(forma un grupo de tareas pertenece solo a una parte de sistema y sirve para probarlo)
Iteraciones, numero de veces que se realiza la prueba modificando algunas condiciones, es
incremental, no se puede pasar a la siguiente prueba sin haber terminado la anterior.
Niveles de prueba
Es el orden en que se ejecutan las pruebas
-Pruebas de componentes: tienen como objetivo localizar defectos y probar el funcionamiento de
los modelos de software de forma neutral y están enfocadas en los requisitos de los componentes.
-Pruebas de integración: Se hacen con base a la arquitectura del sistema o las tareas funcionales
con el fin de facilitar la tarea de integración y disminuir los riesgos. Consisten en checar el flujo de
información entre los módulos,
-Pruebas de sistemas: Sirve para revisar el funcionamiento de un software en su totalidad. Su
principal objetivo es constatar que el software cumpla con los requisitos funcionales y no
funcionales para minimizar la posibilidad de errores.
-Pruebas de aceptación: El cliente determina si el sistema tiene éxito, de esta forma confirma si es
confiable en su uso y su comportamiento.
Clasificación de pruebas (sólo se mencionan las más importantes)
Pruebas funcionales. Se pueden aplicar en cualquier nivel del proceso y verifica que cada función
del software opere conforme sus especificaciones deben validar tanto las funciones principales y
las de uso básico
Pruebas no funcionales. También se aplican en cualquier nivel del proceso y contiene diferentes
pruebas (Desempeño, escalabilidad, portabilidad, estabilidad, seguridad, operatividad), pero
deben realizarse después de las funcionales. Su objetivo es checar que el software funciona bien,
así como su fiabilidad y rendimiento.
Pruebas de caja blanca (pruebas de estructura). Basadas en el funcionamiento de código interno
del software, verifica los siguientes puntos:
Fallas en la seguridad interna
Trayectorias mal estructuradas o rotas en los procesos de codificación
Flujo de los valores de entrada a través del código y los resultados esperados
Funcionalidad de bucles condicionales
Todo esto con el objetivo de fortalecer la seguridad mejorar el diseño y usabilidad de los
sistemas.
Pruebas de caja negra. Verifican la funcionalidad del software sin examinar la estructura del código
interno con los siguientes pasos
1. Reconocer especificaciones y requerimientos del software que probarás
2. Escoge valores de entrada que sean validos e inválidos para constatar como son
procesados por el software
3. Determinar cuales son las respuestas esperadas para cada uno de los valores elegidos
4. Construyo casos de prueba para los valores de entrada y ejecútalos
5. Compara respuestas obtenidas con las esperadas y determinar si hay errores
Repetición de pruebas y pruebas de regresión. Se ejecutan para confirmar que los cambios hechos
en el código no han afectado otras funciones, estas variantes pueden incluir: corrección de fallas,
cambios en el código o nuevas características del software.
Es necesario repetir una prueba para verificar que el defecto ha sido corregido.
Métricas y mediciones
Al conjunto de mediciones de un software se le conocen como métricas, estas se hacen con la
finalidad de tener una idea clara sobre el estado actual del producto y si realmente existe alguna
mejora en la corrección de errores.
Métricas de software (las más comunes)
1. Métrica de tamaño. sirven para determinar la longitud del software, se hace contando las
líneas de código que lo forman.
2. Métricas de calidad. Utilizan el número de defectos encontrados en el producto
3. Métricas de seguridad. Se usan para determinar si el sistema podrá resistir ataques de
acceso no autorizado
Definir métricas.
Para determinar métricas adecuadas toma en cuenta los siguientes aspectos:
1. Número limitado de métricas útiles para evitar discusiones futuras y problemas de
interpretación
2. Definidas por metas para proceso, tarea, componente o sistema
3. Seguimiento y recopilación automatizado para reducir tiempos de revisión
4. Comunicar información importante a cliente y equipo de trabajo.
Existen herramientas para cada tipo de prueba
Herramientas de gestión
Se pueden emplear durante todo el ciclo de vida del software y en cualquier actividad
Dentro de estas herramientas destacan:
Gestión de pruebas. Ofrecen interfaces para ejecutar pruebas, localizar defectos y verificar
los requerimientos, además de la elaboración de reportes.
Gestión de requisitos. Almacena los requisitos y sus atributos para proporcionar
indicadores únicos, lo que ayuda a identificar los requisitos faltantes.
Gestión de incidencias. Guardan y administran información sobre fallas, peticiones, entre
otros.
Gestión de configuraciones. Contienen y administran las versiones de soporte del
software, son útiles cuando se configura más de un entorno.
Herramientas de ejecución
Permiten detectar las fallas de software en una etapa temprana del desarrollo de las pruebas.
Entre las más importantes se encuentran:
Herramientas de revisión. Almacenan y comunican los informes de las fallas, y los
comentarios acerca de las revisiones.
Herramientas de análisis estático. Ayudan a localizar defectos sin la necesidad de realizar
pruebas dinámicas y analizan la estructura y su dependencia.
Herramientas de modelado. Sirven para validar modelos de software, además localizan y
enumeran los defectos
Herramientas de ejecución y registro
Ejecutan pruebas de forma automática utilizando scripts que tienen valores de inicio y de
respuesta esperada, además generan un registro por cada vez que se aplica la prueba. Dentro de
estas herramientas destacan.
Herramientas de marco de trabajo. Simulan el entorno de trabajo de un modulo que se
desea probar, esto se hace al crear códigos de imitación llamados “Stubs” y otros llamados
“controladores”. El controlador sustituye a un módulo principal por lo cual siempre pedirá
información, mientras que el Stub siempre entregará información.
Comparadores. Establecen la diferencia entre archivos, bases de datos o resultados de
prueba.
Herramientas de medición de cobertura. Identifican que porcentaje de los elementos de
un código han sido cubiertos.
Herramientas de seguridad. Evalúan la capacidad del software para proteger la integridad
de la información.
Herramientas de rendimiento y monitorización. Son herramientas que ayudan a localizar fallas que
solo pueden detectarse si se usa el software entre estas herramientas destacan.
Herramientas de carga. Simulan el numero esperado de usuarios que utilizarán la
aplicación y que realizarán un numero de operaciones durante un tiempo determinado
Herramientas de estrés. Simulan carga hasta saturar el software, va duplicando la cantidad
de usuarios que se agregan a la aplicación hasta exceder el límite de funcionamiento.
Herramientas de estabilidad. Generan una carga continua esperada durante un largo
periodo de tiempo.
Herramientas de monitorización. Analizan, comprueban y reportan el uso de recursos del
sistema.
Análisis de riesgo
Un elemento fundamental para el desarrollo de cualquier proyecto es el análisis de riesgo y consta
de una serie de pasos.
-Identificación de los riesgos. Existen diferentes tipos de problemas que se pueden encontrar
Riesgos del proyecto. Cualquier evento incierto que puede impactar al proyecto. Tiene tres
categorías principales. Riesgos organizacionales (relacionados con los recursos humanos
involucrados en el proyecto). Riesgos técnicos (son los que causan mas perdidas por la
mala ejecución de las pruebas). Riesgos de negocios (son un factor externo al proyecto
como puede ser clientes o socios). Riesgo del producto (Se refiere a la posibilidad de que
el software o sistema no cumpla con las expectativas del cliente generalmente está
relacionado con problemas de funcionalidad).
-Análisis de impacto. Existe la posibilidad de que un riesgo ocurra por lo cual debes verificar el
impacto que pueda causar en el proyecto.
Probabilidad alta ó nivel 3. Alta posibilidad de que ocurra un problema
Probabilidad media ó nivel 2. 50% de probabilidad de que ocurra un problema
Probabilidad baja o nivel 1. Es poco probable que suceda el problema
Impacto
Alto o nivel 3. El problema impacta a todo el proyecto, no se puede continuar si el
problema no se resuelve.
Medio o nivel 2. El problema afecta a partes importantes del proyecto y debe atenderse lo
antes posible
Bajo o nivel 1. El problema afecta a áreas no vitales del proyecto, es necesario que se
resuelva, sin embargo se pueden tomar otras alternativas en lo que se soluciona
Prioridad
Alto o nivel 6 a 9. Se deben atender inmediatamente y monitorear los problemas
relacionados todos los días hasta que se resuelvan.
Media o nivel 3 a 5. Requiere que los problemas asociados sean monitoreados y tratados
en juntas internas.
Baja o nivel 1 y 2. Es necesario monitorear el problema ocasionalmente
*Para saber el nivel de prioridad debes multiplicar los valores de la probabilidad y el impacto.
Toma de contramedidas
Estrategias que se aplican para la reducción de problemas lo que incluye:
Registro
Monitoreo
Control de riesgo
Efectuar un análisis de riesgo ayudara a disminuir problemas durante la ejecución de pruebas con
lo que lograras cumplir con los términos establecidos.
Estimación de pruebas
Es una parte vital durante la gestión de pruebas ya que nos permite tener una idea aproximada de
cuánto tiempo y dinero nos tomara realizarlas.
¿Cómo hacer una estimación?
Divide todo el proyecto en tareas y subtareas de tal forma que cada una de esas piezas sea lo más
explicita
Asignacion. Cada una de las tareas es asignada a algún miembro del equipo, toma en cuenta
habilidades experiencia y conocimiento de los miembros del equipo.
Estimacion del esfuerzo por tarea.
Existen varias técnicas para efectuar la estimación.
La mas sencilla es la estimación de los tres puntos, técnica basada en la experiencia o en las
mejores practicas
Punto A. Es el escenario optimo en el cual tienes al equipo de mejores probadores y todos
los recursos disponibles
Punto M. es el escenario mas probable, es un caso común donde tienes los recursos
suficientes y un equipo de probadores adecuado.
El punto B. es el peor escenario en donde tu equipo no tiene la experiencia necesaria y
además tienes escasos recursos.
Por último, ya que se tenga la estimación se debe enviar a los administradores del proyecto que
serán los encargados de dar la aprobación de la misma.
Es posible que durante el desarrollo del proyecto esta sufra alteraciones en el tiempo estimado
por eso es recomendable que agregues un tiempo de reserva.
Plan de pruebas
Elaborar un plan de prueba adecuado te ayudará a reducir esfuerzos y tiempo durante el proceso
de análisis.
Analisis. Estudia la documentación del software
Estrategia de prueba. Es critico dentro de la planeación, esta etapa consta de 4 puntos.
1. Determinación del alcance de prueba. A los elementos del sistema que se les va a realizar
la prueba se les conoce como bajo ‘cobertura’ se debe considerar lo siguiente para
determinar el alcance de la prueba.
- Requerimientos del cliente
- Especificaciones del producto
- El presupuesto asignado
- Las habilidades y numero de integrantes del equipo de trabajo
*Fuera de cobertura, son los elementos que no están bajo prueba pero están claramente definidos
2. Identificacion de tipos de prueba. Existen diferentes tipos de prueba, por ello se debe
enfocar en las metas del proyecto para elegir el tipo adecuado.
3. Analisis de riesgo.
4. Creación de logística de la prueba. Se debe definir quien ejecutará la prueba y cuando lo
hará, para eso se considera
-Las habilidades de cada tester y requerimientos del cliente
-El tester debe tener buena cooperación y atención al detalle
-Deben existir las especificaciones de la prueba y los documentos requeridos
-capital humano
Definición de los objetivos de prueba
El objetivo de toda prueba es encontrar la mayor cantidad de errores y asegurar que el software
esté libre de fallas cuando lo adquiera el usuario final
Para definir estos objetivos atiende lo siguiente
Determinar todas las aplicaciones del software que necesita probarse. Esto se puede hacer
mediante una lista.
Creación de casos de prueba
Escenarios confusos y un amplio rango de posibilidades