Take Control of your Integration Testing with TestContainersNaresha K
Slides from my Java2Days conference talk - Take Control of your Integration Testing with TestContainers.
How easy is it to write and maintain integration tests when your system under test interacts with databases, message stores, and other external systems? It can be quite challenging, can’t it? For example, the lack of control over the setup of databases can increase the cost of integration testing. Sometimes we take the route of using an in-memory database instead of the one we employ in the production environment, making the tests less effective. With Docker containers, you can simplify this to some extent by running the setup before invoking your tests. Imagine if you get to control the database environment right from within the test code. TestContainers bring in this convenience.
TestContainers is a tool that you can invoke from your test code. It provides lightweight, throwaway instances of common databases, web browsers(Selenium tests), or anything else that can run in a Docker container. In this presentation, I walk you through how TestContainers is the most effective way to take advantage of Docker containers for integration testing. I present through several use-cases and demonstrate how TestContainers simplifies integration testing.
Do something in 5 with gas 9-copy between databases with oauth2Bruce McPherson
Google Apps Script tutorial to copy between abstracted databases. In this example, one of the databases (Google DataStore) needs OAuth2 authentication. You should be able to complete this tutorial in about 5 mins and a few lines of code.
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech TalkRed Hat Developers
Moving common network functionality such as client load-balancing and circuit-breaking into out-of-process proxies has kickstarted the technology we call Service Mesh, with Istio as its most popular incarnation. With the introduction of WASM support, you can now extend its functionality by writing custom Filters for Istio's proxy, Envoy, in any language that supports WASM. Let's take a closer look at developing, building, and deploying WASM Filters using the example of an OpenID Connect Filter that adds Keycloak Authentication functionality to any service in your Mesh - no code changes required.
Slides from the NestJS MasterClass.
We learned how to build JavaScript server-side applications with NestJS - A progressive NodeJS framework built with TypeScript.
You can find the code on GitHub:
https://github.com/nirkaufman/task-manager
Take Control of your Integration Testing with TestContainersNaresha K
Slides from my Java2Days conference talk - Take Control of your Integration Testing with TestContainers.
How easy is it to write and maintain integration tests when your system under test interacts with databases, message stores, and other external systems? It can be quite challenging, can’t it? For example, the lack of control over the setup of databases can increase the cost of integration testing. Sometimes we take the route of using an in-memory database instead of the one we employ in the production environment, making the tests less effective. With Docker containers, you can simplify this to some extent by running the setup before invoking your tests. Imagine if you get to control the database environment right from within the test code. TestContainers bring in this convenience.
TestContainers is a tool that you can invoke from your test code. It provides lightweight, throwaway instances of common databases, web browsers(Selenium tests), or anything else that can run in a Docker container. In this presentation, I walk you through how TestContainers is the most effective way to take advantage of Docker containers for integration testing. I present through several use-cases and demonstrate how TestContainers simplifies integration testing.
Do something in 5 with gas 9-copy between databases with oauth2Bruce McPherson
Google Apps Script tutorial to copy between abstracted databases. In this example, one of the databases (Google DataStore) needs OAuth2 authentication. You should be able to complete this tutorial in about 5 mins and a few lines of code.
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech TalkRed Hat Developers
Moving common network functionality such as client load-balancing and circuit-breaking into out-of-process proxies has kickstarted the technology we call Service Mesh, with Istio as its most popular incarnation. With the introduction of WASM support, you can now extend its functionality by writing custom Filters for Istio's proxy, Envoy, in any language that supports WASM. Let's take a closer look at developing, building, and deploying WASM Filters using the example of an OpenID Connect Filter that adds Keycloak Authentication functionality to any service in your Mesh - no code changes required.
Slides from the NestJS MasterClass.
We learned how to build JavaScript server-side applications with NestJS - A progressive NodeJS framework built with TypeScript.
You can find the code on GitHub:
https://github.com/nirkaufman/task-manager
OAuth2 Goa library for Apps Script tutorial including how to use the Google Developer console dashboard. Handles Google and other providers as well as Service accounts.
Video at https://www.youtube.com/watch?v=nD1eFbql8jg
This talk will demonstrate advanced testing practices used by the XWiki open source project, and using Java, Maven, Docker and Jenkins:
* Testing for backward compatibility with Revapi and an associated strategy
* Testing for coverage with Jacoco and defining a viable strategy for slowing improving the situation
* Testing the quality of your tests with Descartes Mutation testing
Automatically enriching your test suite with DSpot
* Testing various configurations with Docker containers and Jenkins
Creating your own project's Quality DashboardVincent Massol
Presentation held at Softshake 2017.
Shows how to use the XWiki open source project (http://xwiki.org) to develop a quality portal web site for your development projects. We'll start from a clean XWiki instance and configure it and write scripts to have the following features:
* Documentation for your project
* Display JIRA issues
* Display Sonar metrics
* Display Jenkins statuses
* Display Git statistics of your project
* Have an application to perform releases (checklist, release notes)
* Send alerts (mail, IRC, etc) when quality metric thresholds are reached
And more!
Slides from the Grails Integration Strategies BOF at JavaOne 2009. You can see these in context in a video shot by Bryan Williams of the Chicago Groovy User Group - http://cgug.blip.tv
Core Data with multiple managed object contextsMatthew Morey
When using Core Data for persisting app data multiple managed object contexts (MOC) are often required to avoid blocking UI. Typically you would create a background MOC and listen for changes on the main MOC, merging changes as necessary. With iOS 5, MOCs now have parent context and the ability to set concurrency types. These new features greatly simplify dealing with Core Data on background queues. During this presentation Matt will cover the pros and cons of this new method of dealing with Core Data.
A new tool for measuring performance in Drupal 8 - DrupalCamp LondonLuca Lusso
Discovering software bottlenecks is always a difficult task, but detecting them in Drupal can be a real nightmare. A simple contrib module can cause a lot of database queries, service instantiations or events to be triggered.
Classic debug tools like xDebug or XHProf fail to report those kinds of problems because they work at a lower level and they don't have any knowledge of Drupal internal structures.
Luckly Drupal 8 is built on Symfony 2 components and one of those components (the HTTP Kernel) provides the infrastructure for build custom profilers.
In this talk we'll see how to build a profiler to analyze the internal data structures of Drupal 8 and how to exend the profiler to add new data collectors.
The code is available as Drupal 8 module here: http://www.drupal.org/project/webprofiler
Integration testing is hard, and often teams are tempted to do it in production. Testcontainers allows writing meaningful integration tests spawning Docker containers for databases, queue systems, kv-store, other services. The talk, a blend of slides and live code, will show how we are able to deploy without fear while integrating with a dozen of different datastores. Don't mock your database with fake data anymore, work with real data
OAuth2 Goa library for Apps Script tutorial including how to use the Google Developer console dashboard. Handles Google and other providers as well as Service accounts.
Video at https://www.youtube.com/watch?v=nD1eFbql8jg
This talk will demonstrate advanced testing practices used by the XWiki open source project, and using Java, Maven, Docker and Jenkins:
* Testing for backward compatibility with Revapi and an associated strategy
* Testing for coverage with Jacoco and defining a viable strategy for slowing improving the situation
* Testing the quality of your tests with Descartes Mutation testing
Automatically enriching your test suite with DSpot
* Testing various configurations with Docker containers and Jenkins
Creating your own project's Quality DashboardVincent Massol
Presentation held at Softshake 2017.
Shows how to use the XWiki open source project (http://xwiki.org) to develop a quality portal web site for your development projects. We'll start from a clean XWiki instance and configure it and write scripts to have the following features:
* Documentation for your project
* Display JIRA issues
* Display Sonar metrics
* Display Jenkins statuses
* Display Git statistics of your project
* Have an application to perform releases (checklist, release notes)
* Send alerts (mail, IRC, etc) when quality metric thresholds are reached
And more!
Slides from the Grails Integration Strategies BOF at JavaOne 2009. You can see these in context in a video shot by Bryan Williams of the Chicago Groovy User Group - http://cgug.blip.tv
Core Data with multiple managed object contextsMatthew Morey
When using Core Data for persisting app data multiple managed object contexts (MOC) are often required to avoid blocking UI. Typically you would create a background MOC and listen for changes on the main MOC, merging changes as necessary. With iOS 5, MOCs now have parent context and the ability to set concurrency types. These new features greatly simplify dealing with Core Data on background queues. During this presentation Matt will cover the pros and cons of this new method of dealing with Core Data.
A new tool for measuring performance in Drupal 8 - DrupalCamp LondonLuca Lusso
Discovering software bottlenecks is always a difficult task, but detecting them in Drupal can be a real nightmare. A simple contrib module can cause a lot of database queries, service instantiations or events to be triggered.
Classic debug tools like xDebug or XHProf fail to report those kinds of problems because they work at a lower level and they don't have any knowledge of Drupal internal structures.
Luckly Drupal 8 is built on Symfony 2 components and one of those components (the HTTP Kernel) provides the infrastructure for build custom profilers.
In this talk we'll see how to build a profiler to analyze the internal data structures of Drupal 8 and how to exend the profiler to add new data collectors.
The code is available as Drupal 8 module here: http://www.drupal.org/project/webprofiler
Integration testing is hard, and often teams are tempted to do it in production. Testcontainers allows writing meaningful integration tests spawning Docker containers for databases, queue systems, kv-store, other services. The talk, a blend of slides and live code, will show how we are able to deploy without fear while integrating with a dozen of different datastores. Don't mock your database with fake data anymore, work with real data
A Series of Fortunate Events: Building an Operator in JavaVMware Tanzu
SpringOne 2021:
Session Title: A Series of Fortunate Events: Building an Operator in Java
Speakers: Alberto C. Ríos, Staff Engineer at VMware; Bella Bai, Software Engineer at VMware
Google App Engine has become a powerful PaaS provider in last couple of years. With Java support enabled, its scope has further increased. This session presents the options we have in terms of testing on Google App Engine. Following is an overview of the proposed agenda:
Running Test suites of Applications not built for Google App Engine
An over-view of Google Cloud Cover
Advantages & Limitations of Cloud Cover
Integration of Existing Test Suites in Google Cloud Cover
Local Testing of Applications built for Google App Engine
DataStore Testing
Memcache Testing
Task-Queue Testing
Authentication API Testing
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti
PyCon Ireland - Python DevOps flows with Ansible, Packer & Kubernetes - Mihai Criveti
https://www.youtube.com/watch?v=lO884XAdddQ
1 Packer: Image Build Automation
2 OpenSCAP: Automate Security Baselines
3 Ansible: Provisioning and Configuration Management
4 Molecule: Test your Ansible Playbooks on Docker, Vagrant or Cloud
5 Vagrant: Test images with vagrant
6 Package Python Applications with setuptools
7 Kubernetes: Container Orchestration at Scale
8 DevOps Culture and Practice
Surviving UI Automation Armageddon with BELLATRIX.pptxNikolayAvramov4
Have you heard of those heavy and complex Design Patterns for Tests Automation? Maybe you did and you thought: Why would I overcomplicate my Test Automaton solution to follow all of these? Nikolay was also thinking this some time ago until the reason behind all of these has hit his team like a burning stone coming from the sky: 5000+ automated UI tests were about to go in the waste, because of a huge project for a complete redesign of the Product under test from ASP.NET MVC to Single Page Application using ReactJs.
In this session, Nikolay will show not only how their tests survived, but how they became the most valuable asset, contributing to the potential success of this project.
Building up your application's UI interface is certainly a challenge by itself, but writing automated web UI tests is an even bigger one! And after you are done, your project comes across more questions:
* Validate the order confirmation PDF?
> Yes of course!
* Test the rich-client implementation as well?
> Would be fantastic!
* Where to run the test?
> For sure inside of a container!
* Rewrite all of our tests?
> Are you kidding me? We want to reuse them!
* Scale your test executors?
> What's about Kubernetes!?
If you already have a bunch of Selenium tests in your project, you won't throw them all away if some new test requirements, like the ones mentioned above, come up. Therefore we have developed a solution, which will keep your Selenium tests as they are, but with the possibility to test even more. PDF validation or controlling a Flash Player will be as easy as the validation of an HTML button. While we are at it, why not testing a whole rich-client app with the same test setup? With "Sakuli Se" as a Selenium extension, you will be able to do this and execute all tests inside of a preconfigured UI testing container. Afterwards you can scale your test environment with Kubernetes/OpenShift and let them do the work. The talk will answer all the above-mentioned questions and demonstrate the different use cases in a live coding session.
Step by step introduction to get unit testing, UI testing, mocking and continuous integration up and running for your Swift projects. These slides are from Agile Swift Meetup in Montreal.
Building up your application's UI interface is certainly a challenge by itself, but writing automated web UI tests is an even bigger one! And after you are done, your project comes across more questions:
* Validate the order confirmation PDF?
> Yes of course!
* Test the rich-client implementation as well?
> Would be fantastic!
* Where to run the test?
> For sure inside of a container!
* Rewrite all of our tests?
> Are you kidding me? We want to reuse them!
* Scale your test executors?
> What's about Kubernetes!?
If you already have a bunch of Selenium tests in your project, you won't throw them all away if some new test requirements, like the ones mentioned above, come up. Therefore we have developed a solution, which will keep your Selenium tests as they are, but with the possibility to test even more. PDF validation or controlling a Flash Player will be as easy as the validation of an HTML button. While we are at it, why not testing a whole rich-client app with the same test setup? With "Sakuli Se" as a Selenium extension, you will be able to do this and execute all tests inside of a preconfigured UI testing container. Afterwards you can scale your test environment with Kubernetes/OpenShift and let them do the work. The talk will answer all the above-mentioned questions and demonstrate the different use cases in a live coding session.
Similar to BizSpark SF Lightning Talk: "Automated Testing (Unit, Integration and Systems)" by Heine Frifeldt (20)
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
7. Nightly Functional Tests via custom attribute
[TestMethod, ExecuteNightly]
public void FacebookSearch()
{
var adapter = new FacebookAdapter();
var places = adapter.Search(coords, 10000);
Assert.IsTrue(places.Count() > 0);
}
7
8. Hard to test code that uses statics
public Configuration GetConfiguration()
{
string[] conf = File.ReadAllLines("Config.xml");
// parse contents and construct Configuration obj
…
8
9. Constructors as like static methods
Keep them simple
public class User
{
public User(int userId)
{
DataProvider provider = new DataProvider();
var data = provider.GetUserInfo(userId);
…
}
9
10. Hard to test code that has object
initialization inside business logic
public Deal[] GetGrouponDeals()
{
WebClient client = new WebClient();
// Logic to retrieve and parse the response
…
}
10
11. Separate object graph from logic
Ie. remove new operators
public GrouponAdapter(ILooptWebClient webClient)
{
_webClient = webClient;
}
public Deal[] GetGrouponDeals()
{
// Use _webClient to retrieve URL
…
11
12. Dependency injection Test able code
[TestMethod]
public void VerifyDeals()
{
var testClient = new TestWebClient();
var groupon = new GrouponAdapter(testClient);
// Now you control the URL response
…
}
12
13. Root of application will have logic to
construct object graphs
public CoreService(
IDealManager dealManager,
IUserManager userManager,
…
public DealManager(
IGrouponAdapter grouponAdapter,
IDataProvider dataProvider,
IPoiController poiController)
13
14. Use “Ninject” to construct object graph
…
_kernel.Get<GrouponAdapter>();
…
14
15. Use “Ninject” to construct object graph
…
Bind<ILooptWebClient>().To<LooptWebClient>();
…
15
16. “Moq” as object mock framework
[TestMethod]
public void VerifyDeals()
{
var testClient = new Mock<ILooptWebClient>();
testClient.
Setup(c => c.GetUrl(It.IsAny<Uri>())).
Returns(Resources.MyResponse);
var groupon = new GrouponAdapter(testClient);
…
}
16