Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group (17th May '23)
Join this session to see the benefits of Test-Driven Development (TDD), and understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests. We will go over some history about TDD and list the main advantages and disadvantages that most developers who practice it find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD by seeing how to do it step by step with an example of a "live" coding session with Java. At the end of the session, you will have a wider understanding of TDD and why it's interesting to master it. Also, you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code.
---
Presentation shared at Bucharest Tech Week '23
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Opensouthcode (9th June '23)
TDD - Seriously, try it - Codemotion (May '24)Nacho Cougil
Ever wondered about the wonders of Test-Driven Development (TDD)? Curious devs, this session is for you!
Get ready to dive into TDD and explore its benefits. We'll see the "secrets" behind TDD, its roots, and the rules surrounding it. But that's not all! We'll also uncover the ups and downs of TDD, plus we'll share some tips and tricks... including a live coding session in Java. Get ready to level up your development skills with TDD – more insights, more advantages, and more confidence in your coding adventures!
PS: Building tests before production code can sound more fun than it sounds 😉.
---
Presentation shared at Codemotion Madrid '24
Feedback form:
https://bit.ly/tdd-seriously-try-it-feedback
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
SharePoint gives us a great platform for developing sophisticated intranet portals and collaboration sites and many other workloads. But it can also be a challenge to use modern software development frameworks like Scrum and XP. Wouldn’t it be great if we could get all the benefits of Agile practices – faster development, predictable deliveries, better quality, less stress and happy stakeholders? In this session we will cover the definitions of Lean, Agile, Scrum, Kanban, XP, and TDD. Then we will look at the specific challenges around Agile SharePoint development and some development techniques to overcome these obstacles. This talk covers both project delivery and engineering. We’ll look at unit tests, integration tests, UI tests, continuous integration and, of course, test-driven development (TDD) with practical experiences from real-life Agile SharePoint projects.
Join this session to see the benefits of Test-Driven Development (TDD), and understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests. We will go over some history about TDD and list the main advantages and disadvantages that most developers who practice it find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD by seeing how to do it step by step with an example of a "live" coding session with Java. At the end of the session, you will have a wider understanding of TDD and why it's interesting to master it. Also, you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code.
---
Presentation shared at Bucharest Tech Week '23
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Opensouthcode (9th June '23)
TDD - Seriously, try it - Codemotion (May '24)Nacho Cougil
Ever wondered about the wonders of Test-Driven Development (TDD)? Curious devs, this session is for you!
Get ready to dive into TDD and explore its benefits. We'll see the "secrets" behind TDD, its roots, and the rules surrounding it. But that's not all! We'll also uncover the ups and downs of TDD, plus we'll share some tips and tricks... including a live coding session in Java. Get ready to level up your development skills with TDD – more insights, more advantages, and more confidence in your coding adventures!
PS: Building tests before production code can sound more fun than it sounds 😉.
---
Presentation shared at Codemotion Madrid '24
Feedback form:
https://bit.ly/tdd-seriously-try-it-feedback
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
SharePoint gives us a great platform for developing sophisticated intranet portals and collaboration sites and many other workloads. But it can also be a challenge to use modern software development frameworks like Scrum and XP. Wouldn’t it be great if we could get all the benefits of Agile practices – faster development, predictable deliveries, better quality, less stress and happy stakeholders? In this session we will cover the definitions of Lean, Agile, Scrum, Kanban, XP, and TDD. Then we will look at the specific challenges around Agile SharePoint development and some development techniques to overcome these obstacles. This talk covers both project delivery and engineering. We’ll look at unit tests, integration tests, UI tests, continuous integration and, of course, test-driven development (TDD) with practical experiences from real-life Agile SharePoint projects.
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
Dr. Fahim Arif who is the Director R&D at MCS, principal investigator and GHQ authorized consultant for Nexsource Pak (Pvt) Ltd) discussed the capability of building cyber defense in the Data Protection and Cyber Security event that was hosted recently by Maven Logix. In his session he gave the audience valuable information about the life cycle of a cyber-threat discussing what and how to take measures by performing formal code reviews, code inspections. He discussed essential elements of code review, paired programming and alternatives to treat and tackle cyber-threat
In his recent book, Clean Agile, Robert C "Uncle Bob" Martin chooses Extreme Programming (XP) for the basis of his explanation of Agile because "of all the Agile processes, XP is the best defined, the most complete, and the least muddled."
So why is it that in my professional life I only hear us speaking about Agile in terms of Scrum, Sprints, and possibly Kanban? Often I mention XP and people are not sure what I mean. Am I sure myself?
Coined in 1999 by Kent Beck and Ward Cunningham, XP has been with us for twenty years, but may of its practices have been with us for much longer. Many of them will be familar to you, but did you know they came from XP?
This talk aims to take us back to what XP is, how it fits in the Agile world, how it sits alongside other methodologies, and why, like Uncle Bob, I believe it is the best defined methodology, and what we should all be talking about.
The talk is based on a heavily refactored talk that Mike gave previously at Agile on the Beach conference, updated for 2020.
Given at Ox:Agile Meetup on February 11th 2020: https://www.meetup.com/OXAGILE/events/nxrdmrybcdbpb/
What a DevOps specialist has to know about static code analysisAndrey Karpov
Reasons of failed introductions.
Place of static analysis in the DevOps process.
Static analysis – friend or foe.
Notifications about analysis results.
What to do with 10 000 analyzer warnings after the first run?
How much time is needed for fixing all bugs?
Q&A or what’s next?
Sharpest tool in the box: Choosing the right authoring tool for your learning...Brightwave Group
From rapid and responsive, to video and cross-browser capability we, as learning professionals, demand great things from the authoring tools available to us. And there are many to choose from.
This session explored the key factors we recommend you consider when choosing an authoring tool. These vary according to environment and culture, to the needs of your learners and the objectives of the learning. Choosing the right authoring tool and ensuring it is based on your needs ensures your learning content is not simply fit for purpose, but meets the aims of your wider learning strategy. With plenty of examples from real courses and solutions, the session covered a list of questions you need to ask, and provided a framework to help guide you through the tool-selection process.
● Great expectations - why the right authoring tool is the foundation of quality learning content.
● Key considerations - the right questions to evaluate the range of tools and make the right decision.
● The future - what can we expect from the next generation of authoring tools?
This presentation was delivered by Konathan Archibald and Nick Eastha, on Thursday 29th January at Learning Technologuies 2015 exhibition
We’re all doing Agile nowadays, aren’t we? We’ll all delivering software in an Agile way. But what does that mean? Does it mean sprints and stand-ups? Kanban even? But what about Extreme Programming? If as a development team we’re not using pair programming, test driven development, continuous integration, and other XP practices, then we’re not really doing Agile software development and we may be on a march to frustration, or even failure.
I’m going to look at why the current trend of companies and projects adopting Scrum, calling themselves Agile, but not transitioning their development to XP, is a recipe for disaster. I’d like to cover the main practices of XP as well as other good practices that can really help a team deliver quality software, whether they’re doing two-week sprints, Kanban, or even Waterfall.
https://www.youtube.com/watch?v=aZgnY9fAHOA
Learn about the benefits of writing unit tests. You will spend less time fixing bugs and you will get a better design for your software. Some of the questions answered are:
Why should I, as a developer, write tests?
How can I improve the software design by writing tests?
How can I save time, by spending time writing tests?
When should I write unit tests and when should I write system tests?
Refactor your code: when, why and how (revisited)Nacho Cougil
Have you always heard about refactor and it always sounded like a foreign language to you? Have you tried to change code several times but found it impossible to make such changes in several projects? Do you feel overwhelmed when working with legacy code?
Let's see the benefits of refactoring your code and see some tips on how to do it safely!
We will start talking about what is legacy code, what we understand about refactoring and why it is so important nowadays when in most cases we work with software that others have written. Later we will share when we should start thinking on refactoring code and next we will see some recommended techniques to work with legacy code, which will even help us to know where to start and how. And finally, we will see in a live coding session some of the most important and useful refactoring techniques we could apply in our day-to-day job
At the end of this session, I hope you may have learned some tips on how to work with legacy code and how to apply certain techniques to make your day to day more enjoyable ;-)
===
* Presentation shared at Jconf Mexico (October 3rd, 2020) - https://convoca.dev/jconf-mexico-2020/talk/FMDT8Z/ and revisited and updated for sharing at JConf Centro América (December 5th, 2020) https://hopin.to/events/jconf-centroamerica-2020
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
In this presentation we will see the benefits of Test-Driven Development (TDD), understand how it works and what the benefits are of using it. We will see in a more detailed approach this way of developing software, where our software is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of "live" coding session with Java.
At the end of the session, we hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
More Related Content
Similar to TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
Dr. Fahim Arif who is the Director R&D at MCS, principal investigator and GHQ authorized consultant for Nexsource Pak (Pvt) Ltd) discussed the capability of building cyber defense in the Data Protection and Cyber Security event that was hosted recently by Maven Logix. In his session he gave the audience valuable information about the life cycle of a cyber-threat discussing what and how to take measures by performing formal code reviews, code inspections. He discussed essential elements of code review, paired programming and alternatives to treat and tackle cyber-threat
In his recent book, Clean Agile, Robert C "Uncle Bob" Martin chooses Extreme Programming (XP) for the basis of his explanation of Agile because "of all the Agile processes, XP is the best defined, the most complete, and the least muddled."
So why is it that in my professional life I only hear us speaking about Agile in terms of Scrum, Sprints, and possibly Kanban? Often I mention XP and people are not sure what I mean. Am I sure myself?
Coined in 1999 by Kent Beck and Ward Cunningham, XP has been with us for twenty years, but may of its practices have been with us for much longer. Many of them will be familar to you, but did you know they came from XP?
This talk aims to take us back to what XP is, how it fits in the Agile world, how it sits alongside other methodologies, and why, like Uncle Bob, I believe it is the best defined methodology, and what we should all be talking about.
The talk is based on a heavily refactored talk that Mike gave previously at Agile on the Beach conference, updated for 2020.
Given at Ox:Agile Meetup on February 11th 2020: https://www.meetup.com/OXAGILE/events/nxrdmrybcdbpb/
What a DevOps specialist has to know about static code analysisAndrey Karpov
Reasons of failed introductions.
Place of static analysis in the DevOps process.
Static analysis – friend or foe.
Notifications about analysis results.
What to do with 10 000 analyzer warnings after the first run?
How much time is needed for fixing all bugs?
Q&A or what’s next?
Sharpest tool in the box: Choosing the right authoring tool for your learning...Brightwave Group
From rapid and responsive, to video and cross-browser capability we, as learning professionals, demand great things from the authoring tools available to us. And there are many to choose from.
This session explored the key factors we recommend you consider when choosing an authoring tool. These vary according to environment and culture, to the needs of your learners and the objectives of the learning. Choosing the right authoring tool and ensuring it is based on your needs ensures your learning content is not simply fit for purpose, but meets the aims of your wider learning strategy. With plenty of examples from real courses and solutions, the session covered a list of questions you need to ask, and provided a framework to help guide you through the tool-selection process.
● Great expectations - why the right authoring tool is the foundation of quality learning content.
● Key considerations - the right questions to evaluate the range of tools and make the right decision.
● The future - what can we expect from the next generation of authoring tools?
This presentation was delivered by Konathan Archibald and Nick Eastha, on Thursday 29th January at Learning Technologuies 2015 exhibition
We’re all doing Agile nowadays, aren’t we? We’ll all delivering software in an Agile way. But what does that mean? Does it mean sprints and stand-ups? Kanban even? But what about Extreme Programming? If as a development team we’re not using pair programming, test driven development, continuous integration, and other XP practices, then we’re not really doing Agile software development and we may be on a march to frustration, or even failure.
I’m going to look at why the current trend of companies and projects adopting Scrum, calling themselves Agile, but not transitioning their development to XP, is a recipe for disaster. I’d like to cover the main practices of XP as well as other good practices that can really help a team deliver quality software, whether they’re doing two-week sprints, Kanban, or even Waterfall.
https://www.youtube.com/watch?v=aZgnY9fAHOA
Learn about the benefits of writing unit tests. You will spend less time fixing bugs and you will get a better design for your software. Some of the questions answered are:
Why should I, as a developer, write tests?
How can I improve the software design by writing tests?
How can I save time, by spending time writing tests?
When should I write unit tests and when should I write system tests?
Refactor your code: when, why and how (revisited)Nacho Cougil
Have you always heard about refactor and it always sounded like a foreign language to you? Have you tried to change code several times but found it impossible to make such changes in several projects? Do you feel overwhelmed when working with legacy code?
Let's see the benefits of refactoring your code and see some tips on how to do it safely!
We will start talking about what is legacy code, what we understand about refactoring and why it is so important nowadays when in most cases we work with software that others have written. Later we will share when we should start thinking on refactoring code and next we will see some recommended techniques to work with legacy code, which will even help us to know where to start and how. And finally, we will see in a live coding session some of the most important and useful refactoring techniques we could apply in our day-to-day job
At the end of this session, I hope you may have learned some tips on how to work with legacy code and how to apply certain techniques to make your day to day more enjoyable ;-)
===
* Presentation shared at Jconf Mexico (October 3rd, 2020) - https://convoca.dev/jconf-mexico-2020/talk/FMDT8Z/ and revisited and updated for sharing at JConf Centro América (December 5th, 2020) https://hopin.to/events/jconf-centroamerica-2020
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
In this presentation we will see the benefits of Test-Driven Development (TDD), understand how it works and what the benefits are of using it. We will see in a more detailed approach this way of developing software, where our software is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of "live" coding session with Java.
At the end of the session, we hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
Refactor your code: when, why and how?Nacho Cougil
Have you always heard about refactor and it always sounded like a foreign language to you? Have you tried to change code several times but found it impossible to make such changes in several projects? Do you feel overwhelmed when working with legacy code?
Let's see the benefits of refactoring your code and see some tips on how to do it safely!
We will start talking about what is legacy code, what we understand about refactoring and why it is so important nowadays when in most cases we work with software that others have written. Later we will share when we should start thinking on refactoring code. Finally, we will see in a live coding session some of the most important and useful refactoring techniques we could apply in our day-to-day job.
At the end of this session, I hope you may have learned some tips on how to work with legacy code and how to apply certain techniques to make your day to day more enjoyable ;-)
===
* Presentation shared at Jconf Mexico on October 3rd, 2020:
https://convoca.dev/jconf-mexico-2020/talk/FMDT8Z/
In this presentation, we will see the benefits of Test-Driven Development (TDD) and we will see how to get started with. It is a simple introduction of this way of developing software, where our software is being developed guided by tests
We will see a bit of history around TDD, what is the main process that we may follow when working with TDD and the rules around it. Of course, we will also review some good habits and practices when applying TDD and see how to do it step by step with a simple Java example
At the end of session, you will have a wider understanding about what is TDD and why it is interesting to master it and you will see some tips and valuable good practices.
Also we will have time to work *by pairs* and write code while having fun playing some katas! Get ready with your favourite IDE/editor to write code and unit tests with our favourite language
===
* Presentation shared at the Barcelona Java Users Group on July 9, 2020:
https://www.barcelonajug.org/2020/06/introduction-to-test-driven-development.html
In this presentation we will know the history of the Barcelona Java Users Group ( BarcelonaJUG ) community, how we started and how we arrived until nowadays, with the organization of the first Java Barcelona Conference ( JBCNConf ) with a live & vibrant community with more than 500 developers. You will know how many difficulties we have found along the way running the community and how we have tried to solve them.
Be clean, my friend (Clean code review by BarcelonaJUG)Nacho Cougil
BE CLEAN, MY FRIEND
A modest review of Robert C. Martin “Clean Code, A handbook of Agile Craftmanship” book.
11/10/13 @GDGBarcelona #devfestbcn with @pensashure
Presentation about our application developed to see how to play with push notifications between an AppEngine application and Android devices.
The system sends information to the Android clients about issues related with public transport services provided by the Government of Catalonia in its project related with the Open Data efforts.
Seghismed - Disseny i desenvolupament d'un esquema criptogràfic per gestionar...Nacho Cougil
Presentation of Final Project in my studies in computer engineering at the UOC.
Presentació del Projecte Final de Carrera dels meus estudis d'Enginyeria en Informàtica a la UOC.
Presentación del Proyecto Final de Carrera de mis estudios de Ingeniería en Informática en la UOC.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
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.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
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
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.
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.
3. • Review the basics around TDD
• Understand the benefits of
building code designed by tests
VS
building the tests after we write
our code
• (I hope) learn some tips
• See a { live coding } example
• … so do not run away, please!
😉
Why this session?
4. Nacho Cougil
• Principal Software Engineer at
Dynatrace
• TDD & clean code fan
• Started to write in Java before Y2K
• Founder of the Barcelona Java Users
Group ( BarcelonaJUG ) & co-
founder of the Java and JVM
Barcelona Conference
( JBCNConf DevBcn )
• Java Champion
• Father, former mountain marathon
runner 😅
Who am I?
7. • Where it cames from?
• Advantages &
disadvantages
• Process
• Good habits
• Example
• Final Recap
Agenda
8. • Where it cames from?
• Advantages &
disadvantages
• Process
• Good habits
• Example
• Final Recap
Agenda
9. Kent Beck “rediscovered” TDD
when writing first testing
framework SUnit in 1994.
TDD became part of eXtreme
Programming (XP) book in
2000. Developed XP during his
work at Chrysler
The book Test-Driven
Development by Example was
published in 2002
A bit of history
10. Mockist (London)
• Entry point: acceptance test
• Design from top down
• Main focus on the
interactions between the
components of our solution
• Focus on messages we will
use with our classes. Here is
where mock objects appear
Classical (Chicago)
• Described by Kent Beck
• More emphasis on “discovering” the
internals of our code mainly by
refactoring
• The structure of our classes and
modules emerges as we evolve our
code (ex: removing duplication,
encapsulation, etc)
• Focused on changes in an state or
return values from functions
Two TDD
schools
11.
12. … you follow a simple process ⚙️
that helps you to design and
develop your software in a
straightforward way
… you can find defects earlier ⏱
(when running or designing your
tests)
… you can easily detect
regression errors 🔴
… your software is going to be
easier to refactor because of a
safety net ✅
Imagine…
13. ... your software guides you how a
consumer will use your component ⏛
… tests are living documentation (really
🖖 !!)
… the software you write it is likely to
have less bugs 🐛
… your development costs 💰 will be
lower
References:
- Test-driven development as a defect-reduction practice
(IEEE)
Imagine…
14. It is not so easy to start with 😅
(not many good places to help, majority
of people are not using it daily)
Has a high learning curve 😟
(depends directly on the complexity of
your code + your design and
engineering capabilities)
Can be a large investment 💸 in a
team (depending on the experience of
the members + requires time ⏱ & effort
🙇♀️🙇♂️)
Yes, TDD has some disadvantages
15. It is really easy to forget 😓 about it
It provokes resistance ☹️ (in some
people ⚔️)
Can be corrupted and lead to the
syndrome of reaching the highest
possible level of coverage 🙈
It is extremely difficult 😤 to master at it
Yes, TDD has some disadvantages
16.
17. You learned how to write code time
ago,…
…and now you’d may learn a different
way of writing software. Like “learning
to ride a very different bike”,... but being
So, … how it is?
18. To be used in your design &
coding process , for
building better modularized
and tested software
And, what does it
seek?
19. • Where it cames from?
• Advantages &
disadvantages
• Process
• Good habits
• Example
• Final Recap
Agenda
21. • Where it cames from?
• Advantages &
disadvantages
• Process
• Good habits
• Example
• Final Recap
Agenda
22. Start little by little: katas, POCs,
personal projects, ...
Practice...
• ... and keep practicing
• ... and keep on
• ... until you finally internalise it ⏱♀️😉
Practice with somebody else
( pair-programming )
Keep learning: online content, books,
...
Learn and practice
23. An Extreme Programming (XP)
Practice in which 2 developers participate
in one development effort at one
workstation.
One, the driver, writes code while the
other, the navigator or observer,
reviews the code as it is typed in. The 2
engineers switch roles frequently.
While reviewing, the observer also
considers the "strategic" direction of the
work, coming up with ideas for
Pair programming
24. Martin Fowler (concepts)
• https://www.martinfowler.com/bliki/TestDouble.html
• https://martinfowler.com/articles/mocksArentStubs.h
tml
• https://martinfowler.com/articles/practical-test-
pyramid.html
Dave Farley (CI, TDD, etc)
• https://www.youtube.com/ContinuousDelivery/
James Shore (TDD series)
• https://www.youtube.com/jdlshore/
Jason Gorman (Java Code Craft)
• https://www.youtube.com/parlezuml/
Recommended
content
25. Before you write production code,
check 👀 that your test is failing 🔴
Each test has only 1 reason to fail
Write the assertion first
Technical good habits
26. Tests naming convention
Describe the
expected
behaviour, not
the internals.
Our tests
should
describe
behaviour in
plain english
Ending the class name
with Should will “force “
you to start describing
an action for every test
you may create
27. Our tests methods will only describe
behavior. Therefore, we will have a
better understanding on what this class
does
Our tests will be more clear
If some tests fails, we can have a look
and see easily which case is failing
We don’t need to get into details on
any test to understand what are they
pursuing
The result will be focused on the
business
28. Test creation order
1) Name the
class
2) Name
the method
3) Define what you want to
check
4) Trigger the code
5) Do the setup
29. • Where it cames from?
• Advantages &
disadvantages
• Process
• Good habits
• Example
• Final Recap
Agenda
31. Requirements:
• Build a service that returns a list of films
that are associated with a particular genre
• By default, the result must be ordered
according to the average rating given to the
films by the users
• A film should contain at least an id, title a
year when it was published, one or more
tags and one or more genres
Example:
recommendationService.filmsByGenre(”science-
fiction”)
https://github.com/icougil/FilmRecommendationService
We have just started working in a startup
that sells and rents out films over the
Internet
Our product managers have told us that
they want to add new functionalities by
building a service that allows them to
recommend films to the users of the
current platform.
Kata: Film Recommendation Service
32. • Where it cames from?
• Advantages &
disadvantages
• Process
• Good habits
• Example
• Final Recap
Agenda
33. • TDD helps you to design & develop
your code in a simple and effective way
(better modular design) 👌
• It is difficult to adapt to its mechanics
and sometimes is difficult 😅 to maintain
its practice...
• It worth a try 😉 (your software will have
less bugs 🐛 & it will be easier to
maintain 💰)
• There are some tips 💡
( could make your life easier )
• Try to pair, it will help 😃 you ( a lot )
• Practice, practice & practice ⏱ again
Final Recap
“Take the input tape, manually type in the output tape you expect, then program until the actual output tape matches the expected output.”
VS create tests after…
IEEE = ai triple i
IEEE: case study at IBM 2003 – 40% fewer defects when using TDD
The art of fearless: increased effort and/or quality effect (from IEEE) -- good collection of articles and empirical studies on TDD both in private companies and in the academic world
- Forget : especially if you are not in an environment / team that does not encourage its use or you cannot experiment with it comfortably
- Having a high level of coverage is an indirect consequence of using/applying TDD
You have to kind of "break" your rules and think outside your comfort zone
Specify what you want to code to do
Create just enough code to satisfy the desired behaviour (just make it work!)
Clean your code and test / remove duplication / make it better
>>>> Focus on building tests 1st that will help us demonstrate the behaviour we want.
>>>> We will start writing tests and WE CAN’T WRITE VERY MUCH APART FORM A UNIT TEST. Tests are 1ST class citizens
>>>>> No overengineering, simple code, simple solution: MAKE THE TEST PASSS!!!
-> min 10-11'
This back-and-forth between test and code, driver and navigator, can offer better/richer feedback when building a system.
This is intended to free the driver to focus all of their attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.
GOOST >> TDD learn, understand & apply
TDD by example – basic intro, idealised situation…
The art of unit testing – easy to read
TDD a practical guide – some examples with GUI & real examples