Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Syllabus 2011 Español PDF
Syllabus 2011 Español PDF
Versión 2011
1.Fundamento de la prueba (K2) 155 minutos
Términos
Virus, defectos, errores, fallas, desperfectos, errores, calidad, riesgo
1.1.1 Contexto del Sistema del Software (K1)
Los sistemas del software son parte integral de la vida, desde de aplicaciones comerciales
(por ejemplo banca) hasta productos de consumo (por ejemplo, carros). La mayoría de
gente que ha tenido experiencia con el software, no les ha funcionado como esperaban.
El software que no funciona correctamente, puede causar varios problemas, incluyendo
perdida de dinero, tiempo, reputación del negocio e incluso podría causar daño o muerte.
Un ser humano puede cometer errores, que generan defectos (fallas, virus) en el código
del programa o en un documento. Sí se ejecuta un defecto en el código, pueden haber
fallas en el sistema al realizar lo que debe hacer (o lo que no debe hacer), generando
fallas. Los defectos en el software, sistemas o documentos pueden resultar en fallas, sin
embargo no sucede con todos los defectos.
Los defectos se dan debido a que la gente es falible y porque hay presión de tiempo,
códigos complejos, complejidad de infraestructura, cambios de tecnologías y / o varias
interacciones del sistema.
Las fallas se pueden dar por condiciones ambientales respectivamente. Por ejemplo,
radiación, magnetismo, campos electrónicos, y polución pueden causar desperfectos en
firmware o influencia en la ejecución del software cambiando las condiciones del hardware.
También puede requerirse que el software cumpla los requisitos contractuales y legales o
estándares específicos industriales.
Con la ayuda de las pruebas, es posible medir la calidad del software en términos de
defectos encontrados para los requisitos y características funcionales y no funcionales del
software (por ejemplo, confiabilidad, uso, eficiencia, mantenimiento y portabilidad).Para
mayor información sobre pruebas no funcionales, véase Capitulo 2; para mayor
información sobre características de Software, véase "Software Engineering-Sotfware
Product Quality" (ISO 9126).
Las pruebas dan confianza en la calidad del software si encuentran pocos o ningún defecto.
Una prueba designada adecuadamente que está aprobada, reduce todo el nivel de riesgo
en un sistema. Cuando en la prueba se encuentran defectos, la calidad del sistema del
software aumenta cuando se corrigen dichos defectos.
Las pruebas deben integrarse como una de las actividades de garantía de calidad (Es decir,
junto con estándares de desarrollo, capacitación and análisis de defectos).
Terminos
Depuramiento, requisitos, revisión, caso de prueba, testing, objetivo de prueba
Antecedentes
Una percepción normal de testing es aquella que solo consiste en realizar pruebas, es
decir, ejecutar el software. Esto hace parte del testing pero no de todas las actividades
del mismo.
Se puede utilizar el testing dinámico y estático como medio para lograr objetivos similares
y suministraran información que puede utilizarse para mejorar el sistema que se está
probando y los procesos de desarrollo y testing.
Testing puede tener los siguientes objetivos:
- Encontrar defectos
- Ganar confianza respecto al nivel de calidad
- suministrar información para la toma de decisiones.
- Prevenir defectos
Términos
Testing Exhaustivo
Principios
Se han sugerido varios principios de testing los últimos 40 años así como se han ofrecido
pautas comunes para todo el proceso de testing.
Terminos
La confirmación de testing, re-testing criterios de salida, incidentes, pruebas de regresión,
bases de pruebas, condiciones de pruebas, cubrimiento de pruebas, datos de pruebas,
ejecución de pruebas, log de pruebas, plan de pruebas procedimiento de pruebas, política
de pruebas, conjunto de pruebas, reporte de resumen de pruebas, testware
Antecedentes
La parte más visible de testing es la ejecución de pruebas. Sin embargo, para ser efectivo
y eficiente, los planes de prueba deben incluir el tiempo que se debe gastar en la
planeación de pruebas, diseño de casos de pruebas, preparación de la ejecución y
evaluación de resultados
El proceso fundamental de pruebas consiste en las
siguientes actividades principales:
- Planeación de pruebas y control
- Análisis y diseño de pruebas
- Implementación evaluación de pruebas
- Evaluación de criterios de salida y reporte
- Actividades de cierre del testing
Terminos
Error guessing (calculo de errores), independencia
Antecedentes
La manera en que se analiza mientras el proceso de prueba y revisión es diferente a
aquella que se utiliza mientras se desarrolla el software .Con la correcta actitud los
desarrolladores pueden probar sus propios códigos, pero la división de esta
responsabilidad a un probador se realiza comúnmente para ayudar a enfocarse en
esfuerzos y suministra beneficios adicionales, como una perspectiva independiente por
recursos de testing capacitados y profesionales. Testing independiente puede llevarse
acabo en cualquier nivel del testing.
La gente y los proyectos se rigen por proyectos. La gente tiende a nivelar sus planes con
los objetivos planteados por el manejo y otros accionistas, por ejemplo encontrar defectos
o confirmar que el software cumple sus objetivos. Por lo tanto, es importante establecer
claramente los objetivos de testing.
Identificar fallas en el proceso de testing puede percibirse como una crítica del producto y
el autor. Como resultado, el testing se ve como una actividad destructiva a pesar de ser
muy constructiva en el manejo de riesgos del producto. La búsqueda de fallas en un
sistema requiere curiosidad, pesimismo profesional, ojo crítico, atención a detalles, buena
comunicación con desarrolladores, y experiencia donde basar error guessing.
References
1.1.5 Black, 2001, Kaner, 2002
1.2 Beizer, 1990, Black, 2001, Myers, 1979
1.3 Beizer, 1990, Hetzel, 1988, Myers, 1979
1.4 Hetzel, 1988
1.4.5 Black, 2001, Craig, 2002
1.5 Black, 2001, Hetzel, 1988
2. Testing a través del Ciclo de vida del Software (K2) 115 minutos
Objetivos de estudio para Testing a través del ciclo vida del Software
Estos objetivos identifican lo que se podrá hacer realizar siguiendo el proceso de
terminación de cada módulo.
Términos
Comerciales Off-The-Shelf (COTS), modelo de desarrollo iterativo-gradual, validación,
verificación, modelo V.
Antecedentes
Las pruebas no son hechos aislados; las actividades de pruebas se relacionan a las
actividades de desarrollo del software. Diferentes modelos de ciclo de vida de desarrollo
necesitan distintos enfoques al testing.
Términos
Pruebas Alpha, beta, de componentes, driver, de campo, requisito funcional, integración,
pruebas de integración, requisitos no funcionales, pruebas de resistencia, STUB, pruebas
del sistema, ambiente de pruebas nivel de prueba, desarrollo guiado por pruebas, pruebas
de aceptación del usuario.
Antecedentes
En cada nivel de prueba, se puede identificar lo siguiente: objetivos genéricos, producto
(s) de trabajo que se referencian en casos de prueba derivados (es decir, bases de
pruebas), objeto de prueba (es decir, lo que se está probando), defectos comunes y fallas
que deben encontrarse, requisitos de test harness (herramienta de pruebas específica que
permite probar un servicio de manera aislada) y soporte de herramientas y enfoques y
responsabilidades específicas.
Normalmente, la prueba del componente ocurre con el acceso al código que se está
probando y con el apoyo de un entorno de desarrollo, como un marco de pruebas de
unidad o herramienta de depuramiento. En la práctica, las pruebas del componente
generalmente involucra al programador que redacto el código. Lo defectos normalmente
se solucionan cuando se encuentran sin manejar dichos defectos formalmente.
Un enfoque al testing del componente es preparar y automatizar los casos de prueba antes
de la codificación. Lo anterior se denomina como un enfoque de primeras pruebas, y
desarrollo guiado por pruebas. Este enfoque es altamente iterativo y se basa en ciclo de
casos de prueba desarrollados, luego en la construcción e integración de pequeñas piezas
de códigos y ejecución de pruebas de componentes corrigiendo cualquier inconveniente e
iteración hasta que pasen.
Las estrategias de integración del sistema se pueden basar en la arquitectura del sistema
(como un planteamiento ascendente y un planteamiento descendente), tareas funcionales,
secuencias de trámites de transacciones, o algunos otros aspectos del sistema o
componentes. Con el fin de prontamente mitigar el aislamiento de fallas y detectar
defectos, la integración debe ser normalmente incremental en lugar de ser un "big bang"
En las pruebas del sistema, el entorno de la prueba corresponde al objetivo final o entorno
de producción tanto como sea posible con el fin de minimizar el riesgo de fallas de entorno
específicas que no se encuentran en las pruebas.
Pruebas del sistema pueden incluir pruebas basadas en riesgos y/o en especificaciones de
requisitos, procesos comerciales, casos de uso, u otras descripciones de texto de alto nivel
o modelos de comportamiento del sistema, interacciones con el sistema operativo y
recursos de sistemas.
Las pruebas del sistema deben investigar los requisitos no funcionales del sistema y
características de la calidad en los datos. También necesitan los probadores hacerse cargo
de requisitos incompletos o indocumentados las pruebas del sistema de requisitos
funcionales comienza con el uso de las más adecuadas técnicas basadas en especificaciones
(caja negra) para que se pruebe el aspecto del sistema. Por ejemplo, se puede crear una
tabla de decisiones para la combinación de efectos descritos en las normas comerciales.
Técnicas basadas en estructuras (caja blanca) se pueden usar para tener acceso a la
rigurosidad de la prueba respecto al elemento estructural, como la estructura del menú o
navegación de la página web (ver Capitulo 4)
Un equipo de prueba independiente generalmente lleva a cabo las pruebas del sistema.
Las pruebas de aceptación pueden darse en varios momentos del ciclo de vida, por ejemplo;
o Un producto software COTS puede ser prueba de aceptación cuando se instala o se
integra.
o Pruebas de aceptación del uso de un componente puede realizarse
durante la prueba del componente
o Pruebas de aceptación de una ampliación funcional pude venir antes de
probar el sistema.
Términos
El testing dl Black-box (caja negra, recuadro negro) cubrimiento del código, testing
funcional, testing de interoperabilidad, testing de carga, testing de mantenimiento, testing
de desempeño, testing de fiabilidad, testing de seguridad, testing de tensión, testing
estructural, testing de uso, testing de caja blanca
Antecedentes
Un grupo de actividades de prueba puede estar dirigido a la verificación del sistema del
software (o una parte del sistema) basado en razones especificas u objetivos de prueba
Un tipo de prueba se enfoca en un objetivo especial de prueba que puede ser lo siguiente:
o Una función que desarrolla el software.
o Una característica de calidad no funcional, como
confiabilidad o uso
o La estructura o arquitectura del software o
sistema.
o Cambios relacionados, es decir, confirmación de defectos que se han
solucionado (testing de confirmación) y búsqueda de cambios accidentales.
En todos los niveles de prueba, pero especialmente en el testing del componente y testing
de integración del componente, se pueden utilizar para medir el cubrimiento de códigos de
elementos como estados o decisiones. El testing estructural puede basarse en la
arquitectura del sistema, como una denominada jerarquía.
Términos
Análisis de impacto, testing de mantenimiento
Antecedentes
Cuando se haya desplegado, un sistema del software esta frecuentemente en servicio
durante años o décadas. Durante este tiempo se corrigen, cambian o extienden el sistema,
sus datos de configuración, o su entorno. La planeación de salidas anticipadas es crucial
para pruebas de mantenimiento exitosas. Se debe hacer una distinción entre salidas
planeadas y "hot fixes" (arreglos).Se realiza el testing de mantenimiento en un sistema
operativo vigente, y se activa por modificaciones, migraciones o retiro de software o
sistema.
El testing de mantenimiento para migración (por ejemplo, de una plataforma a otra) debe
incluir pruebas operativas del nuevo entorno así como el software que se ha cambiado. El
testing de migración (testing de conversión) también se necesita cuando los datos
provenientes de otra aplicación se van a migrar al sistema que se está manteniendo.
Referencias
2.1.3 C M MI, Craig, 2 002, Hete l, 1988, IEE E 12207
2.2 Él t z el, 1 988
2.2.4 C o pelo un nd, 20 0 4, Myers, 1 9 79
2.3.1 B e iz e r, 1990, Falta B, 2001, Cop e la nd, 2 00 4
2.3.2 Bl cción, 2001, I S O 9126
2.3.3 B e iz e r, 1990, C opa ly, 2 0 04, Hetzel, 1988
2.3.4 H e tze l, 1988, me Eee S T D 8 febrero 9 a 19 9 8
2.4 B la c k, 2001, C r un ig, 2 0 02, H e tzel, 1988, I eee S T D 8 2 9-1998
Términos
Pruebas dinámicas, pruebas estáticas
Antecedentes
A diferencia de las pruebas dinámicas, que requieren la ejecución del software, las técnicas
de pruebas dinámicas cuentan con la exanimación manual (revisiones) y un análisis
automatizado (análisis estático) del código u otra documentación del proyecto sin la
ejecución del código.
Las revisiones son una forma de probar los productos software de trabajo (incluyendo
códigos) y pueden desarrollarse correctamente antes de ejecutar la prueba dinámica. Los
defectos detectados durante las primeras revisiones en el ciclo de vida (por ejemplo,
defectos encontrados en los requisitos) son más económicos de remover que aquellos que
se detectan realizando pruebas en el código de ejecución.
Se podría realizar una revisión completa como un manual de actividades, pero también hay
soporte de herramientas. La principal actividad del manual es examinar un producto de
trabajo y hacer comentarios respecto a eso. Se puede revisar cualquier producto de software
de trabajo, incluyendo especificación de requisitos especificaciones de diseño, código,
planes de prueba, especificaciones de prueba, casos de prueba, comandos de prueba, guías
de usuario o páginas web.
Los beneficios de las revisiones incluyen una detección y corrección temprana de defectos,
mejoras en la productividad de desarrollo, calendarios de desarrollo reducidos, costos y
tiempos de pruebas reducidos, reducciones de costo de duración, menos defectos y mejor
comunicación. Las revisiones pueden encontrar omisiones, por ejemplo en requisitos que
probablemente no se encuentran en las pruebas dinámicas.
Las revisiones, análisis estáticos, y pruebas dinámicas tienen el mismo objetivo; identificar
defectos. Son complementarios; las distintas técnicas pueden encontrar diferentes tipos de
defectos de manera efectiva y eficiente. En comparación a las pruebas dinámicas, las
técnicas estáticas encuentras las causas de las fallas (defectos) en lugar de fallas como tal.
Los defectos comunes que son más fáciles de encontrar en las revisiones que en las pruebas
dinámicas incluyen lo siguiente: desviaciones de estándares, defectos de requisitos, defectos
de diseño, mantenimiento insuficiente y especificaciones de interfaces incorrectas.
3.2 Proceso de Revisión (K2) 25 minutos
Términos
Criterios de ingreso, revisión formal, inspección, métrica, moderador, revisión por expertos,
revisador, escritos, revisión técnica, recorridos.
Antecedentes
Los diferentes tipos de revisiones varían de instrucciones informales que se caracterizan por
no ser escritas para revisores a resultados sistemáticos documentados de la revisión,
procedimientos sistemáticos documentados para dirigir revisiones que se caracterizan por
la participación en equipo. La formalidad de un proceso de revisión se relaciona con factores
como la madurez del proceso de desarrollo, cualquier requisito legal o reglamentario o la
necesidad de un seguimiento de auditoria.
La manera en que se lleva a cabo una revisión depende de los objetivos de revisión
acordados (por ejemplo, encontrar defectos, comprender mejor, educar probadores y a
nuevos miembros en el equipo y decidir por consenso).
1. Planeación
o Definición de criterios de revisión
o Selección de personal
o Asignación de funciones
o Definición de criterios de entrada y salida para tipos de revisión más formal
(inspecciones)
o Selección de cuales documentos se deben revisar
o Revisión de criterios de entrada ( para tipos de revisión más formal)
2. Kick-off
o Distribución de documentos
o Explicación de objetivos, procesos y documentos de los participantes
3. Preparación individual
o Preparación para reuniones de revisión por medio de la revisión de
documentos
o Observación de defectos, preguntas y comentarios potenciales
4. Exanimación / evaluación / registro de resultados (reunión de revisión)
o Discusión o registros con resultados o actas documentados ( para más tipos
de revisión formal)
o Observar defectos, recomendaciones respecto al manejo de defectos , toma
de decisiones respecto a los defectos
o Exanimación / evaluación y registro de problemas en reuniones o monitoreo
de cualquier grupo de comunicaciones electrónico
5. Reelaboración
o Solución de defectos encontrados ( realizados comúnmente por el autor)
o Registro de estados actualizados de defectos ( en revisiones formales)
6. Seguimiento
o Revisión de que se han tratado defectos
o Recopilación de métricas
o Revisión de criterios de salida ( para tipos de revisión más formal)
Recorrido
o Realizar una reunión por parte del autor
o Se realiza mediante escenarios, simulacros, participación de grupo
o Sesiones abiertas
Preparación de pre-reuniones opcionales de revisores
Preparación opcional de un reporte de revisión que incluya una lista de
resultados
o Notario - escribiente opcionales (que no sea el autor)
o Puede que varíe de muy informal a muy formal
o Propósito principal: Aprender, comprender, encontrar defectos
Revisión técnica
o Proceso documentado, de detección de defectos definido que incluya compañeros y
expertos técnicos con participación opcional de gerencia
o Se puede desarrollar como una revisión hecha por expertos sin la participación de
la gerencia
o Preferiblemente dirigido por un moderador capacitado (no el autor)
o Preparación de pre-reuniones por parte de revisores
o Uso opcional de listas
o Preparación de un reporte de revisión que incluya la lista de resultados, el veredicto
si el producto software cumple sus requisitos y cuando corresponda,
recomendaciones relacionadas con los resultados
o Puede variar en la práctica de demasiado informal a muy formal
o Propósitos principales: discusiones, toma de decisiones, evaluación de alternativas,
encontrar defectos, solución de problemas técnicos, y revisión de conformidad con
las especificaciones, planes, normas y estándares.
Inspección
o Guiada por un moderador capacitado (no el autor)
o Dirigida normalmente como una exanimación hecha por expertos
o Funciones definidas
o Incluye recopilación de métricas
o Proceso formal basado en normas y listas
o Criterios de entrada y salida determinados para la aceptación del producto
software
o Preparación de pre-reuniones
o Reporte de inspección que incluya una lista de resultados
o Proceso formal de seguimiento ( con componentes opcionales de procesos
de perfeccionamiento)
o Lector opcional
o Propósito principal: encontrar defectos
Términos
Compilador, complejidad, flujo de control, flujo de datos, análisis estático
Antecedentes
El objetivo del análisis estático es encontrar defectos en el código fuente de software y
modelos software. El análisis estático se desarrolla sin realmente ejecutar el software que
está examinando la herramienta; las pruebas dinámicas ejecutan el código del software. El
análisis estático puede localizar los defectos que son difíciles de encontrar en las pruebas
dinámicas. Al igual que en las revisiones, el análisis estático encuentra defectos en lugar de
fallas. Las herramientas del análisis estático analizan el código del programa (por ejemplo,
flujo de control y flujo de datos), así como mensajes generadas como HTML y XML.
Las herramientas del análisis estático se utilizan comúnmente por parte de desarrolladores
(revisión en contraste con normas predefinidas o estándares de programación) antes y
durante las pruebas del componente e integración o cuando se ingresa el código a las
herramientas de manejo del configuración y por parte de los diseñadores durante la
formación del software. Las herramientas del análisis estático pueden producir un gran
número de mensajes de advertencia que necesitan manejarse correctamente que permita
el uso más efectivo de la herramienta.
Términos
Especificación de caso de pruebas, diseño de prueba, programación de ejecución de prueba,
especificación del procedimiento de prueba, script de prueba, trazabilidad.
Antecedentes
El Proceso de desarrollo de prueba descrito en esta sección se puede realizar de diferentes
maneras, a partir de una manera informal con poca o ningún tipo de documentación a muy
formal (tal como se describe más adelante). El nivel de formalidad depende del contexto de
la prueba, que incluye la madurez de la prueba y procesos de desarrollo, limitaciones de
tiempo, requisitos de seguridad o normativos y personas involucradas.
Términos
Técnica de diseño de prueba de caja negra, experiencia basada en técnicas de diseño de
pruebas, técnica de diseño o de prueba, técnica de diseño de prueba de caja blanca.
Antecedentes
El propósito de una técnica de diseño de prueba es identificar condiciones de prueba, casos
de prueba y datos de prueba.
Es una distinción clásica que señala técnicas de prueba como caja negra y caja blanca. Las
técnicas de diseño de prueba de caja negra (también denominada técnicas basadas en
especificación) son una forma de derivar y seleccionar condiciones de prueba, casos de
prueba o datos de prueba en un análisis de documentación de bases de prueba. Lo anterior
incluye pruebas funcionales y no funcionales. Las pruebas de caja negra (Black-box testing),
por definición, no utiliza ningún tipo de información respecto a la estructura interna del
componente o sistema que debe probarse. Las técnicas de diseño de prueba (también
denominadas técnicas estructurales o basadas en estructura) se basan en un análisis de la
estructura del componente o sistema. Las pruebas de caja negra y blanca (Black-box and
White-box testing) también pueden combinarse con técnicas basadas en experiencia para
así tomar ventaja de la experiencia de desarrolladores, probadores y usuarios para
determinar lo de se debe probar.
Algunas técnicas claramente caen en una sola categoría; otras tienen elementos de más de
una categoría.
Términos
Análisis de valor límite, testing de tablas de decisión, división de equivalencia, pruebas de
transición de estado pruebas de casos de uso.
El análisis de valor límite se puede aplicar en todos los niveles de prueba. Es relativamente
fácil de aplicar y su capacidad de encontrar defectos es alta. Las especificaciones detalladas
son útiles en la determinación de límites interesantes.
asociadas con dicha norma. La cobertura estándar utilizada comúnmente con las pruebas
de tabla de decisión debe tener por lo menos una prueba por columna en la tabla que
normalmente involucra la cobertura de todas las combinaciones de las condiciones de
activación.
Una tabla de estado muestra la relación entre los estados e ingresos y pueden resaltar las
posibles transiciones que sean inválidas.
Se pueden diseñar pruebas que cubran una secuencia normal de estados, todos los estados,
que ejerzan todas las transiciones, secuencias específicas de transiciones o que prueben
transiciones inválidas.
Se utilizan demasiado las pruebas de transición dentro de la industria del software integrado
y automatización técnica en general. Sin embargo, la técnica también es adecuada para la
formación de un objeto de negocio que tenga estados específicos o probar flujos de dialogo
de pantallas (por ejemplo, en aplicaciones de internet o escenarios empresariales).
Los casos de uso describen los “flujos de procesos” por medio de un sistema basado en su
posible uso real, de manera que los casos de prueba derivados de los casos de uso, son
más útiles en descubrir defectos en los flujos de proceso durante el uso del sistema en el
mundo real. Los casos de uso son muy útiles para el diseño de pruebas de aceptación con
la participación del cliente / usuario. También ayudan a descubrir defectos de integración
causados por la interacción e interferencia de distintos componentes, que no podría ver una
prueba del componente.
El diseño de casos de prueba a partir de casos de uso se puede combinar con otras técnicas
de prueba basadas en la especificación.
4.4 Técnicas basadas en la estructura o de 60 minutos
Caja blanca (K4)
Términos
Cubrimiento de código, cubrimiento de decisión, cubrimiento de instrucciones, pruebas
basadas en la estructura
Antecedentes
Las pruebas basadas en la estructura o de Caja blanca se basan en una estructura identificas
del software o del sistema, tal como se observa en los siguientes ejemplos:
o Nivel del componente: la estructura de un componente software, es decir,
instrucciones, decisiones, sedes o incluso distintos modelos
o Nivel de integración: la estructura puede ser un call tree ( un diagrama en los
cuales los módulos se comunican con otros módulos )
o Nivel del sistema: la estructura puede ser una estructura del menú, proceso
comercial o estructura de página web
En esta sección se discuten tres técnicas de diseño de prueba de relacionado con el código
para en cubrimiento de código, basadas en instrucciones sedes y decisiones. Para las
pruebas de decisión, se puede utilizar un diagrama de flujo de control para visualizar las
alternativas de cada decisión.
También se puede aplicar el concepto de cobertura en otros niveles de prueba. Por ejemplo,
a nivel de integración, el porcentaje de modulos, components o clases que se han ejercido
por un conjunto de caso de pruebas se podría expresar como modulo, componente o
cobertura de clase.
Términos
Testing exploratorio, (falla) ataque
Antecedentes
En las pruebas basadas en la experiencia se derivan pruebas de la capacidad e intuición del
probador así como su experiencia con aplicaciones y tecnologías similares. Cuando se
aumentaban las técnicas sistemáticas, dichas técnicas pueden ser útiles en la identificación
de pruebas especiales que no se capturan fácilmente por parte de las técnicas formales,
especialmente cuando se aplican después de enfoques más formales. Sin embargo, esta
técnica puede ceder ampliamente variando los grados de efectividad, dependiendo de la
experiencia del probador.
Las pruebas exploratorias son un diseño de prueba concurrente, ejecución de prueba, test
logging, y aprendizaje, basado en un test charter que contenga objetivos de prueba y se
llevan a cabo en espacios de tiempo. Es un enfoque que es útil donde haya especificaciones
pocas o inadecuadas y fuerte presión de tiempo o con el fin de aumentar o complementar
otras pruebas más formales. Pueden servir estas pruebas para controlar el proceso de
prueba que ayude a garantizar que se encuentren los defectos más graves.
4.6 Selección de Técnicas de Prueba (K2) 15 minutos
Términos
No hay términos específicos
Antecedentes
La elección de cuales técnicas de prueba se deben utilizar, depende de un numero de
factores que incluyen el tipo de sistema, estándares normativos, requisitos del cliente o
contractuales, nivel de riesgo, tipo de riesgo, objetivo de prueba, documentación disponible,
conocimiento de los probadores, tiempo y presupuesto, ciclo de vida del desarrollo, modelos
de caso de uso y experiencia previa con tipos de defectos encontrados.
Algunas técnicas son más aplicables en algunas situaciones y niveles de prueba; otras son
aplicables a todos los niveles de prueba.
Cuando se crean casos de prueba, los probadores generalmente utilizan una combinación
de técnicas de prueba incluyendo técnicas de proceso, normas y basadas en datos que
garanticen un cubrimiento adecuado del objeto conforme la prueba.
Referencias
4.1 Craig, 2002, Hetzel, 1988, IEEE STD 829-1998 4.2 Beizer, 1990, Copeland, 2004
4.3.1 Copeland, 2004, Myers, 1979
4.3.2 Copeland, 2004, Myers, 1979
4.3.3 Beizer, 1990, Copeland, 2004
4.3.4 Beizer, 1990, Copeland, 2004
4.3.5 Copeland, 2004
4.4.3 Beizer, 1990, Copeland, 2004 4.5 Kaner,
2002
4.6 Beizer, 1990, Copeland, 2004
Términos
Probador, líder de pruebas, gerente de pruebas
En proyectos grandes, complejos o críticos para la seguridad, es mucho mejor tener niveles
múltiples de pruebas con algunos o todos los niveles que realizaron probadores
independientes. El personal de desarrollo podrá participar en las pruebas, especialmente en
niveles inferiores, pero la falta de objetividad frecuentemente limita su efectividad. Los
probadores independientes tendrán la autoridad de solicitar definir procesos de prueba y
normas, pero deben asumir funciones relacionadas con el proceso únicamente en la
presencia de un claro mandado de gerencia.
Las tareas de prueba se pueden realizar por personas con una función de prueba específica,
u otra persona que desempeñe otra función como un gerente de proyecto, gerente de
calidad, desarrollador, un experto en negocios y en el sector, infraestructura u operaciones
IT.
La gente que trabaja en análisis de pruebas, diseño de pruebas, tipos de pruebas específicos
o automatización de pruebas, pueden ser especialistas en estas funciones. Dependiendo del
nivel de prueba y los riesgos relacionados con el producto y el proyecto, distintas personas
pueden asumir la función de probadores, manteniendo el grado de independencia.
Comúnmente, los probadores en niveles del componente e integración seria desarrolladores,
probadores en el nivel de aceptación seria experto en negocios y usuarios y probador para
pruebas de aceptación operativa serian operadores
Términos
Enfoque de pruebas, estrategia de pruebas
Una vez se calcule el esfuerzo de la prueba, se pueden identificar los recursos y elaborar
una programación
El enfoque seleccionado depende del contexto y podrá tener en cuenta riesgos, peligros y
seguridad, recursos y destrezas disponibles, tecnología, origen del sistema (por ejemplo, a
medida vs COTS) objetivos de la prueba y normas
Términos
Densidad del defecto, porcentaje de fallas, control de la prueba, monitoreo de la prueba,
informe de resumen de la prueba
5.3.1 Monitoreo Progreso de la Prueba (K1)
El propósito de este monitoreo es dar retroalimentación y visibilidad respecto a las
actividades de la prueba. La información que se debe monitorear podrá recopilarse manual
o automáticamente y se podrá utilizar para medir los criterios de salida, como la cobertura.
También se podrán utilizar las métricas para evaluar el progreso respecto a la programación
y presupuesto planeado. Las métricas comunes de la prueba incluyen:
o Porcentaje de trabajo realizado en la preparación de caso de la prueba (o el
porcentaje de casos de la prueba planeados que se han preparado
o Porcentaje del trabajo realizado en la preparación del entorno de la prueba
o Ejecución caso de la prueba (número de casos de la prueba funcionando / sin
funcionar y casos de prueba aprobados / fallidos)
o Detectar información ( densidad del defecto, defectos encontrados y solucionados,
porcentaje de fallas y resultados de pruebas hechas nuevamente)
o Cobertura de la prueba de requisitos, riesgos o código
o Confianza subjetiva de probadores en el producto
o Fechas de objetivos de la prueba
o Costos de pruebas que incluyen el costo comparado con el beneficio de encontrar
el próximo defecto o dirigir la próxima prueba
Términos
Gestión de configuración, control de versión
Antecedentes
El propósito de la gestión es establecer y mantener la integridad de los productos
(componentes, datos y documentación) del software o sistema por medio del ciclo de vida
proyecto y producto
Términos
Riesgo del Producto, riesgo del proyecto, risk, pruebas basadas en riesgo
Antecedentes
Se puede definir el riesgo como la chance de haber un caso, peligro, amenaza o situación
que ocurre o resulta en consecuencias no deseables o problema potencial. El nivel de riesgo
se determinara por la probabilidad de un caso adverso que ocurra y el impacto (el daño que
resulte de dicho caso).
Cuando de analiza, gestiona y mitigan estos riesgos, el gerente de la prueba sigue los
principios bien establecidos de gestión del Proyecto. El resumen del Standard for
Software Test Documentation’ (IEEE Std 829-1998) en planes de la prueba, exige
que se indiquen riesgos y contingencias
Los riesgos se utilizan para decidir donde iniciar la prueba y donde se deben hacer más
pruebas; se utilizan las pruebas para reducir el riesgo de un efecto adverso o reducir el impacto
de un efecto adverso.
Estos riesgos son un tipo especial de riesgo para el éxito de un proyecto. Las pruebas como
una actividad de control de riesgo suministran retroalimentación respecto riesgos residuales
midiendo la efectividad en remover defectos críticos y de planes de contingencia.
Términos
Registro de incidentes, gestión de incidentes, informe de incidentes
Antecedentes
Puesto que uno de los objetivos de las pruebas es encontrar defectos, las
discrepancias entre los resultados reales y esperados deben registrarse como
incidentes. Se debe investigar un incidente que pueda resultar en un defecto. Las
acciones pertinentes para eliminar incidentes y defectos deben definirse. Se deben
monitorear los incidentes y defectos a partir del descubrimiento y clasificación para
corrección y confirmación de la solución. Con el fin de manejar todos los incidentes
y finalizarlos, una organización debe establecer un proceso de gestión de incidentes
y normas de clasificación.
References
5.1.1 Black, 2001, Hetzel, 1988
5.1.2 Black, 2001, Hetzel, 1988
5.2.5 Black, 2001, Craig, 2002, IEEE Std 829-1998, Kaner 2002
5.3.3 Black, 2001, Craig, 2002, Hetzel, 1988, IEEE Std 829-
1998
5.4 Craig, 2002
5.5.2 Black, 2001 , IEEE Std 829-1998
5.6 Black, 2001, IEEE Std 829-1998
Términos
Herramienta de gestión de configuración, herramienta de cobertura, herramienta de
depuración, herramienta de análisis dinámico, herramienta gestión de incidentes,
herramienta pruebas de carga, herramienta de modelos, herramienta de monitoreo,
herramienta desempeño de la prueba, efecto de sondeo, herramienta gestión de requisitos,
herramienta de revisión, herramienta de análisis estático. Herramienta prueba de tensión,
comparador de la prueba, preparación datos de la prueba, herramienta diseño de la prueba,
harness de la prueba, herramienta ejecución de la prueba, herramienta gestión de la prueba,
herramienta marco de pruebas unitarias.
La herramienta de apoyo en pruebas puede tener uno o más de los siguientes propósitos
dependiendo del contexto:
o Mejorar la eficiencia de las actividades de prueba por medio de la automatización
repetitiva de tareas o por medio del apoyo en las actividades del manual de prueba
como la planificación de prueba, diseño de prueba, reporte y seguimiento de prueba.
o Automatizar actividades que requieran recursos importantes cuando se realicen
manualmente ( por ejemplo, pruebas estáticas)
o Automatizar actividades que no se puedan ejecutar manualmente ( por ejemplo,
pruebas de desempeño de gran escala de las aplicaciones servidor-cliente)
o Aumentar la confiabilidad de las pruebas ( por ejemplo, por medio de la
automatización de grandes comparaciones de datos o por medio de la simulación de
comportamiento
Para efectos de este programa, el término “marco de referencia de prueba” se utiliza en sus
dos primeros significados, tal como se describe en la Sección 6.1.6
Algunos tipos de herramientas de prueba pueden ser intrusivos, lo que significa que pueden
afectar el resultado real de la prueba. Por ejemplo, el momento real puede ser diferente
debido a las instrucciones extras que ejecuta la herramienta, o puede que se obtenga una
medida diferente de la cobertura del código. La consecuencia de la herramienta intrusiva
se denomina el efecto de sondeo.
Algunas herramientas ofrecen un apoyo más apropiado para desarrolladores (por ejemplo,
herramientas que se utilizan durante las pruebas del componente e integración del
componente). Dichas herramientas se marcan con “(D)” en la siguiente lista.
Las herramientas de gestión se aplican a todas las actividades de prueba en todo el ciclo
de vida del software.
Herramientas de Gestión de Prueba
Estas herramientas suministran interfaces para la ejecución de pruebas, seguimiento de
defectos y gestión de requisitos, junto con el soporte para análisis cuantitativo y reporte de
objetos de prueba. También soportan el rastreo de objetos de prueba a las especificaciones
del requisito y podrían tener una capacidad independiente de control de versión
independiente o una interface a una externa.
Las pruebas estáticas suministran una manera rentable de encontrar más defectos con
anticipación en el proceso de desarrollo.
Herramientas de Revisión
Estas herramientas ayudan con la revisión de procesos, listas de control, pautas de revisión
y se utilizan para almacenar y hacer comentarios de revisión sobre defectos y esfuerzos.
Pueden ser una ayuda adicional al suministrar apoyo en las revisiones en línea en equipos
grandes o dispersos geográficamente.
Comparadores de Prueba
Determinan las diferencias entre archivos, bases de datos o resultados de pruebas. Las
herramientas de ejecución de prueba incluyen comúnmente comparadores dinámicos, pero
se pueden realizar comparaciones posteriores a la ejecución por parte de una herramienta
de comparación separada. Un comparador de prueba puede utilizar un oráculo de prueba,
particularmente si esta automatizado.
Herramientas de Seguimiento
Continuamente analizan, verifican e informan el uso de recursos específicos del sistema y
advierten de posibles problemas en el servicio
Términos
Pruebas dirigidas a datos, pruebas dirigidas a palabras claves, script (En informática un
"script", archivo de órdenes, archivo de procesamiento por lotes o guion es un programa
usualmente simple, que por lo regular se almacena en un archivo de texto plano)
Al capturar pruebas por medio del registro de acciones de un probador manual puede
resultar atractivo, pero este enfoque no logra grandes cifras de scripts de prueba
automatizados. Un script capturado es una representación lineal con datos específicos y
acciones como parte de cada script. Es posible que este tipo de script sea inestable al
ocurrir casos inesperados.
Un enfoque de prueba dirigida a datos generalmente divide en una hoja de cálculo las
entradas de prueba (los datos) y utiliza un script de prueba más genérico que pueda leer
los datos de entrada y ejecutar el mismo script de prueba con datos diferentes. Los
probadores que no conozcan el script, pueden crear los datos de prueba en estos scripts
predefinidos.
Existen otras técnicas utilizadas en las técnicas basadas en datos donde en lugar de haber
combinaciones de datos codificados ubicados en una hoja de cálculo, se generan los datos
por medio de algoritmos basados en parámetros configurables al momento de la ejecución
y se suministran a la aplicación. Por ejemplo, es posible que una herramienta utilice un
algoritmo que genere una identificación aleatoria de un usuario y se utiliza una semilla para
repetitividad en el modelo para controlar aleatoriedad.
Términos
No hay términos específicos
Antecedentes
Las consideraciones principales en la selección de una herramienta en una organización
incluyen:
o Evaluación de una madurez organizacional, fortalezas y debilidades e identificación
de oportunidades en un proceso de prueba perfeccionado que soportan las
herramientas
o Evaluación de requisitos claros y criterios objetivos
o Una prueba de concepto utilizando una herramienta de prueba durante la fase de
evaluación para establecer si dicha herramienta funciona efectivamente con el
software conforme la prueba y dentro de la infraestructura o para identificar los
cambios necesarios a dicha infraestructura para utilizar la herramienta efectivamente
o Evaluación del fabricante ( que incluye capacitación, soporte y aspectos comerciales)
o proveedores de soporte de servicio en caso de herramientas no comerciales
o Identificación de requisitos internos para capacitación y asesoramiento en el uso de
la herramienta.
o Evaluación de las necesidades de capacitación teniendo en cuenta las destrezas de
automatización de prueba del equipo
o Calculo de la relación costo beneficio basándose en un caso de negocio concreto
Referencias
6.2.2 Buwalda, 2001, Fewster, 1999
6.3 Fewster, 1999