This presentation explains WHY Test Driven Development matters and what are some of the infinite advantages of this great technique for programming a cleaner and higher quality code.
Basic overview of software test types, methodologies.
Explaining and reasons to test and common pitfalls with various testing methodologies.
Example scenarios for the viewer to think about test strategies.
Tips to avoid having to write tests in the first place.
Content created and presented by Nico Heidtke at the "Die Programmierer" meetup organized by Binary-Gears in Darmstadt, Germany at 02.07.2019.
TDD, the way to better software | Dan Ursu | CodeWay 2015YOPESO
Watch this presentation if you want to know what problems TDD (Test-Driven Development) solves for developers, project managers and the clients in charge of software products.
Watch the video here:
https://www.youtube.com/watch?v=bxk1i-PC-1Q
The code used for the demo:
https://github.com/yopeso/CodeWayTDDFearlessRefactor
Basic overview of software test types, methodologies.
Explaining and reasons to test and common pitfalls with various testing methodologies.
Example scenarios for the viewer to think about test strategies.
Tips to avoid having to write tests in the first place.
Content created and presented by Nico Heidtke at the "Die Programmierer" meetup organized by Binary-Gears in Darmstadt, Germany at 02.07.2019.
TDD, the way to better software | Dan Ursu | CodeWay 2015YOPESO
Watch this presentation if you want to know what problems TDD (Test-Driven Development) solves for developers, project managers and the clients in charge of software products.
Watch the video here:
https://www.youtube.com/watch?v=bxk1i-PC-1Q
The code used for the demo:
https://github.com/yopeso/CodeWayTDDFearlessRefactor
An amazing opportunity for all the coders to improve their TDD skills in a safe and thrilling environment. Our lab is a 3 hours intensive practice event, focusing on the practice of TDD, essential for software development and design, away from the pressures of ‘getting things done’.
Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018 Codemotion
A case study of how a medium sized company moved a legacy java code base to the cloud. Considerations around microservices architecture, containerization, tooling, quality management, git flows and more. Understand the challenges faced, decisions made along the way and the impact of each one.
Find out more presentations at https://madrid2018.codemotionworld.com/speakers/
Test Driven Development: More Development Than EverKiryl Baranoshnik
TDD has been around since 2002 but today still too many people out there have little understanding of what it actually is. This slide deck tries to help to understand that TDD is not a method to create tests but a truly genuine way to do programming and that programmers like no other benefit from the technique. Hopefully, this will lead more people to embracing it.
This presentation gives you the evidence as to why unit testing works and a process for how to bring it your team as soon as possible. There's a reason why the growth of unit testing, and automated unit testing in particular, has exploded over the past few years. It not only improves your code, it's faster than releasing code without tests. You'll learn: What, exactly, is a unit test?; The 7 reasons why managers love unit testing; and how to change mindset and processes to start unit testing now.
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)Igor Bronovskyy
Чи траплялася вам ситуація, коли на ретроспективі, ви домовилися що будете писати тести. І всі розуміють яку користь вони дадуть. Але й після цього тести пишуться дуже рідко.
Ця презентація є спробою знайти причини і роздумом на тему: “Які технічні знання, зміни в технічному і соціальному середовиці необхідні для покращення тестів”.
Юрій Чуловський
http://itevent.if.ua/lecture/chomu-programisti-ne-testuyut
Some of the things I learned during the last years from the GURU of the AGILE manifesto.
Be a Clean Coder from Robert C. Martin
Be a Pragmatic Programmer from Andrew Hunt
Be a extreme Programmer from Kent Beck
Understand the Continuous Delivery from Jez Humble and David Farley.
Thanks to Bruno Bossola , Marcello Todori and Mario Romano for the good chats about this topics.
Learn about problems of mature teams, about myths of pair programming and pair synergetic behaviors. How to implement pair programming in your company and how we did it in DaftCode.
Visual Studio tricks every dot net developer should knowDror Helper
Debugging is hard - this is a fact of life. Unfortunately, it’s never planned nor expected. It takes too much time, time we could have spent doing cool stuff - like developing new features for our customers.
But while there are many articles and productivity tools aimed at writing better code – faster, it seems as though it’s impossible to find resources that teach you how to effectively debug your code.
In this talk we’ll explore Visual Studio’s more powerful but lesser known debugging capabilities. We’ll also showcase OzCode and explain how it helps finding and fixing bugs faster.
Outside-in Testing in Vue with CypressJosh Justice
As apps grow, development tends to slow down due to fragile or difficult-to-understand code. Test-Driven Development can help! It can make your code simpler, easier to refactor, and quicker to ship. We’ll walk through a demonstration of using Cypress tests to drive your code for a higher-quality codebase.
An amazing opportunity for all the coders to improve their TDD skills in a safe and thrilling environment. Our lab is a 3 hours intensive practice event, focusing on the practice of TDD, essential for software development and design, away from the pressures of ‘getting things done’.
Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018 Codemotion
A case study of how a medium sized company moved a legacy java code base to the cloud. Considerations around microservices architecture, containerization, tooling, quality management, git flows and more. Understand the challenges faced, decisions made along the way and the impact of each one.
Find out more presentations at https://madrid2018.codemotionworld.com/speakers/
Test Driven Development: More Development Than EverKiryl Baranoshnik
TDD has been around since 2002 but today still too many people out there have little understanding of what it actually is. This slide deck tries to help to understand that TDD is not a method to create tests but a truly genuine way to do programming and that programmers like no other benefit from the technique. Hopefully, this will lead more people to embracing it.
This presentation gives you the evidence as to why unit testing works and a process for how to bring it your team as soon as possible. There's a reason why the growth of unit testing, and automated unit testing in particular, has exploded over the past few years. It not only improves your code, it's faster than releasing code without tests. You'll learn: What, exactly, is a unit test?; The 7 reasons why managers love unit testing; and how to change mindset and processes to start unit testing now.
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)Igor Bronovskyy
Чи траплялася вам ситуація, коли на ретроспективі, ви домовилися що будете писати тести. І всі розуміють яку користь вони дадуть. Але й після цього тести пишуться дуже рідко.
Ця презентація є спробою знайти причини і роздумом на тему: “Які технічні знання, зміни в технічному і соціальному середовиці необхідні для покращення тестів”.
Юрій Чуловський
http://itevent.if.ua/lecture/chomu-programisti-ne-testuyut
Some of the things I learned during the last years from the GURU of the AGILE manifesto.
Be a Clean Coder from Robert C. Martin
Be a Pragmatic Programmer from Andrew Hunt
Be a extreme Programmer from Kent Beck
Understand the Continuous Delivery from Jez Humble and David Farley.
Thanks to Bruno Bossola , Marcello Todori and Mario Romano for the good chats about this topics.
Learn about problems of mature teams, about myths of pair programming and pair synergetic behaviors. How to implement pair programming in your company and how we did it in DaftCode.
Visual Studio tricks every dot net developer should knowDror Helper
Debugging is hard - this is a fact of life. Unfortunately, it’s never planned nor expected. It takes too much time, time we could have spent doing cool stuff - like developing new features for our customers.
But while there are many articles and productivity tools aimed at writing better code – faster, it seems as though it’s impossible to find resources that teach you how to effectively debug your code.
In this talk we’ll explore Visual Studio’s more powerful but lesser known debugging capabilities. We’ll also showcase OzCode and explain how it helps finding and fixing bugs faster.
Outside-in Testing in Vue with CypressJosh Justice
As apps grow, development tends to slow down due to fragile or difficult-to-understand code. Test-Driven Development can help! It can make your code simpler, easier to refactor, and quicker to ship. We’ll walk through a demonstration of using Cypress tests to drive your code for a higher-quality codebase.
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)ssusercaf6c1
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
Public group 17th of May '23
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)Nacho Cougil
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)
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
Test Driven Development (TDD) is a core practice in the SDLC, especially ones that run using the agile mindset and leverage the practices of eXtreme programming. Since its inception and rediscovery by Kent beck in the late 1990s, it has gained popularity among many software development teams. However, like any popular software development practices, teams lose interest in TDD overtime and drop the practice all together. The main reason behind this is practicing it "the wrong way".
In this session, I present 7 anti-patterns that can ruin the TDD experience of a software development team. I also present how to counter these anti-patterns to fully leverage the benefits of TDD.
The original promise of TDD was that it would assist in guiding the development of clean code, but it often ends up polluting our architecture with excessive composition, is expensive to write, and becomes an obstacle to change, not an aid to refactoring. In this talk, we look at the fallacies of TDD and learn about the key principles that we should be following for mastery of this practice. This talk is intended for those who have been practicing TDD, or who have tried TDD and given up because of shortcomings in the approach they were taught.
Talk @Carmudi GmbH office on Unit testing basics and advanced concepts, like Arrange-Act-Assert rule, Unit Test anatomy, etc. In the end - a small overview of Test Driven Development.
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
Lightening Talk I gave at Inaka in April 2014.
I was in charge of investigating test-driven development for our iOS mobile team. Since I realized it was such a big concept, after having gathered enough information and having played with it enough, I decided to introduce my fellows on the topic by presenting it in a formal talk with slides. The aim was teaching them a different way of developing, which, for us, at that moment, was completely new and controversial.
Similar to TDD & Effective Software Development (20)
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
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.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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.
17.
Test-First programming.
Kent Beck used it in Chrysler C3 project
in 1996.
TDD in XP(eXtreme Programming)
practices.
the most important and useful approach
18.
19.
20. Enumerable
Select method in
Ruby!
• Invokes the block passing in
successive elements from
self, returning an array containing
those elements for which the block
returns a true value (equivalent to
Enumerable#select).
21. it “fetches green squares” do
green_square =
squares.select {|square| square.color ==
green}
green_square.color.should == green
end
22.
Tests tell the code
how to look like from
its user’s perspective
It is more a design
technique and tests
are great side-effects!
You feel the pain
first when it’s hard
to use!
23.
You are not allowed to write any
production code unless you have a failing
unit test and that production code is about
to make it pass.
You are not allowed to write any more of a
unit test than is sufficient to fail; and
compilation failures are failures.
You are not allowed to write any more
production code than is sufficient to pass
the one failing unit test.
24. Kent Beck defines:
Never write a single line of code unless
you have a failing automated test.
Eliminate Duplication(DRY, Don’t
Repeat Yourself)
25.
Red (Automated test fails)
Green (Automated test pass)
Refactor (eliminate
duplication, eliminate the mess, clean
the code)
Sushi Chef Metaphor
Red
Dirty Dishes of dinner
Green
Refactor
26. Start
Write a
test
See it fails
because there’s
no dev code
Run the Test
Write (just enough)
Dev Code to compile
See it fails
because no logic
is implemented
Run the Test
Write (just enough)
Dev Code to compile
See the
Test pass
Run the Test
Refactoring
27. •
Knowing about execution of system all the
times.
•
Short cycles (even 10 minutes is too long).
•
A minute ago all their code worked. (Pick a
Random Person)
28.
29. •
Thousands of unit tests will be
produced.
•
Can run them anytime we want.
•
Whenever we make any kind of change.
•
Executable and live documentation of
system instead of pile of papers.
30. •
There’s a test as an example to show
you what you want!
•
They CANNOT be out of date
•
Make the FEAR disappear (Refactoring)
31. Oh
My God this
code is a mess
I
need to clean this up!
But I’m not gonna touch it!
35. •
2005 study TDD more productive &
increase their confidence.
•
software much more
flexible, reliable, testable & with great live
documentation.
•
NOT PROFESSIONAL if you don’t do TDD
(~ Uncle Bob, Ron Jeffries, Kent
Beck, etc.)
36. had been a programmer for 3 decades
before I was introduced to TDD. I did not
think anyone could teach me a low level
programming practice that would make a
difference. But when I started TDD, I was
dumbfounded at the effectiveness of the
technique.
~ Robert C. Martin
I
37. Blog posts and articles:
Grand Design by Stephen Hawking &
Leonard Mlodinow
•
http://objectmentor.com/articles
•
http://cleancoder.com/articles
•
http://codebetter.com/articles
•
Code like a chef series!
38. •
Robert C. Martin craftsmanship article
series
•
Uncle Bob on Rules and Benefits of TDD
•
Michael Feathers Synergy between Design
and Testability
•
Jeremy D. Miller Writing Maintainable
Programs series
•
Sarah Gray on Visualizing Enumerable
39. Books:
• TDD by Example (Kent Beck)
• Clean Code (Robert C. Martin)
• Agile Software Development
Principles, Patterns, Practices (Robert C.
Martin)
• Working Effectively With Legacy Code
(Michael Feathers)
• Growing Object-Oriented Software Guided
by Tests (Steve Freeman & Nat Pryce)
• Refactoring (Martin Fowler)
40. Lectures And Conferences:
•
•
•
•
•
•
•
Clean Code I, II (Robert C. Martin)
Are you a Professional? (Robert C. Martin)
Synergy between Design and Testability
(Michael Feathers)
Effective Software Development (Alistair
Cockburn)
Clean, Testable Code (Misko Hevery)
Clean Coders Videos (Clean Code Matters)
Destroy All Software (Gary Bernhardt)