Este documento presenta una introducción al desarrollo de software utilizando la metodología TDD (Desarrollo Dirigido por Pruebas) y propone realizar un ejercicio práctico de TDD en grupo siguiendo un enfoque de "Coding Dojo Custom" donde los participantes trabajen en pares utilizando su propio equipo.
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.
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.
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...TestingUy
Expositor: Rodrigo Gómez
Resumen: El mockeo es una herramienta utilizada principalmente por los desarrolladores; para la creación de software. Su uso para pruebas, fuera de lo que son test unitarios tiende a ser más acotada. Hoy en día, el aumento de la complejidad de las aplicaciones, así como el manejo de un mayor número de pruebas automáticas, hace que utilicemos más esta herramienta; para poder realizar nuestras pruebas.
Los objetivos de esta charla son:
difundir el uso y utilidad, de esta herramienta.
establecer cómo puede servirnos para mejorar nuestras pruebas.
compartir un caso real de implementación, que se utilizó para solucionar problemas concretos.
Charla evento TestingUY 2017 - Automatización en gran escalaTestingUy
Expositor: Franco Santi
Resumen: En general los proyectos de automatización suelen seguir un patrón similar, el mismo tipo de trabajo, duración, tamaño de equipo, tecnologías, objetivos, entre otros. Pero, ¿qué ocurre cuando un proyecto sale de la regla y su dimensión se multiplica en todos los aspectos?. La primer acción que pensamos naturalmente es aumentar los recursos asignados, ¿pero es eso suficiente? ¿Cuáles son las variables que entran en juego al escalar?. El objetivo de esta charla es, basado en proyectos reales, brindar tips y herramientas que pueden ser de utilidad en situaciones en que la escala comienza a ser un desafío y causal de futuros problemas.
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTINGtbaires
En la actualidad, el concepto de Agilidad sigue evolucionando y con él las prácticas de desarrollo de software que adoptan como base un marco de trabajo ágil.
Durante el seminario se tratarán algunos conceptos básicos:
· ¿Por qué Testing Ágil?
· Los Principios Ágiles
· Esquema de Desarrollo Ágil
· Beneficios de las Prácticas Ágiles
· Los Valores del Testing Ágil
· Descripción del curso de Testing Ágil
Duración
1 hora
Fecha
27 de Julio de 2016
Horario
de 19 a 20 hs
Expositora:
Lic Miriam Alsogaray
https://ar.linkedin.com/in/miriam-alsogaray-2851348
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...TestingUy
Expositor: Rodrigo Gómez
Resumen: El mockeo es una herramienta utilizada principalmente por los desarrolladores; para la creación de software. Su uso para pruebas, fuera de lo que son test unitarios tiende a ser más acotada. Hoy en día, el aumento de la complejidad de las aplicaciones, así como el manejo de un mayor número de pruebas automáticas, hace que utilicemos más esta herramienta; para poder realizar nuestras pruebas.
Los objetivos de esta charla son:
difundir el uso y utilidad, de esta herramienta.
establecer cómo puede servirnos para mejorar nuestras pruebas.
compartir un caso real de implementación, que se utilizó para solucionar problemas concretos.
Charla evento TestingUY 2017 - Automatización en gran escalaTestingUy
Expositor: Franco Santi
Resumen: En general los proyectos de automatización suelen seguir un patrón similar, el mismo tipo de trabajo, duración, tamaño de equipo, tecnologías, objetivos, entre otros. Pero, ¿qué ocurre cuando un proyecto sale de la regla y su dimensión se multiplica en todos los aspectos?. La primer acción que pensamos naturalmente es aumentar los recursos asignados, ¿pero es eso suficiente? ¿Cuáles son las variables que entran en juego al escalar?. El objetivo de esta charla es, basado en proyectos reales, brindar tips y herramientas que pueden ser de utilidad en situaciones en que la escala comienza a ser un desafío y causal de futuros problemas.
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTINGtbaires
En la actualidad, el concepto de Agilidad sigue evolucionando y con él las prácticas de desarrollo de software que adoptan como base un marco de trabajo ágil.
Durante el seminario se tratarán algunos conceptos básicos:
· ¿Por qué Testing Ágil?
· Los Principios Ágiles
· Esquema de Desarrollo Ágil
· Beneficios de las Prácticas Ágiles
· Los Valores del Testing Ágil
· Descripción del curso de Testing Ágil
Duración
1 hora
Fecha
27 de Julio de 2016
Horario
de 19 a 20 hs
Expositora:
Lic Miriam Alsogaray
https://ar.linkedin.com/in/miriam-alsogaray-2851348
Facilitadores asombrosos: logrando mejores conversaciones e interaccionesJuliana Betancur
¿Cómo podemos ayudar a que clientes y equipos logren sus objetivos? ¿Cómo crear entornos participativos que propicien las mejores conversaciones y que a su vez nos permitan lograr resultados óptimos? En esta presentación hablaremos de la facilitación como herramienta para lograr que las personas trabajen creativa, colaborativa y efectivamente en pro de una misma meta y profundizaremos en las habilidades que nos harán facilitadores asombrosos, como primer escalón en nuestro camino hacia el coaching ágil.
[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! :)
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.
Una técnica para mantener el código escalable: Code smells.
Se incluyen varios ejemplos usando ruby, como se ve bien, y como se ve mejor.
También como pueden tomar ventajas de los linters y CI servers para alertar desviaciones en tiempo real
Seminario en CDA 2015 - "Mobile exploratory testing" Federico Toledo
Pusimos en práctica el enfoque de testing exploratorio sobre dispositivos móviles, ejecutando la prueba en un Nexus 5 usando la herramienta Keynote Device Anywhere.
Hicimos una dinámica grupal para ejecutar las pruebas y hacer que todos participen, documentando la sesión y sacando conclusiones entre todos.
20180313 Keep Calm And Test Your Code RiojaDotNetalbertortizcape
Presentación para la RiojaDotNet sobre testing.
Enlaces de referencia:
--
Keep Calm And Unit Test Your Code
https://www.keepcalmandposters.com/poster/5829573_keep_calm_and_unit_test_your_code
--
TestPyramid
https://martinfowler.com/bliki/TestPyramid.html
--
The Practical Test Pyramid
https://martinfowler.com/articles/practical-test-pyramid.html
--
TestDouble
https://martinfowler.com/bliki/TestDouble.html
--
UnitTest
https://martinfowler.com/bliki/UnitTest.html
--
IntegrationTest
https://martinfowler.com/bliki/IntegrationTest.html
--
Unit Tests Are FIRST (Fast, Isolated, Repeatable, Self-Verifying, and Timely)
https://pragprog.com/magazines/2012-01/unit-tests-are-first
--
F.I.R.S.T Principles of Unit Testing
https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing
--
Simulando las dependencias en las pruebas unitarias. Dummies vs Stubs vs Mocks vs Spies vs Fakes
http://www.javiergarzas.com/2015/09/dummies-vs-stubs-vs-mocks-vs-spies-vs-fakes.html
--
What's the difference between faking, mocking, and stubbing?
https://stackoverflow.com/questions/346372/whats-the-difference-between-faking-mocking-and-stubbing
--
Mocks Aren't Stubs
https://martinfowler.com/articles/mocksArentStubs.html
--
Java - How to use stubs in JUnit
https://stackoverflow.com/questions/31890991/java-how-to-use-stubs-in-junit
--
GivenWhenThen
https://martinfowler.com/bliki/GivenWhenThen.html
--
Conceptos básicos de prueba unitaria - Escribir las pruebas
https://msdn.microsoft.com/es-es/library/hh694602.aspx#Anchor_3
--
¿Qué es eso del testing exploratorio? ¿Y para qué me sirve?
http://www.javiergarzas.com/2015/01/testing-exploratorio-10-min.html
--
Naming Test Classes and Methods
https://codurance.com/2014/12/13/naming-test-classes-and-methods/
--
Rafa Gomez y Javier Ferrer - Clean Code, SOLID, CQRS... ¿Y qué hay de nuestros test? | BCN SWC 2017
https://www.youtube.com/watch?v=cw6Va1ZW7iI&list=PLKxa4AIfm4pXfHIuhB89H6TdUO8syJMui&index=3
--
Deconstruyendo la pirámide de los tests
http://blog.koalite.com/2014/05/deconstruyendo-la-piramide-de-los-tests/
--
No pierdas el tiempo escribiendo tests
http://blog.koalite.com/2017/11/no-pierdas-el-tiempo-escribiendo-tests/
--
NO automatices más Test de interfaz gráfica de usuario
http://www.javiergarzas.com/2016/06/14044.html
--
Just Say No to More End-to-End Tests
https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
--
Commercial Fiat 500S – What bad boyS drive
https://www.youtube.com/watch?v=4ndyAlJN9Fk
A brief tour about what software is and how current programming languages as Go, Ruby and Java satisfy or not its development. At the end I speculate on what the next programming languages would be if we want a paradigm shift
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.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
(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.
(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.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
4. TDD - Test
• Pasos a seguir:
– Caso más simple
“positivo”
– Caso negativo
– Caso concreto distinto
– Más de un caso
concreto
– Casos bordes
– Pensar -:)
5. TDD - Implementación
• Pasos a seguir:
– Mínima implementación
que funcione
• ¡No generalizar de entrada!
• Manejar la ANSIEDAD
– Parametrizar cuando el test
lo pida
– Generalizar cuando el test
lo pida
6. TDD - Refactor
• Pasos a seguir:
– Sacar objetos hard codeados
– Sacar código repetido
– Buscar patrones repetidos y reificar
– Usar buenos nombres
– Buen modelo
• Cambiable ¡Entendible!
• Aparece algo nuevo en el dominio
aparece algo nuevo en el modelo
7. Metodología
• Coding Dojo
• Problemas
– No todos manejan el mismo lenguaje
– No todos manejan el mismo IDE
– No todos usan el mismo tipo de laptop
• Propuesta: “Coding Dojo Custom”
8. Metodología
• Características:
– Pair Programming
– Cada pair con su
máquina, su lenguaje
e IDE
– Todos deben seguir el
ejercicio, “todos deben
hacer”
9. Metodología
• Pasos:
– 2 pair en el frente
– Un pair conectado al
cañon
– Escribe, hace pasar un
test, refactoriza
– Cambiamos por próx.
pair y viene otro al
frente
10. Metodología
• Comportamiento:
– En conjunto decidimos qué testear,
cómo implementar, etc
– Cuestionamiento constante sin entrar en
“parálisis”
– En la duda decido yo
11. Ejercicio
• Calendario de días laborables y no
laborables
• Se debe saber si una fecha particular es
laboral o no
• Se debe configurar con:
– día de semana no laboral (ej. Domingo)
– día de mes no laboral (ej. primero de enero)
– fecha particular no laboral (ej. 4 de abril de
2012)