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
Pruebas Exploratorias en Entornos ÁgilesatSistemas
¿Quién Quiere Ser un Tester Ranger?
“¿Tienes un software para probar, no lo conoces, no tienes tiempo, o quieres asegurarte de que está correcto aunque hayas hecho otras pruebas?, si la respuesta es sí, tendrás que adentrarte en la aventura del testing exploratorio. Acompáñanos en este webinar donde veremos cómo se hace con un enfoque ágil.
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberSoftware Guru
En esta charla se revisará los requerimientos para poder crear un set de pruebas utilizando el poder de varias herramientas como: Selenium WebDriverJS, NodeJS, TypeScript, Protractor, Cucumber y Chai, las cuales al ser combinadas resultan en la fácil creación de frameworks de automatización útiles en la industria.
Presentada por: Gilberto Sánchez
TestingAR VII - Siete Magníficos - Pablo Soifer - El abc del test automationTestingAR Meetup
La charla consistirá en pasar por los siguientes tópicos:
• Introducción a la automatización
• Cuándo automatizar
• Ventajas y desventajas de la automatización
• Perfil del QA Automation
• Herramientas de automatización
TestingAR V - Una Nueva Visión - Nicolas Arkhipenko - Estrategias y Controve...TestingAR Meetup
Test automation es uno de los temas que más nos interesa en la comunidad de testing, pero un error muy común es que nos focalizamos en automatizar una capa en particular (generalmente UI) y nos olvidamos del resto (API/Services, Unit).
Para que podamos definir una estrategia completa de nuestro sistema a testear tenemos que entender bien ciertos conceptos claves en cada una de las capas, visualizar mas allá de la pirámide de Test Automation de Mike Cohn, y meternos en el mundo que normalmente queda en el ámbito de los desarrolladores.
A su vez, no podemos ignorar el impacto que Continuos Delivery/Deployment esta teniendo en la industria desde hace tiempo, pero que pocos logran implementar. Propongo hacer un pasaje por todos estos temas, definir algunos puntos controversiales que seguro generará un poco de debate.
Pruebas Exploratorias en Entornos ÁgilesatSistemas
¿Quién Quiere Ser un Tester Ranger?
“¿Tienes un software para probar, no lo conoces, no tienes tiempo, o quieres asegurarte de que está correcto aunque hayas hecho otras pruebas?, si la respuesta es sí, tendrás que adentrarte en la aventura del testing exploratorio. Acompáñanos en este webinar donde veremos cómo se hace con un enfoque ágil.
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberSoftware Guru
En esta charla se revisará los requerimientos para poder crear un set de pruebas utilizando el poder de varias herramientas como: Selenium WebDriverJS, NodeJS, TypeScript, Protractor, Cucumber y Chai, las cuales al ser combinadas resultan en la fácil creación de frameworks de automatización útiles en la industria.
Presentada por: Gilberto Sánchez
TestingAR VII - Siete Magníficos - Pablo Soifer - El abc del test automationTestingAR Meetup
La charla consistirá en pasar por los siguientes tópicos:
• Introducción a la automatización
• Cuándo automatizar
• Ventajas y desventajas de la automatización
• Perfil del QA Automation
• Herramientas de automatización
TestingAR V - Una Nueva Visión - Nicolas Arkhipenko - Estrategias y Controve...TestingAR Meetup
Test automation es uno de los temas que más nos interesa en la comunidad de testing, pero un error muy común es que nos focalizamos en automatizar una capa en particular (generalmente UI) y nos olvidamos del resto (API/Services, Unit).
Para que podamos definir una estrategia completa de nuestro sistema a testear tenemos que entender bien ciertos conceptos claves en cada una de las capas, visualizar mas allá de la pirámide de Test Automation de Mike Cohn, y meternos en el mundo que normalmente queda en el ámbito de los desarrolladores.
A su vez, no podemos ignorar el impacto que Continuos Delivery/Deployment esta teniendo en la industria desde hace tiempo, pero que pocos logran implementar. Propongo hacer un pasaje por todos estos temas, definir algunos puntos controversiales que seguro generará un poco de debate.
Pruebas de Manto Cuantos tipos de pruebas hay ? Que es una estrategia ? Que e...defijel142
Cuantos tipos de pruebas hay ?
Que es una estrategia ?
Que es verificación?
Que es validación?
Es lo mismo estrategia o guía o check list o .....?
Es lo mismo verificacion y validación?
Curso de test driven development usando AngularJS, Jasmine, Karma, Protractor, y Gulp para automatizar todo.
Codigo del proyecto de ejemplo:
https://github.com/rodrigopivi/angularComponentStarter
Presentation in Spanish given at DeSymfony Day 2014 in Barcelona about different approaches of testing with my teammate Jordi Llonch.
We created a GitHub repository comparing the main libraries available in PHP: https://github.com/Akamon/to-mock-or-not-to-mock
En esta charla vamos a hablar principalmente de testing aplicado a PHP. Daremos un pequeño y rápido repaso a PHPunit, si algún asistente no lo conoce, y después nos meteremos de lleno en el meollo de la cuestión que son los "test doubles": veremos qué son, para qué sirven y como trabajar con ellos cómodamente en PHP gracias a la librería Mockery. Para terminar la sesión veremos algunos ejemplos prácticos en los que veremos aplicados algunos de los conceptos teóricos vistos anteriormente.
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
Esta fue una charla dada en la Universidad ORT en el año 2014. Los temas tratados fueron varios, relacionados a la industria y a la academia.
Agenda:
- Test execution automation
- Test design automation
- Monkop (mobile testing, performance and security)
- Performance testing
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
Introducción a distintos aspectos de calidad y testing de software, enfocando en ciertos puntos desarrollados en Abstracta:
- testing automatizado (Selenium, GXtest, JUnit)
- generación de pruebas con model driven approaches usando UML, UTP, ATL (model to model) y Acceleo (Model to Text)
- smart monkey testing (Monkop - monkop.com) para probar automáticamente aplicaciones Android
- pruebas de performance con OpenSTA
De esta forma mostramos cómo estamos volcando la empresa a la investigación en la industria, investigación en la academia, desarrollo de productos y servicios de alto valor agregado.
TestingAR X - Si lo vamos a hacer, lo vamos a hacer bien - Por qué y para qué...TestingAR Meetup
¿Qué es el testing automatizado? ¿Para qué sirve? ¿Cómo se relaciona con el testing manual?
Estas son algunas de las preguntas que necesitamos responder para entender la función del testing automatizado en un proyecto, para que sea útil y con expectativas reales que si se puedan cumplir.
Pruebas de Manto Cuantos tipos de pruebas hay ? Que es una estrategia ? Que e...defijel142
Cuantos tipos de pruebas hay ?
Que es una estrategia ?
Que es verificación?
Que es validación?
Es lo mismo estrategia o guía o check list o .....?
Es lo mismo verificacion y validación?
Curso de test driven development usando AngularJS, Jasmine, Karma, Protractor, y Gulp para automatizar todo.
Codigo del proyecto de ejemplo:
https://github.com/rodrigopivi/angularComponentStarter
Presentation in Spanish given at DeSymfony Day 2014 in Barcelona about different approaches of testing with my teammate Jordi Llonch.
We created a GitHub repository comparing the main libraries available in PHP: https://github.com/Akamon/to-mock-or-not-to-mock
En esta charla vamos a hablar principalmente de testing aplicado a PHP. Daremos un pequeño y rápido repaso a PHPunit, si algún asistente no lo conoce, y después nos meteremos de lleno en el meollo de la cuestión que son los "test doubles": veremos qué son, para qué sirven y como trabajar con ellos cómodamente en PHP gracias a la librería Mockery. Para terminar la sesión veremos algunos ejemplos prácticos en los que veremos aplicados algunos de los conceptos teóricos vistos anteriormente.
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
Esta fue una charla dada en la Universidad ORT en el año 2014. Los temas tratados fueron varios, relacionados a la industria y a la academia.
Agenda:
- Test execution automation
- Test design automation
- Monkop (mobile testing, performance and security)
- Performance testing
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
Introducción a distintos aspectos de calidad y testing de software, enfocando en ciertos puntos desarrollados en Abstracta:
- testing automatizado (Selenium, GXtest, JUnit)
- generación de pruebas con model driven approaches usando UML, UTP, ATL (model to model) y Acceleo (Model to Text)
- smart monkey testing (Monkop - monkop.com) para probar automáticamente aplicaciones Android
- pruebas de performance con OpenSTA
De esta forma mostramos cómo estamos volcando la empresa a la investigación en la industria, investigación en la academia, desarrollo de productos y servicios de alto valor agregado.
TestingAR X - Si lo vamos a hacer, lo vamos a hacer bien - Por qué y para qué...TestingAR Meetup
¿Qué es el testing automatizado? ¿Para qué sirve? ¿Cómo se relaciona con el testing manual?
Estas son algunas de las preguntas que necesitamos responder para entender la función del testing automatizado en un proyecto, para que sea útil y con expectativas reales que si se puedan cumplir.
Similar a 20180313 Keep Calm And Test Your Code RiojaDotNet (20)
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
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.
15. Fast
• Cuando más rápido > más ejecuciones
• No evitar su ejecución porque cuesta
mucho
• En milisegundos se deberían ejecutar
miles de test
16. Isolated
• Solo debe existir un motivo por el que falla
un test
• Evitar comprobaciones en la carga de
datos
• Deben ejecutarse sin un orden
17. Repeteable
• Obtener los mismos resultados en las
mismas condiciones
• Un test no debe depender de las
condiciones del entorno
• Debe cargar sus propios datos
38. Estructura
• Estructura de un test
– Inicialización de los valores iniciales
– Llamada al método a testear
– Comprobación de los resultados esperados
49. Tipos
• Testean partes de la aplicación con vida
propia
– Test de integración con Base de datos
– Test de integración con Servicios
50. • Caso idóneo A
– Preparar un entorno
– Insertar datos necesarios para realizar el test
– Realizar el test
– Eliminar el entorno (Opcional)
Estructura
51. • Caso idóneo B
– Insertar datos necesarios para realizar el test
– Realizar el test
– Borrar los datos introducidos
Estructura
52.
53. Pasos
• Iniciar una transacción
• Insertar datos necesarios
• Pasar los test
• Cancelar la transacción
77. Clean test code
• El código de testing es tan importante
como el de producción
• Solo UNA condición por test
• Mantener el código de los test bien
estructurado (AAA, Given When Then…)
• Aplicar reglas de clean code (DRY, KISS,
…)
78. Consejos
• Porcentaje de pruebas por nivel
– Test unitarios: 70%
– Test integración: 20%
– Test de interfaz de usuario: 10%