57
Testing 3D TATA Consultancy Services Irene Pazos Viana IEEE Uruguay Section Officer [email protected] member Testing Day 26.may.2011

2011 05-26-ieee-TCS testing-day-testing 3d

Embed Size (px)

Citation preview

Page 1: 2011 05-26-ieee-TCS testing-day-testing 3d

Testing 3D

TATA Consultancy Services

Irene Pazos Viana IEEE Uruguay Section [email protected]

member

Testing Day

26.may.2011

Page 2: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 2

testing 3D

• software testing• verificación, validación• inferencia, síntesis• ...• f: PROC x SPEC →→→→ {V, F}

(u name it … de que hablamos realmente??)

Page 3: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 3

testing 3D

hablamos de todo esto?

COBERTURA

documentación (ieee 829)

casos

estrategiasPLANES

recursos

implem

entacion

resultados

anomalias

ciclosciclosciclosciclos e�e�e�e�iteraciones

iteracionesiteracionesiteraciones

fases

procesos

pruebas funcionales

perf

orman

ce

automa

tizaci

ón

metodología

proyecto

Page 4: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 4

testing 3D

en el inicio fue el proyecto …todas las cosas fueron hechas por medio de Él, y sin El nada de lo que ha sido hecho, fue hecho…

bajo cualquier metodología y SDLC, testing es igualmente un proyecto con mismas características

que el proyecto al que sirve (y otra ejecución “fractal”)

foco

Page 5: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 5

testing 3D

“no silver bullet”

• los modelos de calidad, metodologías y ciclos de vida, se eligen para servir mejor a los proyectos de una organización.

In folklore, the silver bullet is supposed to be the only kind of bullet for firearms that is effective against a Werewolf, witch,

or some monsters – wikipedia (since Lone Ranger is out of duty).

proyectos: metodologías, ciclos vida

Page 6: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 6

testing 3D

testing: metodologías, ciclos vida

• Testing is the process of executing a program with the intent of finding errors

The Art of Software Testing, Myers, Nov.2011 3rd edition

(mhhh…tal vez sea una definición demasiado enfocada)

proyectos

Page 7: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 7

testing 3D

test: definición

transitive verb

• 1: to put to test or proof : try

intransitive verb

• 1a : to undergo a test b : to be assigned a standing or evaluation on the basis of tests

• 2: to apply a test as a means of analysis or diagnosis

Merriam-Webster Dictionary

totalmenterecusiva !?

Page 8: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 8

testing 3D

test: (A) A set of one or more test cases, or(B) A set of one or more test procedures, or (C)A set of one or more test cases and procedures.

test case: A set of input values, execution preconditions, expected results and execution postconditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.

IEEE Std 610.12-1990, IEEE Std. Glossary of Software Engineering Terminology

el que esté libre de recursión, que arroje la primera definición

Page 9: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 9

testing 3D

prueba

• 2. f. Razón, argumento, instrumento u otro medio con que se pretende mostrar y hacer patente la verdad o falsedad de algo.

• 4. f. Ensayo o experimento que se hace de algo, para saber cómo resultará en su forma definitiva.

• 13. f. Mat. Operación que se ejecuta para comprobar que otra ya hecha es correcta.

Diccionario de la lengua EspañolaVigésima segunda edición

REAL ACADEMIA.

Page 10: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 10

testing 3D

1. ENSAYO

2. DEMOSTRACIÓN (de teoremas)

gracias Real Academia por las definiciones recibidas

silver bullet service pack+

Page 11: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 11

testing 3D

test: P x E →→→→ C x { R }P procedimientoE especificaciónC métrica de cumplimientoR resultados

test: aplicación de un procedimiento a una especificación para obtener una métrica de cumplimiento y un conjunto de resultados

( procedimiento ? )

otras dimensiones para pruebas

Page 12: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 12

testing 3D

con el permiso de los autores, se presentan (“bilingüemente”) conceptos relevantes tomados del material de los cursos:

C2 "Análisis Automático de Programas: de la Teoría a la Práctica"Dr. Diego Garbervetsky y Lic. Guido de CasoUniversidad de Buenos Aires, Argentina

C3 "Model Checking Continuous-Time Markov Models: From Theory to Practice"Dr. Joost-Pieter KatoenRWTH Aachen University, Alemania

C5 "Automated Test Generation and Repair"Dr. Darko MarinovUniversity of Illinois at Urbana-Champaign, Estados Unidos

Escuela de Verano de Ciencias Informáticas RÍO 2011Universidad Nacional de Río Cuarto, Córdoba, Argentina.

Page 13: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 13

testing 3D

• ensayo (dinámico)

