Browse Source

README-es.md edited on August 3, 2016 at 10:55am

Jose R Ortiz Ubarri 8 years ago
parent
commit
82baa54f26
1 changed files with 22 additions and 21 deletions
  1. 22
    21
      README-es.md

+ 22
- 21
README-es.md View File

@@ -8,7 +8,7 @@
8 8
 
9 9
 Como habrás aprendido en experiencias de laboratorio anteriores, lograr que un programa compile es solo una pequeña parte de programar. El compilador se encargará de decirte si hubo errores de sintaxis, pero no podrá detectar errores en la lógica del programa. Es muy importante probar las funciones del programa para validar que producen los resultados correctos y esperados.
10 10
 
11
-Una manera de hacer estas pruebas es “a mano”, esto es, corriendo el programa múltiples veces, ingresando valores representativos (por medio del teclado) y visualmente verificando que el programa devuelve los valores esperados. Otra forma más conveniente es implementar funciones dentro del programa cuyo propósito es verificar que otras funciones produzcan resultados correctos. En esta experiencia de laboratorio, practicarás ambos métodos de verificación.
11
+Una manera de hacer estas pruebas es a mano; esto es, corriendo el programa múltiples veces, ingresando valores representativos (por medio del teclado) y visualmente verificando que el programa devuelve los valores esperados. Otra forma más conveniente es implementar funciones dentro del programa cuyo propósito es verificar que otras funciones produzcan resultados correctos. En esta experiencia de laboratorio practicarás ambos métodos de verificación.
12 12
 
13 13
 
14 14
 ## Objetivos:
@@ -67,9 +67,9 @@ Cuando probamos la validez de una función debemos probar casos que activen los
67 67
 ### La función `assert`
68 68
 
69 69
 
70
-La función `assert(bool expression)` se puede utilizar como herramienta rudimentaria para validar funciones. `assert` tiene un funcionamiento muy sencillo y poderoso. Si la expresión que colocamos entre los paréntesis de `assert` es *cierta* la función permite que el programa continúe con la próxima instrucción. De lo contrario, si la expresión que colocamos entre los paréntesis es *falsa*, la función `assert` hace que el programa termine e imprime un mensaje al terminal que informa al usuario sobre la instrucción de `assert` que falló. 
70
+La función `assert(bool expression)` se puede utilizar como herramienta rudimentaria para validar funciones. `assert` tiene un funcionamiento muy sencillo y poderoso. Si la expresión que colocamos entre los paréntesis de `assert` es *cierta* la función permite que el programa continúe con la próxima instrucción. De lo contrario, si la expresión que colocamos entre los paréntesis es *falsa*, la función `assert` hace que el programa termine e imprima un mensaje al terminal que informe al usuario sobre la instrucción de `assert` que falló. 
71 71
 
72
-Por ejemplo, el siguiente programa correrá de principio a fin sin problemas pues todos las expresiones incluidas en los paréntesis de los asserts evalúan a *true*.
72
+Por ejemplo, el siguiente programa correrá de principio a fin sin problemas pues todos las expresiones incluidas en los paréntesis de los asserts evalúan a *cierto*.
73 73
 
74 74
 ---
75 75
 
@@ -94,7 +94,7 @@ int main() {
94 94
 
95 95
 ---
96 96
 
97
-El siguiente programa no correrá hasta el final pues el segundo `assert` (`assert(j == i);`)  contiene una expresión  (`j == i`) que evalúa a *false*.
97
+El siguiente programa no correrá hasta el final pues el segundo `assert` (`assert(j == i);`)  contiene una expresión  (`j == i`) que evalúa a *falsa*.
98 98
 
99 99
 ---
100 100
 
@@ -116,11 +116,11 @@ int main() {
116 116
 
117 117
 ```
118 118
 
119
-**Figura 2.** Ejemplo de programa que no "pasa" una prueba de `assert`.
119
+**Figura 2.** Ejemplo de programa que no pasa una prueba de `assert`.
120 120
 
121 121
 ---
122 122
 
123
-Al correr el pasado programa, en lugar de obtener la frase `Eso es todo amigos!”` en el terminal, obtendremos un mensaje como el siguiente:
123
+Al correr el pasado programa, en lugar de obtener la frase `"Eso es todo amigos!”` en el terminal, obtendremos un mensaje como el siguiente:
124 124
 
125 125
 `Assertion failed: (j == i), function main, file ../programa01/main.cpp, line 8.`
126 126
 
@@ -183,7 +183,7 @@ Supón que el programa tiene una interfaz como la siguiente:
183 183
 
184 184
 ![figure4.png](images/figure4.png)
185 185
 
186
-**Figura 4** - Interfaz de un programa para hallar el valor máximo entre tres enteros.
186
+**Figura 4.** Interfaz de un programa para hallar el valor máximo entre tres enteros.
187 187
 
188 188
 ---
189 189
 
@@ -193,7 +193,8 @@ Podrías determinar si el programa provee resultados válidos **sin analizar el
193 193
 * a = 3, b = 6, c = 2; resultado esperado: 6
194 194
 * a = 1, b = 10, c = 100; resultado esperado: 100
195 195
 
196
-Si alguno de estos tres casos no da el resultado esperado, el programa de tu amiga no funciona. Por otro lado, si los tres casos funcionan, entonces el programa tiene una probabilidad alta de estar correcto.
196
+Si alguno de estos tres casos no da el resultado esperado, el programa de tu amiga no funciona. Por otro lado, si los tres casos funcionan, entonces el programa tiene una alta probabilidad de estar correcto.
197
+
197 198
 
198 199
 #### Funciones para validar
199 200
 
@@ -206,7 +207,7 @@ En este ejercicio estarás diseñando pruebas que validen varias versiones de la
206 207
 
207 208
     ![figure5.png](images/figure5.png)
208 209
 
209
-    **Figura 5** - Interfaz de la función `3 Sorts`.
210
+    **Figura 5.** Interfaz de la función `3 Sorts`.
210 211
 
211 212
     ---
212 213
 
@@ -228,13 +229,13 @@ En este ejercicio estarás diseñando pruebas que validen varias versiones de la
228 229
 
229 230
     ![figure7.jpg](images/figure7.jpg)
230 231
 
231
-    **Figura 7** - Formas de ganar en el juego "Piedra, papel y tijera".
232
+    **Figura 7.** Formas de ganar en el juego "Piedra, papel y tijera".
232 233
 
233 234
     ---
234 235
 
235 236
     ![figure8.png](images/figure8.png)
236 237
 
237
-    **Figura 8** - Interfaz de la función `Rock, Paper, Scissors`.
238
+    **Figura 8.** Interfaz de la función `Rock, Paper, Scissors`.
238 239
 
239 240
     ---
240 241
 
@@ -249,7 +250,7 @@ En este ejercicio estarás diseñando pruebas que validen varias versiones de la
249 250
 
250 251
     ![figure9.png](images/figure9.png)
251 252
 
252
-    **Figura 9** - Interfaz de la función `Zulu time`.
253
+    **Figura 9.** Interfaz de la función `Zulu time`.
253 254
 
254 255
     ---
255 256
 
@@ -269,7 +270,7 @@ En este ejercicio estarás diseñando pruebas que validen varias versiones de la
269 270
   | 2       | "alce", "zorro", "coyote" | "zorro", "alce", "coyote" | ....      | ....       |            |
270 271
   | ....    | ....                      | ....                      | ....      | ....       | ....       |
271 272
 
272
-  **Figura 10** - Tabla para organizar los resultados de las pruebas.
273
+  **Figura 10.** Tabla para organizar los resultados de las pruebas.
273 274
 
274 275
   ---
275 276
 
@@ -277,18 +278,18 @@ En este ejercicio estarás diseñando pruebas que validen varias versiones de la
277 278
 
278 279
 
279 280
 
280
-### Ejercicio 2: Hacer pruebas "a mano"
281
+### Ejercicio 2 - Hacer pruebas "a mano"
281 282
 
282 283
 El proyecto `testing` implementa varias versiones de cada una de las cuatro funciones simples que se decribieron en el Ejercicio 1. Algunas o todas las implementaciones pueden estar incorrectas. Tu tarea es, usando las pruebas que diseñaste en el Ejercicio 1, probar las versiones de cada función para determinar cuáles de ellas, si alguna, están implementadas correctamente.
283 284
 
284 285
 Este ejercicio **NO requiere programación**, debes hacer las pruebas **sin mirar el código.**
285 286
 
286
-#### Instrucciones:
287
+#### Instrucciones
287 288
 
288 289
 1. Carga a `QtCreator` el proyecto `Testing`. Hay dos maneras de hacer esto:
289 290
 
290 291
     * Utilizando la máquina virtual: Haz doble “click” en el archivo `Testing.pro` que se encuentra en el directorio `/home/eip/labs/testing-testing` de la máquina virtual.
291
-    * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/testing-testing` para descargar la carpeta `tema-nombre` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `Testing.pro`.
292
+    * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el comando `git clone http:/bitbucket.org/eip-uprrp/testing-testing` para descargar la carpeta `tema-nombre` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `Testing.pro`.
292 293
 
293 294
 2. Configura el proyecto y corre el programa. Verás una pantalla similar a la siguiente:
294 295
   
@@ -296,19 +297,19 @@ Este ejercicio **NO requiere programación**, debes hacer las pruebas **sin mira
296 297
 
297 298
     ![figure11.png](images/figure11.png)
298 299
 
299
-    **Figura 11** - Ventana para seleccionar la función que se va a probar.
300
+    **Figura 11.** Ventana para seleccionar la función que se va a probar.
300 301
 
301 302
     ---
302 303
 
303 304
 3. Selecciona el botón de `3 Sorts` y obtendrás la interfaz de la Figura 5.
304 305
 
305
-4. La "Version Alpha" en la caja indica que estás corriendo la primera versión del algoritmo `3 Sorts`. Usa las pruebas que escribiste en el Ejercicio 1 para validar la "Version Alpha". Luego, haz lo mismo para las versiones Beta, Gamma y Delta. Escribe cuáles son las versiones correctas (si alguna) de la función y porqué. Recuerda que, para cada función, algunas o todas las implementaciones pueden estar incorrectas. Además, especifica cuáles pruebas te permitieron determinar las versiones que son incorrectas.
306
+4. La "Versión Alpha" en la caja indica que estás corriendo la primera versión del algoritmo `3 Sorts`. Usa las pruebas que escribiste en el Ejercicio 1 para validar la "Version Alpha". Luego, haz lo mismo para las versiones Beta, Gamma y Delta. Escribe cuáles son las versiones correctas (si alguna) de la función y por qué. Recuerda que, para cada función, algunas o todas las implementaciones pueden estar incorrectas. Además, especifica cuáles pruebas te permitieron determinar las versiones que son incorrectas.
306 307
 
307 308
 
308 309
 
309
-### Ejercicio 3: Usar `assert` para realizar pruebas unitarias
310
+### Ejercicio 3 - Usar `assert` para realizar pruebas unitarias
310 311
 
311
-Hacer pruebas "a mano" cada vez que corres un programa es una tarea que resulta "cansona" bien rápido. En los ejercicios anteriores lo hiciste para unas pocas funciones simples. ¡Imagínate hacer lo mismo para un programa complejo completo como un navegador o un procesador de palabras!
312
+Hacer pruebas a mano cada vez que corres un programa es una tarea que puede resultar cansona bien rápido. En los ejercicios anteriores lo hiciste para unas pocas funciones simples. ¡Imagínate hacer lo mismo para un programa complejo como un navegador o un procesador de palabras!
312 313
 
313 314
 Las *pruebas unitarias* ayudan a los programadores a validar códigos y simplificar el proceso de depuración ("debugging"), a la vez que evitan la tediosa tarea de hacer pruebas a mano en cada ejecución.
314 315
 
@@ -346,7 +347,7 @@ Las *pruebas unitarias* ayudan a los programadores a validar códigos y simplifi
346 347
 
347 348
 1. Utiliza "Entrega 1" en Moodle para entregar la tabla con las pruebas que diseñaste en el Ejercicio 1 y que completaste en el Ejercicio 2 con los resultados de las pruebas de las funciones.
348 349
 
349
-2. Utiliza "Entrega 2" en Moodle para entregar el archivo `main.cpp` que contiene las funciones `test_isALetter`, `test_isValidTime`, `test_gcd` y sus invocaciones. Recuerda utilizar buenas prácticas de programación, al incluir el nombre de los programadores y documentar tu programa.
350
+2. Utiliza "Entrega 2" en Moodle para entregar el archivo `main.cpp` que contiene las funciones `test_isALetter`, `test_isValidTime`, `test_gcd` y sus invocaciones. Recuerda utilizar buenas prácticas de programación, incluye el nombre de los programadores, y documenta tu programa.
350 351
 
351 352
 ---
352 353