Professional Documents
Culture Documents
Abstracto
La prueba de caja blanca es una técnica efectiva para KLEE [6], etc. ) Suele utilizar declaración o cobertura
generar casos de prueba para proporcionar una alta de sucursales como criterio elemental. Sin embargo, los
cobertura para los programas. Generalmente resultados experimentales recientes muestran que la
seleccionamos varias rutas de ejecución utilizando declaración o cobertura de sucursales no pueden ser
alguna estrategia, y generamos un caso de prueba tratados como el único criterio para la prueba efectiva,
correspondiente que sigue cada ruta. ya que tienen la capacidad de detección de baja falla en
algunas situaciones [13].
Cada ruta de ejecución corresponde a un sub espacio
El espacio de entrada de un programa se divide en
de entrada limitado por restricciones. Es muy probable
que los valores extremos en estos sub espacios varios subespacios por las condiciones de ruta. Cada
desencadenen fallas, ya que las restricciones que subespacio está delimitada por una serie de limitaciones
limitan los sub espacios de entrada pueden ser en su condición de trayecto. Los casos de prueba en el
defectuosas. En este artículo, proponemos una nueva mismo subespacio tener la misma traza de ejecución,
forma de definir los límites de los predicados de
mientras que los casos de prueba en diferentes
comparación en pruebas de caja blanca, y aplicar
pruebas combinatorias restringidas para cubrir estos subespacios tienen diferentes trazas de ejecución. Un
límites con un número reducido de casos de prueba. tipo frecuente de los problemas es en los límites de
Nuestro enfoque puede garantizar que cubra todos los subespacios. El desarrollador puede cometer errores en
límites posibles para cada ruta de ejecución las limitaciones, por lo tanto haciendo entradas
seleccionada, logrando así una cobertura de fallas de
límite alta, mientras que la cobertura estructural original
aún se conserva.
I. INTRODUCCIÓN
Las pruebas de software es uno de los enfoques más
adoptadas para garantizar la calidad y la fiabilidad del
software. Especialmente, las pruebas de caja blanca es
una técnica eficaz para generar casos de prueba
basados en estructuras de programas. En los últimos
años, se han propuesto varias técnicas automáticas
para resolver este problema, entre los cuales Ejecución
simbólico (SE) [35] y la ejecución simbólica dinámica
(DSE) [20] son dos enfoques del estado de la técnica.
Por lo general, que atraviesan diferentes rutas de
programa de acuerdo con un criterio de cobertura
estructural dado, y luego recogen las restricciones
simbólicas a lo largo de cada ruta de ejecución. Las
limitaciones de una ruta de acceso corresponden a un
subespacio de entrada, que se resuelve mediante un
solucionador de restricciones para generar un nuevo
caso de prueba. las herramientas existentes de
generación de prueba (como SIMC [33], lindo [30],
Fig. 2: El espacio de entrada para is_inside_rect
, (((
por lo general hacer depender las variables entre sí. dirigidos entre dos nodos y cada nodo representa
varios enfoques recientemente, los investigadores han un bloque básico, que es una pieza de línea recta
propuesto aplicar BVA en la generación de pruebas de de código sin ningún tipo de saltos y destinos de
caja blanca [29], [22]. salto.
Volvamos a la figura 2. Al considerar BVA, queremos • generación de la trayectoria: Este paso es un paso
comprobar cada límite del rectángulo. Una forma de iterativo. Se selecciona una ruta del programa de
hacerlo es seleccionar una entrada en cada uno de los CFG en una iteración, y termina hasta que el
límites. Por ejemplo, elegimos puntos a, b, c y d, criterio de cobertura dada es satisfecho.
entonces la salida de d será defectuoso. Sin embargo, • Ruta de viabilidad corrientes y de generación de
el coste de la selección de un punto de datos para cada datos de prueba: Después de extraer una ruta de
límite es relativamente grande. En realidad, la cobertura ejecución de la CFG, tenemos que comprobar su
de todos los cuatro límites se puede lograr mediante el viabilidad, y generar datos de prueba para activar la
uso de sólo dos puntos de datos, ya sea {a, d} o {b, c}, ruta, si es un camino viable. Un método utilizado
ya que un caso de prueba puede cubrir múltiples límites comúnmente para resolver este problema se basa
al mismo tiempo. en la ejecución simbólica y resolución de
En este trabajo, se propone una prueba de caja restricciones [35].
blanca técnica de Gen-ración BVA-conscientes. En B. pruebas combinatorias restringida
primer lugar, se da una nueva definición de las
pruebas combinatorias (CT) tiene como objetivo
condiciones de contorno de predicados de comparación.
A continuación, se utiliza una técnica llamada prueba probar los sistemas parametrizados. El sistema bajo
combinatoria para cubrir estas condiciones de contorno prueba (SUT) se modela como un recuadro negro,
con un número reducido de casos de prueba, al mismo teniendo varios parámetros como entrada, y cada
tiempo conservar la cobertura estructural inicial. parámetro
El resto de este trabajo se organiza como sigue: Sec-
ción II se describen los conceptos y técnicas básicas
utilizadas en nuestro enfoque, incluida la introducción
de generación de pruebas de caja blanca y la prueba
combinatoria limitado. Sección III habla de BVA en las
pruebas de caja blanca. La sección IV describe nuestra
caja blanca técnica de generación de pruebas BVA-
conscientes. Sección V discute temas relacionados con
nuestro enfoque. Sección VI se presentan los resultados
experimentales, y la Sección VII discute el trabajo
relacionado. Por último, llegamos a la conclusión de
nuestro trabajo en la Sección VIII.
II. PRELIMINARES
A. generación de pruebas de caja blanca
generación de pruebas de caja blanca toma el código
fuente como entrada y genera automáticamente una
serie de entradas para poner a prueba el software.
Debido al espacio infinito de la ejecución del software,
se requiere generalmente un criterio de cobertura para
evaluar la calidad de los conjuntos de pruebas.
Generalmente, el procedimiento de generación de la
prueba se puede resumir como la Fig. 3, y contiene tres
pasos clave.
• Conversión: Convertir el código fuente en una
estructura intermedia, como gráfico de flujo de
control (CFG). A CFG se puede tratar como un
gráfico dirigido que consta de nodos y bordes
2 2 2 2
2 3 3 3
n 3 3 2 1
2 1 1 1
o 3 1 3 2
r 1 2 3 1
3 3 1 2
t 3 1 2 3
e 1 2 2 2
Cober 1 2 1 3
tura
C Camino
Conver F criteri Otra extensión útil para la TC es la siembra. Siembra
sión G o permite al probador para especificar los requisitos de
Generaci
on ¿satis cobertura adicionales como com-plemento a la fuerza
fecho universal, dado t. Esto se realiza dando a varias
? combinaciones de parámetros críticos (también
conocido como semillas), los cuales deben ser
Y probados. El algoritmo de generación de prueba va a
viabilidad ruta generar una matriz de recubrimiento lo más pequeño
Fuente posible para cubrir todas las combinaciones de t-
la comprobación y la prueba
Casos de camino, así como las combinaciones de semillas.
prueba
código III. PRUEBAS EN BLANCO BVA-BOX
generación de los datos BVA se utiliza originalmente como una técnica de
Fig. 3: Un procedimiento común para la generación de prueba de recuadro negro, que normalmente se
la prueba de caja blanca combina con la partición clase de equivalencia (ECP).
ECP se centra principalmente en la partición de los
insumos del programa de acuerdo a sus
tiene varias opciones posibles de valor. Dada la fuerza t,
CT es capaz de generar una matriz que abarca, que comportamientos, mientras BVA se centra en los
cubre todas las combinaciones posibles entre los valores extremos de diferentes particiones.
parámetros t. Típicamente, cuando se utiliza BVA en las pruebas de
CT tradicional asume que todos los parámetros son recuadro negro, para cada límite (por ejemplo, x = 10),
independientes. Sin embargo, en escenarios reales, por necesitamos
lo general hay restricciones sobre los parámetros. Un
caso de prueba violar las restricciones de parámetros
no será válida y no puede ser ejecutado. Al generar
casos de prueba con la presencia de las limitaciones de
los parámetros, el algoritmo de generación de pruebas
CT debe generar casos de prueba solamente válidos y
cubrir tantas combinaciones de parámetros t-manera
como sea posible. Este tipo de limitación consciente de
la TC se llama la prueba limitada combinato-rial.
Aquí damos un ejemplo. Supongamos que estamos
generando una matriz que cubre por un modelo SUT,
que tiene 4 de entrada param-etros p1, pag2, pag3, pag4,
Cada uno tomando valores en {1, 2, 3}. Supongamos
que hay una restricción: “p1 = 1 → p2= 2” . La Tabla I
muestra una matriz que cubre de la fuerza 2. La matriz
cubre todos los posibles pares de valores de los
parámetros, excepto para “p1 = 1 ∧ pag2 = 1” y “p1 = 1 ∧
pag2 = 3” , que viola la restricción.
TABLA I: Un ejemplo que cubre array
pag pag pag
1 pag2 3 4
3 2 1 3
un valor muy por debajo del límite (x =-100), un valor la restricción 2* x <2, el valor límite es x = 0, sin
justo por debajo del límite (x = 9), un valor justo en el embargo, haciendo la diferencia entre las dos partes ser
límite x = 10, un valor justo por encima del límite (x = 2.
11), y un valor muy por encima del límite (x = 100). Un ejemplo más complejo se muestra en la Figura 4.
En pruebas de caja blanca, BVA y ECP tienen sus Hay dos subespacios resaltados (lleno de puntos y
respectivos homólogos. La estrategia de selección de líneas, respectivamente). Estamos seleccionando
ruta lleva a cabo funciones similares con ECP. El valores de límite para 2x + 3y restricción <18. Para el
espacio de entrada de programa puede ser con-sidered subespacio lleno de puntos, el valor límite es el punto A
para ser dividido en varios subespacios, donde todas = (2, 4), haciendo que la diferencia entre las dos partes
las entradas de cada subespacio tienen la misma ruta sea 2. Para el subespacio lleno de líneas, el valor límite
de ejecución. es el punto B = (4, 3), haciendo que la diferencia entre
Sin embargo, el método de selección de entrada BVA las dos partes ser 1.
utilizado en las pruebas de recuadro negro no se puede En general, para limitar la entrada cerca del límite,
utilizar directamente en pruebas de caja blanca. Esto se podemos
debe a BVA en las pruebas de recuadro negro por lo seleccion
ar una apropiado y restringir la diferencia absoluta
general asume las variables de entrada son
Entre los dos lados para ser más pequeño que o igual a.
independientes, por lo que sólo tiene que concentrarse Sin e
en las variables individuales. En cuanto a BVA en embargo, tal s a veces difícil de encontrar, y el
pruebas de caja blanca, cada subespacio de entrada
está delimitado por varias restricciones, que pueden
hacer las variables de entrada dependiente. Además,
tenemos que generar entradas de contorno para todas
las restricciones de delimitación.
En nuestro trabajo, sólo generan entradas de
contorno dentro de cada subespacio. Esto puede hacer
que ser probada solamente un lado de un borde. Pero el
otro lado se pondrá a prueba al generar entradas de
contorno para otros subespacios. Además, en el
recuadro negro de BVA, un valor muy lejos de los
límites normalmente se necesita. En nuestro enfoque, la
selección de entradas lejos de las fronteras es opcional.
Si tenemos que seleccionar estos valores no límite, el
número de casos de prueba se incrementará.
Aquí nos llamamos expresión booleana atómica en el
camino acondicionar un predicado. Predicados podría
ser variables booleanas, predicados de comparación
(>,≥, <, ≤, =, =), Etc., y no deben contener ningún
operador booleano (como ∧, ∨, ¬, Etc.). En caja blanca
BVA, queremos cubrir los valores límite para los
predicados de comparación.
Un problema con BVA en las pruebas de caja blanca
es cómo definir los límites. Puede que no sea tan fácil
como parece.
A. ¿Qué tan cerca de frontera deben ser los valores
hasta el borde?
El primer reto es que los valores límite pueden tener
diferentes distancias del borde si las variables son
números enteros. Medimos la distancia de una entrada
al borde de un predicado de comparación mediante el
cálculo de la diferencia entre el lado izquierdo y el lado
derecho del predicado. Por ejemplo, para la restricción x
<2, el valor límite es x = 1, por lo que la diferencia entre
los dos lados de la inecuación ser 1; Sin embargo para
y condición ruta se evaluará como falsa. Kosmatov et al.
2x + 3y = 18 [24] introdujeron varias formas de definir y encontrar los
y=X límites físicos. Los límites físicos pueden tener un
+3
y=x problema cuando se trata de las condiciones del
un
se recorrido con disyunciones. Por ejemplo, supongamos
gu que tenemos condición de trayecto (a> 0) ∨(un≤ 0),
nd y = X - entonces no habrá ningún límite físico.
o 3 2) La determinación de los límites: En nuestro
X trabajo, utilizamos una entrada que está cerca del borde
de un predicado dado y hace que el predicado
Fig. 4: Una ilustración de valores de límite determinar el resultado de la evaluación de la condición
de ruta como un valor límite. El término “determinar” se
segundo origina en el criterio de cobertura GACC [2], que es una
cierto versión de MC / DC (cobertura condición / decisión
fals modificado). Esto significa que
(15) o
segundo = 1
0un
(1, -1)
un = 1
Fig. 5: límite y no de contorno valores de a> 0 ∨ b> 0
pagx>2
: 1, <11 : 0, z py + 1 : 1,
≥-
Las combinaciones cubiertos por este caso de prueba
se eliminan, por lo que el conjunto de combinaciones
restantes de destino es:
pagx pagy≥ z
pagx>0 : 1, <9 : 1, 1 :1 .
pagx
pagx>2 pagyz1
: 1, <11 : 1, : 1,
≥-
casos de prueba TC en los casos de prueba de mismos predicados. Consideramos que estos
hormigón llamando a la restricción solucionador de predicados compartidos deben tener las mismas
nuevo. intenciones. Por lo tanto, cada límite sólo necesita ser
El primer caso de prueba: probado una vez. Si algún límite de un predicado se
pa z
pagx>0 : 0, px <9 : 0, gy≥ 1 : 0 cubre una vez, lo marcamos como cubiertos, y este
pagx>
límite no necesita ser cubierto por otros caminos.
2 : 1, px <11 : 0, pyz1
: 1, Además, si algún predicado aparece en una condición
≥- de ruta varias veces, todas sus ocurrencias deben ser
⇓ ∧ y≥
(w∧ x> 2∧ x <10 z), considerados en conjunto, y sus mutantes deben
w x> 1 x < 10 y z,
aplicarse simultáneamente.
¬ ∧ ∧ ∧ ≥
¬(w ∧ x> 2 ∧ x < 10 ∧ y ≥ z + 1), C. Sobre solucionadores SMT
⇓ SMT (teorías de satisfacibilidad módulo)
w ∧ X = 2∧ y = 1∧ z = 1; solucionadores se utilizan en la generación de la prueba
El segundo caso de de caja blanca para comprobar camino condición
prueba: satisfacibilidad y generar soluciones factibles. Debido a
z
pagx>0 : 0, px <9 : 1, py≥ 1 : 0
pagx>
sus diferentes estrategias inter-nal, diferentes
solucionadores SMT pueden producir diferentes
2 : 0, px <11 : 0, z py + 1 : 0,
soluciones factibles. Algunos solucionadores SMT son
≥-
más propensos a
¬(w ∧ x> 1 ∧ ⇓x < 9 ∧ y ≥ z,
w ∧ x> 1 ∧ x < 10 ∧ y ≥ z,
⇓
w ∧ X = 9∧ y = 2∧ z = 1.
V. DISCUSIÓN
A. Fallo capacidad de detección
Después de aplicar nuestro enfoque BVA a las
técnicas de generación tradicional prueba de caja
blanca, podemos detectar con eficacia los fallos de
frontera, pero ¿cómo la capacidad de detección de otro
tipo de fallas verse afectada? La respuesta es la
capacidad de detección de fallos para un tipo de fallo
específico aumentará o permanecer sin cambios. La
razón es que si aplicamos nuestro enfoque de la caja
blanca técnica de generación de prueba para cumplir
con un cierto criterio de cobertura estructural, la
estrategia de selección de ruta no se ha modificado, y
que se derivan al menos un caso de prueba para cada
ruta seleccionada. Por lo tanto, nuestra serie de
pruebas también cumple con la cobertura estructural
inicial. Nuestra serie de pruebas puede detectar los
tipos de fallo, que la suite original de prueba puede
detectar. Esto será estudiado en la Sección VI.
B. reducir aún más el costo BVA
El propósito de aplicar a BVA generación de pruebas
de caja blanca es para cubrir los valores de límite con el
menor coste adicional como sea posible. Hemos
utilizado la TC para reducir el número de casos de
prueba. Sin embargo, todavía hay posibles reducciones.
Por lo general, algunos caminos pueden compartir los
producir soluciones cercanas a las fronteras, mientras DC es un criterio de cobertura de los límites lógicos, y
que otros son más propensos a producir soluciones muy ha sido ampliamente investigado [2 ], [7], [17], [19], [21],
lejos de los límites. Mediante la aplicación de nuestra [22], [29], [32]. Los límites para los predicados de
técnica, la cobertura límite se puede aumentar con comparación discutidos en este documento son muy
similares con los límites lógicos. Nuestra definición de
eficacia, independientemente de los cuales solucionador
las condiciones de contorno utiliza el concepto de
SMT se utiliza.
“disuadir-minación”, que está tomada de GACC, que es
D. Complejidad una versión de MC / DC. MC / DC requiere para cada
El cálculo de AETG-SAT es muy ligero, mientras que cláusula en una decisión, existe un par de entradas que
la mayor parte del tiempo se dedica a la comprobación tienen valores diferentes en la cláusula y los mismos
de la viabilidad de las asignaciones de parámetros. Aquí valores para todas las demás cláusulas y tomar la
medimos la complejidad mediante la estimación de la decisión se evalúan a diferentes resultados. En el
cantidad de llamadas solucionador para cada ruta. trabajo futuro, vamos a buscar posibles extensiones
Supongamos que el número de predicados de para MC / DC.
comparación en P es n. El número de mutantes será 2n.
Así, el número máximo de casos de prueba es 2n, y el VI. EVALUACIÓN
número máximo de solucionador de llama para cada Para evaluar nuestro enfoque, se seleccionaron
caso de prueba es 2 M n (aquí M es el número de varios programas utilizados en la literatura existente.
candidatos en el algoritmo 1). Por lo tanto, el peor caso Las descripciones de estos programas sujetos se
de complejidad para cada ruta es 4M n2llamadas Solver. muestran en la Tabla V.
En el mejor de los casos, no hay condiciones de
contorno pueden ser cubiertos. El costo de la
determinación de la inviabilidad de todas las
condiciones de contorno es 2n, y luego el solucionador
se llama de nuevo para generar una prueba para la ruta,
por lo que el número total de
solucionador llamadas sean 2n + 1. En una palabra, el
número de llamadas solucionador de cada ruta es 2n +
1 ~ n2 4M.
fallas múltiples límites E. ON
En nuestro trabajo, asumimos que las fallas de borde
son inde-pendiente. Sin embargo, es posible que
múltiples fallos de contorno se correlacionan entre sí.
Supongamos que tenemos condición de trayecto (a>
0)∨(A> 0), y los dos predicados no se consideran como
el mismo, a continuación, la mutación de cualquiera de
los dos predicados para a> 1 no va a cambiar la
semántica. Por lo tanto ningún valor límite puede ser
generada por un mutante> 1. Sólo mediante la mutación
de los dos al mismo tiempo va a cambiar la semántica, y
el valor límite se puede generar. Sin embargo, cuando
la condición camino tiene muchos predicados, es
extremadamente difícil determinar qué predicados de
mutar de forma simultánea, ya que debemos tener en
cuenta todas las combinaciones de mutaciones
simultáneas.
F. Relación con límites lógicos
Hay un montón de trabajos centrados en la cobertura
de lógica, como la cobertura condición, la cobertura de
decisiones y la condición modificada / cobertura de
decisión (MC / DC), entre las cuales la cobertura MC /
TABLA V: programas experimentales encontrado que la mayor parte del tiempo adicional se
destina a la resolución de restricciones. Las mejoras
Nombre Descripción
abdominales Valor absoluto que se describen en [9] AETG-SAT se pueden utilizar
Convertir la fecha especial en una para reducir el número de solucionador de llama de
calDate [18] fecha juliana
complexCheck Un programa personalizado con una manera significativa.
[18] lógica compleja
Encuentra el número del medio entre Utilizamos pruebas de mutación para estudiar la tasa
findMiddle [18] los tres números de detección de fallos de equipos de prueba. En primer
ESAÑOBISIEST
O Determinar si un año es un año bisiesto lugar, se inyectan varios fallos (sembrado) en cada
triType [31] El tipo de un triángulo
Un programa de aviones programa. Cada falla sin semillas produce una versión
spaceManage proporcionado por nuestro socio de la defectuosa. Para cada programa y equipo de prueba, se
[32] industria
Calcular la siguiente fecha del día corre todo el equipo de prueba en cada versión
nextDate [3] dado
Una tarjeta popular juego Mostrar defectuosa, y contar el número de mutaciones muertos.
showHand [32] mano Aquí se inyectan dos conjuntos de mutaciones: el primer
sistema de evitación de colisión
ATC [11] Aircraft grupo se compone de off-by-one errores (OBOB, en el
que / menos 1 al lado derecho de los predicados de
comparación) y off-by-muchos errores (OBMB, donde
Para estudiar la eficacia de nuestro enfoque BVA, que
añadimos / restar un valor al azar de 2 a 1000 al lado
Gener-ATED 4 series de casos de prueba, con el fin de
derecho de los predicados de comparación) que son
comparar su tasa de detección de fallos límite. El caso 4
generados por el uso de un awk elaborado
de prueba conjuntos son:
manualmente2guión; el segundo conjunto es generado
• C1: Sólo cobertura de sucursales;
por la herramienta de generación de mutación Milu
• C2: aplicar el método BVA por Jamrozik et al. [22]
de cobertura de sucursales. Aquí un caso de 2 http://www.gnu.org/software/gawk/
prueba individual es
generado para cada condición de contorno, es
decir, usando la base
elección estrategia (BC) [1];
• C3: aplicar nuestro método BVA cobertura de
sucursales, pero no use CT para reducir el número
de casos de prueba. Aquí se utiliza la estrategia de
elección de base (BC);
• C4: aplicar nuestro método BVA cobertura de
sucursales, y el uso de la TC para reducir el
número de casos de prueba.
En nuestra evaluación, el solucionador SMT tiene
varias opciones: Z3 [27], Yices [12], Boolector [5], CVC4
[4], STP [14]. Nos encapsulados estos solucionadores
en una interfaz uniforme, por lo que podemos utilizar de
forma transparente. La elección del SMT solucionador
no afecta el número de casos de prueba y el número de
llamadas solucionador, pero puede afectar a los límites
cubiertos para C1 y C2, así como el tiempo de
ejecución.
Algunas mediciones de las 4 series de ensayo se
muestran en la Tabla VI. Podemos ver que el número
de casos de prueba para los 4 conjuntos de prueba
sigue C1 <C4 <C2 ≈ C3. C2 y C3 tiene alrededor de 3 a
10 horas de las llamadas solucionador comparación con
C1 y C4 tiene alrededor de 10 a 50 horas de las
llamadas solucionador en comparación con C1, es
decir, C1 <C2 ≈ C3 <C4. El tiempo de generación de
prueba sigue C1 <C2 ≈ C3 <C4. Aunque C4 requiere
relativamente más llamadas solucionador y el tiempo de
ejecución más largo, pero todavía es aceptable. Hemos
TABLA VI: Las mediciones para diferentes métodos de generación de
prueba
#
# Casos llamadas
de soluciona Tiempo (en segundos,
ab prueba dor utilizando Z3)
Programa # P |
#B C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4
abdominales 1 | 1 2 2 2 2 2 5 5 25 0.34 0,361 0,356 0,416
sesen
ta y
calDate 10 | 6 7 20 20 14 19 55 cinco 1029 0,614 0,723 0,759 4.159
complexChe dieci
ck 13 | 4 5 26 26 séis 8 45 52 1512 0,496 0,619 0.63 5,779
findMiddle 14 | 5 6 28 28 12 10 77 77 1341 0,528 0,749 0,752 5.288
ESAÑOBISIE
STO 4|2 3 8 7 5 4 15 17 230 0,408 0,452 0,454 1.26
triType 17 | 8 8 31 30 14 54 138 142 1316 0,968 1,203 1,208 5,084
dieci
spaceManage 16 | 8 7 31 30 séis 56 121 126 2212 0,948 1.166 1.19 8,963
proxima 13.52
fecha 24 | 10 9 42 42 23 48 162 173 3719 0,893 1,267 1.28 4
mostrar la 14.04
mano 36 | 12 13 74 72 32 24 203 232 3722 0,791 1,443 1,567 1
ATC 37 | 21 10 61 55 13 136 266 325 2918 1,826 2,282 2,466 12.5
un #P: número de predicados;
segundo #B: número de instrucciones de salto condicional.
Se ha propuesto generación de pruebas de caja blanca BVA. Las entradas generadas pueden no ser
para reducir los esfuerzos humanos. Existen una serie verdaderos valores de límite, y el número de casos de
de enfoques, tales como la ejecución simbólica [35], la prueba pueden ser relativamente alta.
ejecución simbólica dinámica [20] y algoritmos
heurísticos [3]. Sin embargo, la mayoría de ellos no pruebas combinatorias se ha estudiado desde hace
tienen en cuenta BVA, que es el tema principal de este muchos años. Se han propuesto muchos métodos de
artículo. generación de prueba, como AETG [8] y IPO [26]. que
las restricciones son un aspecto importante en la
Hay varias obras relacionadas en la aplicación de
generación de pruebas CT. Algoritmos tales como
BVA a generación de pruebas de caja blanca. Pandital
AETG-SAT [9], PICT [10], CASA [15], [16], IPOG-C [34]
et al. [29] propuso un enfoque instrumentación y Cascade [38], [37] se centran en la generación de
automatizada, lo que añade varias estatales-mentos prueba con la presencia de restricciones. Más detalles
auxiliares para el programa para guiar la estrategia de de los diferentes aspectos de la CT se pueden
selección de ruta para BVA o cobertura de MC / DC. Sin encontrar en la lista por Nie y Leung [28] y el libro de
embargo el código instrumentado puede influir en la Kuhn et al. [25]. Zhang et al. escribió un estudio
estrategia de selección de ruta. Jamrozik et al. [22] exhaustivo de las técnicas de generación de pruebas
propuso un método general que se aplica diferentes combinatorias [36]. A pesar de todo esto, la aplicación
estrategias para cada trayectoria generada para generar de la TC es aún limitada a las pruebas de recuadro
conjuntos de pruebas para diferentes propósitos, tales negro. Nuestra práctica se combina con éxito la TC en
como BVA, el análisis de mutaciones, la cobertura la generación de pruebas de caja blanca para reducir el
lógica, etc. Se centraron en el método general, pero no número de casos de prueba al mismo tiempo que
garantiza la cobertura límite.
discutió a fondo la estrategia de seleccionar casos de
prueba para
TABLA X: tasa de muerte de salida (en porcentaje) para las faltas inyectadas por Milu [23]
con diferentes conjuntos de pruebas
tipo abdomin
mutante ales CRCR OAAN OCNG
C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4
abdominales 33 33 33 33 62 70 70 70 100 100 100 100 100 100 100 100
calDate 41 45 48 48 82 86 93 93 94 94 94 94 100 100 100 100
complexC
heck 33 43 51 50 58 77 100 100 46 81 100 100 100 100 100 100
findMiddle 25 53 55 46 - - - - - - - - 100 100 100 100
ESAÑOBI
SIESTO 25 25 25 25 70 82 95 95 44 58 78 78 100 100 100 100
triType 35 44 45 39 88 90 93 89 76 83 87 84 100 100 100 100
spaceMana
ge 27 39 38 38 71 97 97 97 85 100 100 100 100 100 100 100
proxima
fecha 27 30 30 30 41 47 47 47 56 56 56 56 100 100 100 100
mostrar la
mano 44 49 50 50 74 79 100 100 63 68 81 81 100 100 100 100
ATC 26 30 30 27 53 59 57 57 52 62 60 50 72 82 81 81
tipo
mutante OLLn OLNG ORRN UOI
C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4
abdominales - - - - - - - - 64 60 60 60 67 67 67 67
calDate 20 95 100 100 100 100 100 100 72 78 88 88 62 70 71 71
sese
nta y
complexC cinc
heck 73 93 100 100 100 100 100 100 o 73 83 83 45 73 79 79
findMiddle 84 89 89 89 92 100 100 100 59 85 94 94 82 89 90 90
ESAÑOBI
SIESTO 100 100 100 100 89 100 100 100 63 75 85 85 69 88 88 88
triType 37 66 83 83 100 100 100 100 76 86 86 83 46 59 71 70
spaceMana
ge 25 70 75 75 58 96 100 100 42 66 70 70 40 56 59 59
proxima
fecha 38 38 38 38 50 51 51 51 37 40 40 40 62 76 76 76
mostrar la
mano 38 58 100 100 100 100 100 100 78 84 89 89 80 86 86 86
ATC 44 44 44 44 73 77 75 75 47 51 50 50 31 43 43 42
TABLA XI: tasa de muerte Path (en porcentaje) para las faltas inyectadas por Milu [23] con
diferentes conjuntos de pruebas
tipo abdomin
mutante ales CRCR OAAN OCNG
C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4
abdominales 40 33 33 33 86 100 100 100 100 100 100 100 100 100 100 100
calDate 43 48 50 50 83 89 96 96 94 94 94 94 100 100 100 100
complexC
heck 33 43 51 50 58 77 100 100 46 81 100 100 100 100 100 100
findMiddle 33 62 69 58 - - - - - - - - 100 100 100 100
ESAÑOBI
SIESTO 25 25 25 25 70 82 95 95 44 58 78 78 100 100 100 100
triType 38 46 46 42 92 95 99 99 76 83 87 84 100 100 100 100
spaceMana
ge 31 44 45 44 74 98 100 100 85 100 100 100 100 100 100 100
proxima
fecha 31 46 46 46 63 87 91 91 72 83 100 100 100 100 100 100
mostrar la
mano 44 49 50 50 74 79 100 100 63 68 81 81 100 100 100 100
ATC 45 48 50 46 71 74 76 76 95 100 100 100 100 100 100 100
tipo
mutante OLLn OLNG ORRN UOI
C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4
abdominales - - - - - - - - 80 80 80 80 67 67 67 67
calDate 20 95 100 100 100 100 100 100 74 80 90 90 62 70 71 71
complexC sese
heck 73 93 100 100 100 100 100 100 nta y 73 83 83 45 73 79 79
cinc
o
findMiddle 100 100 100 100 97 100 100 100 71 89 100 100 83 89 90 90
ESAÑOBI
SIESTO 100 100 100 100 89 100 100 100 63 75 85 85 69 88 88 88
triType 54 77 100 100 100 100 100 100 83 88 88 85 47 60 72 72
spaceMana
ge 42 92 100 100 100 100 100 100 70 86 88 88 49 62 68 68
proxima
fecha 64 100 100 100 99 99 100 100 80 90 92 92 79 81 84 84
mostrar la
mano 38 58 100 100 100 100 100 100 78 84 89 89 80 86 86 86
ATC 100 100 100 100 100 100 100 100 74 76 78 78 47 58 60 60