Test, prueba y depuración de algoritmos como fases de la programación. Tipos de verificación (CU00229A)

Resumen: Entrega nº28 del curso Bases de la programación Nivel II.
Codificación aprenderaprogramar.com: CU00229A

 

 

VERIFICACIÓN, PRUEBA Y DEPURACIÓN DE ALGORITMOS

Llamamos verificación de algoritmos a la comprobación del correcto funcionamiento del pseudocódigo planteado. Los conceptos de verificación, prueba y depuración son en cierta medida similares y en cierta medida distintos.

 

Anagrama aprenderaprogramar.com

 

Nosotros de momento no vamos a entrar en detalles de momento. Hemos comentado en diferentes ocasiones que el concepto de algoritmo se entrelaza con el de programa hasta, en ocasiones, llegar a confundirse. En este caso hablaremos de verificación de algoritmos pero todo lo expuesto nos será útil para enfrentarnos a la verificación del programa.

Al hablar de verificación estamos tratando una parte de lo que supone el desarrollo de algoritmos – pseudocódigo así como del proceso posterior a disponer del código del programa. Habrá que entender que para programas complejos, aunque se parta de un conocimiento profundo del problema a resolver, el proceso que va desde generar algoritmos hasta mejorar el programa puede convertirse en un recorrido de ida y vuelta con cierta interposición entre fases. Es decir, mientras que en un problema sencillo el esquema lineal puede ser ajustado a la realidad, en un problema complejo puede ser necesaria una cierta superposición entre desarrollo, programación, verificación y mejora. Es posible que al realizar la verificación del programa o partes del programa descubramos defectos que nos obliguen a volver a la parte de desarrollo. Las verificaciones, aunque tienen momentos principales, también es habitual que se extiendan a lo largo de las fases de desarrollo, programación y mejora.

Si recordamos un esquema que nos sirve de guía en el proceso de programación:

 

fases de la programacion

 

 

 

En resumen, si en su momento dijimos que aprender a desarrollar algoritmos eficientes es aprender a programar, diremos ahora que aprender a verificar algoritmos es aprender a verificar programas.

Todo programador, de forma natural, desarrolla un algoritmo en base a una construcción mental preliminar que le da pie a pensar que el algoritmo funciona.

Si escribimos este pseudocódigo:

[Ejemplo aprenderaprogramar.com]

    Desde i = 1 hasta 5 Hacer

 

          Desde j = 1 hasta 5 Hacer

                     A = i * j

                     Mostrar A

          Siguiente j

 

         Siguiente i

 
 
 

Nuestro cerebro ha creado una estructura en base a nuestra experiencia, conocimientos, etc. y preliminarmente valora que debe funcionar para cumplir nuestros objetivos. Esta verificación mental preliminar no debe bastar desde el momento en que exista un mínimo de complejidad, pues supondría arriesgarnos a que existan errores que pueden comprometer todo el desarrollo del programa. Por ello, usaremos una o varias de las técnicas indicadas a continuación:

· Verificación mental.

· Verificación por seguimiento escrito.

· Verificación por seguimiento con tablas de variables.

· Verificación por seguimiento con desarrollo en un lenguaje.

· Verificación por seguimiento con un lenguaje y paso a paso.

 

Aunque hemos dicho que la verificación del algoritmo guarda estrecha relación con lo que sería verificación del programa, podemos matizar esta afirmación.

El proceso viene siendo algo así:

depuracion de programas

 

 

La creación del programa debe comenzar con los algoritmos que lo constituyen ya verificados. Veamos por qué. Un programa correcto se construye a partir de algoritmos eficientes + uso eficiente del lenguaje y de los recursos del ordenador. Si partimos de algoritmos eficientes cuando nos ponemos delante del ordenador a escribir el programa, sólo nos quedan por resolver aspectos del lenguaje y recursos del ordenador. Si partimos de algoritmos no eficientes, los dos problemas se superponen y se magnifican al añadirse a la aparición de un error la dificultad para saber si está asociado al diseño del algoritmo o al uso del lenguaje y recursos.

La verificación de algoritmos suele realizarse para procesos parciales como los contenidos en módulos o partes de módulos, ya que una verificación global del algoritmo puede resultar muy costosa y compleja. Durante la creación del programa es posible que se haga necesario retocar algunos aspectos de algoritmos previamente verificados, en términos de puesta a punto.

Veremos a continuación las diferentes técnicas de verificación usando como ejemplo base el doble anidamiento de bucles Desde empleado al principio de este apartado, con un bucle externo controlado por la variable i, un bucle interno controlado por la variable j y una variable A que adquiere valores en función de i  y j.

 

 


 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

 Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación