Los dobles de prueba resuelven problemas de dependencia al permitir aislar un objeto bajo prueba de sus colaboradores. Existen diferentes tipos como dummies, stubs, fakes, mocks y spies que verifican el estado o comportamiento. Los dobles de prueba guían la definición de tipos desconocidos y permiten testear la interacción entre un objeto bajo prueba y sus colaboradores.
In today’s increasingly challenging project and operations environments and conditions, the challenge of data quality and the inherent data integrity is paramount for both for Engineering, Procurement, Construction contractors and Owner Operators. This presentation shows how AVEVA Engineering can introduce a level of predictability and safety around data management. How can we ensure that the entered data is shared across multiple disciplines and still correct, complete, consistent, coherent, compliant and comprehensive for all stakeholders involved on the project? AVEVA Engineering provides some interesting capabilities to assist you in these areas.
Discover how AVEVA can transform your business at www.aveva.com or contact the team directly at http://www.aveva.com/en/Contact/
It depends: Loving .NET Core dependency injection or notAlex Thissen
.NET Core comes with its own dependency injection system, that you probably know from ASP.NET Core. In this session we will have a detailed look at all of the specifics of Microsoft's default DI system for .NET Core applications. You will learn how to properly use the Inversion of Control features, such as registering services, scopes, lifetimes, and how to resolve instances.
Armed with this DI knowledge, we will revisit ASP.NET Core and investigate bootstrapping and typical scenarios for middleware, background processes and resolving objects from MVC and Razor.
At the end there will be a deep dive into topics with service descriptors, implementation factories, do's and don'ts and pitfalls to avoid memory leaks in your implementation.
In today’s increasingly challenging project and operations environments and conditions, the challenge of data quality and the inherent data integrity is paramount for both for Engineering, Procurement, Construction contractors and Owner Operators. This presentation shows how AVEVA Engineering can introduce a level of predictability and safety around data management. How can we ensure that the entered data is shared across multiple disciplines and still correct, complete, consistent, coherent, compliant and comprehensive for all stakeholders involved on the project? AVEVA Engineering provides some interesting capabilities to assist you in these areas.
Discover how AVEVA can transform your business at www.aveva.com or contact the team directly at http://www.aveva.com/en/Contact/
It depends: Loving .NET Core dependency injection or notAlex Thissen
.NET Core comes with its own dependency injection system, that you probably know from ASP.NET Core. In this session we will have a detailed look at all of the specifics of Microsoft's default DI system for .NET Core applications. You will learn how to properly use the Inversion of Control features, such as registering services, scopes, lifetimes, and how to resolve instances.
Armed with this DI knowledge, we will revisit ASP.NET Core and investigate bootstrapping and typical scenarios for middleware, background processes and resolving objects from MVC and Razor.
At the end there will be a deep dive into topics with service descriptors, implementation factories, do's and don'ts and pitfalls to avoid memory leaks in your implementation.
Jacobs has used Endeavour (AVEVA NET) for more than 12 years for delivery of project data. The use has been primarily driven by customer or contract requirements for data handover, but over time both Jacobs’ project teams and customers have recognized the value of having trustworthy and complete data at the completion of a project, and is giving a focused effort to execute data-centric projects moving forward. To support this, Jacobs is implementing AVEVA Engineering to drive a data-centric collaboration between disciplines to enable greater work efficiencies. This game-changing approach using Endeavour and AVEVA Engineering will provide data alignment across the full project spectrum of EPC delivery.
Presented by: Marc-Henri Cerar—Jacobs
Discover how AVEVA can transform your business today
www.aveva.com
To have a basic understanding on the code review process, and how to enhance the Content Author'e experience while managing the content. This presentation was given to my colleagues.
How Internet of Things Works | IoT Examples | IoT ApplicationsAnand SFJ
How does the Internet of things work?
1)Services
2)Connectivity
3)Data Processing
4)User Interface & Examples of Internet of Things
Check out for IoT Blogs: https://www.sfjbstraining.com/blog/how-iot-works-and-iot-examples
Check out for IOT Training : https://www.sfjbstraining.com/product/iot-training
Makers: Shubham Yadav, Aniket Dwivedi, Vedant Babade
presentation on internet of things (IOT) for seminar presentation and school projects.
included future of iot with its different application history and many more things.
** Edureka IoT Training: https://www.edureka.co/iot-certification-training**
This Edureka tutorial video on "Iot Technology" will help you grasp the outline of Internet of Things, and let you relate to how it is revolutionizing the world today. This IoT tutorial helps you learn the following topics:
1. Vision of IoT
2. “Things” in IoT
3. IoT Technology Stack
4. IoT Ecosystem
5. IoT Demo – Media Center using Raspberry Pi
6. Prospects & Scopes
Odoo has a flexible way to define menu, sub-menu, and actions. The main attraction is that one can create a menu and sub menu from code as well as UI, which makes Odoo more user-friendly.A user can directly create a menu and sub-menu from the UI. In this slide, we are going to discuss how to create a menu, sub-menu, and action from code as well as how to set it from UI.
Ingesting streaming data into Graph DatabaseGuido Schmutz
This talk presents the experience of a customer project where we built a stream-based ingestion into a graph database. It is one thing to load the graph first and then querying it. But it is another story if the data to be added to the graph is constantly streaming in, while querying it. Data is easy to add, if each single message ends up as a new vertex in the graph. But if a message consists of hierarchical information, it most often means creating multiple new vertices as well adding edges to connect this information. What if a node already exists in the graph? Do we create it again or do we rather add edges which link to the existing node? Creating multiple nodes for the same real-life entity is not the best choice, so we have to check for existence first. We end up requiring multiple operations against the graph, which demonstrated to be a bottle neck. This talk presents the implementation of an ingestion pipeline and the design choice we made to improve performance.
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
Internet of Things means every household or handy device which is used to make our world easy and better and connected with IP which transmit some data.
This slide covers IOT description, OWASP Top 10 2014 & its recommendations.
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.
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.
Jacobs has used Endeavour (AVEVA NET) for more than 12 years for delivery of project data. The use has been primarily driven by customer or contract requirements for data handover, but over time both Jacobs’ project teams and customers have recognized the value of having trustworthy and complete data at the completion of a project, and is giving a focused effort to execute data-centric projects moving forward. To support this, Jacobs is implementing AVEVA Engineering to drive a data-centric collaboration between disciplines to enable greater work efficiencies. This game-changing approach using Endeavour and AVEVA Engineering will provide data alignment across the full project spectrum of EPC delivery.
Presented by: Marc-Henri Cerar—Jacobs
Discover how AVEVA can transform your business today
www.aveva.com
To have a basic understanding on the code review process, and how to enhance the Content Author'e experience while managing the content. This presentation was given to my colleagues.
How Internet of Things Works | IoT Examples | IoT ApplicationsAnand SFJ
How does the Internet of things work?
1)Services
2)Connectivity
3)Data Processing
4)User Interface & Examples of Internet of Things
Check out for IoT Blogs: https://www.sfjbstraining.com/blog/how-iot-works-and-iot-examples
Check out for IOT Training : https://www.sfjbstraining.com/product/iot-training
Makers: Shubham Yadav, Aniket Dwivedi, Vedant Babade
presentation on internet of things (IOT) for seminar presentation and school projects.
included future of iot with its different application history and many more things.
** Edureka IoT Training: https://www.edureka.co/iot-certification-training**
This Edureka tutorial video on "Iot Technology" will help you grasp the outline of Internet of Things, and let you relate to how it is revolutionizing the world today. This IoT tutorial helps you learn the following topics:
1. Vision of IoT
2. “Things” in IoT
3. IoT Technology Stack
4. IoT Ecosystem
5. IoT Demo – Media Center using Raspberry Pi
6. Prospects & Scopes
Odoo has a flexible way to define menu, sub-menu, and actions. The main attraction is that one can create a menu and sub menu from code as well as UI, which makes Odoo more user-friendly.A user can directly create a menu and sub-menu from the UI. In this slide, we are going to discuss how to create a menu, sub-menu, and action from code as well as how to set it from UI.
Ingesting streaming data into Graph DatabaseGuido Schmutz
This talk presents the experience of a customer project where we built a stream-based ingestion into a graph database. It is one thing to load the graph first and then querying it. But it is another story if the data to be added to the graph is constantly streaming in, while querying it. Data is easy to add, if each single message ends up as a new vertex in the graph. But if a message consists of hierarchical information, it most often means creating multiple new vertices as well adding edges to connect this information. What if a node already exists in the graph? Do we create it again or do we rather add edges which link to the existing node? Creating multiple nodes for the same real-life entity is not the best choice, so we have to check for existence first. We end up requiring multiple operations against the graph, which demonstrated to be a bottle neck. This talk presents the implementation of an ingestion pipeline and the design choice we made to improve performance.
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
Internet of Things means every household or handy device which is used to make our world easy and better and connected with IP which transmit some data.
This slide covers IOT description, OWASP Top 10 2014 & its recommendations.
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.
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.
Testing en proyectos Grails del día a día. Greach 2013Dani Latorre
En todos los proyectos de software, habitualmente tenemos que dedicarle mucho esfuerzo al testing. A asegurarnos de que los productos que desarrollamos funcionen correctamente y, aunque sabemos que es imposible asegurar que no tenga ninguno, sí debemos procurar que tengan el menor número de errores posible.
Debemos escribir código que pruebe nuestro código, automatizar al máximo nuestros tests para hacerlos repetibles y poder conocer lo antes posible cuando hemos roto algo, porque no nos engañemos, de vez en cuando rompemos algo.
Si además de escribir tests, lo hacemos antes, estaremos escribiendo antes un cliente que usará nuestro API que la implementación. De ese modo la cobertura de test sobre nuestro código crece exponencialmente y los mismos tests nos guiarán a que nuestro diseño mejore practicando las refactorizaciones pertinentes; En definitiva estaremos practicando TDD.
En esta charla no pretendo sentar cátedra sobre como hacer testing, simplemente compartiré como lo hago yo en mis proyectos Grails, desde los unitarios subiendo hasta la interfaz de usuario.
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
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
Mini presentación de introducción al TDD, que utilicé en la impartición de un taller.
Sin las explicaciones ni las prácticas se queda bastante corto, pero igual os gusta ;)
Cobertura de código con test funcionales para superhéroesatSistemas
Víctor Madrid, especialista en QA y Testing de la Oficina Técnica de atSistemas presentó su ponencia y demo sobre "Cobertura de código con test funcionales para superhéroes de hoy en día" durante el evento ExpoQA16, celebrado en Madrid.
Charla en Cartuja.NET sobre Mercurial, TDD en .NET con NUnit, MSTest, XUnit e Integración continua con Teamcity.
Impartida el 13 de junio de 2013 en Cartuja.NET, Sevilla.
Presentación sobre arquitectura hexagonal sobre Android y Symfony presentada en la jornada de #OpenBiko por 540. Se analiza la arquitectura y se describe de que manera nos está ayudando en el desarrollo de nuestros proyectos.
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
2. Test Doubles
• Dobles de cine de acción
• También conocidos como “Mocks" aunque
estos son un tipo concreto de doble (Mocks
Aren't Stubs)
• Fakes, Stubs, Mocks, Spies, Dummies.
3. Resuelven
• Problemas de dependencia:
• Tests lentos.
• Servicios u objetos no disponibles.
• Falta de separación en la colaboración entre
objetos.
7. Dummy
• Se pasa un objeto pero no se usa. Solo sirve para
cumplir una dependencia (cumplir lista
parámetros).
• Objetos que no afectan al comportamiento que se
quiere testear, no se usan.
9. Stub
• Almacena datos o una respuesta predefinida y la
devuelve cuando es invocado.
• Cuando no se quiere invocar a dependencias
reales con efectos colaterales o respuestas reales.
12. Fake
• Tienen una implementación funcional pero no es
igual que la real. En general, toman un atajo y tienen
una versión simplificada del código de producción.
• P.e. “In memory database” en vez de la base de
datos real. RouteBuilder con clave/valor directo.
• Se difieren del Stub en que implementan lógica
para dar la respuesta.
• Permite verificar estado resultante.
14. Spy
• Sirve para hacer aserciones de si algo ha ocurrido.
• Permite preguntarle si cierta llamada se ha hecho o
con qué valores se ha llamado.
• Recuerda llamadas y observa silenciosamente. No
hace verificaciones.
16. Mock
• Validan que el comportamiento deseado haya ocurrido.
• Todos los anteriores verifican el estado. El mock verifica el
comportamiento.
• Un mock dice “Espero que el método a se halla llamado y
sino lanzo un error”.
• Qué métodos, en qué orden, con qué parámetros, número
de veces, etc.
• Fallan si lo que esperan no ocurre o si ocurren otras cosas
adicionales que no se espera.
21. Estado / Comportamiento
• Test de estado: Verifican el estado final tras una
operación en el código de test.
• Test de comportamiento: Verifican como el código
de test interacciones con sus colaboradores
• Diferentes estrategias igualmente válidas. Elegir la
mejor forma según el código a testear.
23. Mockist
• Mocks para toda las dependencias.
• Favorecen el testing para informar decisiones de
diseño.
• Testear SUT completamente aislado.
24. Classic
• Usar mocks solo para dependencias raras o complejas,
favoreciendo los objetos reales.
• Minimizar acoplamiento entre tests e implementación.
• Testear pequeños clusters de objetos y no en aislamiento.
• Piensan que mockist esta acoplado a la implementación,
mientras que el SUT debería ser una caja negra y solo
pensar en la interfaz externa.
• Piensan que la independencia de los tests es menos
importante que el testear en base al estado.
25. Pueden guiar la
definición de tipos
(colaboradores) desconocidos
Design Upfront (Just in time design)
Need Driven Development
Growing Object Oriented Software Guided by Tests
26. Peligros
• Palabra mock: Entender el concepto que hay
detrás y los diferentes tipos.
• Sobre especificar el funcionamiento del SUT y no
en el resultado.
• Tests frágiles que fallan cuando se cambia la
implementación.
• Integraciones no testadas realmente.
27. Recomendaciones
• No mockear “Value objects”.
• No mockear clases concretas.
• Mockear puertos.
• Mockear clases difíciles de construir.
• Mockear en tests de SUTs que solo interactúan.
28. Resumen
• Resuelven problemas de dependencia.
• Interacción entre SUT y colaboradores.
• Guiar definición de tipos (colaboradores).
29. No puedes testear lo
que no controlas
Injectar dependencias
Delegar en colaboradores