Gestión de Pruebas
SOLUCIÓN DE EJERCICIO
6.1 Tipos de herramienta de prueba
6.1.5 Herramienta de apoyo para la ejecución de la prueba y la explotación forestal
herramientas de ejecución de pruebas
Cuando la gente piensa en una "herramienta de prueba ', por lo general es una herramienta de ejecución de la prueba que se
tener en cuenta, una herramienta que puede ejecutar las pruebas. Este tipo de herramienta también se refiere como una
'Herramienta de prueba de marcha ». La mayoría de las herramientas de este tipo ofrecen una manera de empezar capturando
o grabar las pruebas manuales; de ahí que también se conocen como herramientas 'de captura / reproducción',
'/ reproducción de captura' 'herramientas o herramientas de grabación / reproducción'. La analogía es con la grabación de una
programa de televisión, y reproducción del mismo. Sin embargo, las pruebas no son algo página 178
que se reproduce sólo por otras personas a ver las pruebas de interactuar con el sistema, que puede reaccionar de forma ligeramente diferente cuando se repiten las pruebas. Por lo tanto cAP-
Tured pruebas no son adecuados si se desea alcanzar el éxito a largo plazo con una prueba herramienta de ejecución, como se describe en la Sección 6.2.3.
herramientas de ejecución de pruebas utilizan un lenguaje de script para manejar la herramienta. el scripting
idioma es realmente un lenguaje de programación. Por lo que cualquier tester que desea utilizar una
herramienta de ejecución de la prueba directamente tendrá que utilizar conocimientos de programación para crear y
modificar los scripts. La ventaja de secuencias de comandos programable es que las pruebas pueden
repetir las acciones (en bucles) para diferentes valores de los datos (es decir, las entradas de prueba), que pueden tomar
diferentes rutas dependiendo del resultado de una prueba (por ejemplo, si no pasa la prueba, van a una
un conjunto diferente de las pruebas) y pueden ser llamados desde otros scripts que dan algunos
estructura para el conjunto de pruebas.
Cuando las personas se encuentran con una herramienta de ejecución de la prueba, tienden a utilizarlo para
"Captura / reproducción ', que suena muy bien cuando se escucha por primera vez al respecto. los
La teoría es que mientras se ejecutan las pruebas manuales, sólo tiene que encender el 'Capturar', como una grabadora de vídeo para un programa de televisión. Sin embargo, la teoría
se rompe cuando intenta reproducir las pruebas capturados - este enfoque no hace escalar para un gran número de pruebas. La razón principal de esto es que un capturaron guión es muy difícil de mantener porque:
• Está estrechamente ligado al flujo y la interfaz presentada por la interfaz gráfica de usuario. • Se puede depender de las circunstancias, el estado y el contexto del sistema en el momento el guión fue grabado. Por ejemplo, una secuencia de comandos capturará un nuevo orden número asignado por el sistema cuando se graba una prueba. Cuando la prueba es
reproduce, el sistema asignará un número de orden diferente y rechazar sub
solicitudes subsiguientes que contienen el número de pedido previamente capturada.
• La información de contacto de prueba es "no modificable ', es decir, que está incrustado en el indi
UAL guión para cada prueba.
Cualquiera de estas cosas pueden ser superados mediante la modificación de las secuencias de comandos, pero luego
ya no son sólo grabar y reproducir! Si se necesita más tiempo para actualizar una
prueba capturado de lo que se necesitaría para ejecutar la misma prueba de nuevo de forma manual, las secuencias de comandos
tienden a ser abandonado y se convierte en la herramienta 'estantería-ware'.
Hay mejores maneras de utilizar las herramientas de ejecución de pruebas para hacer que funcionen bien y
realmente ofrecer los beneficios de correr sin supervisión de pruebas automatizadas. Existen al menos cinco niveles de secuencias de comandos y también diferentes técnicas de comparación. Datos-
scripting impulsado es un avance con respecto a las secuencias de comandos capturados pero los scripts basado en palabras clave
dar significativamente más beneficios. [Fewster y Graham, 1999], [Buwalda et al.,
2001]. [Mosley y Posey, 2002] describen el "control sincronizado impulsado por los datos pruebas'. Ver también la sección 6.2.3.
Hay muchas maneras diferentes de utilizar una herramienta de ejecución de la prueba y las herramientas
ellos continúan para obtener nuevas características útiles. Por ejemplo, una prueba de eje- cution herramienta puede ayudar a identificar los campos de entrada que formarán las entradas de prueba y
puede construir una tabla que es el primer paso hacia el scripting basado en datos.
A pesar de que se conocen comúnmente como herramientas de prueba, que son en realidad los más utilizados para las pruebas de regresión (para que pudieran ser referidos como "regresión
herramientas de prueba "en lugar de" herramientas de ensayo »). Una herramienta de ejecución de la prueba se ejecuta con mayor frecuencia
pruebas que ya se ha ejecutado antes. Uno de los beneficios más significativos de
el uso de este tipo de herramientas es que cada vez que se cambia un sistema existente (por ejemplo, para
una solución defecto o una mejora), todos de las pruebas que se ejecutan antes podría página 179
potencialmente ser ejecutado de nuevo, para asegurarse de que los cambios no han alterado el
sistema existente mediante la introducción o revelar un defecto.
Funciones o características de las herramientas de ejecución de pruebas incluyen soporte para:
• captura (grabación) entradas de prueba mientras que las pruebas se ejecutan de forma manual;
• almacenar un resultado esperado en forma de una pantalla o un objeto de comparar con, la próxima vez que se ejecute la prueba;
• ejecución de pruebas de secuencias de comandos y archivos de datos almacenados, opcionalmente, se accede por la
la escritura (si impulsado por los datos o se utiliza secuencias de comandos basado en palabras clave);
• Comparación dinámica (mientras se ejecuta la prueba) de las pantallas, elementos, enlaces, controles, objetos y valores;
• capacidad para iniciar la comparación posterior a la ejecución;
• Los resultados de registro de las pruebas realizadas (pasa / falla, las diferencias entre lo esperado y
resultados actuales);
• enmascaramiento o de filtrado de subconjuntos de reales y los resultados esperados, por ejemplo,
excluyendo la fecha actual pantalla visualizada y el tiempo que no es de interés para una prueba en particular;
• sincronización de las entradas con la aplicación que se está probando, por ejemplo, esperar hasta que la apli
cación está listo para aceptar la siguiente entrada, o insertar un retardo fijo para representar velocidad de interacción humana;
• envío de resumen de los resultados de una herramienta de gestión de pruebas.
Mazo de prueba / Grupo de instrumentos de prueba de marco (D)
Estos dos tipos de herramienta se agrupan juntos ya que son variantes de la
tipo de apoyo que necesitan los desarrolladores al probar componentes individuales o de unidades de software. Un instrumento de prueba proporciona talones y los conductores, que son pequeñas
programas que interactúan con el software bajo prueba (por ejemplo, para las pruebas de media
ware y software embebido). Véase el Capítulo 2 para obtener más detalles de cómo estos son utilizado en las pruebas de integración. Algunas herramientas de marco de prueba de unidad proporcionan apoyo
para el software orientado a objetos, otros por otros paradigmas de desarrollo. Unidad marcos de ensayo se pueden utilizar en el desarrollo ágil para automatizar pruebas en paralelismo
lel con el desarrollo. Ambos tipos de herramientas permiten a los desarrolladores para probar, identificar
y localizar los defectos. El marco o los talones y los controladores proporcionan ninguna información que necesita el software que se está probando (por ejemplo, una entrada que haría
han venido de un usuario) y también recibir cualquier información enviada por el software (Por ejemplo, un valor que se muestra en una pantalla). Talones también pueden ser referidos como
'' objetos simulados.
arneses de prueba o controladores se pueden desarrollar en el local para los sistemas particulares.
Asesoramiento sobre el diseño de los pilotos de pruebas se puede encontrar en [Hoffman y Strooper, 1995].
Hay un gran número de herramientas 'xUnit' para la programación de diferentes len- guas, por ejemplo JUnit para Java, NUnit para aplicaciones .Net, etc. Hay tanto
herramientas comerciales y también de código abierto (es decir, libres) herramientas. marco de pruebas unitarias
herramientas son muy similares a probar herramientas de ejecución, ya que incluyen instalaciones como
La capacidad de almacenar los casos de prueba y monitorear si las pruebas de aprobación o no, por ejemplo.
La diferencia principal es que no hay ninguna instalación de captura / reproducción y tienden para ser utilizado en un nivel inferior, es decir, para el componente o pruebas de integración de componentes,
en lugar de para el sistema o pruebas de aceptación. página 180
Rasgos o características de los arneses de prueba y herramientas de marco de pruebas unitarias
incluir el apoyo a:
• el suministro de insumos para el software que está siendo probado; • Salidas de recepción generadas por el software están probando;
• la ejecución de una serie de pruebas en el marco o usar el instrumento de prueba; • La grabación de pasa / no pasa resultados de cada prueba (herramientas de marco); • Pruebas de almacenamiento de herramientas (marco);
• Soporte para la depuración (herramientas de marco);
• Medición de la cobertura en el nivel de código (herramientas de marco).
comparadores de prueba
¿Es realmente una prueba de si poner algunos elementos de entrada en algún tipo de software, pero nunca mirar hacia
ver si el software produce el resultado correcto? La esencia de la prueba es para comprobar si el software produce el resultado correcto, y para hacer eso, debe comparar lo que el software produce a lo que debería producir. Una prueba comparador ayuda a automatizar aspectos de esa comparación.
Hay dos formas en las que los resultados reales de la prueba se puede comparar con el Resultados esperados para el examen. comparación dinámica es donde la comparación es hecho de forma dinámica, es decir, mientras se ejecuta la prueba. La otra forma es posterior a la ejecución
comparación ción, donde se realiza la comparación después de la prueba ha terminado la ejecución y el software que se está probando ya no está en funcionamiento.
herramientas de ejecución de pruebas incluyen la capacidad de realizar la comparación dinámica
mientras que la herramienta se ejecuta una prueba. Este tipo de comparación es buena para comparar
la redacción de un mensaje de error que aparece en una pantalla con la redacción correcta para ese mensaje de error. comparación dinámico es útil cuando un resultado real hace no coincide con el resultado esperado en el medio de una prueba - la herramienta se puede programar
tomar alguna acción de recuperación en este momento o ir a un conjunto diferente de las pruebas.
la comparación posterior a la ejecución por lo general se realiza mejor mediante una herramienta independiente (es decir, no
la herramienta de ejecución de la prueba). Este es el tipo de herramienta que entendemos por una prueba comparativa
tor o prueba de comparación de herramienta y es típicamente una herramienta de 'stand- alone'. Operante
sistemas normalmente tienen herramientas de comparación de archivos disponibles que pueden ser utilizados para
la comparación posterior a la ejecución y, a menudo una herramienta de comparación se desarrollarán in-
casa para la comparación de un determinado tipo de archivo o prueba de resultado.
comparación post-ejecución es el mejor para la comparación de un gran volumen de datos, por
ejemplo la comparación de los contenidos de un archivo completo con el contenido esperado de
dicho archivo o en la comparación de un gran conjunto de registros de una base de datos con la esperada
contenido de dichos registros. Por ejemplo, comparando el resultado de un funcionamiento por lotes (por ejemplo,
procesamiento de transacciones en línea durante la noche del día) es probablemente imposible
prescindir de soporte de la herramienta.
Si una comparación es dinámica o posterior a la ejecución, el comparador de prueba
tiene que saber lo que el resultado es correcto. Esto puede ser almacenado como parte de la prueba
caso en sí mismo o puede ser calculada utilizando un oráculo de prueba. Véase el Capítulo 4 para información
ción sobre oráculos de prueba.
Rasgos o características de los comparadores de prueba incluyen soporte para:
• Comparación dinámica de eventos transitorios que se producen durante la ejecución de la prueba;
• comparación posterior a la ejecución de los datos almacenados, por ejemplo, en archivos o bases de datos;
• enmascaramiento o filtrado de subconjuntos de los resultados reales y esperados. página 181
herramientas de medición de la cobertura (D)
Como bien has probado? Herramientas de cobertura pueden ayudar a responder a esta pregunta.
Una herramienta de cobertura identifica en primer lugar los elementos o elementos de cobertura que pueden ser
contó, y donde la herramienta se puede identificar cuando una prueba de que ha ejercido la cobertura
elemento de edad. A nivel de las pruebas de componentes, los elementos de cobertura podrían ser líneas de código
o instrucciones de código o los resultados de decisiones (por ejemplo, la salida Verdadero o Falso de un SI
declaración). En el nivel de integración de componentes, el elemento de cobertura puede ser una llamada a
una función o módulo. Aunque la cobertura se puede medir en el sistema o aceptación ANCE niveles de prueba, por ejemplo, cuando el elemento de cobertura pueden ser una declaración requisito
ción, no hay muchos (si lo hay) herramientas comerciales a este nivel; hay más
herramienta de apoyo a nivel de las pruebas de componentes o en cierta medida al componente de inte-
gración nivel.
El proceso de identificación de los elementos de cobertura a nivel de prueba de componentes es
llamado "instrumentar el código ', tal como se describe en el capítulo 4. Un conjunto de pruebas se
a continuación, ejecute a través del código instrumentado, usando ya sea automáticamente una prueba de eje-
cution herramienta o manualmente. La herramienta de cobertura a continuación, cuenta el número de cobertura
Los artículos que han sido ejecutadas por el banco de pruebas, e informa del porcentaje de elementos de cobertura que se han ejercido, y también puede identificar los elementos que todavía no se han ejercido (es decir, aún no probado). Las pruebas adicionales pueden ser ejecutadas
para aumentar la cobertura (la herramienta de informes de cobertura acumulada de todas las pruebas se ejecutan
hasta aquí).
Las herramientas más sofisticadas de cobertura pueden proporcionar apoyo para ayudar a iden-
tificar las entradas de prueba que ejercerá las rutas que incluyen, que aún no ejercidas elementos de cobertura (o enlace a una herramienta de diseño de prueba para identificar la no ejercidas
artículos). Por ejemplo, si no todos los resultados de las decisiones se han ejercido, el herramienta de cobertura puede identificar el resultado particular de decisiones (por ejemplo, una salida falsa
a partir de una instrucción IF) que ninguna prueba ha tenido hasta ahora, y puede entonces también ser capaz
para calcular la entrada de prueba requerida para forzar la ejecución de tomar esa decisión resultado.
Rasgos o características de las herramientas de medición de cobertura incluyen soporte para:
• Identificación de los elementos de cobertura (instrumentar el código);
• calcular el porcentaje de elementos de cobertura que se ejerce por un conjunto de pruebas; '
• Los elementos de cobertura de los informes que no se han ejercido hasta el momento; • la identificación de entradas de prueba para ejercer artículos que aún no cubiertas (herramienta de diseño de la prueba
funcionalidad);
• Talones de generadores y conductores (si es parte de un marco de prueba de unidad). Tenga en cuenta que las herramientas de cobertura sólo miden la cobertura de los elementos que
se pueden identificar. El hecho de que las pruebas han logrado declaración de 100% cobertura la edad, esto no significa que su software ha sido probado 100%!
herramientas de seguridad
Hay una serie de herramientas que se protejan los sistemas de ataque externo, por ejemplo cortafuegos, que son importantes para cualquier sistema.
Herramientas de pruebas de seguridad se pueden utilizar para probar la seguridad al tratar de entrar en una
sistema, si está o no está protegido por una herramienta de seguridad. Los ataques pueden centrarse
página 182
en la red, el software de soporte, el código de la aplicación o el subyacente base de datos.
Funciones o características de las herramientas de pruebas de seguridad incluyen soporte para:
• la identificación de los virus;
• detección de intrusiones, tales como ataques de denegación de servicio; • simular diferentes tipos de ataques externos;
• el sondeo de puertos abiertos u otros puntos externamente visibles de ataque; • identificar las debilidades en los archivos de contraseñas y contraseñas;
• controles de seguridad durante el funcionamiento, por ejemplo, para comprobar la integridad de los archivos, y
detección de intrusos, por ejemplo, comprobación de los resultados de los ataques de prueba. 6.1.6 Herramienta de apoyo para el funcionamiento y la supervisión
Las herramientas descritas en esta prueba el apoyo sección que se pueden llevar a cabo en una
sistema cuando está en funcionamiento, es decir, mientras se está ejecutando. Esto puede ser durante la prueba
o podría ser después de un sistema se libera en el modo Live.
Las herramientas de análisis dinámico (D)
Las herramientas de análisis dinámicos son "dinámico", ya que requieren que el código sea
corriendo. Son "análisis" en lugar de herramientas de 'prueba' porque analizan lo
que está pasando "entre bastidores", mientras que el software está en ejecución (ya sea siendo ejecutado con casos de prueba o de ser utilizado en la operación).
Una analogía con un coche puede ser útil en este caso. Si usted va a mirar un coche para comprar,
podría sentarse en ella para ver si es cómodo y ver lo que suenan las puertas hacen - esto sería el análisis estático porque el coche no está siendo impulsada. Si se toma una prueba de conducción,
entonces sería comprobar que el coche lleva a cabo como se esperaba (por ejemplo, gira a la derecha cuando se
girar el volante hacia la derecha de la rueda) - esto sería una prueba. Mientras que el coche está en marcha,
si se va a comprobar el nivel de aceite o el líquido de frenos, esto sería lisis dinámico sis - que sólo se puede hacer mientras el motor está en marcha, pero no es un caso de prueba. Cuando el tiempo de respuesta de su PC se ralentiza y más lento con el tiempo, pero es mucho mejoró después de volver a arrancar, esto también puede deberse a una "pérdida de memoria", donde
los programas no liberan correctamente bloques de memoria de nuevo a la operación sistema. Finalmente, el sistema funcionará sin memoria por completo y se detendrá. Re- restaura el arranque de toda la memoria que se había perdido, por lo que el rendimiento de la sistema se ha restaurado a su estado normal.
Rasgos o características de las herramientas de análisis dinámicos incluyen soporte para: • la detección de fugas de memoria;
• la identificación de dependencias de tiempo.
Estas herramientas normalmente serían utilizados por los desarrolladores en la prueba de componentes y
las pruebas de integración de componentes, por ejemplo, al probar el middleware, cuando las pruebas
de seguridad o en la búsqueda de defectos de robustez.
Otra forma de análisis dinámico para sitios web es comprobar si cada enlace
¿Se comunica efectivamente a otra cosa (este tipo de herramienta puede ser llamado un "Web