Академический Документы
Профессиональный Документы
Культура Документы
Norma
IEEE 610 Definicin de error, defecto y fallo.
Definicin de calidad-Definicin software
Definicin de caso de prueba
Definicin de pruebas de aceptacin.
Revisiones/Ensayos
Anlisis del flujo de control
ESTTICO
ORGANIZACIN
Estndares
Listas de Comprobacin
Reglas de proceso y normas
Requisitos legales
QA CONSTRUCTIVO
Mtodos
Herramientas
Lenguajes
TCNICO
Listas/Plantillas
Entorno de desarrollo integrado (IDE)
Orculo De Pruebas: Fuente que permite determinar los resultados esperados en un software
sujeto a pruebas: comparativas benchmarks, manuales de usuario o conocimiento especializado.
No debe ser el cdigo.
Base de la prueba: Conjunto de documentos que definen los requisitos de un componente o
sistema utilizado como fundamento para el desarrollo de casos de prueba.
Capitulo 2:
El modelo V general es el modelo de desarrollo software ms utilizado.
Desarrollo y pruebas son dos ramas iguales.
Cada nivel de desarrollo tiene su correspondiente nivel de pruebas.
Las pruebas (rama derecha) se disean en paralelo al desarrollo software (rama izquierda).
Las actividades del proceso de pruebas tienen lugar a lo largo de todo el ciclo de vida software.
Pruebas de sistema:
Pruebas del sistema software integrado con el objeto de comprobar la conformidad con los
requisitos especificados.
La calidad del software es observada desde el punto de vista del usuario.
Despliegue en el entorno real del sistema con datos reales.
No son necesarios stubs o drivers.
El entorno de pruebas debe coincidir con el futuro entorno real del sistema.
Se refieren a Requisitos funcionales y no funcionales.
Las pruebas de sistema funcionales confirman que los requisitos para un uso especfico previsto
han sido satisfechos (validacin).
Las pruebas de sistema no funcionales verifican los atributos de calidad no funcionales. Con
frecuencia estos atributos son una parte implcita de los requisitos, esto hace difcil validarlos.
Enfoques para probar requisitos funcionales:
Pruebas basadas en requisitos, en procesos de negocio y en casos de uso.
Pruebas de aceptacin:
Son pruebas formales llevadas a cabo con el objeto de verificar la conformidad del sistema con los
requisitos. El objetivo es aportar justificacin a la confianza en el sistema para que pueda ser
aceptado por el cliente.
Pruebas de aceptacin Aceptacin Contractual:
Con la aceptacin formal se cumplen hitos legales: Comienzo de fases de garanta, hitos de abono
(pago), acuerdos de mantenimiento.
Normalmente el cliente selecciona casos de prueba para las pruebas de aceptacin.
Pruebas de aceptacin Pruebas de aceptacin operativa:
Requiere que el software sea adecuado para su uso en un entorno operativo.
Integracin del software con la Tecnologa de informacin del cliente.
Con frecuencia son realizadas por el administrador de sistemas del cliente.
Son las pruebas de sistema por parte del cliente. El cliente conoce su negocio
Es una actividad de carcter contractual (satisface los requisitos del cliente?).
Requiere que el software sea adecuado para su uso en un entorno operativo.
Integracin del software en la estructura TI del cliente.
Pruebas no funcionales:
Objetivo: Probar las caractersticas del producto software.
Se pueden llevar a cabo en todos los niveles.
Las caractersticas de calidad no funcionales a menudo son incompletas, inexistentes por lo que
hace ms difcil las pruebas.
Ejemplo de pruebas no funcionales:
Pruebas de carga (ms usuarios, ms transacciones), de rendimiento (Rapidez-tarea), de volumen
(Procesamiento grandes cantidades de datos), de estrs (reaccin sobrecarga, recuperacin tras
fallos), de estabilidad (modo de operacin continuo), de robustez (entradas errneas, datos no
especificados, reaccin a fallos Hw, recuperacin ante desastres), de seguridad de datos
(proteccin contra accesos no autorizados), de compatibilidad (cumplimiento de normas y
reglamentos. Reaccin a diferentes entornos), de usabilidad.
NOTA: La conformidad con los requisitos no funcionales, se miden utilizando requisitos
funcionales.
Pruebas estructurales:
Objetivo: Probar la estructura/arquitectura software Cobertura.
Medir el grado en el cual la estructura del objeto de prueba ha sido cubierto por los casos de
prueba.
Enfoque: Caja blanca
Son posibles en todos los niveles.
Comprueban el flujo de control y datos midiendo la cobertura en el objeto de pruebas.
Se realizan de forma conjunta a las pruebas de componente y de integracin mediante el uso de
herramientas.
El diseo se realiza despus del diseo de las pruebas funcionales, para obtener un alto grado de
cobertura.
Capitulo 3:
Tcnicas estticas:
Comprenden varios mtodos que no ejecutan el componente o sistema objeto de prueba.
Incluyen:
Revisiones (Actividad Manual). Se utilizan para verificar la correcta transicin de una fase a
la siguiente, segn est definido en el lado izquierdo del modelo en V.
Anlisis Esttico (Actividad basada en herramientas)
REVISIONES:
Complementan los mtodos dinmicos.
Detectan defectos en lugar de fallos, en una fase temprana antes de que sean implementadas en
el cdigo.
Objetivo: Mejorar la calidad del producto.
Moderador y participantes influyen directamente en la calidad de la revisin.
Las revisiones permiten detectar defectos en especificaciones, diseo/arquitectura, desviaciones
con respecto al estndar, mantenibilidad insuficiente.
Fases de una revisin:
Planificacin: Organizacin de la revisin, seleccin de miembros.
Preparacin de la organizacin e inicio kick-off: Distribucin objetivos de la revisin e
informacin adicional.
Preparacin individual: Inspeccin de los objetivos, se comentan los elementos en caso de
aclaraciones.
Reunin de revisin: Evaluadores presentan los resultados.
Seguimiento follow-up: Resultados ->Responsables, Recomendaciones.
Roles:
Director/Responsable/Jefe de proyecto.
Moderador.
Autor.
Evaluador/Inspector/Revisor.
Secretario.
Tipos de revisiones:
Inspeccin: Basado en reglas, uso de listas de comprobacin, Moderador capacitado e
independiente, proceso formal. Propsito: Deteccin de defectos utilizando un mtodo
estructurado. Roles claramente definidos, requiere preparacin.
Walkthrough: Dirigida por el autor, no es necesario moderador, posibilidad limitada de
control. Opcionalmente puede haber una preparacin de los evaluadores previa a la
reunin. El resultado queda abierto. Autor -> Influye en el resultado.
Revisin tcnica: Son necesarios expertos preferiblemente externos, la reunin puede
tener lugar sin la presencia del autor, se presenta las recomendaciones con carcter
unnime. Se requiere preparacin. Ejemplo: SQA.
Revisin informal (revisin por pares): Forma de revisin ms simple, frecuentemente
iniciada por el autor, solo estn incluidos los evaluadores, no es necesaria reunin. No hay
protocolo.
NOTA: Para la ejecucin apropiada de las revisiones es necesario un presupuesto suficiente 10-
15% del costo total del desarrollo.
Duracin: Mximo 2 Horas.
Anlisis Esttico:
Anlisis del objeto de prueba (cdigo fuente, guin/script, requisitos) llevado a cabo sin ejecutar el
producto software.
Se comprueba:
Reglas y estndares de programacin
Diseo de un programa (anlisis de flujo de control)
Uso de datos (anlisis de flujo de datos)
Complejidad de la estructura de un programa (Mtricas, ej: Nmero ciclomtico)
Todos los objetos de prueba deben tener una estructura formal.
El anlisis esttico de un programa mediante el uso de herramientas, se desarrolla con menor
esfuerzo que el de una inspeccin, por lo que con mucha frecuencia este se realiza antes de una
revisin.
Herramientas a utilizar:
Compiladores: Detecta errores sintcticos en el cdigo fuente de un programa, comprueba
la consistencia entre los tipos de variables. Detecta variables no declaradas o cdigo
inaccesible (cdigo muerto).
Analizadores: Trata aspectos como convenciones y estndares, mtricas de complejidad y
acoplamiento de objetos.
Anlisis de flujo de control:
Detectar defectos causados por un desarrollo anmalo del cdigo (ramas muertas, cdigo muerto,
retornos mltiples).
Visin del conjunto del cdigo de programa comprensible.
Mtodo: La estructura del cdigo se representa como un diagrama de control de flujo (grafo
dirigido).
Construccin mediante herramientas.
Anlisis de flujo de datos:
Deteccin de anomalas en el flujo de datos con la asistencia de los diagramas de control de flujo y
conjeturas racionales respecto de la secuencia de flujos de datos.
Se puede detectar fcilmente la localizacin exacta de los defectos.
Nmero ciclomtico:
Mtrica que mide la complejidad esttica de un programa basada en su grafo de flujo de control.
Aporta un ndice del nmero de casos de prueba necesarios para alcanzar cobertura de decisin.
Tambin puede ser calculado como el nmero de decisiones independientes + 1. (Puede dar
diferente valor debido a ramas superfluas o ramas faltantes).
Mide los caminos linealmente independientes como ndice de testeabilidad y mantenibilidad.
Frmula: V(G)=e-n+2p
e: Nmero de aristas
n: Nmero de nodos
p: Nmero de partes del programa independientes inspeccionadas (normalmente 1)
Valores hasta 10 son aceptables (Segn McCabe)
Aporta un ndice del nmero de casos de prueba necesarios para alcanzar cobertura de decisin.
NOTA: Ejemplo de otras mtricas LOC (Lneas de cdigo)
Capitulo 4:
Diseo de casos de prueba:
Los casos de prueba y los juegos de pruebas (test suites) son obtenidos a partir de los requisitos o
caractersticas de los objetos de pruebas.
El diseo de casos de prueba debe ser un proceso controlado.
Los casos de prueba pueden ser creados formal o informalmente dependiendo de las
caractersticas del proyecto y la madurez del proceso en uso.
Descripcin de un caso de prueba (IEEE829):
Valores de entrada
Precondiciones
Resultados esperados
Poscondiciones
Dependencias (orden de ejecucin)
Identificador distinguible
Requisitos
La cobertura de clases de equivalencia puede ser utilizada como criterio de salida para
finalizar las actividades del proceso de pruebas.
A E
A ~ E
A
E
B v
A
Ex
B
A
I
B
o Una y solo una (Una y exactamente una de las dos causas A o B)
A
O
B
Es difcil deducir valores lmite a partir del diagrama causa y efecto o de la tabla de
decisin, por esta razn es recomendable realizar una combinacin entre los dos.
El nmero de causas y efectos analizados determinarn la complejidad del diagrama causa
y efecto. (Para n precondiciones cuyos posibles valores puedan ser Verdadero o falso -> 2
casos de prueba.
Para sistemas de mayor tamao este mtodo solo es controlable con el apoyo de
herramientas.
4. Pruebas de transicin de estado:
A travs de diagramas de transicin de estado se modelan los distintos estados que puede
tomar un objeto de prueba.
rbol de transicin de estado: Sirve para determinar los casos de prueba utilizando un
diagrama de transicin de estado.
Para todos los estados, las posibles transiciones de un estado a otro se representan como
ramas.
Cada camino desde la raz hasta una hoja, representa un caso de prueba para las pruebas
de transicin de estado.
Buen mtodo de pruebas para aquellos objetos de prueba que pueden ser descritos como
una mquina de estado. Sirve para probar clases si se dispone del ciclo de vida del objeto.
5. Pruebas de caso de uso: Los casos de prueba se obtienen directamente a partir de los
casos de uso del objeto de prueba.
Debido a que este mtodo no obtiene casos de prueba adicionales que vayan ms all de
la informacin aportada por el caso de uso, se debe utilizar solo en combinacin con otros
mtodos de diseo sistemtico de casos de prueba.
La base de este anlisis es el diagrama del flujo de control. Se centra en los nodos.
Todas las instrucciones estn representadas por nodos y el flujo de control entre
instrucciones est representado por una arista (flecha).
Si hay cdigo muerto en el programa no se podr lograr una cobertura del 100%.
Se centra en el flujo de control de un segmento de programa (no los nodos sino las aristas
del diagrama de flujo de control)
Este mtodo tiene por objetivo detectar defectos que resulten de la implementacin de
condiciones mltiples (condiciones combinadas).
Las condiciones mltiples estn constituidas por condiciones atmicas que se combinan
con el uso de operadores lgicos como XOR AND, OR, etc.
o Cobertura de condicin mltiple: Todas las combinaciones que puedan ser creadas
utilizando permutaciones de las subcondiciones atmicas deben formar parte de
las pruebas, es decir se crean todas las combinaciones de valores verdadero y
falso. El nmero de casos de prueba se incrementa de forma exponencial.
n = Nmero de condiciones atmicas.
2 = nmero de casos de prueba.
AND
o Cobertura de condicin mltiple mnima: Todas las combinaciones que puedan ser
creadas utilizando los resultados lgicos de cada sub-condicin deben ser parte de
las pruebas, slo si el cambio del resultado de una sub-condicin cambia el
resultado de la combinacin combinada.
El nmero de casos de prueba se puede reducir a un valor entre n+1 y 2n
4. Cobertura de camino: Porcentaje de caminos de ejecucin que han sido practicados por
casos de prueba. Se centra en la ejecucin de todos los posibles caminos a travs de un
programa.
100% cobertura de camino, incluye 100% de cobertura de decisin, que a su vez incluye
100% cobertura de sentencia.
100% Camino
100% Decisin
100% Sentencia
Otras tcnicas:
5. LCSAJ: Secuencia lineal de cdigo y salto
6. Tcnicas basadas en el flujo de datos
Diseador de pruebas:
Disea los casos de prueba necesarios y establece el orden en el cual tendrn lugar la ejecucin de
los casos de prueba.
Competencias:
o Conocimiento de desarrollo y pruebas
o Conocimiento de ingeniera de software
o Conocimiento respecto a especificaciones tcnicas
o Conocimiento de requisitos funcionales
Ingeniero de automatizacin de pruebas:
Evala las posibilidades de la automatizacin de pruebas y las implementa.
Competencias:
o Experiencia como tester
o Conocimiento tcnico Know How en el mbito de diseo y automatizacin de pruebas.
o Conocimientos de programacin
o Amplios conocimiento en el uso de las herramientas utilizadas.
Administrador del sistema de pruebas:
Prepara y opera el entorno de pruebas.
Competencias:
o Administracin de sistemas
o Conocimiento de herramientas de desarrollo y pruebas
o Sistemas de base de datos (si aplica)
o Redes (si aplica)
o Instalacin y operacin de software del sistema
Tester:
Ejecuta las pruebas de acuerdo con la especificacin de casos de prueba.
Competencias:
o Conocimiento bsico del software
o Conocimiento bsico de pruebas
o Operacin y uso de herramientas de pruebas
o Experiencia en la ejecucin de pruebas
o Conocimiento respecto de los objetos de prueba
Tareas:
o Asiste en la implementacin del plan de pruebas
o Ejecuta los casos de prueba y registra los resultados
o Introduce los errores en un repositorio
o Informa las pruebas
o Asiste en la implementacin de la automatizacin de pruebas
Experto tcnico:
Asiste al equipo de pruebas cuando es necesario.
Competencias:
o Administracin de bases de datos o diseo de bases de datos.
o Experto en interfaces de usuario.
o Experto en redes.
Consejo de control del cambio (CCC):
Decide respecto de los cambios de requisitos y sus prioridades.
Desarrollador:
Analiza los fallos, localiza la causa del error.
Corrige la causa de error de acuerdo con la prioridad asignada.
Ejecuta todos los cambios aprobados.
Estimacin de pruebas:
Factores:
o Caractersticas del producto
o Calidad de la base de pruebas
o Requisitos de fiabilidad y seguridad del producto
o Complejidad del proceso de desarrollo
o Estabilidad de la organizacin, madurez del proceso utilizado
o Personal involucrado, restricciones temporales.
Mtodos:
El seguimiento debe ser realizado en base a consideraciones medibles y esto debe ser
informado de forma regular.
o Mtricas en base a errores: Utilizando informacin del sistema de gestin de
incidentes.
o Mtricas en base a casos de prueba: Utilizando informacin del sistema de gestin de
pruebas.
o Mtricas en base a objetos de pruebas: gestin de la configuracin
o Mtricas en base a costes: Utilizando informacin del sistema de control de proyectos.
Control: Correccin del rumbo de las actividades de pruebas cuando sea necesario.
Se deben tomar medidas correctivas como respuesta a desviaciones respecto del plan.
Medidas:
Gestin de la configuracin:
Presenta un rol de apoyo dentro de un proyecto - todos los cambios deben ser registrados en
un recurso comn y comunicado haciendo uso de procesos definidos.
No es una actividad particular del proceso de pruebas, sino que es necesaria durante todas las
fases de un proyecto.
Es necesaria para administrar los cambios sobre los objetos de prueba y sus respectivas
versiones.
Auditora de la Configuracin:
Tiene como objeto comprobar la efectividad de las actividades de la gestin de la
configuracin.
Riesgo:
Es la probabilidad de un resultado negativo (matemtico) o la probabilidad de la ocurrencia de
un suceso negativo multiplicada por el monto del dao econmico.
Los riesgos asociados al proyecto afectan al xito del proyecto y deben ser gestionados.
Medidas:
- Evitar el riesgo
- Mitigar el riesgo (preparacin activa de medidas para reducir la probabilidad y/o dao
potencial)
- Control del riesgo (Preparar las medidas necesarias en el caso en el cual el riesgo se
convierte en un problema, contar con tiempos y fondos suficientes)
- Ignorancia del riesgo (rezar)
Riesgos asociados al proyecto (ms frecuentes):
- Riesgos asociados a la organizacin: Problemas personales entre equipos, falta de
cooperacin, conflictos de intereses entre departamentos, capacitacin y
disponibilidad de personal.
- Riesgos tecnolgicos: Requisitos defectuosos, incompletos, no realistas.
Herramientas, tecnologas, mtodos nuevos que presentan incertidumbre para el
desarrollo software. Dficit en la calidad de productos, Disponibilidad de un entorno
de pruebas complejo.
- Riesgos ambientales: Deficiencias por parte de externos en la provisin de
componentes, problemas contractuales con proveedores, acceso concurrente a
recursos externos, cambios en requisitos legales.
Riesgos asociados al producto:
- Funcionalidad insuficiente del producto suministrado.
- Atributos no funcionales insuficientes.
- El producto no es idneo para su uso previsto.
- El producto provoca daos a la propiedad.
- El producto provoca lesin o muerte accidentales.
NOTA: Las pruebas se ejecutan para reducir o evitar a los riesgos asociados al producto.
Capitulo 6:
Las herramientas de prueba pueden ser utilizadas para dar soporte a las actividades de pruebas.
La denominacin de las herramientas de pruebas se realiza segn el tipo de soporte que prestan.
Hay herramientas disponibles para cada nivel del proceso de pruebas.
Clasificacin de las herramientas de pruebas:
Herramientas unitarias (single tools): Dan soporte a una tarea particular, son diseadas para
una actividad de pruebas.
Paquetes de pruebas herramientas (test tool suites): Cubren varias tareas e integran varias
herramientas unitarias.
- Entrega de datos.
- Recepcin de datos o escritura en el registro del comportamiento de la salida.
- Documentar la ejecucin de las pruebas.
Ejemplos:
Simuladores: Son una rplica del entorno de produccin (o parte del mismo) y son
necesarios cuando consideraciones de seguridad impiden el uso del entorno de
produccin objetivo (real). Principalmente son utilizados en el nivel de pruebas de
sistema y pruebas de integracin y posiblemente en pruebas de componente.
La emulacin del entorno de produccin debe ser tan prxima el mismo como sea
posible.
Robots de prueba: Pueden tratar la interfaz externa del objeto de prueba de forma
directa.
Pueden aceptar y/o suministrar datos, el desarrollo de la prueba se realiza de forma
automtica.
Con frecuencia aportan una funcin que compara el resultado real (obtenido) con el
resultado esperado.
Las herramientas de captura-repeticin son utilizadas con frecuencia, como robots de
pruebas. Estas herramientas registran los pasos de la ejecucin de la prueba a travs
de la interfaz de usuario y las guarda en un fichero en un formato de guin (script file).
Permiten la repeticin automtica de la secuencia de prueba haciendo uso de guin
(script) registrado/guardado.
1. Anlisis de la necesidad: Cules son los puntos fuertes y dbiles del rea de pruebas?
Qu puede ser mejorado con el despliegue de la herramienta?
2. Definicin de requisitos: Las necesidades respecto de la herramienta deben ser
definidos de forma clara, deben ser establecidos criterios medibles.
3. Evaluacin: Examinar la conformidad de la herramienta con la funcionalidad solicitada
y los criterios de calidad adicionales. Solicitar el nmero de copias vendidas, servicio
de posventa y la posibilidad de colaboracin por parte del proveedor.
4. Lanzamiento: Apoyar la introduccin de la herramienta a travs de entrenamiento y
formacin para el uso de la herramienta. Lo ideal es establecer un proyecto piloto
para introducir la herramienta.