Key lessons from the course on specification by example called From user stories to acceptance tests lead by Gojko Adzic in Oslo, 1/2012.
What SbE is, what are its key goals, how to introduce it, selected techniques including Effect Mapping and Specification Workshop.
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
In this introduction to Test Driven Development (TDD) or Behaviour Driven Development (BDD) we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web services testing and how to start doing TDD/BDD on an existing code base.
Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones that the client actually needs.
In this talk, we will discuss what BDD is about, its benefits, and how it affects teams and processes. We will discuss two case studies where BDD practices have been successfully introduced, including the benefits gained and challenges met. We will see how much benefit was gained when BDD was integrated into the broader development infrastructure, including issue tracking systems, requirements management, and project reporting.
We will also see how BDD can be applied to all levels of the development process, from requirements down to low-level coding. We will also look at the principle BDD tools available that can help teams implement executable specifications, BDD-style test automation, and living documentation effectively. Some of the tools discussed will include JBehave, Cucumber, Specflow, Jasmine and Spock.
We will also look at two case studies where BDD practices have been successfully integrated into several projects in large government and financial organizations. Teams that adopted BDD effectively benefited from significantly lower defect rates, much earlier discovery of errors and inconsistencies in the requirements, and better overall communication and collaboration within the team. However, practicing BDD does involve a significant change in mind-set compared to more traditional approaches, a different collaboration model between team members, and a high degree of stakeholder by-in and engagement, all of which should not be underestimated. We will discuss how the teams managed these various challenges during their BDD adoption story.
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
In this introduction to Test Driven Development (TDD) or Behaviour Driven Development (BDD) we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web services testing and how to start doing TDD/BDD on an existing code base.
Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones that the client actually needs.
In this talk, we will discuss what BDD is about, its benefits, and how it affects teams and processes. We will discuss two case studies where BDD practices have been successfully introduced, including the benefits gained and challenges met. We will see how much benefit was gained when BDD was integrated into the broader development infrastructure, including issue tracking systems, requirements management, and project reporting.
We will also see how BDD can be applied to all levels of the development process, from requirements down to low-level coding. We will also look at the principle BDD tools available that can help teams implement executable specifications, BDD-style test automation, and living documentation effectively. Some of the tools discussed will include JBehave, Cucumber, Specflow, Jasmine and Spock.
We will also look at two case studies where BDD practices have been successfully integrated into several projects in large government and financial organizations. Teams that adopted BDD effectively benefited from significantly lower defect rates, much earlier discovery of errors and inconsistencies in the requirements, and better overall communication and collaboration within the team. However, practicing BDD does involve a significant change in mind-set compared to more traditional approaches, a different collaboration model between team members, and a high degree of stakeholder by-in and engagement, all of which should not be underestimated. We will discuss how the teams managed these various challenges during their BDD adoption story.
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
Contents:
Behavior Driven Development (BDD)
Features of BDD
BDD Tools
BDD Framework
Examples of Cucumber/SpecFlow/BDD test
Gherkin – BDD Language
The Problem
Example of Gherkin
The Conclusion
SpecFlow Feature File
Keywords for the Feature File creation
Behavior Driven development is the process of exploring, discovering, defining and driving the desired behavior of software system by using conversation, concrete examples and automated tests.
This is an introduction to BDD and the Gherkin syntax. It aims to explain:
* What's Gherkin. Why it's used. An example of all the keywords in Gherkin
* How Gherkin fits into BDD (features files, writing tests first etc)
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share best practices (including ones followed internally at Amazon) and how you can bring them to your company by using open source and AWS services.
Speaker: Raghuraman Balachandran, Solutions Architect, Amazon India
What is main difference between Behavior Driven Development and Acceptance Test Driven Development? How can we start using one of these practices. What books should you read to get more details about Testing By Specification?
Build security into CI/CD pipelines for effective security automation on AWS ...Amazon Web Services
Realizing DevSecOps and effectively implementing security into CI/CD pipelines on AWS remains a challenging proposition for most organizations today. In this session, we share the essential principles of achieving security automation in your CI/CD pipelines and across the build, deploy, and run phases of your applications. Finally, we conclude with a demonstration of security automation across all three phases of your applications that are deployed on AWS infrastructure, showing you how to bring security automation to your organization today.
This presentation provides an overview of a Test Automation Framework with BDD and Cucumber. It also includes several open-source initiatives that Rhoynar Software Consulting (www.rhoynar.com) has been working on in the fields of QA Automation and DevOps. Lastly, it also includes links to some of the open-source projects that you can use right now for your work.
- Continuous Integration Infra a la OpenStack - https://github.com/Rhoynar/ci-infra
- An Email Verification Library in Java:
https://github.com/Rhoynar/EmailVerify
- Automatic Test Generation using Selenium WebDriver, Java and TestNG
https://github.com/Rhoynar/AutoTestR
- Barebones BDD and Cucumber Framework integrated with Java Maven and TestNG:
https://github.com/Rhoynar/qa-automation
Cucumber is a tool which supports development via behavior realization (BDD - Behavior-Driven Development). It is considered to be utilized for creating the tests which can be understood by each and all, even without special technical knowledge.
(by QATestLab)
Many teams struggle with the implementation of user story acceptance criteria and having a shared understanding about the expected story outcomes. This often results in missed stakeholder expectations, ad-hoc assumptions made by the team during implementation and conflict between team members and the product owner around testing.
This session shows how specification-by-example and acceptance test driven development will address team conflict, missed stakeholder expectations and overall increasing the level of clarity on the project end-to-end. The presentation will cover the theory behind ATDD and case-studies and practical experience from real projects.
The talk was held at the ALM summit 3 in Redmond, January 2013. Recording of the talk can be found here: http://channel9.msdn.com/Events/ALM-Summit/ALM-Summit-3/Implementing-ATDD-and-Specification-By-Example
Tutorial: Implementing Specification-By-Example with GherkinChristian Hassa
1/2 day Tutorial held at XP 2013 conference in Vienna
Many teams struggle with the implementation of user story acceptance criteria and having a shared understanding about the expected story outcomes. This often results in missed stakeholder expectations, ad-hoc assumptions made by the team during implementation and conflict between team members and the product owner around testing.
In this tutorial, you will learn how specification-by-example and acceptance test driven development will address team conflict, missed stakeholder expectations and overall increasing the level of clarity on the project end-to-end. The presentation will cover the theory behind ATDD, case-studies and practical experience from real projects and several hands-on exercises to try out the presented concepts.
You will leave this tutorial with a fundamental understanding of specification-by-example and its benefits, as well as concrete pointers on how to get started using it in your own projects.
Specification by example and agile acceptance testinggojkoadzic
Specification by example and agile acceptance testing, presentation given to HSBC developers on 21/09/09 for more info see http://specificationbyexample.com
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
Contents:
Behavior Driven Development (BDD)
Features of BDD
BDD Tools
BDD Framework
Examples of Cucumber/SpecFlow/BDD test
Gherkin – BDD Language
The Problem
Example of Gherkin
The Conclusion
SpecFlow Feature File
Keywords for the Feature File creation
Behavior Driven development is the process of exploring, discovering, defining and driving the desired behavior of software system by using conversation, concrete examples and automated tests.
This is an introduction to BDD and the Gherkin syntax. It aims to explain:
* What's Gherkin. Why it's used. An example of all the keywords in Gherkin
* How Gherkin fits into BDD (features files, writing tests first etc)
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share best practices (including ones followed internally at Amazon) and how you can bring them to your company by using open source and AWS services.
Speaker: Raghuraman Balachandran, Solutions Architect, Amazon India
What is main difference between Behavior Driven Development and Acceptance Test Driven Development? How can we start using one of these practices. What books should you read to get more details about Testing By Specification?
Build security into CI/CD pipelines for effective security automation on AWS ...Amazon Web Services
Realizing DevSecOps and effectively implementing security into CI/CD pipelines on AWS remains a challenging proposition for most organizations today. In this session, we share the essential principles of achieving security automation in your CI/CD pipelines and across the build, deploy, and run phases of your applications. Finally, we conclude with a demonstration of security automation across all three phases of your applications that are deployed on AWS infrastructure, showing you how to bring security automation to your organization today.
This presentation provides an overview of a Test Automation Framework with BDD and Cucumber. It also includes several open-source initiatives that Rhoynar Software Consulting (www.rhoynar.com) has been working on in the fields of QA Automation and DevOps. Lastly, it also includes links to some of the open-source projects that you can use right now for your work.
- Continuous Integration Infra a la OpenStack - https://github.com/Rhoynar/ci-infra
- An Email Verification Library in Java:
https://github.com/Rhoynar/EmailVerify
- Automatic Test Generation using Selenium WebDriver, Java and TestNG
https://github.com/Rhoynar/AutoTestR
- Barebones BDD and Cucumber Framework integrated with Java Maven and TestNG:
https://github.com/Rhoynar/qa-automation
Cucumber is a tool which supports development via behavior realization (BDD - Behavior-Driven Development). It is considered to be utilized for creating the tests which can be understood by each and all, even without special technical knowledge.
(by QATestLab)
Many teams struggle with the implementation of user story acceptance criteria and having a shared understanding about the expected story outcomes. This often results in missed stakeholder expectations, ad-hoc assumptions made by the team during implementation and conflict between team members and the product owner around testing.
This session shows how specification-by-example and acceptance test driven development will address team conflict, missed stakeholder expectations and overall increasing the level of clarity on the project end-to-end. The presentation will cover the theory behind ATDD and case-studies and practical experience from real projects.
The talk was held at the ALM summit 3 in Redmond, January 2013. Recording of the talk can be found here: http://channel9.msdn.com/Events/ALM-Summit/ALM-Summit-3/Implementing-ATDD-and-Specification-By-Example
Tutorial: Implementing Specification-By-Example with GherkinChristian Hassa
1/2 day Tutorial held at XP 2013 conference in Vienna
Many teams struggle with the implementation of user story acceptance criteria and having a shared understanding about the expected story outcomes. This often results in missed stakeholder expectations, ad-hoc assumptions made by the team during implementation and conflict between team members and the product owner around testing.
In this tutorial, you will learn how specification-by-example and acceptance test driven development will address team conflict, missed stakeholder expectations and overall increasing the level of clarity on the project end-to-end. The presentation will cover the theory behind ATDD, case-studies and practical experience from real projects and several hands-on exercises to try out the presented concepts.
You will leave this tutorial with a fundamental understanding of specification-by-example and its benefits, as well as concrete pointers on how to get started using it in your own projects.
Specification by example and agile acceptance testinggojkoadzic
Specification by example and agile acceptance testing, presentation given to HSBC developers on 21/09/09 for more info see http://specificationbyexample.com
Specification by Example - Agile India 2015Ankur Sambhar
We all know the importance of validating a feature before committing to getting it built. Validating assumptions help in avoiding the most frustrating and common problem – building something that nobody wants. However, validation is easier said than done. Building the right feature before we think of building the feature right is the key.
Being Agile, we always try to leverage the quick feedback loop and adapt based on the end-user feedback. That’s good but it should not be used to validate the assumptions and that too after implementing a feature based on that assumption. It’s very expensive smile
A more powerful and productive technique is to leverage Specification-by-example in defining and discovering requirements collaboratively with end-user, even before start working on the feature.
This talk will focus on highlighting key aspects of effectively adopting SBE technique based on my own experience leveraging it successfully over and over again. It not only helps in grooming the feature requirement to tell a clear , simple and compelling story but it also helps in removing what is not needed.
Acceptance Test Driven Development and Robot FrameworkSteve Zhang
This presentation is about using Robot Framework automation test framework to implement Acceptance Test Driven Development, BDD or Specification By Example
An Overview of User Acceptance Testing (UAT)Usersnap
What is User Acceptance Testing? Also known as UAT or UAT testing.
it's basically, a process of verifying that a solution works for the user.
And the key word here, is user. This is crucial, because they’re the people who will use the software on a daily basis. There are many aspects to consider with respect to software functionality. There’s unit testing, functional testing, integration testing, and system testing, amongst many others.
What Is User Acceptance Testing?
I’ll keep it simple; according to Techopedia, UAT (some people call it UAT testing as well) is:
User acceptance testing (UAT) is the last phase of the software testing process. During UAT, actual software users test the software to make sure it can handle required tasks in real-world scenarios, according to specifications. UAT is one of the final and critical software project procedures that must occur before newly developed software is rolled out to the market.
User acceptance testing (UAT), otherwise known as Beta, Application, or End-User Testing, is often considered the last phase in the web development process, the one before final installation of the software on the client site, or final distribution of it.
Behaviour Driven Development (BDD) is an evolution of test-driven development that places explicit emphasis on language, communication and 'outside-in' development. Many people are familiar with the 'Given,When,Then' structure used in BDD specifications (or acceptance tests) but is that really where it ends? In this session Antony Marcano gives a short intro to BDD, explains 'outside-in' development. Using a metaphor from learning theory and HCI principles, he'll show you how to go beyond 'Given,When,Then' to a shared understanding of
your customer's needs.
Specification by Example talk given at Software Craftsmanship and Testing Camp in Germany, 2011. This talk is focused on the "why" and the "what" of Specification by Example.
'An Evolution Into Specification By Example' by Adam KnightTEST Huddle
For the last four years myself and my colleagues at RainStor have been evolving a process for testing a structure data archiving system in an Agile development environment. In this talk I will discuss the evolution of a team from a rudimentary Agile implementation on an unreleased product, to our current process which uses the fundamental elements of Specification By Example to successfully deliver software functionality across 30 different platform/backend configurations to a series of high profile and demanding customers. Last year our company was used as a case study for successful implementation in Gojko Adzic's book on Specification By Example.
My report will discuss the lessons learned during the early implementation and the challenges faced in moving away from a compressed waterfall approach. Through a process of incremental change we have identified and tackled the fundamental issues that undermined the development effort as a team. I’ll describe some of the mistakes made in attempting to implement a more formal process of requirements documentation into an Agile implementation and the benefits we uncovered on moving to a more flexible user story based approach. I’ll also discuss some of the issues around trying to implement user stories in a server system with no GUI and very technical and performance based requirements.
Raising the importance of quality and the status of testing both within the development team and the organisation as a whole has allowed the challenges facing the team to be recognised and respected. The result has been a more collaborative approach taken between developers and testers both through “collaborative specification” of user stories and tackling the problems that impact the delivery of value to the customers. I also plan to discuss how we’ve expanded from documenting acceptance criteria for each user story such that we now document Criteria, Assumptions and Risks for each feature and, rather than a ‘Done/Not Done’ approach how we identify the confidence in each of these categories to measure the confidence we have in each new feature being implemented.
Having the test team as an involved and influential team through the entire development process has also allowed us to implement a number of testability features to help to make the product more testable. I will discuss the benefits of having development understand and prioritise testability issues with some illustrative examples.
I will discuss the challenges and benefits of developing our own metadata driven test harnesses as opposed to an off the shelf solution. I’ll detail how having control over these harnesses has allowed us to work towards a self documenting test system using realistic customer examples as “Automated Specifications” of the RainStor system allowing us to explain current behaviour to Product Management in terms of well understood customer scenarios.
How to become a 'specification by example' rocket scientistEquinox IT
View an article outlining this presentation at http://www.equinox.co.nz/blog/specification-by-example-better-business-analyst. Presented by Kirsten Eriksen and Ben Hughes at the IIBA Business Analysis Developer Day conference in Wellington, New Zealand in November 2015. The presentation focuses on using the 'specification by example' approach as a business analyst.
Issues associated with Unit Root, multicollinearity, and autocorrelation. Those issues are not as black-and-white as people think they are. They are rather complex and at times even inconclusive. Read why.
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Abdelkrim Boujraf
In summary, we have presented here a method for efficiently testing large parts of web-based software by using elements of code generation to generate automatable tests, and by using BDD concepts to model tests for non-generated screens and non-generated business actions. Further, we have described a method for context-based unit
testing that, when combined with generated code and tests, yields an acceptable trade-off between development efficiency and time spent on testing
Despite the belief that a shared context and collaboration drives quality, too often, software testers and quality professionals struggle to find their place within today's integrated agile teams. This session is a practitioner’s view of testing and testing practices within an iterative/incremental development environment. We will begin with a discussion of some of the challenges of testing within an agile environment and delve into the guiding principles of Agile Testing and key enabling practices. Agile Testing necessitates a change in mindset, and it is as much, if not more, about behavior, as it is about skills and tooling, all of which will be explored.
Lean DevOps - Lessons Learned from Innovation-driven CompaniesXavier Amatriain
Presentation I gave at the IEEE Devops Symposium in the Computer History Museum, Mountain View. I describe the CASSSH model for Devops as well as lessons learned in innovation-driven companies.
Specification-by-Example: A Cucumber ImplementationTechWell
We've all been there. You work incredibly hard to develop a feature and design tests based on written requirements. You build a detailed test plan that aligns the tests with the software and the documented business needs. When you put the tests to the software, it all falls apart because the requirements were updated without informing everyone. But help is at hand. Enter business-driven development and Cucumber, a tool for running automated acceptance tests. Join Mary Thorn as she explores the nuances of Cucumber and shows you how to implement specification-by-example, behavior-driven development, and agile acceptance testing. By fostering collaboration for implementing active requirements via a common language and format, Cucumber bridges the communication gap between business stakeholders and implementation teams. If you experience developers not coding to requirements, testers not getting requirements updates, or customers who feel out of the loop and don't get what they ask for, be here!
Dissolving Technical Debt on Agile Projects - Smidig 2012Jakub Holy
Experiences with dealing with legacy code while delivering value. Key points: 1) Legacy code costs a lot. 2) Design must be maintained & evolved. 3) Continous refactoring during each task is a way to achieve 2.
Dealing With Legacy: The Real-World ExperienceJakub Holy
A report of the successes and challenges of our team dealing with further development of a core webapp full of legacy code - what practices we applied, how Scrum worked for us, what worked well, what could be improved, what I'd do to avoid creating legacy code and what the hidden cost of legacy code really is.
Commit on day one thanks to vagrant & puppet!Jakub Holy
10 min introduction into the usage and benefits of Vagrant (with Puppet). Demo-driven, see bit.ly/VagrantPpt
The presentation only accompanies a demo and is without value on its own.
Brief introduction into DbUnit Express, Q3/2011Jakub Holy
Introduction into DbUnit Express, a thin wrapper for DbUnit adding convention over configuration, easier configuration, better support for Spring JDBC, and couple of highly useful utilities such as RowComparator.
See http://sourceforge.net/apps/mediawiki/jeeutils/index.php?title=DbUnit_Express#DbUnit_Express_subproject
[EN] This is in Czech
[CZ] Jednotkové testy snadno a rychle dík využití těch správných nástrojů - Mockito, DbUnit, Groovy aj. Opomíjené přínosy testů. Bonus: TDD a mutační testování.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
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/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
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.
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.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
3. The Key Concerns of SbE
"Doing the right thing vs. doing the thing right."
Deliver true business value
Build shared understanding
(Evolve living documentation)
4. Shared understanding
in business terms
Shared understanding + business terms and
relations
(also less rework)
Aligned business, SW, test models
Small change in business => small in SW, test
Much, much better maintainability, evolvability
Build the right thing
5. Specify
The Key Patterns of SbE collaboratively
Business Scope
derive
goal (UC, US)
ilustrate
1. Derive scope from business goal
2. Specify collaboratively
3. Ilustrate using examples
4. Refine the specification Key
5. Automate validation w/o changing specification
6. Validate frequently examples
7. Evolve into a documentation system
automate w/o changing
Often,
Living Executable
documentation specification
evolve
http://specificationbyexample.com/key_ideas.html
6. Goal: Shared understanding
0. Clarify the goal
1. Build the shared understanding
○ Collaborative specification...
○ ... with examples
2. Keep it
○ Automate validation
3. Profit from it
○ Evolve into living documentation
"The devil is in the details"
7. Example specification with examples
Title: Free book delivery
Objective: VIP users who order more books get
free shipping in Norway.
Examples:
Customer Books Country Free shipping?
VIP 5 Norway Y
VIP 4 Norway N
VIP 10 Danmark N
Regular 10 Norway N
10. What makes a good specification
with examples?
Good
● Good google-able title
● Clear objective - how to read the examples?
● Uses business language, unified terms
● Couple of key, focused examples, complete
Bad
● Script ("click here, find css class X, ...)
● Too detailed, too verbose, duplication
● Many examples (bad understanding, bad
representation, more concepts mixed)
12. Introducing SbE & Its Applicability
9-15
mo
Strategy: What's the team's top pain? Can
something from SbE fix it? buzz-
words
Big
Examples: Bang
● Lot of rework devs - testers => better shared
understanding via Specification workshop
● Late feedback from testers => automate
Key: Introduce what you need, when you need
it, step by step. Shift culture first. It's easy!
15. Single source of truth
Devs: Truth in code
Testers: Truth in test cases
Business analyst: Truth in documents
Use a single source of truth, avoid translation!
=> Start with business analyst
Extend with examples from devs
Extend with examples from testers
18. How to Make Acceptance Tests
Maintainable
1. Aligned business, software, and test models
○ => small change in one is small in the other too
2. Test under the surface level, if possible
○ Service > Servlet > UI - decide by risk vs. cost
3. Isolate tests from implementation by layers of
test abstraction (What>Instrumentation>DSL)
See The Holy Java: How to Create Maintainable
Acceptance Tests (http://wp.me/pTHiC-tl)
19. Why Are We Doing This?
The Effect Maps Technique
Simple mind-mapping technique that incredibly
facilitates agile product design, planning,
prioritisation, and scoping.
demo
Levels:
1. Why - the measurable business goal
2. Who can help/hinder achievel of the goal?
3. How can they do it?
4. What are the SW features or business
activities that support it?
20. Techniques: Spec Workshop and
Diverge & Merge
Specification Workshop (½ day → 2w sprint)
● All: business + devs + testers
○ Business: What, why
○ Devs: What's technically possible/troublesome
○ Testers: How to test (break) this? Corner cases
● Surface hidden complexities, discover assumptions
● Build shared understanding (=> feedback exercise)
Diverge & Merge
● Groups of 3-5 work in parallel 10-20 min, then merge
results
● More divergent => richer & better ideas
● Prevent paralysation by confining troublesome people
21. Acceptance Test Automation Tools
● FitNesse - wiki-based
○ Cons: Long learning, encourages copy&paste
○ Pros: Wiki, mature
● Concordion - new, HTML+JUnit
○ Pros: Contrary to FitNesse disables copying, quick to
learn, integrated anywhere via JUnit, free-form
○ Cons: No live editing, no copying => not for 104 tests
● Cucumber - new, websites, Ruby, ecosystem
○ Pros: Simple text format (RegExp), easy2learn, web
○ Cons: Only test execution - other tools for the rest
● Robot Framework - tabular, keyword-driven
○ Pros: Great for testers w/o devs, libraries (SQL,..)
● Commercial - GreenPepper (Confluence), ...
23. Other Key Lessons
● When the time is short ... do communicate!
● The key benefit of SbE aside of improved
communication is living documentation;
regression tests are only a minor by-product
● (and many others :-))