source: tol/tol_tests/notas_sobre_tests.txt @ f8c0837

1941-docker-image-to-testdevel
Last change on this file since f8c0837 was d6f042d, checked in by Víctor de Buen <vdebuen@…>, 18 years ago

standarrd tol tests

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@18 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 8.5 KB
Line 
1//////////////////////////////////////////////////////////////////////////////
2//                                                                          //
3//                          TOL-Tester                                      //
4//                                                                          //
5//////////////////////////////////////////////////////////////////////////////
6
7==============================================================================
8A) Definición de TOL-Tester
9==============================================================================
10
11Se trata de un sistema estándar de chequeo del comportamiento del lenguaje TOL
12y de las herramientas relacionadas como TOLBase. Antes de publicar cada nueva
13versión se debe comprobar que TOL actúa como se espera lo cual no suele ser
14nada trivial dado el extenso número de aplicaciones del lenguaje.
15
16
17==============================================================================
18B) Estructura de TOL-Tester
19==============================================================================
20
21En el directorio raíz se encuentran los ficheros TOL comunes a todas las
22baterías de tests además de éste fichero de ayuda.
23
24  - _testCommon.tol : Estructuras y funciones auxiliares comunes
25  - _testConfig.tol : Parámetros de configuración comunes
26 
27Los tests se encuentran clasificados en directorios dependiendo del PRODUCTO
28concreto que se intenta probar. Dentro de cada producto existirán directorios
29dedicados a las distintas baterías de tests que lo comprueban, en virtud del
30TEMA a chequear. El par PRODUCTO/TEMA define una BATERÏA de tests
31relacionados entre sí.
32
33Dentro de cada batería puede haber una estructura totalmente libre de
34subdirectorios que se recorrerán recursivamente en busca de archivos
35test.tol los cuales se interpretarán como cada uno de los tests particulares
36de la batería asociada. De esta manera cada batería se puede adaptar a sus
37necesidades de forma muy flexible sin perder generalidad ni facilidad de uso.
38
39A cada uno de los paths relativos a la batería que contengan un test le
40llamaremos BASE del test. Es decir los tests se definen en los ficheros de
41la forma  PRODUCTO/TEMA/BASE/test.tol
42
43Por el momento existen los siguientes productos y temas
44 
45 -tol: los tests acerca del lenguaje propiamente dicho sin que intervenga
46       ningún módulo auxiliar
47     
48   -tol/Bugzilla:         comprueba que los bugs resueltos siguen funcionando
49   -tol/ARIMA:            Tests de simulación acerca de modelos ARIMA
50   -tol/TimeSetCoherence: Tests de simulación acerca del álgebra del tiempo
51   
52 -tolcon: los tests acerca del ejecutable de TOL en modo de consola
53   
54   -tolcon/Bugzilla: comprueba que los bugs resueltos siguen funcionando
55   
56 -toltcl: los tests acerca de la API de comunicación de TCL con TOL para la
57          construcción de interfaces
58
59   -toltcl/Bugzilla: comprueba que los bugs resueltos siguen funcionando
60                     
61 -toldb: los tests acerca de la conexión de TOL con bases de datos
62 
63   -toldb/Bugzilla: comprueba que los bugs resueltos siguen funcionando
64
65
66==============================================================================
67B) Modo de empleo de TOL-Tester
68==============================================================================
69
70En cada directorio existe un archivo _tolTester.tol que se encarga de realizar
71todo lo necesario, y que debe ser compilado con la versión de TOL que se desea
72comprobar.
73
74Antes de hacerlo es conveniente repasar la configuración de la lista de
75baterías de tests que se desean comprobar en el conjunto TestConfigTable de
76registros con estructura strBatteryConfig definida en _testCommon.tol
77
78Los test se pueden ejecutar una o varias veces o incluso ninguna si así se
79especifica en TestConfigTable, para facilitar de este modo la adaptación a
80diferentes situaciones de chequeo de cada una de las baterías. Por ejemplo,
81tras un cambio profundo de TOL o al publicarse una nueva versión sería
82conveniente realizar un chequeo exhaustivo que puede durar varias horas,
83pero tras una leve modificación quizás sólo queremos probar alguna batería
84en concreto o un poco de todo, de forma que dure apenas unos minutos. Nos
85referiremos a cada una de estas ejecuciones con el término ITER.
86
87Opcionalmente, un test puede tener un fichero de parametrización PARAM que 
88se puede usar, por ejemplo, para modular el volumen de las simulaciones
89efectuadas.
90
91==============================================================================
92C) Visualización de resultados
93==============================================================================
94
95La mayoría de los tests serán deterministas en el sentido de que sólo pueden
96salir bien o mal, pero otras veces no es posible determinar tal cosa y tan
97sólo se puede dar una medida probabilística e incluso subjetiva de la calidad
98obtenida.
99
100El programa irá sacando una traza del cada test con el resultado de su
101calidad en una norma probabilística de 0 a 100% así como el tiempo empleado.
102
103Al final de cada batería se dará un pequeño resumen de sus resultados y una
104vez terminada la compilación es posible ver sendos resumenes a nivel de
105batería (AllReport) y a nivel de test (AllDetail) donde se puede encontrar
106información adicional acerca de los tests que no hayan dado el resultado
107esperado.
108
109Cada test genera de forma automática un directorio de resultados localizado
110en PRODUCTO/.result/test_YYYY_MM_DD_HH_MM/[PARAM_]TEMA/BASE[/ITER] en el que
111se almacenan estos ficheros
112 
113  - test.bat: fichero de llamada del test por si se quiere
114                          reproducir posteriormente
115  - test.log: fichero de salida estándar de la ejecución para
116                          buscar posibles errores o anomalías
117  - test.bst: fichero de resultados utilizado después para generar
118                          las tablas de resúmenes.
119
120Nota: YYYY_MM_DD_HH_MM significa año,mes,día,hora,minuto
121
122==============================================================================
123D) Funcionamiento interno de TOL-Tester
124==============================================================================
125 
126Cada test retornara un Set de estructura strTestStatus definida en
127_testCommon.tol con la informacion de los resultados propiamente dichos y
128elementos desriptivos y auxiliares. La llamada a cada uno se hará usando el
129sistema operativo para arrancar una nueva sesión TOL para evitar por un lado
130efectos colaterales entre los distintos tests así como salvaguardar el proceso
131de lanzamiento de posibles caídas provocadas en uno de ellos.
132
133El que invoca cada test (tol_tester) se encarga de recolectar las metricas que
134son generales para todos los tests además de la devuelta en el strTestStatus,
135confeccionando un conjunto de estructura strTestMetric definida en
136_testCommon.tol, en la que se incluye la información heredada de la batería a
137la que pertenece así como de los cambios de estado de ciertas variables:
138tiempo y memoria empleados, número de errores y warnings, etc.
139
140Cuando se finaliza un batería concreta se genera un conjunto con estructura
141strTestBattery definida en _testCommon.tolen el que se incluye información
142sobre la propia definición de la batería, sobre las condiciones de ejecución
143del test (sistema operativo, versión del compilador y de TOL, momento de
144inicio), así como algunos estadísticos de resumen de los resultados obtenidos.
145
146
147==============================================================================
148E) Tareas por hacer en TOL-Tester
149==============================================================================
150
1511- En una etapa posterior podria ser interesante almacenar toda la informacion
152en una base de datos a modo de realizar queries avanzadas que permitan hacer
153un diagnostico automatico del resultado de los tests.
154
1552- En ocasiones la ejecución de un test puede ocasionar un ciclo infinito o
156que se quede a la espera por cualquier motivo (especialmente en windows que
157tiene por costumbre sacar ventanas para cualquier tontería). En tales casos
158sería necesario poder lanzar los tests como hilos y quedar a la espera hasta
159que el test acabe o transcurra un tiempo máximo. Mientars no sea así los tests
160se tendrán que seguir lanzando bajo la tutela de un operario.
161
1623- Otra posibilidad relacionada con la anterior sería lanzar los tests contra
163otras máquinas de forma remota utilizando TRC o cualquier otro método, para
164liberar recursos en la máquina cliente y dedicar máquinas específicas a las
165tareas de chequeo de versiones de TOL.
166
Note: See TracBrowser for help on using the repository browser.