• análisis (estático) de programas

• model checking

procedimientootras dimensiones de pruebas(aun en el ámbito del ensayo)

Page 14: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 14

testing 3D

cuando hace falta extender dimensión de pruebas ?

Que tal si el proyecto que recibimos para probar fuera algo como …

proyectos …

(gracias Joost-Pieter Katoen)

Page 15: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 15

testing 3D

Probar que no existe algo como el programa “scavenge” que permitía abusar de los tiempos de salto de satélite y los tiempos de las señales, accediendo en forma gratuita a servicios telefónicos pagos.

En las películas de cárceles siempre hay un reo que llama(ba) marcando con la horquilla (antes que los pulsos reemplazaran los tonos).

proyectos

Page 16: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 16

testing 3D

Probar consistencia de criterios de facturación entre todos los actores y motores que participan del sistema de facturación de telefonía celular.

(ej: sistemas que cobran al cliente a fracción de min., según el plan contratado -20seg-, y pagan a carriers asociados a fracción de tiempo negociada -1 min-)

ANTEL tiene un contrato de revisión del sistema de facturación.

proyectos

Page 17: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 17

testing 3D

Probar que mi broadcast en internet (radio, tv), no retransmite paquetes haciendo overlapsobre el mismo receptor.

Evitando que el periodista de la radio ESPECTADOR hable encima de si mismo cuando hay paquetes demorados (se le pisoteó el buffer??).

proyectos

Page 18: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 18

testing 3D

u otros casos bien conocidos: (después que fallaron, claro … )

• probar que no hay el error en la unidad de división

de punto flotante en procesadores Intel Pentium II.

• probar que no hay un defecto de software en el sistema de control de la máquina de terapia

Therac25, que produjo la muerte de 6 pacientes de

cáncer por sobre-exposición radioactiva.

proyectos

Page 19: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 19

testing 3D

no es trivial

probar que NO hay error en un sistema -cuando esto es posible-, eventualmente cuesta hoy MAS (tiempo, esfuerzo) que desarrollar el propio sistema.

(buen dato para quienes de dedican a pruebas …)

proyectos

Page 20: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 20

testing 3D

pero…

un solo día de falla en el sistema de reservas de una compaña aérea importante puede provocar su bancarrota

de costos en vidas humanas mejor ni hablamos, pero podemos calcular cuanto cuesta una falla, un sistema, y cuanto vale unacompañía.

proyectos

Page 21: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected]

además…

software bugs cost US economy $60B/year [NIST’02] (*)

Estimated savings from better testing

$22B/year (*)

(*) Darko Marinov: Automated Test Generation and Repair

26-may-11 21

testing 3D

Ariane 5 crash (1996)error in the software design (inadequate protection from integer overflow)

Columbia

disaster

Feb. 2003

Challenger

disaster

Jan. 1986

Page 22: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 22

testing 3D

ok, hace falta considerar múltiples dimensiones de pruebas.

pruebas

Page 23: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 23

testing 3D

• ensayo (dinámico)

• análisis (estático) de programas

• model checking

aproximaciones para pruebas

Page 24: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 24

aproximaciones

dinámico

• run code for some inputs, check outputs• checks correctness for some executions

problemas

• generación datos de entrada• adecuación de suites de prueba

precedencia, cobertura..

• “test oracles”mecanismos para determinar si prueba pasa o falla

ensayo de software

Page 25: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 25

aproximaciones

estático

• verifica la correctitud de TODA ejecución posible del programa

algunas técnicas

• análisis de dataflowabstracción divisiones por cero: σ : var → {indef, Z, NZ, QZ }

• generación de condiciones de verificacióncon anotaciones como tipos o contratos

problemas• corrección vs. completitud:

falsos positivos & negativos

análisis de programas

Page 26: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 26

aproximaciones

combina estático & dinámico

• verifica correctitud de TODA ejecución

• analiza automáticamente cumplimiento de determinadas propiedades sobre un modelo formal de un sistema (un grafo dirigido, con estados etiquetados para las propiedades).

model checking

Discrete-time Markov chain

Page 27: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 27

aproximaciones

(yet .. no silver bullet)

análisis dinámico

NO: ensayo exhaustivo de toda posible entrada

análisis estático

NO: modelo preciso de cada estado posible

todo muy lindo .. pero … limitaciones

espacio( input ) continuo → infinitas pruebas

espacio( abstracción ) == sistema

Page 28: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 28

aproximaciones

• encontramos todas las anomalías?análisis dinámico imposibleanálisis estático seguramente

• anomalías reportadas son reales?análisis dinámico seguramente

análisis estático imposible

“Most practical techniques and tools are both unsound and incomplete!”

