Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instituto de Computación
Facultad de Ingenierı́a
Universidad de la República, Uruguay
{asabigue|aaguirre}@fing.edu.uy
3/3/2011
¿qué es probar?
Testing
Glenford Myers
Testear (probar) es el proceso de ejecutar un programa con el obje-
tivo de encontrarle errores.
IEEE
Una actividad en la cual un sistema o componente es ejecutado bajo
condiciones especificadas, sus resultados son observados o grabados
y una evaluación es hecha de algún aspecto del sistema o compo-
nente.
¿qué es probar?
Verificación y testing
¿qué es probar?
Edsger Dijkstra
El testing puede ser usado para mostrar la presencia de bugs, pero
nunca para mostrar su ausencia!
¿qué es probar?
¿qué es probar?
Costo y dificultades
Conceptos...
defecto (fault)
Es una anomalı́a en el software, en el hardware o en los datos que
tienen el potencial de causar errores y fallos. Ejemplos de defectos
incluyen cortos en circuitos de hardware, o la división por cero en
un fallo de software. Los defectos son las causas de los errores, pero
no todo defecto lleva a un error. Un defecto se dice activo cuando
produce un error.
Conceptos...
error (error)
Es la ocurrencia de la condición inválida o valor incorrecto en el
sistema. La interacción entre el defecto y un estı́mulo es lo que
produce el error. Un error es entonces la manifestación de un defecto
en el sistema. Un error es por naturaleza temporal. Existen dos
estados posibles de un error: latente y detectado. Un error es latente
mientras no ha sido reconocido como tal. Puede ser detectado por
mecanismos de detección o por los efectos del error sobre el sistema.
falla (failure)
de un sistema se da cuando el mismo no se comporta de acuerdo a
su especificación.
Conceptos...
Conceptos...
Clasificación de defectos
Conceptos...
Definiendo dependability:
Definiendo dependability:(cont)
Definiciones
Reliability
R(t) es la probabilidad que un sistema cumpla sus requerimientos
hasta un tiempo t cuando opera bajo sus condiciones establecidas
de funcionamiento.
Availability
A(t) es la probabilidad que un sistema esté operando correctamente
en el instante de tiempo t.
Definiciones (cont)
Safety
S(t) es la probabilidad que condiciones que pueden derivar en una
situación adversa, no ocurran, independientemente de si el sistema
cumple o no con su misión. Especialmente se deben considerar daños
a la propiedad, medio ambiente e incluso, vidas humanas.
a modo de ejemplo...
Observaciones
Observaciones
Observaciones (cont)
Definiciones (cont)
Survivability
Informalmente, cuando decimos que un sistema es survivable esta-
mos diciendo que posee la capacidad de continuar brindando ser-
vicios (posiblemente degradados o diferentes) en un entorno dado,
cuando diversos eventos causan un daño mayor al sistema o su en-
torno operativo.
Un sistema es survivable si cumple con su especificación de surviv-
ability.
Observaciones
Definiciones (cont)
Survivability specification
de un sistema es:
a)Una declaración precisa del entorno operativo esperado del
sistema
b)Un conjunto de especificaciones que definen las funciones
que un sistema debe proveer
c)Un orden del conjunto de funciones denotado como el orden
preferido de provisión de las funciones
d)Una distribución de probabilidad sobre el conjunto de
especificaciones. La probabilidad asociada a una
especificación dada es la probabilidad que la especificación
asociada sea cumplida.
Intuitivamente
Inyección de defectos
inyección de defectos
Se define como un mecanismo de validación de dependability de un
sistema, en base a la realización de experimentos controlados, en los
que explı́citamente se introducen defectos al mismo.
Conceptos generales
Conceptos generales
Configuraciones
Interfaces
Representan diferentes funcionalidades
Conceptos generales
Endpoints
Tipos de endpoints
Control Endpoints
Tipos de endpoints
Bulk Endpoints
Tipos de endpoints
Interrupt Endpoints
Transferencias periódicas
Utilizadas para transferir cantidades pequeñas de datos
Ancho de banda garantizado
Reintentos automáticos
Utilizada en dispositivos que requieren tiempos de respuesta
garantidos (mouse, teclados)
El host interroga (pooling ) al dispositivo
No interrumpe
Tipos de endpoints
Isochronous Endpoints
Transferencias periódicas
Utilizadas para transferir cantidades grandes de datos
Tienen velocidad garantizada en el bus
No tiene reintentos automaticos
Utilizado para transferencias con caracterı́sticas de tiempo real
(audio y video)
Clases de dispositivos
El proceso de enumeración
El proceso de enumeración
Motivación
Ventajas
Ventajas vs Complejidad
08:17:00 kernel: [150021.366375] hub 3-0:1.0: port 2 disabled by hub (EMI?), re-enabling...
08:17:00 kernel: [150021.373151] usb 3-2: USB disconnect, address 19
08:17:00 kernel: [150021.676056] usb 3-2: new full speed USB device using ohci hcd and address 20
08:17:00 kernel: [150021.900474] usb 3-2: configuration #1 chosen from 1 choice
08:17:01 kernel: [150022.244063] usb 3-2: reset full speed USB device using ohci hcd and address 20
08:17:01 kernel: [150022.450354] usb 3-2: can’t restore configuration #1 (error=-62)
08:17:01 kernel: [150022.457089] usb 3-2: USB disconnect, address 20
08:17:01 kernel: [150022.760048] usb 3-2: new full speed USB device using ohci hcd and address 21
08:17:01 kernel: [150022.984470] usb 3-2: configuration #1 chosen from 1 choice
08:17:01 kernel: [150023.164049] usb 3-2: reset full speed USB device using ohci hcd and address 21
08:17:02 kernel: [150024.099349] usb 3-2: device descriptor read/all, error -62
08:17:03 kernel: [150025.012049] usb 3-2: reset full speed USB device using ohci hcd and address 21
1m 1h
150000s · 60s · 60m ≥ 41hs desde el inicio del sistema
URB’s
Prototipo construido
Demo
Ejemplo de inyección
Definimos la inyección
usbstatus 1 5 1 -84
A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyección y USB
µAgenda Introducción: testing e inyección de defectos Introducción: Protocolo USB Inyección de defectos sobre USB
Conclusiones
¿preguntas?
Instituto de Computación
Facultad de Ingenierı́a
Universidad de la República, Uruguay
{asabigue|aaguirre}@fing.edu.uy
3/3/2011