TDD is a game changer. It changed my dev life for good, no doubt. Having made almost all possible errors while practicing it over the years (more than 15 years of TDD practice), I have now ended up since many years with a style that provides me and my teams lots of efficiency and happiness.
A style that Bruno Boucard and myself have called the “outside-in diamond” TDD. Something that help us to easily write both domain-driven, but also "Antifragile" tests.
A session made at DDD Africa
Preparing to set up your test environmentTestplant
This lesson outlines how to determine your test automation goals, determine your resources and architecture, and then deploy eggPlant Functional as your test automation tool. Contact us for information on licensing and pricing: http://www.testplant.com/about/contact-us
Preparing to set up your test environmentTestplant
This lesson outlines how to determine your test automation goals, determine your resources and architecture, and then deploy eggPlant Functional as your test automation tool. Contact us for information on licensing and pricing: http://www.testplant.com/about/contact-us
Lessons Learned in Test Automation From ZombielandMatt Barbour
This presentation will tell you how to apply the rules for surviving the zombie apocalypse to surviving your own zombie apocalypse - end to end testing on real devices.
https://www.youtube.com/watch?v=9IShc6tfj2E
Building tools to free up exploratory testers - appium conference talkPradeep Soundararajan
I have been a functional exploratory tester. I was motivated to move out of exploratory testing and go into automation. Thankfully, someone pulled me aside and told me - I am more suited to be a functional exploratory tester and I am business savvy. I didn't shy away from code. I worked closely with developers, my testing approach involved reading code (didn't write any) and brought in value to developers and to the business. I grew up as a tester being coached by experts, reading blogs from experts and learning that automation will help exploratory testers do more.
In my wait - I found very little effort that has gone in direction. I partnered with developers to be building some products.
I failed multiple times but here are my failed attempts
1. Tool for Social Media Driven Testing for Testers
2. Tool for mapping the heuristics and oracles to test ideas
3. A checklist tool for testing mobile apps and scoring on quality for start-ups
I would like to share
- The thinking behind building these tools and their value
- How purely focusing only on automation is taking away the possibility of building tools
- How I would love the community to start building tools
- How I can help and how they can help me
Massive Continuous Integration and Light-speed IterationsTechWell
Continuous integration (CI) has become a buzzword, with most engineering organizations claiming they've adopted the practice. However, the sad truth is that unreliable tests, long feedback loops, and poor configuration management block their efforts and minimize CI's potential benefits. Jesse Dowdle shares how AtTask radically redesigned its engineering pipeline and, through massive CI scaling, drove three days of testing to just minutes. Learn the pros and cons of different CI systems and how to integrate them with the cloud. Watch a live demo of AtTask's internal test and CI systems, which they’ve designed to make "Every commit a potential release candidate"-meaning that every commit is an iteration. Arm yourself with the talking points to sell massive CI to executives. Learn how, by leveraging publicly available tools, you can deliver hyper-scalability to your continuous integration framework and drive cycle time, defect counts, and technical debt to new lows.
How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeterAlon Girmonsky
In Future Stack 2014, I'll present how to create, run and analyze a load test of 1M concurrent users. Here are the slides.
BlazeMeter is a performance lab in a box, ready to run load of up to 1M users against your mobile, web or API, from Multi GEO locations, 100% compatible with Apache JMeter.
"Today it's crystal clear why we need unit tests. Even integration and acceptance tests are quite common but who is making sure that your pages are working in production environment? I'd like to show in detail how smoke tests will help achieving this goal and why you should try to burn down your production server."
This is a hands-on talk about how we use excessive smoke tests in our continuous deployment to make sure a freshly rolled-out release can actually go live.
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...QASymphony
Learn about the new partnership between QASymphony and TestPlant. TestPlant’s functional automation tool, eggPlant, will be integrated with QASymphony’s qTest platform, providing a seamless solution for automated and manual testers. This partnership will help testing teams of all types get the visibility and traceability needed to understand their coverage and risk. In this webinar, Kevin Dunne, QASymphony's VP of Strategy and Business Development and Antony Edwards, TestPlant's CTO will answer the following questions:
What is qTest?
What is eggPlant?
How does the integration between qTest and eggPlant work?
How will the integration help me and/or my team?
End-to-End Automated Testing: Lessons from ZombielandJosiah Renaudin
With the proliferation of mobile devices, browsers, and IoT devices, each with its own eccentricities, performing end-to-end automated testing is starting to feel like navigating a zombie apocalypse. You need to fight off the zombies but lack the right tools. You need a set of rules to live by. You wish you had a buddy who would teach you all those rules because alone, you feel like you’re being eaten alive. On the surface, the rules are simple—Limber Up, Don’t Be a Hero, Travel Light, and Check the Backseat. When applied to automated testing, these rules provide you the tools you need to live a happy life in a world of uncertainty. Matt Barbour shares how you can adapt the rules from the movie Zombieland to make your end-to-end tests highly efficient and provide meaningful business value—all while reducing the amount of overhead needed to maintain them.
Deep dive into Apex Testing including an Intro, Types of Tests, Testing Async code, Testing external callouts, and using the Apex Replay Debugger to fix failed tests
Everybody has something about streams on the Scala platform: iteratee, scalaz.streams, reactive streams, akka.io, and so on.
But are they useful for the day to day developer job? Are they only for database drivers? What are the differences between all this technologies?
You will understand what are streams, why you need them and how to use them in real world scenarios
The scale-up, the autonomy and the nuclear submarineThomas Pierrain
Talk made at DDD Europe, June 9th 2023 (Amsterdam).
Most efficient organizations have autonomous staff as a common ground. Autonomy is a powerful individual driver : who doesn’t love to feel free to define their life, their time and their way of working? When working in a booming and thriving scale-up, autonomy is no longer an option. It is an essential fuel. But is it easy to put in motion?
Through our stories, successes and mistakes, we would like to share with you about this quest for autonomy. We will mainly talk about full-remote, release management, SRE approach, team conflicts and Domain Driven Design. We will also address self-organization, monolith splitting APIS, contracts tests and nuclear submarines.
In the end, lots of tips and tricks to manage to set up a Culture of autonomy that holds up over the long term. In a nutshell: how to prevent your quest for teams’ autonomy from turning into chaos…
Hexagonal architecture (a.k.a. Ports and Adapters) is a fabulous pattern that has more advantages than the ones for which it has been originally created.
One can think in an orthodox vision that patterns do not evolve. That it is important to keep Alistair Cockburn’s pattern like it was described back in the days.
One can think that some patterns may evolve, that Hexagonal Architecture has more facets than we think. This session will present both the original pattern in detail, and some alternative versions (related to Domain Driven Design).
Session made at Socrates Soltau 2022
https://www.socrates-conference.de/foundations
More Related Content
Similar to Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD
Lessons Learned in Test Automation From ZombielandMatt Barbour
This presentation will tell you how to apply the rules for surviving the zombie apocalypse to surviving your own zombie apocalypse - end to end testing on real devices.
https://www.youtube.com/watch?v=9IShc6tfj2E
Building tools to free up exploratory testers - appium conference talkPradeep Soundararajan
I have been a functional exploratory tester. I was motivated to move out of exploratory testing and go into automation. Thankfully, someone pulled me aside and told me - I am more suited to be a functional exploratory tester and I am business savvy. I didn't shy away from code. I worked closely with developers, my testing approach involved reading code (didn't write any) and brought in value to developers and to the business. I grew up as a tester being coached by experts, reading blogs from experts and learning that automation will help exploratory testers do more.
In my wait - I found very little effort that has gone in direction. I partnered with developers to be building some products.
I failed multiple times but here are my failed attempts
1. Tool for Social Media Driven Testing for Testers
2. Tool for mapping the heuristics and oracles to test ideas
3. A checklist tool for testing mobile apps and scoring on quality for start-ups
I would like to share
- The thinking behind building these tools and their value
- How purely focusing only on automation is taking away the possibility of building tools
- How I would love the community to start building tools
- How I can help and how they can help me
Massive Continuous Integration and Light-speed IterationsTechWell
Continuous integration (CI) has become a buzzword, with most engineering organizations claiming they've adopted the practice. However, the sad truth is that unreliable tests, long feedback loops, and poor configuration management block their efforts and minimize CI's potential benefits. Jesse Dowdle shares how AtTask radically redesigned its engineering pipeline and, through massive CI scaling, drove three days of testing to just minutes. Learn the pros and cons of different CI systems and how to integrate them with the cloud. Watch a live demo of AtTask's internal test and CI systems, which they’ve designed to make "Every commit a potential release candidate"-meaning that every commit is an iteration. Arm yourself with the talking points to sell massive CI to executives. Learn how, by leveraging publicly available tools, you can deliver hyper-scalability to your continuous integration framework and drive cycle time, defect counts, and technical debt to new lows.
How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeterAlon Girmonsky
In Future Stack 2014, I'll present how to create, run and analyze a load test of 1M concurrent users. Here are the slides.
BlazeMeter is a performance lab in a box, ready to run load of up to 1M users against your mobile, web or API, from Multi GEO locations, 100% compatible with Apache JMeter.
"Today it's crystal clear why we need unit tests. Even integration and acceptance tests are quite common but who is making sure that your pages are working in production environment? I'd like to show in detail how smoke tests will help achieving this goal and why you should try to burn down your production server."
This is a hands-on talk about how we use excessive smoke tests in our continuous deployment to make sure a freshly rolled-out release can actually go live.
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...QASymphony
Learn about the new partnership between QASymphony and TestPlant. TestPlant’s functional automation tool, eggPlant, will be integrated with QASymphony’s qTest platform, providing a seamless solution for automated and manual testers. This partnership will help testing teams of all types get the visibility and traceability needed to understand their coverage and risk. In this webinar, Kevin Dunne, QASymphony's VP of Strategy and Business Development and Antony Edwards, TestPlant's CTO will answer the following questions:
What is qTest?
What is eggPlant?
How does the integration between qTest and eggPlant work?
How will the integration help me and/or my team?
End-to-End Automated Testing: Lessons from ZombielandJosiah Renaudin
With the proliferation of mobile devices, browsers, and IoT devices, each with its own eccentricities, performing end-to-end automated testing is starting to feel like navigating a zombie apocalypse. You need to fight off the zombies but lack the right tools. You need a set of rules to live by. You wish you had a buddy who would teach you all those rules because alone, you feel like you’re being eaten alive. On the surface, the rules are simple—Limber Up, Don’t Be a Hero, Travel Light, and Check the Backseat. When applied to automated testing, these rules provide you the tools you need to live a happy life in a world of uncertainty. Matt Barbour shares how you can adapt the rules from the movie Zombieland to make your end-to-end tests highly efficient and provide meaningful business value—all while reducing the amount of overhead needed to maintain them.
Deep dive into Apex Testing including an Intro, Types of Tests, Testing Async code, Testing external callouts, and using the Apex Replay Debugger to fix failed tests
Everybody has something about streams on the Scala platform: iteratee, scalaz.streams, reactive streams, akka.io, and so on.
But are they useful for the day to day developer job? Are they only for database drivers? What are the differences between all this technologies?
You will understand what are streams, why you need them and how to use them in real world scenarios
The scale-up, the autonomy and the nuclear submarineThomas Pierrain
Talk made at DDD Europe, June 9th 2023 (Amsterdam).
Most efficient organizations have autonomous staff as a common ground. Autonomy is a powerful individual driver : who doesn’t love to feel free to define their life, their time and their way of working? When working in a booming and thriving scale-up, autonomy is no longer an option. It is an essential fuel. But is it easy to put in motion?
Through our stories, successes and mistakes, we would like to share with you about this quest for autonomy. We will mainly talk about full-remote, release management, SRE approach, team conflicts and Domain Driven Design. We will also address self-organization, monolith splitting APIS, contracts tests and nuclear submarines.
In the end, lots of tips and tricks to manage to set up a Culture of autonomy that holds up over the long term. In a nutshell: how to prevent your quest for teams’ autonomy from turning into chaos…
Hexagonal architecture (a.k.a. Ports and Adapters) is a fabulous pattern that has more advantages than the ones for which it has been originally created.
One can think in an orthodox vision that patterns do not evolve. That it is important to keep Alistair Cockburn’s pattern like it was described back in the days.
One can think that some patterns may evolve, that Hexagonal Architecture has more facets than we think. This session will present both the original pattern in detail, and some alternative versions (related to Domain Driven Design).
Session made at Socrates Soltau 2022
https://www.socrates-conference.de/foundations
La scale-up, l'autonomie et le sous-marin nucléaireThomas Pierrain
La plupart des organisations efficaces ont en commun d’avoir des équipes autonomes. L’autonomie est aussi un moteur individuel puissant : qui n’aime pas se sentir libre de définir sa vie, ses horaires, sa façon de travailler ?
Lorsqu’on travaille dans une scale-up en plein essor et qui grossit de manière exponentielle, l’autonomie n’est plus une option, c’est un carburant indispensable.
Mais est-ce pour autant facile à mettre en oeuvre ?
C’est de cette quête d’autonomie dont nous aimerions vous parler à travers nos histoires, nos réussites et nos erreurs. Nous parlerons de full-remote, de release management, de démarche SRE, de conflits d’équipes et de Domain Driven Design.
On parlera aussi d’auto-organisation, d’APIs de split de monolithe, mais également de sous-marins nucléaires et de contract tests.
Au final, pleins de trucs et astuces pour arriver à mettre en place une Culture de l’autonomie qui tienne la route sur le long terme.
Au-delà de la passion, faire du logiciel pour moi c’est aider les autres à résoudre leurs problèmes. Comment aider les autres si on n’est pas déjà clair soi-même avec sa posture, son métier, ses envies, ses ambitions ou bien ses craintes ? C’est la question que je me suis posé à plusieurs reprises durant ma carrière. Et c’est de cela - et des quelques aides trouvées en route - dont je voudrais vous parler.
Keynote d'ouverture de la conférence d'Alpes Craft 2019 (le 13 juin 2019)
When building an Event Sourcing system, can we change the past? Can we also forecast “events” in the future?
If we want to provide various projections/visions of things that hapenned over the time, what are the consequences and trade-offs on our code?
All these questions will be answered during this talk. But moreover, I'll tell you our learning story about Bi-temporal Event Sourcing. Yet another illustration of the power of modeling, sketches and concrete examples when we need to understand each others.
Coder, c'est de plus en plus façonner le monde. Redéfinir ses contours et certaines interactions que nous pouvons avoir (ou pas) entre nous.
Si certains métiers se sont déjà interrogés par le passé sur leur rôle et leur impact sur la société, il me semble que ces questions d'éthique ne nous traversent pas encore suffisamment dans la sphère des faiseuses et faiseurs de logiciels.
Et si on se posait quelques minutes pour faire le tour de certaines d'entre elles ?
Unmaintainable code, repetitive bugs, time-consuming corrections, depressed teams ... No wonder most of us prefer to start projects from scratch (a.k.a. Greenfield) rather than a Legacy code base (Brownfield). For sure, situations where control has been lost are annoying, even more: exhausting. But what if we were wrong? What if -fully equipped with some refactoring techniques and communication skills- we were able to reverse things and get back control over such situations?
During a session with real live-coding inside, come and discover the tips and tricks from people who prefer to regain control rather than undergo. From people who prefers the hidden opportunities of the legacy to the blank pages of the Greenfield projects. You too, realize it could be fun and join the Legacy Club!
Software Design ... a nice expression, uh? But what does it mean to "design a software"? What are the prerequisites? What are the pitfalls to avoid? As Software Designers we would like to highlight on what makes us build simple, useful and above all effective software. And of course, we will talk about Domain-Driven Design in that journey ;-)
Talk made at http://domain-driven-design.eu/the-art-of-design/
Decouvrir CQRS (sans Event sourcing) par la pratiqueThomas Pierrain
Introduction à CQRS présentée aux MS experiences 2016 (Palais des Congrès) par Thomas PIERRAIN, en compagnie de Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
Slides présentés avant un Event Storming géant organisé au MS experiences (Palais des Congrès) par Thomas PIERRAIN, Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
https://experiences.microsoft.fr/Event/session/atelier-1-decouvrir-son-sujet-grace-a-levent/2a6658ef-4074-e611-80c3-000d3a2229a6
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!
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Understanding Nidhi Software Pricing: A Quick Guide 🌟
Choosing the right software is vital for Nidhi companies to streamline operations. Our latest presentation covers Nidhi software pricing, key factors, costs, and negotiation tips.
📊 What You’ll Learn:
Key factors influencing Nidhi software price
Understanding the true cost beyond the initial price
Tips for negotiating the best deal
Affordable and customizable pricing options with Vector Nidhi Software
🔗 Learn more at: www.vectornidhisoftware.com/software-for-nidhi-company/
#NidhiSoftwarePrice #NidhiSoftware #VectorNidhi
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
2. Disclaimers
There is no silver bullet Your testing strategy & techniques must always be
chosen accordingly to your context (both human & technical)
As long as you understand your trade-offs there is no reason not to
explore new paths…
Thanks to Kent Beck, Martin Fowler, Michael Feathers, Nat Pryce & Steve Freeman for their great source of
inspiration over the years #shouldersOfGiants
4. BFF API
Booking
API
E-commerce
CRS API
Central
Reservation
U
d
PSP
API
Payment
U
d
• THOMAS PIERRAIN
(@TPIERRAIN)
Metasearch
API
Distribution
U
d
Resorts
Referential
CMS
API
Property
Management
System (PMS)
Stay
U
d
U
d
Rates &
Cancellation rules
API
Revenue Mgmt
U
d
U
d
Hospitality
U
d
Accounts
API
Loyalty
API
Marketing
DDD
LOVES…
(Contextualized)
Services
7. • THOMAS PIERRAIN
(@TPIERRAIN)
DDD (& TDD)
ALSO
LOVE… DOMAIN
HTTP INFRASTRUCTURE
OUR WEB API
Ports &
Adapters
Easy to test
Protect Domain code from
Infra fads
Quick feedback
(carpaccio-style slicing)
Allow late
architectural decisions
Composable:
modular-monolith ready HTTP
API
11. • THOMAS PIERRAIN
(@TPIERRAIN)
Different
Types
A WORLD
OF TESTS
ET Exploratory Tests (E2E)
IT Integration Tests (Contract)
AT
(coarse-grained unit)
Acceptance Tests
UT (fine-grained) Unit Tests
43. • THOMAS PIERRAIN
(@TPIERRAIN)
UT
UT
AT
UT
UT
UT
UT
AT
😕
😕 😕
😕
😕
uses
API
TEST
DRIVEN
DEVELOP
MENT
Fragile tests
MITIGATIONS
• Do not test “implementations”
• Focus on external behaviours
instead (with Outside-in TDD)
• Favor (coarse-grained unit)
Acceptance tests over fine-
grained unit tests
A
P
…
…
51. • THOMAS PIERRAIN
(@TPIERRAIN)
TEST
DRIVEN
DEVELOP
MENT
2.
Beware of…
Blind Spots
As DEV we don’t write
enough integration tests
Because they are slow to
run & boring
➔ BUGS
IT
IT
IT
IT
HTTP
API
CONTRACT TESTS
DOMAIN
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
100% covered
by Acceptance
Tests
As DEV we
to write Domain-
Driven tests
52. As DEV we don’t write
enough integration tests
Because they are slow to
run & boring
➔ BUGS
IT
IT
IT
IT
HTTP
API
CONTRACT TESTS
DOMAIN
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
100% covered
by Acceptance
Tests
As DEV we
to write Domain-
Driven tests
• THOMAS PIERRAIN
(@TPIERRAIN)
TEST
DRIVEN
DEVELOP
MENT
Blind Spots
MITIGATIONS
• Detect bugs in Adapters
via our beloved Acceptance
tests
• Include the Adapters code
and stub only the I/Os
BUGS
57. • THOMAS PIERRAIN
(@TPIERRAIN)
Test Suite for Rooms Availability
TEST
DRIVEN
DEVELOP
MENT
3.
Beware of…
Complex
setups
Tests using initialized fields
➔ side effects nightmare
58. • THOMAS PIERRAIN
(@TPIERRAIN)
MITIGATIONS
• Avoid cognitive overload as much as
possible
The power of sameness
• Favor local variables over test suite
members
Everything should be created from the test
• Use Domain-Driven Builders to shorten
and explicit the Arrange section of your
tests
• Treat your test code as production code!
➔ merciless refactoring
TEST
DRIVEN
DEVELOP
MENT
3.
Beware of…
Complex
setups
84. OUTSIDE-IN
DIAMOND
“One line” to hide our
technical assertions
towards DTOs etc.
“One line” to reuse the same
check intention, but with
various adapters
95. Outside-in Diamond TDD
• Elaborated from & for the people
• Write fast & Antifragile tests
( refactoring )
• DDD but covers more blind spots
on the tech side
96. Outside-in Diamond TDD
• Elaborated from & for the people
• Write fast & Antifragile tests
( refactoring )
• DDD but covers more blind spots
on the tech side
98. BINARY IS FOR MACHINE
CODE IS FOR PEOPLE
WE CARE PEOPLE
Special thanks to: Bruno BOUCARD, Cyrille DUPUYDAUBY & Rui CARVALHO for their kind reviews & feedbacks