(false positives, false negatives)

soundness & completeness

Page 29: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 29

aproximaciones

• nivel automatización

apretar un botón vs. manual

• tipo de anomalías encontrados

complicadas de reproducir vs. fácilbaja probabilidad vs. alta

propiedades comunes vs. específicas

• tipo de problemas (no) encontrados

comparación

Page 30: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 30

aproximaciones

• ensayo -dinámico- se mantiene como aproximación más ampliamente usada para encontrar problemas

• en la última década hay grandes progresos en análisis estático (de “sound” a práctico) y model checking (de hardware a software)

• “Vibrant research in the area”, “Gap between research and practice”.

estado actual

Page 31: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 31

aproximaciones

“how-to” – bug dealing

• eliminar

- debug, test

• prevenir

- procesos de desarrollo software- diseño de lenguajes de programación

• demostrar ausencia

- prueba de teoremas- model checking, análisis de programas

Page 32: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 32

testing 3D

• ensayo (dinámico)

• análisis (estático) de programas

• model checking

(snapshot)

Page 33: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 33

testing

research: automate testing

no hablamos de una persona que enseña a una máquina a reemplazar el trabajo manual de otra persona que hace pruebas

es una persona que crea una máquina que crea artefactos de pruebas.

ensayo Darko Marinov

Page 34: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 34

testing

máquinas

• Randoop: random generation of OO tests• Pex: dynamic symbolic generation of inputs• UDITA: generation of complex data inputs• ReAssert: repair of OO unit tests• JPF: systematic testing of Java code

ensayo Darko Marinov

Page 35: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 35

testing

generar test unitarios

• genera secuencias de invocaciones a métodos• elección aleatoria de métodos y parámetros• implementación java liberada (público)

RandoopDarko Marinov

Feedback-directed random test generation•by Carlos Pacheco,

Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball

(ICSE 2007)

Page 36: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 36

testing

PEXDarko Marinov

Pex – White Box Test Generation for .NET

generar test unitarios

• describe test scenarios with parameterized unit tests (PUTs)

• dynamic symbolic execution• implementación .NET

Code to generate inputs for:

Constraints to solve

a!=null

a!=null &&a.Length>0

a!=null &&a.Length>0 &&a[0]==12345678

90

void CoverMe(int[] a){if (a == null) return;if (a.Length > 0)

if (a[0] == 1234567890)

throw new Exception("bug");}

void CoverMe(int[] a){if (a == null) return;if (a.Length > 0)

if (a[0] == 1234567890)

throw new Exception("bug");}

Observed constraints

a==nulla!=null &&!(a.Length>0)a!=null &&a.Length>0 &&a[0]!=123456789

0

a!=null &&a.Length>0 &&a[0]==123456789

0

Data

null

{}

{0}

{123…}

a==null

a==null

a.Length>0

a.Length>0

a[0]==123…a[0]==123…T

TF

T

F

F

Execute&MonitorExecute&MonitorSolveSolve

Choose next pathChoose next path

Done: There is no path left.Done: There is no path left.

Negated conditionNegated condition

•by Nikolai Tillmann and

Jonathan de Halleux

(TAP 2008)

Page 37: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 37

testing

UDITADarko Marinov

Test Generation through Programming in UDITA

generate complex test inputs

• combines filtering approach (check validity) and generating approaches (valid by construction)

• java-based language with non-determinism• tool for Java

01

32

red-black treeweb sites

s1

s2

s4

s3

s5

codetest

generation

testoracle

01

32

0 32

0 32

03

pass

fail

inputs outputs

•by Milos Gligoric, Tihomir Gvero,

Vilas Jagannath, Sarfraz Khurshid, Viktor Kuncak, and Darko Marinov

(ICSE 2010)

Page 38: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 38

testing

automate repair tests for software evolutioned versions

• find small changes that make tests pass• ask the user to confirm proposed changes• tool for Java/Eclipse

ReAssertDarko Marinov

ReAssert: Suggesting repairs for broken unit tests•by Brett Daniel, Vilas Jagannath,

Danny Dig, and Darko Marinov(ASE 2009)

Page 39: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 39

testing

Java Path Finder : Model checking of real code

• specialized Java Virtual Machine• supports backtracking, state comparison• many optimizations to make it scale• publicly available tool (Java PathFinder)

JPFDarko Marinov

Model Checking Programs•by W. Visser, K. Havelund, G. Brat, S. Park and F. Lerda

(J-ASE, vol. 10, no. 2, April 2003)

Page 40: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 40

testing 3D

• ensayo (dinámico)

• análisis (estático) de programas

• model checking

Page 41: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 41

análisis de programas

• analiza código sin ejecutarlo

• es la examinación sistemática de una abstracción del espacio de estados del programa.

sistemática - examina en forma exhaustiva todos los caminos dentro de cada función ( loops!? )

abstracción - sólo mantenemos información relevante

a la propiedad a inferir: signo de las variables (+,-),

referenciamiento, ..

análisis estáticoDiego Garbervetsky, Guido de Caso

Page 42: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 42

análisis de programas

técnicas más conocidasDiego Garbervetsky, Guido de Caso

Page 43: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 43

análisis de programas

Capers Jones, Software Productivity Group

efecto en la industria: MICROSOFT

• Todo desarrollo interno pasa por analizadores automáticos

• Visual Studio + Code Contracts:Análisis estático + Generación de Test

• Kit de aceptación de drivers que se entrega a los fabricantes

Static Analysis can reduce defects by up to a factor of six!

Diego Garbervetsky, Guido de Caso

Page 44: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 44

análisis de programas

• Java FindBugs: más de 1,5 millón downloads- usado en Google, Sun, Ebay, …- encuentra errores “mecánicos”o patrones de

errores• En Google descubrieron automáticamente

- > 4000 problemas de código en producción- más de 80 ciclos infinitos

http://findbugs.sourceforge.net/

en la industria Diego Garbervetsky, Guido de Caso

Page 45: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 45

testing 3D

• ensayo (dinámico)

• análisis (estático) de programas

• model checking

Page 46: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 46

model checking

Carnegie Mellon

• method for formally verifying finite-state concurrent systems. Specifications about the system are expressed as temporal logic formulas, and efficient symbolic algorithms are used to traverse the model defined by the system and check if the specification holds or not.

Extremely large state-spaces can often be traversed in minutes. The technique has been applied to several complex industrial systemssuch as the Futurebus+ and the PCI local bus protocols

Model Checking Group, Specification and Verification Center. Carnegie Mellon.www.cmu.edu

Page 47: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 47

model checking

utilidad

cuantificación

• colas, tiempos de espera, QoS, MTBF,…• impresiciones en inputs, retrasos, deadlines

ejemplos

• IEEE 1394 (Firewire): “biased delay” óptimo• análisis protocolos de seguridad• sistemas biológicos: Enzyme-catalysed substrate

conversion

• software de satélites

Joost-Pieter Katoen

Page 48: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 48

model checking

contextoJoost-Pieter Katoen

Page 49: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 49

model checking

alcance en modeladosólo una vista totalmente “brutal”

• Quantitative and Qualitative Reachability, Probabilistic Computation Tree Logic (PCTL), PCTL Counterexamples, Continuous-Time Markov Chains (CMTC), Continuous Stochastic Logic (CSL)

Joost-Pieter Katoen

REACHABILITY PROBABILITIES

Page 50: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 50

model checking

propiedades?, modelos?Joost-Pieter Katoen

Page 51: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 51

model checking

estado actual y perspectivasJoost-Pieter Katoen

Page 52: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 52

testing 3D

• ensayo (dinámico)

• análisis (estático) de programas

• model checking

• epílogo & ultra-epílogo UY

Page 53: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 53

testing 3D

test: P x E →→→→ C x { R }P procedimientoE especificaciónC métrica de cumplimientoR resultados

test: aplicación de un procedimiento a una especificación para obtener una métrica de cumplimiento y un conjunto de resultados

testing

proyecto

gestión

test

gestión

P = (análisis estático U análisis dinámico U model checking)

Page 54: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 54

testing 3D

• industria: cursos abiertos (2007)

• UDELAR/FIng

INCO Taller de Verificación de Software

CPAP Inspección de Software

• CES – Lanzamiento de Carrera de Testing (2011)• Emprendimiento (InCo) especializado en proveer servicios de testing a empresas.

• Apoyo UE, PNUD para proyecto de Desarrollo tecnológico (URY/2003/5906)

testing en uruguay

Page 55: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 55

testing 3D

horizonte …

• cobertura universitaria para desarrollo de la industria

• monitor de calidad, compilando resultados de industria

• recursos para I+D (apoyados por monitoreo ..)

testing en uruguay

software bugs cost US economy $60B/yearEstimated savings from better testing

$22B/year

Randoop, Pex, UDITA, ReAsert, JPF

Page 56: 2011 05-26-ieee-TCS testing-day-testing 3d

testing 3D

Testing Day

TATA Consultancy Services

Mayo, 2011.Knowledge Development Center (KDC) del LATU Av. Italia 6201, Montevideo.

Page 57: 2011 05-26-ieee-TCS testing-day-testing 3d

[email protected] 26-may-11 57