Contenido del curso
Contenido del curso
Para entender la importancia de agregar pruebas a un proyecto, debemos remontarnos tiempo atrás, cuando la industria del software apenas estaba iniciando.
Era el año 1949 y una ilustre persona llamada Alan Turing, estaba discutiendo el cómo poder probar las falencias en una rutina. En ese entonces una rutina se veía algo como esto:
Y existía la práctica de debugging solamente para encontrar esas falencias. Se imaginan que tan difícil debió haber sido el encontrar donde está el error en este tipo de programas.
Por lo cual, fue lógico que empezaran a buscar maneras de automatizar esas pruebas.
De los primeros indicios de unit testing fue el paper Checking a Large Routine por Alan Turing, si tienen el tiempo para buscarlo y leerlo háganlo, es muy bueno.
Historia de automatización del software
Básicamente, la intención, en esos tiempos, era "buscar que el código funcione sin fallos, pero esto solamente nos aseguraba que corría el código y ya."
“Las pruebas de software son el proceso de ejecutar un programa con la intención de encontrar errores” G.J. Myers.
Entre 1957 y 1978, se añadió un nuevo concepto a las pruebas, que no era el debugging, sino el testing.
Este nuevo concepto hace alusión a que el programa no solamente debe de funcionar, sino que debe de resolver la problemática planteada, eso quiere decir, que se tenía una lista de requerimientos que se debían de cumplir y se utilizaban las pruebas para esto.
Estas pruebas se realizaban al final de los programas, después de haber terminado de hacerlo.
Se imaginan revisar ese código después de terminarlo, ¡Sería horrible!
Afortunadamente a principios de 1980 se empezaron a crear programas para que hicieran esta parte. Debido a esto, cambió el panorama de las pruebas. Pasamos de buscar fallas en el código a revisar la calidad del código y de las diferentes implementaciones.
“El objetivo general de las pruebas de software es confirmar la calidad de los sistemas software ejercitando sistemáticamente el software en unas circunstancias cuidadosamente controladas” E.F. Miller.
Del año 1985 a la actualidad se entró en la etapa de prevención. La IEEE empezó a crear estándares para tener pruebas en diferentes partes del proceso de desarrollo de software.
Esto hizo que se viera a las pruebas como una característica de la calidad de todo el proceso que involucra el desarrollo de proyecto de software.
“Hacer pruebas significa comparar los resultados actuales con un estándar” Hutcheson, M.L.
De todo lo anterior podemos concluir que realmente las pruebas son un proceso superimportante en la calidad de nuestro trabajo.
El no tener pruebas en tu proyecto significa, no tener la calidad requerida para que sea considerado dentro del estándar de un buen proyecto de software.
Así que la más grande diferencia entre no tener pruebas o si en tu código, es el no tener código de calidad o sí tenerlo.
Siendo sinceros, no sabía que Alan Turing también había comenzado con esto, escribe en los comentarios si tú ya conocías esto, y si no, ¿qué te pareció?.
Jose Daniel Barría Reyes
Mikele Guedes
Efrén Martínez Rodríguez
Juan Esteban Galvis
Carlos Eduardo Gomez García
Esteban Javier Gold Muros
Andres Miguel Hernandez Garcia
Juan Esteban Galvis
Esteban Javier Gold Muros
Natali Rodríguez
Victor Matta Pereira
Jose Barboza
Jose Orlando Parra Soto
Luis Jose Torres Muñoz
Gerardo Ruiz
Ariel Onoriaga
Juan Manuel Robledo
Yo tampoco sabia que Alan Turing hacia eso. Supongo que luego de este curso, puedo presumirle a la gente que hago lo mismo que Alan Turing. Me parece super genial todo!
jajaja "sabías que hago lo mismo que Alan Turing? pues sí" me encanta
Te acuerdas del test de turing? que es más conocido com "captcha" para comprobar si eres un humano y no un robot. Pues ahí vemos que Turing ya hacia unos tests muy chéveres 😎👌
Igual no sabia que Alan Turing hacia lo mismo :3
Sabía el genio que fue Alan Turin y su aporte a la informática pero no al testing.
Me gusto mucho y entendí que una cosa es hacer debugging para probar que el código corre y otra cosa es hacer testing para verificar si el resultado es el correcto. (Para mí, los errores más molestos en programación son los que no te sacan error, todo parece funcionar pero algo lo rompe sin dejar error).
Interesante, entonces podemos decir que uno de los puntos importantes a la hora e revisar la calidad de un código es ver si este código tiene pruebas implementadas, algo así como los rubros para aprobar una materia, si no cumples cierto rubro, pierdes ese porcentaje.
Algo importante que mencionan aquí es la parte de Estas pruebas se realizaban al final de los programas, después de haber terminado de hacerlo.
Es interesante que en esa época se hicieran al final del programa, pero realmente si es tedioso tener que hacer las pruebas para el final del programa, afortunadamente existe el TDD que prácticamente nos obliga primero a programar las pruebas con la intención de generar errores y luego corregir esos errores con ayuda de las mismas pruebas, y una vez corregidos los errores, tratar de refactorizar el código sin afectar el resultado final y cumpliendo los estándares de buena calidad.
Sin duda hacer testing es garantizar que tu código es de calidad, ¿Por qué? Simplemente porque al ver que tienes un sistema de testing implementado puedes darte cuenta que el código realmente hace lo que tiene que hacer, ya no es solo ver que el código funcione, sino que haga lo que debe hacer ^^!
Lo que ayudan los test, es que si agregas código nuevo o lo modificas, siga haciendo lo que tenía que hacer, así te ahorras el estar debugueando
Las imagenes no se ven @Platzi
Se habla sobre el tema de las pruebas en el curso de buenas prácticas para escritura de código: https://platzi.com/clases/mejor-codigo/ (Spoiler, una recomendación puede ser escribir primero los test y luego empezar el desarrollo del programa)
Si, es lo que dice TDD
El no tener pruebas en tu proyecto significa, no tener la calidad..""
Me parece fantástico todo lo que voy leyendo hasta ahora, solo una corrección: el viaje a la luna donde Hamilton hizo ruido, fue en 1969, y no en el 59. Saludos !
calidad: testing
no lo conocía, de verdad muy impresionante
La verdad cada vez comprendo el valor de hacer test a tu codigo
Me recordó a la crisis informática del año 2000, donde todos estaban en crisis por lo que pasaría jejeje
Sinceramente lo poco que sabía sobre Alan Turing, es la tan famosa Maquina de Turing, la cual bueno, planteo los fundamentos de todo lo que conocemos hoy en día
No sabia quien fue el inventor de las pruebas de código. Ahora se que Alan Turing lo fue.