Test driven development: advantages and common errors.
Why is important to use TDD?
What kind of things TDD give us?
Which are common errors using TDD?
With or without TDD?
Test driven development: advantages and common errors.
Why is important to use TDD?
What kind of things TDD give us?
Which are common errors using TDD?
With or without TDD?
Hacer un sistema, sin probar, es lanzarlo al precipicio.
Las pruebas son fundamentales, pero claro, probar sin un método es lo mismo que no probar, es probar sólo una parte del sistema y dejar lo demás al azar.
TDD es una técnica de eXtreme Programming con la que las pruebas y el código se escriben a la vez. No antes cuando el sistema sólo es una abstracción. No después cuando en realidad ya da flojera escribirlas. A la vez que se escribe el código, van las pruebas.
TDD es un método ágil y eficaz de lograr un sistema Probado, y Funcional.
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
Repasamos qué es TDD, algunas de las claves más importante para aplicarlo de manera productiva y cómo se aplica TDD en entornos concretos de bases de datos, videojuegos y desarrollo para Android
[ES] webcat 2014-03 Demystifying Development TechniquesEduardo Turiño
Charla del webcat del 5 de marzo de 2014.
Recorrido por diferentes técnicas de desarrollo, eliminando dolores en cada paso, hasta llegar a BDD y completar aquello donde BDD nos falla.
Visión utilitaria de técnicas y metodologías.
¡Muerte a los puristas! :)
Slides utilizadas en charla a alumnos de Ingeniería del Software en la Escuela Politécnica de Gijón sobre:
- Necesidad de testing
- Problemas dentro de un proyecto
- Automatización de pruebas con Seleniun
Charla del PHP Day Spain, sobre como lidiar con Legacy Code. Se habla de UnitTesting, Refactoring. Ademas de como generar codigo de buena calidad con TDD y Clean Code.
Hacer un sistema, sin probar, es lanzarlo al precipicio.
Las pruebas son fundamentales, pero claro, probar sin un método es lo mismo que no probar, es probar sólo una parte del sistema y dejar lo demás al azar.
TDD es una técnica de eXtreme Programming con la que las pruebas y el código se escriben a la vez. No antes cuando el sistema sólo es una abstracción. No después cuando en realidad ya da flojera escribirlas. A la vez que se escribe el código, van las pruebas.
TDD es un método ágil y eficaz de lograr un sistema Probado, y Funcional.
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
Repasamos qué es TDD, algunas de las claves más importante para aplicarlo de manera productiva y cómo se aplica TDD en entornos concretos de bases de datos, videojuegos y desarrollo para Android
[ES] webcat 2014-03 Demystifying Development TechniquesEduardo Turiño
Charla del webcat del 5 de marzo de 2014.
Recorrido por diferentes técnicas de desarrollo, eliminando dolores en cada paso, hasta llegar a BDD y completar aquello donde BDD nos falla.
Visión utilitaria de técnicas y metodologías.
¡Muerte a los puristas! :)
Slides utilizadas en charla a alumnos de Ingeniería del Software en la Escuela Politécnica de Gijón sobre:
- Necesidad de testing
- Problemas dentro de un proyecto
- Automatización de pruebas con Seleniun
Charla del PHP Day Spain, sobre como lidiar con Legacy Code. Se habla de UnitTesting, Refactoring. Ademas de como generar codigo de buena calidad con TDD y Clean Code.
Todos os slides do Curso de TDD com Python
Tudo sobre Python, Django, carreira e empreendedorismo na minha newsletter quinzenal "O Melhor da Internet". ASSINE:
https://osantana.me/o-melhor-da-internet-newsletter/
Conjunto de principios, no son reglas, aplicados al diseño orientado a objetos. SOLID no es un framework, ni una tecnología, tampoco una librería y mucho menos una metodología. Su propósito es generar código fácil de entender y mantener. Representa cinco principios básicos de la programación orientada a objetos y el diseño.
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
Repaso de los conceptos básicos de programación siguiendo la sintaxis de Python y Javascript para finalizar con varios casos prácticos aplicados en el mundo SEO.
"Aplicaciones de Procesamiento de Lenguaje Natural (PLN) en Empresas" Machine Learning y sus mil y un porque
Actualmente debido al creciente uso de internet, hay una abundante cantidad de información textual. Como actualmente las empresas utilizan esta información? La respuesta es Procesamiento de Lenguaje Natural. Procesamiento de Lenguaje Natural (PLN) es una área de ciencia de la computación, inteligencia artificial y lingüística computacional que se preocupa de las interacciones entre computadores y lenguajes humanos. En la presente charla, veremos algunas ilustraciones de PLN en nuestra vida cotidiana y como estas tecnologías son usadas en empresas. Específicamente, veremos ejemplos en la empresa Educational Testing Services(ETS) - empresa a cargo del TOEFL. Ya más específicamente, veremos cómo modelar un programa para corrección automática de preguntas en forma de texto. En el área de reconocimiento de audio, trataremos el problema de detección automática de errores de pronunciación. Relacionado a gramática, analizaremos el problema de selección correcta de preposiciones dada una oración. Finalmente, analizaremos el problema de análisis de sentimientos en comentarios de libros.
MSc. Nils Murrugarra (Estados Unidos – Pittsburgh)
Investigador experto en Machine Learning ha trabajado en el “Educational Testing Service” de Princeton, Estados Unidos. Actualmente es investigador y candidato a doctor en Ciencias de la Computación por la Universidad de Pittsburgh, Estados Unidos.
Se ha desempeñado como investigador de Machine Learning, trabajando sobre la plataforma SKILL del “Educational Testing Service” de Princeton. Actualmente, trabaja en Active Learning en el departamento de Ciencias de la Computación de la Universidad de Pittsburgh y forma parte del cuerpo directivo de la revista de computación "CompuScientia“. Ha sido presidente de la Sociedad de Estudiantes de Ciencias de la Computación (SECC) entre los años 2007 y 2008.
la presentación te muestra como utilizar los componentes de el programa de eclipse y así poder utilizar mejor el programa de eclipse sin complicaciones.
Meetup de Apache Spark Madrid sobre los errores que todos cometemos en proyectos Big Data.
Como las animaciones no van muy bien podeis verla en el siguiente enlace:
https://docs.google.com/presentation/d/1W4Foy9u0NkZziQ36I5_00b_e-JlwhSshSFv-hcxaBpM/edit?usp=sharing
Taller dentro de la asignatura Técnicas de Indización y Resumen en Documentación Científica de 5º de Licenciatura de Documentación de la Universidad de Granada. Curso 2012/2013
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasJavier_J
Transparencias de la charla: Desarrollo de videojuegos dirigido por pruebas, dónde vimos cómo empezar a aplicar TDD para el desarrollo de videojuegos. Madrid, 18/10/2013
GameUs - Herramientas de Desarrollo de VideojuegosJavier_J
Transparencias de la ponencia GameUS de 08 de abril de 2.013.
Versión reducida de las transparencias de la presentación del mismo nombre del curso de videojuegos y e-Salud.
Herramientas para el Desarrollo de VideojuegosJavier_J
Un recorrido por algunas de las herramientas más importantes para el desarrollo de videojuegos y por algunos de los videojuegos que se han hecho con ellas. Presentación del curso de videojuegos y Salud celebrado en Sevilla desde febrero hasta abril de 2.013.
Primera charla interaula del Aula de Videojuegos de la Universidad de Sevilla.
En esta charla utilizamos un juego muy sencillo para describir y entender los principales componentes de un programa: variables, bucles, condicionales, etc.
Se verán ejemplos en distintos lenguajes de programación
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
2. TDD no es probar
1. You are not allowed to write any
production code unless it is to
make a failing unit test pass.
2. You are not allowed to write any
more of a unit test than is sufficient
to fail; and compilation failures are
failures.
3. You are not allowed to write any
more production code than is
sufficient to pass the one failing
unit test.
11. Escribe una prueba
Mi primera prueba:
Arrange:
Un directorio
Dos ficheros iguales dentro de
ese directorio
Act:
Llamar al algoritmo de borrado
Assert:
Uno de los ficheros ya no está
y el otro sí
12. Escribe una prueba
Mi primera prueba:
Arrange:
Un directorio
Dos ficheros iguales dentro de
ese directorio
Act:
Llamar al algoritmo de borrado
¿Creo un directorio y dos ficheros a
mano?
Tengo que crearlo cada vez que
ejecute la prueba
¿Creo un directorio y fichero con
código?
Tengo que aprender a hacerlo y
necesito código para restaurarlo
Assert:
Uno de los ficheros ya no está
y el otro sí
¿Obtengo un listado de los ficheros?
Tengo que aprender a hacerlo
No lo necesito (aún)
14. TDD = ¡¡¡ Piensa !!!!
Directorio
Dame
Ficheros
Borra este
Borrado de ficheros
15. Utilizando Dobles de Prueba
• Diseñamos el API que
queremos.
• No nos preocupamos
por la implementación
• Verificaos qué se está
invocando
• Devolvemos los valores
adecuados para la
prueba
20. ¿Qué hacemos con los mocks?
Cuando el directorio está vacío entonces no tengo ficheros.
Cuando borro un fichero el directorio tiene un fichero menos.
Cuando recupero un fichero de un directorio entonces puedo
conocer su nombre.
Cuando recupero un fichero de un directorio entonces puedo
conocer su tamaño.
Etc.
Directorios temporales en Python
(módulo tempfile)
23. Conclusiones de este ejemplo
•
•
•
¿Cómo leemos
los ficheros de un
directorio?
¿Cómo borramos
ficheros?
¿Cómo leemos el
tamaño de un
fichero?
• Cómo podemos
leer una única vez
cada directorio?
• ¿Cómo sabemos
si hay más de un
fichero con el
mismo tamaño?
• UI
24. Retrospectiva de lo que Hemos Hecho
Nos centramos en
el algoritmo
Mejora el diseño
Hay que cambiar muchos
tets si cambiamos código
Tardamos más en
terminar
25. Testing en Python
Unittest, Doctest, N
ose
Mockito for
Python, Mocker, Pydou
bles
Selenium, Django
Testing
Behave, PyFIT, Lettu
ce, Mamba
http://wiki.python.org/moin/PythonTestingToolsTaxonomy
30. Extra
10.000 líneas de código C#...
Comprobado…. 124 assemblies .NET
generados…. Comprobado…. 52
scripts de construcción…
comprobado
Ahora que mis pruebas unitarias
están escritas puedo empezar a
construir mis componentes.