::design_test_video::[html]
(Versión sin música). |
(Versión con música). |
Para un problema que esté resolviendo en el juez en línea y que haya realizado las fases de análisis y diseño,
haga una prueba similar a la que se muestra en este vídeo.
Más adelante se le solicitará subir una fotografía de su prueba de diseño.
::design_test_methods::[markdown]Indique si las siguientes proposiciones son verdaderas o falsas sobre las formas de probar un diseño{
=Los algoritmos se pueden probar por métodos analíticos, los cuales están basados en razonamientos lógicos formales. -> Verdadero
=Los algoritmos se pueden probar por métodos empíricos, los cuales están basados en evidencia experimental y datos. -> Verdadero
=Las pruebas analíticas formales son universales y demuestran que el algoritmo es válido para todos los casos. -> Verdadero
=Las pruebas empíricas son universales y demuestran que el algoritmo es válido para todos los casos. -> Falso
=Ejemplos de pruebas analíticas son las demostraciones formales del algoritmo de Euclides. -> Verdadero
=Las pruebas analíticas son muy difíciles de lograr, incluso para teoremas o algoritmos sencillos pueden tardarse cientos de años hasta que alguien logre una demostración aceptada -> Verdadero
=Las pruebas empíricas son muy difíciles de lograr, incluso para algoritmos sencillos es difícil recabar casos de prueba -> Falso
}
::design_test_completeness::[markdown]Cuando se realiza una prueba de corrección...{
=Es necesario rastrear todo el algoritmo, desde el inicio hasta el fin. -> Falso
=Sólo es necesario probar las subrutinas o regiones de código de interés, en todo caso es una prueba de corrección no de completitud. -> Verdadero
=Como un efecto colateral, permite al diseñador tener un indicio de si su algoritmo o parte de él es eficiente o no. -> Verdadero
=Nunca se debe modificar el algoritmo durante una prueba de corrección -> Falso
=El diseñador realiza el mismo trabajo sobre el algoritmo que el trabajo que el implementador realiza con un depurador sobre el código fuente -> Verdadero
=El principio de la prueba de corrección es determinar si los supuestos que la persona diseñadora tiene en mente sobre la solución son correctos o no -> Verdadero
}
::design_test_imperative::[markdown]El método para probar la corrección visto se puede considerar altamente imperativo por la siguiente razón{
=Se rastrea el estado del programa a través de los valores de sus variables.
~Se rastrea la invocación de sus subrutinas.
~Se compara la salida del programa con la esperada por el caso de prueba.
~La recursión y los ciclos se rastrean de la misma manera.
}