The document discusses challenges faced with automated testing at scale for a large codebase with many dependencies, technologies, and test types. It describes how the large number of tests led to slow build times, failures blocking changes, and reduced developer productivity. Specific issues mentioned include monolithic test organization, slow unit/functional tests, non-deterministic races/timeouts, and re-running all tests on every commit. The document advocates for strategies like separating test types, running in parallel, and using page objects to isolate tests from UI changes.
Srihitha Technologies provides Selenium Training in Ameerpet by real time Experts. For more information about Selenium training in Ameerpet call 9394799566 / 9290641808.
The Scala programming language has been gaining significant traction over the last few years, being adopted by vastly different organizations from startups to large enterprises. While the language itself is pretty well understood and explained in tutorials and books, there is an apparent dearth of practical advice for new adopters on the best approach to integrating the new technology. In this talk I’ll attempt to offer such advice gathered over several years of production Scala use, focusing on tools, practices, patterns and the community, in the hope of making your transition into the Scala ecosystem easier and better-informed up front.
A talk given at JavaOne 2015 in San Francisco.
Devoxx UK 2015: How Java EE has changed pattern implementationAlex Theedom
The implementation of traditional design patterns have changed in Java EE 7. By taking advantage of Java EE features such as CDI and the smart use of annotations, traditional design patterns can be implemented in a much cleaner and quicker way. With the use of code examples I will demonstrate how to implement some of the most commonly use design patterns in Java EE. Among the design patterns discuss there will be Factory, Singleton, Observer and Decorator.
Srihitha Technologies provides Selenium Training in Ameerpet by real time Experts. For more information about Selenium training in Ameerpet call 9394799566 / 9290641808.
The Scala programming language has been gaining significant traction over the last few years, being adopted by vastly different organizations from startups to large enterprises. While the language itself is pretty well understood and explained in tutorials and books, there is an apparent dearth of practical advice for new adopters on the best approach to integrating the new technology. In this talk I’ll attempt to offer such advice gathered over several years of production Scala use, focusing on tools, practices, patterns and the community, in the hope of making your transition into the Scala ecosystem easier and better-informed up front.
A talk given at JavaOne 2015 in San Francisco.
Devoxx UK 2015: How Java EE has changed pattern implementationAlex Theedom
The implementation of traditional design patterns have changed in Java EE 7. By taking advantage of Java EE features such as CDI and the smart use of annotations, traditional design patterns can be implemented in a much cleaner and quicker way. With the use of code examples I will demonstrate how to implement some of the most commonly use design patterns in Java EE. Among the design patterns discuss there will be Factory, Singleton, Observer and Decorator.
Elm - Could this be the Future of Web Dev?David Hoerster
As a developer who enjoys building concurrent and distributed applications, dealing with the front end has never been a favorite task. And I have often thought that building front-end applications by mixing logic into HTML tags has never felt right. What if I could build my web app using a more unified language and approach? Well, enter Elm, a functional language that transpiles to JavaScript while providing static type checking. In this session, we'll take a look at what Elm provides, how its simple Model-Update-View architecture can bring a lot of power to your applications, and we'll walk through a simple SPA demo in order to provide you a taste of what Elm can provide. At the end of this session, you'll have a better understanding of Elm's approach to web application development and be equipped to build your own Elm applications.
OSDC 2013 | Introduction into Chef by Andy HawkinsNETWAYS
This presentation will give an overview about what Chef is and how to access it. It will describe the typical use cases and architecture as well as Cookbooks, data bags and other concepts and will explain how to implement your CM solution. Finally it will show how to drive a successful Chef project.
This presentation is for enterprises that are considering adopting Scala. The author is managing editor of http://scalacourses.com, which offers self-paced online courses that teach Introductory and Intermediate Scala and Play Framework.
Many companies and individuals these days release parts of their work as open source software. This benefits the entire software development community and brings are new set of challenges. Maintaining open source well takes time and effort. Abandoning a project can be very problematic for your users. How does one find a balance?
In this talk we’ll discuss how we did the impossible: make the users of more than 30 ClojureWerkz projects happy and still have a life.
DefCore: The Interoperability Standard for OpenStackMark Voelker
This presentation provides an introduction to the OpenStack DefCore Committee, which is working to create interoperability standards for OpenStack Powered clouds. You'll gain insight into the interoperability challenges of OpenStack clouds, and learn how DefCore creates it's Guidelines. Learn why the Technical Committee, Board of Directors, end users, and vendors have a seat at the table. You'll laugh, you'll cry, you'll immediately want to stop talking about cloud computing and go watch science fiction all night.
This talk was originally presented at the Triangle OpenStack Meetup Group's September 21, 2015 meeting in Durham, NC. A recording can be found here (this talk starts at the 46:10 mark): https://vmware.webex.com/vmware/lsr.php?RCID=a51f9e6882f54ccab8b715c8c0162484
A new revision with updates was given at a meeting of the China Open Source Cloud League on May 20, 2016 in Beijing. The slides here on Slideshare represent that presentation.
OpenStack: Toward a More Resilient CloudMark Voelker
Since it's inception over four years ago, OpenStack has become the most popular open source software for building many types of clouds in part due to the flexibility it provides. As more adoption increases, interest has increased in building OpenStack clouds on a highly available control plane infrastructure. In this talk we will provide an introduction to today's OpenStack community and software, then dive deeper into how to build more highly available, scalable OpenStack architectures. - See more at: http://www.percona.com/news-and-events/percona-university-smart-data-raleigh/openstack-toward-more-resilient-cloud#sthash.wicdUMdH.dpuf
You spend your precious time building the perfect application. You do everything right. You carefully craft every piece of code and rigorously follow the best practices and design patterns, you apply the most successful methodologies software engineering has to offer with discipline, and you pay attention to the most minuscule of details to produce the best user experience possible. It all pays off eventually, and you end up with a beautiful code base that is not only reliable but also performs well. You proudly watch your baby grow, as new users come in bringing more traffic your way and craving new features. You keep them happy and they keep coming back. One morning, you wake up to servers crashing under load, and data stores failing to keep up with all the demand. You panic. You throw in more hardware and try optimize, but the hungry crowd that was once your happy user base catches up to you. Your success is slipping through your fingers. You find yourself stuck between having to rewrite the whole application and a hard place. It's frustrating, dreadful, and painful to say the least. Don't be that guy! Save your soul before it's too late, and come to learn how to build, deploy, and maintain enterprise-grade Java applications that scale from day one. Topics covered include: parallelism, load distribution, state management, caching, big data, asynchronous processing, and static content delivery. Leveraging cloud computing, scaling teams and DevOps will also be discuss. P.S. This session is more technical than you might think.
http://jaxconf.com/sessions/economies-scaling-software
No Container: a Modern Java Stack with BootiqueAndrus Adamchik
Java containers appeared back in the era of big expensive hardware and monolithic applications, and currently feel like an impediment to Java progress. More and more developers opt out of containers in favor of runnable jars, especially with the advance of microservices architectures. Andrus Adamchik will present a new open source tool called Bootique (https://bootique.io), a pluggable and extensible technology intended for various kinds of container-less Java apps – REST services, webapps, job runners, desktop apps and what not.
Elm - Could this be the Future of Web Dev?David Hoerster
As a developer who enjoys building concurrent and distributed applications, dealing with the front end has never been a favorite task. And I have often thought that building front-end applications by mixing logic into HTML tags has never felt right. What if I could build my web app using a more unified language and approach? Well, enter Elm, a functional language that transpiles to JavaScript while providing static type checking. In this session, we'll take a look at what Elm provides, how its simple Model-Update-View architecture can bring a lot of power to your applications, and we'll walk through a simple SPA demo in order to provide you a taste of what Elm can provide. At the end of this session, you'll have a better understanding of Elm's approach to web application development and be equipped to build your own Elm applications.
OSDC 2013 | Introduction into Chef by Andy HawkinsNETWAYS
This presentation will give an overview about what Chef is and how to access it. It will describe the typical use cases and architecture as well as Cookbooks, data bags and other concepts and will explain how to implement your CM solution. Finally it will show how to drive a successful Chef project.
This presentation is for enterprises that are considering adopting Scala. The author is managing editor of http://scalacourses.com, which offers self-paced online courses that teach Introductory and Intermediate Scala and Play Framework.
Many companies and individuals these days release parts of their work as open source software. This benefits the entire software development community and brings are new set of challenges. Maintaining open source well takes time and effort. Abandoning a project can be very problematic for your users. How does one find a balance?
In this talk we’ll discuss how we did the impossible: make the users of more than 30 ClojureWerkz projects happy and still have a life.
DefCore: The Interoperability Standard for OpenStackMark Voelker
This presentation provides an introduction to the OpenStack DefCore Committee, which is working to create interoperability standards for OpenStack Powered clouds. You'll gain insight into the interoperability challenges of OpenStack clouds, and learn how DefCore creates it's Guidelines. Learn why the Technical Committee, Board of Directors, end users, and vendors have a seat at the table. You'll laugh, you'll cry, you'll immediately want to stop talking about cloud computing and go watch science fiction all night.
This talk was originally presented at the Triangle OpenStack Meetup Group's September 21, 2015 meeting in Durham, NC. A recording can be found here (this talk starts at the 46:10 mark): https://vmware.webex.com/vmware/lsr.php?RCID=a51f9e6882f54ccab8b715c8c0162484
A new revision with updates was given at a meeting of the China Open Source Cloud League on May 20, 2016 in Beijing. The slides here on Slideshare represent that presentation.
OpenStack: Toward a More Resilient CloudMark Voelker
Since it's inception over four years ago, OpenStack has become the most popular open source software for building many types of clouds in part due to the flexibility it provides. As more adoption increases, interest has increased in building OpenStack clouds on a highly available control plane infrastructure. In this talk we will provide an introduction to today's OpenStack community and software, then dive deeper into how to build more highly available, scalable OpenStack architectures. - See more at: http://www.percona.com/news-and-events/percona-university-smart-data-raleigh/openstack-toward-more-resilient-cloud#sthash.wicdUMdH.dpuf
You spend your precious time building the perfect application. You do everything right. You carefully craft every piece of code and rigorously follow the best practices and design patterns, you apply the most successful methodologies software engineering has to offer with discipline, and you pay attention to the most minuscule of details to produce the best user experience possible. It all pays off eventually, and you end up with a beautiful code base that is not only reliable but also performs well. You proudly watch your baby grow, as new users come in bringing more traffic your way and craving new features. You keep them happy and they keep coming back. One morning, you wake up to servers crashing under load, and data stores failing to keep up with all the demand. You panic. You throw in more hardware and try optimize, but the hungry crowd that was once your happy user base catches up to you. Your success is slipping through your fingers. You find yourself stuck between having to rewrite the whole application and a hard place. It's frustrating, dreadful, and painful to say the least. Don't be that guy! Save your soul before it's too late, and come to learn how to build, deploy, and maintain enterprise-grade Java applications that scale from day one. Topics covered include: parallelism, load distribution, state management, caching, big data, asynchronous processing, and static content delivery. Leveraging cloud computing, scaling teams and DevOps will also be discuss. P.S. This session is more technical than you might think.
http://jaxconf.com/sessions/economies-scaling-software
No Container: a Modern Java Stack with BootiqueAndrus Adamchik
Java containers appeared back in the era of big expensive hardware and monolithic applications, and currently feel like an impediment to Java progress. More and more developers opt out of containers in favor of runnable jars, especially with the advance of microservices architectures. Andrus Adamchik will present a new open source tool called Bootique (https://bootique.io), a pluggable and extensible technology intended for various kinds of container-less Java apps – REST services, webapps, job runners, desktop apps and what not.
Die besten, lustigsten und interessantesten Tweets. Mehr Infos unter: http://www.piper.de/twitter-buch
WAT SE FACK vereint die besten Twitter Sprüche unserer Nation. Neben persönlichen Eingeständnissen werden schmerzhaft-treffsichere Alltagsbeobachtungen und bissige Kommentare zum politischen Geschehen geteilt. Es geht um Themen, die uns alle umtreiben: Supermarktquerulanten, Sport-, Schokolade- und Katzenschwächen und den Umgang mit den noch nicht ausreichend digitalisierten Eltern. Zum Staunen, Lachen, Sich-selbst-Wiedererkennen und Bewundern.
#Wat Se Fack
Das Beste von Twitter
Radfan Georg Koeniger war mit dem Rad auf dem Jakobswegu unterwegs. Eine Sammlung der schönsten Sprüche aus dem Buch: Trauer ist eine lange Reise. Für dich auf dem Jakobsweg.
bit.ly/pilgern_jakobsweg
My talk delivered on 10th of April 2014 in Bristol at ACCU Conference.
This is the combination of a few talks I delivered over 2012 and 2013 with some latest updates.
This is an experience report based on the work of many developers from Atlassian and Spartez working for years on Atlassian JIRA.
If you have (or going to have) thousands of automated tests and you are interested how it may impact you, this presentation is for you.
In this webinar, Dave Haeffner (Elemental Selenium, USA) discusses how to:
- Build an integrated feedback loop to automate test runs and find issues fast
- Setup your own infrastructure or connect to a cloud provider
-Dramatically improve test times with parallelization
https://huddle.eurostarsoftwaretesting.com/resource/webinar/use-selenium-successfully/
In this presentation we explain how we use Watir, Ruby, Cumcumber and other supporting technologies to allow end to end testing in MyHeritage.
These are the links to resource mentioned in the presentation:
Ruby - https://www.ruby-lang.org/en/
Watir - http://watirwebdriver.com/
page-object - https://github.com/cheezy/page-object
Selenium Grid - https://github.com/SeleniumHQ/selenium/wiki/Grid2
Selenium-Grid-Extras - https://github.com/groupon/Selenium-Grid-Extras
Jenkins - https://jenkins-ci.org/
We also explain how QA automation engineers are an integral part of the Continuous Deployment process at MyHeritage
JavaScript has a well deserved reputation of be hard to write and debug. Put it on a mobile device and the problems increase exponentially. Mobile browsers lack all of the niceties that developers rely on to do testing and debugging including the most fundamental tool, the debugger. But it is possible to write quality JavaScript on a mobile device without relying on blind luck. In this talk I will show all of the tools and tricks that I learned in my 12 month development of the new KBB.com mobile site.
Growing Trends of Open Source UI FrameworksSmartBear
In part three of our testing frameworks webinar series, we explored the growing trend of open source UI frameworks. Join our very own Daniel Giordano as he walks you through how to use open source UI frameworks to your benefit.
MyHeritage - QA Automations in a Continuous Deployment environmentMatanGoren
In this presentation we explain the CD mindset of the MyHeritage QA and how we use Watir, Appium, Ruby, Cumcumber and other supporting technologies to allow end to end testing.
These are the link mentioned in the presentation:
Continuous Deployment Applied at MyHeritage - http://www.slideshare.net/RanLevy/continuous-deployment-applied-at-myheritage
Appium - http://appium.io/
Ruby - https://www.ruby-lang.org/en/
Watir - http://watirwebdriver.com/
page-object - https://github.com/cheezy/page-object
Selenium Grid - https://github.com/SeleniumHQ/selenium/wiki/Grid2
Selenium-Grid-Extras - https://github.com/groupon/Selenium-Grid-Extras
Jenkins - https://jenkins-ci.org/
Serverless architectures let you build and deploy applications and services with infrastructure resources that require zero administration. In the past, you had to provision and scale servers to run your application code, install and operate distributed databases, and build and run custom software to handle API requests. Now, AWS provides a stack of scalable, fully-managed services that eliminates these operational complexities.
In this session, you will learn about the benefits of serverless architectures and the basics of the serverless stack AWS provides. We will also walk through how you can use serverless architectures for everything from data processing to mobile and web backends.
AWS DevDay San Francisco, June 21, 2016.
Presenter: Jeremy Edberg, Co-Founder, CloudNative, & AWS Community Hero
Performance Testing using Real Browsers with JMeter & WebdriverBlazeMeter
Learn how to easily run performance tests with real browsers using Selenium WebDriver.
Ophir Prusak, BlazeMeter’s Chief Evangelist, gives step-by-step instructions on doing this using BlazeMeter and/or JMeter.
Learn how to:
- Correlate actual browser-based user experience with the load tests
- Run multiple Selenium Webdriver tests in parallel at scale by using the power of the cloud
- Do it all without any prior JMeter knowledge or experience!
Przyjrzyjmy się w jaki sposób automatyzowane są webowe testy UI w produkcie Evolve Electronic Document Management. Przestawię strukturę frameworka testowego opartego o Selenium i zintegrowanego z Jenkinsem oraz TestRailem. Opowiem o trosce o stabilność testów, maksymalizowanie korzyści z nich płynących oraz o nietypowych problemach i sposobach ich rozwiązywania. Prezentacja zawierać będzie również konkretne przykłady.
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
Taking your mobile development process cycle, and the quality of the apps, from good to great.
See how focusing on automated tests can improve app quality, time to market and much more, and learn some best practices to avoid too much trouble getting started
Presented at Xamarin Evolve 2014
Mastering Test Automation: How to Use Selenium Successfully Applitools
** WATCH FULL WEBINAR RECORDING HERE: https://youtu.be/06H-6hjyyvI **
What is Selenium? Why should you use it? And how do you use it successfully?
In this webinar, Automation expert Dave Haeffner answers these questions as he steps through the why, how, and what of Selenium.
Dave also discusses how to start from nothing and build out a well factored, maintainable, resilient, fast and scalable set of tests. These tests will not only work well, but across all of the browsers you care about, while exercising relevant functionality that matters to your business.
Watch this webinar and learn how to:
* Decompose an existing web application to identify what to test
* Pick the best language for you and your team
* Write maintainable and reusable Selenium tests that will be cross-browser compatible and performant
* Dramatically improve your test coverage with automated visual testing
* Build an integrated feedback loop to automate test runs and find issues fast
Van Wilson
Senior Consultant with Cardinal Solutions
Find more by Van Wilson: https://speakerdeck.com/vjwilson
All Things Open
October 26-27, 2016
Raleigh, North Carolina
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
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.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
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.
3. About me
• 29 years coding
• Agile Practices (inc. TDD) since 2003
• Certified ScrumMaster, Agile Coach,
Trainer, Speaker
• 4+ years with Atlassian (JIRA
Development Team Lead)
• Co-founder of Spartez
14. XStream
OSGi REST Velocity
Jersey
Pico
Active OfBiz EntityEngine Guava
Objects LESS
Java OpenSocial
OS Workflow
Quartz
Jackson
Mixture of Lucene
technologies JQuery
Spring
XML Underscore Soy
Seraph
OAuth Maven2
JSP Webwork JDBC
Javamail Backbone.js SpringDM
63. You commit at 3 PM
You get “Unit Test Green” email at 4PM
64. You commit at 3 PM
You get “Unit Test Green” email at 4PM
You happily go home
65. You commit at 3 PM
You get “Unit Test Green” email at 4PM
You happily go home
You get flood of “Red Test X” emails at 4 - 9PM
66. You commit at 3 PM
You get “Unit Test Green” email at 4PM
You happily go home
You get flood of “Red Test X” emails at 4 - 9PM
Your colleagues on the
other side of the globe
67. You commit at 3 PM
You get “Unit Test Green” email at 4PM
You happily go home
You get flood of “Red Test X” emails at 4 - 9PM
Your colleagues on the
You
other side of the globe
68. “Slow CI loop and non-
deterministic tests are
strong inhibitor of change
instead of the catalyst”
by W. Seliga
69. “We probably spend more
time dealing with the JIRA
test codebase than the
production codebase”
72. Outcomes
• Development slows down
• Devs are afraid of change
• Software difficult to release
• Significant amount of time spent on
analysing test failures
• Morale goes down
74. Feedback Loop Speed
• Tiniest change triggers test avalanche
• Lack of responsibility syndrome
• Devs do not run tests locally (speed)
• Before you get the results you are at
home
75. Quality
• Non-deterministic tests (races,
timeouts)
• Catching up with UI changes
• 1 red test hides new failures
• Ignoring always red tests in
dangerous ...
80. Decisions which do not
scale
• All unit tests in one maven module
• All functional tests in one maven module
81. Decisions which do not
scale
• All unit tests in one maven module
• All functional tests in one maven module
• All Selenium and web-driver tests in one
module
82. Decisions which do not
scale
• All unit tests in one maven module
• All functional tests in one maven module
• All Selenium and web-driver tests in one
module
• Every commit triggers rebuild and re-test of
everything
83. Decisions which do not
scale
• All unit tests in one maven module
• All functional tests in one maven module
• All Selenium and web-driver tests in one
module
• Every commit triggers rebuild and re-test of
everything
• Monolithic test framework / utils
84. Decisions which do not
scale
• All unit tests in one maven module
• All functional tests in one maven module
• All Selenium and web-driver tests in one
module
• Every commit triggers rebuild and re-test of
everything
• Monolithic test framework / utils
• Opaque fixtures
90. Page Objects Pattern
• Page Objects model UI elements (pages,
components, dialogs, areas) your tests
interact with
• Page Objects shield tests from changing
internal structure of the page
• Page Objects generally do not make
assertions
• Designed for chaining
91. Page Objects Example
public class AddUserPage extends AbstractJiraPage @Override
{ public TimedCondition isAt()
{
private static final String URI = return and(username.timed().isPresent(),
"/secure/admin/user/AddUser!default.jspa"; password.timed().isPresent(), fullName.timed().isPresent());
}
@ElementBy(name = "username")
private PageElement username; public AddUserPage addUser(final String username,
final String password, final String fullName, final
@ElementBy(name = "password") String email, final boolean receiveEmail)
private PageElement password; {
this.username.type(username);
@ElementBy(name = "confirm") this.password.type(password);
private PageElement passwordConfirmation; this.passwordConfirmation.type(password);
this.fullName.type(fullName);
@ElementBy(name = "fullname") this.email.type(email);
private PageElement fullName; if(receiveEmail) {
this.sendEmail.select();
@ElementBy(name = "email") }
private PageElement email; return this;
}
@ElementBy(name = "sendemail")
private PageElement sendEmail; public ViewUserPage createUser()
{
@ElementBy(id = "user-create-submit") return createUser(ViewUserPage.class);
private PageElement submit; }
@ElementBy (id = "user-create-cancel")
private PageElement cancelButton; public <T extends Page> T createUser(Class<T> nextPage,
Object...args)
@Override {
public String getUrl() submit.click();
{ return pageBinder.bind(nextPage, args);
return URI; }
}
...
92. Using Page Objects
@Test
public void testServerError()
{
jira.gotoLoginPage().loginAsSysAdmin(AddUserPage.class)
.addUser("username", "mypassword", "My Name",
"sample@email.com", false)
.createUser();
// assertions here
}
93. Using Page Objects
@Test
public void testImportSampleProject() {
final PivotalImporterSetupPage setupPage = getSetupPage();
Assert.assertEquals("1. Connect", setupPage.getActiveTabText());
final PivotalProjectsMappingsPage projectMappingPage = setupPage.next();
Assert.assertEquals("2. Project Mapping", setupPage.getActiveTabText());
Assert.assertTrue("Expecting all project to be selected by default",
projectMappingPage.areAllProjectsSelected());
projectMappingPage.setImportAllProjects(false);
projectMappingPage.setProjectImported(sampleProject, true);
projectMappingPage.createProject(sampleProject, sampleProject, "SAMPLE");
final ImporterFinishedPage importerLogsPage =
projectMappingPage.beginImport().waitUntilFinished();
Assert.assertTrue(importerLogsPage.isSuccess());
Assert.assertEquals(0, importerLogsPage.getGlobalErrors().size());
Assert.assertEquals("1", importerLogsPage.getProjectsImported());
// more assertions here
}
94. More on Page Objects
• Design for reusability
• Design for sharing - libraries of Page
Objects
• Good support by WebDriver/Selenium 2
• Atlassian Selenium 2.0
120. Splitting Codebase
• Tests closer to tested code
• Less to test
• Testing less frequently
• Increased team responsibility
• Restructuring CI hierarchy - more
complicated picture
133. Execution Time:
Test Level
Unit Tests
REST API Tests
JWebUnit/HTMLUnit Tests
134. Execution Time:
Test Level
Unit Tests
REST API Tests
JWebUnit/HTMLUnit Tests
Selenium/WebDriver Tests
135. Execution Time:
Test Level
Unit Tests
REST API Tests
JWebUnit/HTMLUnit Tests
Selenium/WebDriver Tests
136. Execution Time:
Test Level
Speed
Unit Tests
REST API Tests
JWebUnit/HTMLUnit Tests
Selenium/WebDriver Tests
137. Execution Time:
Test Level
Speed
Unit Tests
REST API Tests
JWebUnit/HTMLUnit Tests
Selenium/WebDriver Tests
138. Execution Time:
Test Level
Speed Confidence
Unit Tests
REST API Tests
JWebUnit/HTMLUnit Tests
Selenium/WebDriver Tests
139. Execution time - Cont.
• Batching
• Several tests per single set-up
(violation of test isolation)
• REST-based assertions
• Remove / merge overlapping tests
140. Execution time - Cont.
• IDs over CSS/JQuery Selectors over XPath
• JUnit tests running in the container
• In-process testing
• In-memory DBs
• Mocking web servers
• Reducing framework initialization time
• Test Optimization (Clover)
141. Waiting time
• More build agents
• Shorter and smaller tests
• No sleep()
• Avoiding long fixture setup (hot
container, fragmented setup)
142. Preparation Time
• SCM performance
• Container set-up
• Compilation time (GWT...)
• Maven...
• Artifacts passing
143. So how about the
goals?
Is 10 seconds build realistic?
146. Realistic Goals (for us*)
Time Type
for unit tests for 95% of the
2 min
commits
for base smoke functional tests
5 min
for 95% of the commits
for ALL tests for 95% of the
15 min
commits on selected platform
30 min for ALL tests for ALL commits
*My current personal dreams
147. Realistic Goals (for us*)
Time Type
for unit tests for 95% of the
2 min
commits
for base smoke functional tests
5 min
for 95% of the commits
for ALL tests for 95% of the
15 min
commits on selected platform
30 min for ALL tests for ALL commits
*My current personal dreams
148. Realistic Goals (for us*)
Time Type
for unit tests for 95% of the
2 min
commits
for base smoke functional tests
5 min
for 95% of the commits
for ALL tests for 95% of the
15 min
commits on selected platform
30 min for ALL tests for ALL commits
*My current personal dreams
149. Realistic Goals (for us*)
Time Type
for unit tests for 95% of the
2 min
commits
for base smoke functional tests
5 min
for 95% of the commits
for ALL tests for 95% of the
15 min
commits on selected platform
30 min for ALL tests for ALL commits
*My current personal dreams
150. Realistic Goals (for us*)
Time Type
for unit tests for 95% of the
2 min
commits
for base smoke functional tests
5 min
for 95% of the commits
for ALL tests for 95% of the
15 min
commits on selected platform
30 min for ALL tests for ALL commits
*My current personal dreams
153. Realistic Goals (for us*) p.2
Metric Type
>98% green unit tests
>95% green functional tests
<20min average time to fix unit test
<2h average time to fix functional test
*My current personal dreams
154. Realistic Goals (for us*) p.2
Metric Type
>98% green unit tests
>95% green functional tests
<20min average time to fix unit test
<2h average time to fix functional test
*My current personal dreams
155. Realistic Goals (for us*) p.2
Metric Type
>98% green unit tests
>95% green functional tests
<20min average time to fix unit test
<2h average time to fix functional test
*My current personal dreams
156. Realistic Goals (for us*) p.2
Metric Type
>98% green unit tests
>95% green functional tests
<20min average time to fix unit test
<2h average time to fix functional test
*My current personal dreams
157. Realistic Goals (for us*) p.2
Metric Type
>98% green unit tests
>95% green functional tests
<20min average time to fix unit test
<2h average time to fix functional test
*My current personal dreams
158. Our Possible Future
• Further splitting the code-base, incubation
and maturity
• Finer-grained team responsibilities
• Merciless quarantine and purging of flakey
tests
• More page objects, less old-school Selenium
• Refactoring/removal of slow tests
• More REST-driven test fixtures and assertions
185. There are no universal
rules - silver bullets
We are expected to find
optimum balance for our
specific case
186. There are no universal
rules - silver bullets
We are expected to find
optimum balance for our
specific case
Definition of “optimum”
constantly changes