This document provides an overview of agile testing techniques. It discusses test-driven development and how to write different types of tests, including unit tests, integration tests, functional tests, and acceptance tests. It emphasizes writing tests before code (test-first approach) and describes best practices for structuring tests and refactoring test code. The goal of agile testing is to deliver high quality software through frequent testing and feedback.
Early testing is a must, aligned with the Agile concept of quick feedback as well as teamwork. Test automation is also key for saving money and allowing continuous deployment, but needs to be started based on some criteria.
[en] Agile transformation - How to deconstruct your organization step by stepXavier Albaladejo
To achieve ORGANIZATIONAL AGILITY, it is important to be SMALL. This is a key factor if you want to reduce your Time To Market and gain flexibility to quickly adapt to your customers needs. However, large corporations are characterized by their large size.
In this presentation we will see an Agile maturity model (which may seem counter-intuitive to large corporate transformations), which combines an organic adoption with DELIVERED ACTIONS to CONSCIOUSLY DECONSTRUCT a complex organization and base it on teams by strategic Business initiatives.
To do this, we rely on de-scaling complexity as much as possible, influencing behaviors through a new organizational structure, explicitly work in the culture (as enabler) and Product Management (as the final result), as well as on other principles.
Why transform to Agile? What are the impediments to Agile Transformation? How to plan the Agile transformation? How to accelerate and sustain the Agile Transformation.
Exploring Agile Transformation and Scaling PatternsMike Cottmeyer
The goal of any enterprise agile adoption strategy is NOT to adopt agile. Companies adopt agile to achieve better business outcomes. Large organizations have no time for dogma and one-size-fits-all thinking when it comes to introducing agile practices. These companies need pragmatic guidance for safely and incrementally introducing structure, principles, and ultimately practices that will result in greater long term, sustainable business results. This talk will introduce a framework for safely, pragmatically, and incrementally introducing agile to help you achieve your business goals.
La empresa como organismo vivo. Habilitemos la agilidad empresarial (Business...David Alejano Hernández
Somos capaces de comprender a ese organismo vivo lo suficientemente como para que las medidas que se adopten evolución su agilidad empresarial y redunden en crecimiento y cambio productivos
Why Agile Is Failing in Large Enterprises, And What You Can Do About ItMike Cottmeyer
Large companies often struggle to adopt agile practices in a meaningful way. This presentation will help you understand why you are struggling to adopt agile, and more importantly, what you can do about it.
The SAFe 5.0 white paper provides an overview of the Framework, the Big Picture graphic, the seven core competencies, and the values, mindset, principles, and practices that guide teams to more effectively build solutions in a far leaner—and more Agile—fashion.
10 steps to a successsful enterprise agile transformation global scrum 2018Agile Velocity
Presented at Scrum Gathering Minneapolis, Senior Agile Coach and Trainer Mike Hall provides leaders and managers 10 steps to a successful enterprise Agile transformation.
Assessing Your Agile Marketing Maturity LevelYuval Yeret
Why assess the level of Agile Marketing? Teams, Managers and Coaches can quickly evaluate the current capability of a team/group, in order to:
See how the capability measures against the recommended level for benefiting from marketing agility
Guide the team/group on what to improve next
See, over time, the evolution of agility (positive or negative trend)
See the impact of the team/group improvement work
See the impact of organizational/structural changes that are outside the team/group’s control (costs reductions, distributed, etc.)
Motivate! Get acheivements and recognition for reaching higher agility levels (Emphasize intrinsic motivation!)
Contact AgileSparks at http://www.agilesparks.com/services/agile-marketing for a downloadable version (and an excel sheet coming soon!)
Webinar: 3 Lessons Learned Guiding SAFe® Implementations with Mike Hall | Agi...Agile Velocity
Planning and executing an Agile scaling strategy is difficult. During my time as an Agile Coach, I’ve guided enterprises through successful Scaled Agile Framework® (SAFe®) implementation--but it wasn’t all daffodils and roses.
View the webinar recording here: https://agilevelocity.com/webinar/upcoming-webinar-3-lessons-learned-guiding-safe-implementations/
Leading a large-scale agile transformation isn’t about adopting a new set of attitudes, processes, and behaviors at the team level… it’s about helping your company deliver faster to market, and developing the ability to respond to a rapidly-changing competitive landscape. First and foremost, it’s about achieving business agility. Business agility comes from people having clarity of purpose, a willingness to be held accountable, and the ability to achieve measurable outcomes. Unfortunately, almost everything in modern organizations gets in the way of teams acting with any sort of autonomy. In most companies, achieving business agility requires significant organizational change.
Agile transformation necessitates a fundamental rethinking of how your company organizes for delivery, how it delivers value to its customers, and how it plans and measures outcomes. Agile transformation is about building enabling structures, aligning the flow of work, and measuring for outcomes based progress. It's about breaking dependencies. The reality is that this kind of change can only be led from the top. This talk will explore how executives can define an idealized end-state for the transformation, build a fiscally responsible iterative and incremental plan to realize that end-state, as well as techniques for tracking progress and managing change.
Pressure to deliver business value faster, and more efficiently is everywhere. Companies are adopting Agile practices and going though the Agile Transformation because moving to agile methods offers any organization to outperform its former measures of productivity and profits. Several years ago, IBM Software Group began adapting agile software development practices and related products to their needs. This session will provide details where we started and what was our agile journey.
Agile IT Operatinos - Getting to Daily ReleasesLeadingAgile
Getting to Daily Releases with Agile IT Operations. Devin Hedge, Enterprise Transformation Consultant talks to a group at Triagile about the Six Key Areas to focus on when attempting to transform IT Operations with Lean and Agile principles. The talk covers Service Engineering, IT Operations, and the Tier 1 Support/NOC organizations. Kanban, Service Management (ITSM), and what it means to have a DevOps orientation.
This helps organisation to strat the agile transformation or in between their journey to see all the critical information in one signle canvass also know what are important aspects to transformation by a simple model.
Early testing is a must, aligned with the Agile concept of quick feedback as well as teamwork. Test automation is also key for saving money and allowing continuous deployment, but needs to be started based on some criteria.
[en] Agile transformation - How to deconstruct your organization step by stepXavier Albaladejo
To achieve ORGANIZATIONAL AGILITY, it is important to be SMALL. This is a key factor if you want to reduce your Time To Market and gain flexibility to quickly adapt to your customers needs. However, large corporations are characterized by their large size.
In this presentation we will see an Agile maturity model (which may seem counter-intuitive to large corporate transformations), which combines an organic adoption with DELIVERED ACTIONS to CONSCIOUSLY DECONSTRUCT a complex organization and base it on teams by strategic Business initiatives.
To do this, we rely on de-scaling complexity as much as possible, influencing behaviors through a new organizational structure, explicitly work in the culture (as enabler) and Product Management (as the final result), as well as on other principles.
Why transform to Agile? What are the impediments to Agile Transformation? How to plan the Agile transformation? How to accelerate and sustain the Agile Transformation.
Exploring Agile Transformation and Scaling PatternsMike Cottmeyer
The goal of any enterprise agile adoption strategy is NOT to adopt agile. Companies adopt agile to achieve better business outcomes. Large organizations have no time for dogma and one-size-fits-all thinking when it comes to introducing agile practices. These companies need pragmatic guidance for safely and incrementally introducing structure, principles, and ultimately practices that will result in greater long term, sustainable business results. This talk will introduce a framework for safely, pragmatically, and incrementally introducing agile to help you achieve your business goals.
La empresa como organismo vivo. Habilitemos la agilidad empresarial (Business...David Alejano Hernández
Somos capaces de comprender a ese organismo vivo lo suficientemente como para que las medidas que se adopten evolución su agilidad empresarial y redunden en crecimiento y cambio productivos
Why Agile Is Failing in Large Enterprises, And What You Can Do About ItMike Cottmeyer
Large companies often struggle to adopt agile practices in a meaningful way. This presentation will help you understand why you are struggling to adopt agile, and more importantly, what you can do about it.
The SAFe 5.0 white paper provides an overview of the Framework, the Big Picture graphic, the seven core competencies, and the values, mindset, principles, and practices that guide teams to more effectively build solutions in a far leaner—and more Agile—fashion.
10 steps to a successsful enterprise agile transformation global scrum 2018Agile Velocity
Presented at Scrum Gathering Minneapolis, Senior Agile Coach and Trainer Mike Hall provides leaders and managers 10 steps to a successful enterprise Agile transformation.
Assessing Your Agile Marketing Maturity LevelYuval Yeret
Why assess the level of Agile Marketing? Teams, Managers and Coaches can quickly evaluate the current capability of a team/group, in order to:
See how the capability measures against the recommended level for benefiting from marketing agility
Guide the team/group on what to improve next
See, over time, the evolution of agility (positive or negative trend)
See the impact of the team/group improvement work
See the impact of organizational/structural changes that are outside the team/group’s control (costs reductions, distributed, etc.)
Motivate! Get acheivements and recognition for reaching higher agility levels (Emphasize intrinsic motivation!)
Contact AgileSparks at http://www.agilesparks.com/services/agile-marketing for a downloadable version (and an excel sheet coming soon!)
Webinar: 3 Lessons Learned Guiding SAFe® Implementations with Mike Hall | Agi...Agile Velocity
Planning and executing an Agile scaling strategy is difficult. During my time as an Agile Coach, I’ve guided enterprises through successful Scaled Agile Framework® (SAFe®) implementation--but it wasn’t all daffodils and roses.
View the webinar recording here: https://agilevelocity.com/webinar/upcoming-webinar-3-lessons-learned-guiding-safe-implementations/
Leading a large-scale agile transformation isn’t about adopting a new set of attitudes, processes, and behaviors at the team level… it’s about helping your company deliver faster to market, and developing the ability to respond to a rapidly-changing competitive landscape. First and foremost, it’s about achieving business agility. Business agility comes from people having clarity of purpose, a willingness to be held accountable, and the ability to achieve measurable outcomes. Unfortunately, almost everything in modern organizations gets in the way of teams acting with any sort of autonomy. In most companies, achieving business agility requires significant organizational change.
Agile transformation necessitates a fundamental rethinking of how your company organizes for delivery, how it delivers value to its customers, and how it plans and measures outcomes. Agile transformation is about building enabling structures, aligning the flow of work, and measuring for outcomes based progress. It's about breaking dependencies. The reality is that this kind of change can only be led from the top. This talk will explore how executives can define an idealized end-state for the transformation, build a fiscally responsible iterative and incremental plan to realize that end-state, as well as techniques for tracking progress and managing change.
Pressure to deliver business value faster, and more efficiently is everywhere. Companies are adopting Agile practices and going though the Agile Transformation because moving to agile methods offers any organization to outperform its former measures of productivity and profits. Several years ago, IBM Software Group began adapting agile software development practices and related products to their needs. This session will provide details where we started and what was our agile journey.
Agile IT Operatinos - Getting to Daily ReleasesLeadingAgile
Getting to Daily Releases with Agile IT Operations. Devin Hedge, Enterprise Transformation Consultant talks to a group at Triagile about the Six Key Areas to focus on when attempting to transform IT Operations with Lean and Agile principles. The talk covers Service Engineering, IT Operations, and the Tier 1 Support/NOC organizations. Kanban, Service Management (ITSM), and what it means to have a DevOps orientation.
This helps organisation to strat the agile transformation or in between their journey to see all the critical information in one signle canvass also know what are important aspects to transformation by a simple model.
[es] Organización Agile - Lean y Framework de mejora de productividad - V3.0Xavier Albaladejo
- Factores de mayor impacto en la productividad
- Modelo organizativo Agile - Lean
- Framework Agile - Lean de mejora de productividad.
Video de la sesión sin slides: http://www.youtube.com/watch?v=sKbbrpZADVM
Video de la sesión con slides: http://www.consultec.tv/Media/Play/a5c01976b5ce4c78b191a084da2e6b6b1d
Empieza en el minuto 15.
See the English version here:
http://www.slideshare.net/xalbaladejo/en-cas2013-agile-lean-organization-and-productivity-improvement-frameworkv30
Where you cannot implement Agile? What are the levers to accelerate your Agile adoption? Among main levers you can find: a powerful reason; a specific company and management culture; a customer-focused organization, Agile Champions and simple and automated processes for fast feedback.
Ver versión en español aquí: https://es.slideshare.net/xalbaladejo/enterprise-agile-adoption-lmites-y-palancas
Agile Testing: The Role Of The Agile TesterDeclan Whelan
This presentation provides an overview of the role of testers on agile teams.
In essence, the differences between testers and developers should blur so that focus is the whole team completing stories and delivering value.
Testers can add more value on agile teams by contributing earlier and moving from defect detection to defect prevention.
[es] Crea tu mapa de proyecto para llegar a buen puerto - CAS2012Xavier Albaladejo
Técnica de visualización del alcance de proyecto y planificación basada en diversos mapas de producto.
Videos cortos (5'-10') donde se explica la técnica en detalle: http://www.proyectosagiles.org/videos-cortos-planificacion-agil
English version: http://www.slideshare.net/xalbaladejo/cas2012-create-yourprojectmap14
We suddenly live in a strange and wonderful nexus of digital and physical. Touchscreens let us hold information in our hands, and we touch, stretch, crumple, drag, and flick data itself. Our sensor-packed phones even reach beyond the screen to interact directly with the world around us. While these digital interfaces are becoming physical, the physical world is becoming digital, too. Objects, places, and even our bodies are lighting up with with sensors and connectivity. We’re not just clicking links anymore; we’re creating physical interfaces to digital systems. This requires new perspective and technique for web and product designers. The good news: it’s all within your reach. With a rich trove of examples, Designing for Touch author Josh Clark explores the practical, meaningful design opportunities for the web’s newly physical interfaces.
Dedicated Testing Team Available for Hire.
Best Suitable Engagement Model as per your Requirement
1. Project to Project
2. Per Hour Basis
3. Per Accepted Bug Basis
Test automation: Are Enterprises ready to bite the bullet?Aspire Systems
This whitepaper talks about the actual challenges in implementing a successful Test Automation process. It give a glimpse of the 3Ws and 1H(Why, When, What & How) of automation and explains how the cost factor is just a myth. Eventually it talks about how Continuous Innovation with opensource tools together with a robust framework and business focused testing approach can lead to a successful test automation implementation.
This talk was geared around the concept of showing developers what goes into getting enterprise products out the door. Unit testing, release process, continuous integration, security, social engineering, bug bashes.
5 Best Unit Test Frameworks to Automate Unit TestsSerena Gray
In this article, you will get to know the five best unit testing frameworks to automate unit tests. Read more https://bethwilsonuk.medium.com/5-best-unit-test-frameworks-to-automate-unit-tests-c08324d3029e
In many web or cloud applications, performance testing is critical part of application testing since it affects
business revenue, credibility, and customer satisfaction. Conventional software development models are known
to pushing the performance testing to the very end of project, with the expectations that, only minor tweaks
and tune up are required to meet the performance requirements from the business, however any major
performance bottlenecks found during this phase were major factors for delay in Go to Market. With more and
more companies are adapting the agile software development process which believes in performance testing
should never be an afterthought but it should tightly integrate from initial planning to production analysis of
software development lifecycle. This white paper explains how any company can integrate performance testing
into agile process, and key barriers for agile performance testing when team decides to adopt agile performance
testing.
White paper quality at the speed of digitalrajni singh
Our modern testing practices help speed up the current scope of quality assurance with help of a cognitive approach. Here is the link to download my published whitepaper on "Quality at the Speed of Digital" https://www.nagarro.com/qa-at-the-speed-of-digital #qualityassurance
An Ultimate Guide to Continuous Testing in Agile Projects.pdfKMSSolutionsMarketin
As more businesses apply Continuous Integration and Continuous Delivery (CI/CD) to release their software faster, Continuous testing becomes the final piece that completes a continuous development process. By automatically testing code right after developers submit it to the repository, testers can locate bugs before another line of code is written.
What is Unit Testing? - A Comprehensive Guideflufftailshop
Software development involves different steps and processes, ranging from writing code and testing every function to debugging and deploying. Unit testing is an important test method used by QA teams to ensure that a software product is free of errors and meets all essential requirements.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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/
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
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.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
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.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
1. 405 Agile White Book – AXA Emerging Markets EMEA-LATAM
Chapter 12
AGILE TESTING
V1.0
2. 406 Agile White Book – AXA Emerging Markets EMEA-LATAM
Contents
WHAT I WILL LEARN IN THIS CHAPTER?.................................................................................................................................................................... 408
WHY TESTING.................................................................................................................................................................................................. 409
TEST DRIVEN DEVELOPMENT.................................................................................................................................................412
TESTING APPROACH IN AGILE ................................................................................................................................................415
TYPES OF TESTS ............................................................................................................................................................................................... 416
UNIT TESTS ........................................................................................................................................................................416
INTEGRATION TESTS.............................................................................................................................................................416
FUNCTIONAL TESTS..............................................................................................................................................................417
ACCEPTANCE TESTS .............................................................................................................................................................418
WHERE TO START ............................................................................................................................................................................................ 419
TEST FIRST APPROACH ..........................................................................................................................................................419
WRITE GOOD UNIT TESTS .....................................................................................................................................................421
HOW TO WRITE GREAT TESTS............................................................................................................................................................................ 422
WHAT TO CHECK .................................................................................................................................................................423
TYPICAL TEST STRUCTURE.....................................................................................................................................................424
UNIT TESTS REFACTORING.....................................................................................................................................................425
TESTING TECHNIQUES....................................................................................................................................................................................... 426
TEST CODE THAT INTERACTS WITH DATABASES..........................................................................................................................426
TESTS AND INTERACTIONS BETWEEN MODULES.........................................................................................................................427
CONTINUOUS INTEGRATION ..................................................................................................................................................428
DANGERS OF INVERTING THE SEQUENCE.......................................................................................................................429
TAKE AWAY.................................................................................................................................................................................................. 430
3. 407 Agile White Book – AXA Emerging Markets EMEA-LATAM
Agile Testing
Agile testing uses a group of programming
techniques that require you to write an automated
test before the actual code and benefits from all the
framework principles and practises, such as cross-
functional Teams, Quality, Prioritisation, Business
Value, etc. This guarantees quality and flexibility
while keeping the focus on people’s interactions.
4. 408 Agile White Book – AXA Emerging Markets EMEA-LATAM
What I will learn in this chapter?
AGILE TESTING
KNOW HOW TO
- Different types of tests.
- Design, architect & code
at the same time
- 1st
Write a test
- 2nd
Write implementation
- 3rd
Test and pass it
LEARN ABOUT
IMPROVEMENT
TECHNIQUES
- Refactoring
- Continuous integration
- Continuous deployment
I know the benefits of using test-driven development.
I know how to write a good test & its backbones.
I know how the benefits of continuous integration.
BENEFITS OF
AGILE TESTING
5. 409 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
Agile testing is aligned with all the Agile principals (quality, simplicity, working at a sustainable
pace, cross-functional Teams, etc.), while placing a special focus on the expertise contributed
by testers, to ensure delivering high Business Value at frequent intervals. It is not a
separate phase but an integral part of software development along with coding and designing.
Her team members with Testing backgrounds give their expertise in producing examples of a
desired behaviour by understanding a specific User Story (requirement) and gathering
feedback from the Product Owner.
6. 410 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
These guidelines are turned into Unit Tests that exercise implementation to support the
process of creating a high-quality product. This process gives programmers the confidence to
make changes to the product as they know that tests will tell them if they have some broken
functionality.
The technique helps the company take their costs down and consolidate a solid product.
7. 411 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
Different kind of tests can also be automated and run every time a change is made in the
codebase, making the total cost lower and helping align everyone’s expectations with the
software produced.
We find testing and automation as one of the most effective feedback mechanisms that Agile
Teams have for guaranteeing stable and high quality products.
8. 412 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
TEST DRIVEN DEVELOPMENT
Test-driven development (TDD) is an advanced unit test practice in which test is written
before the code. This makes TDD more of a designing practice than a testing one. It is applicable
for both unit test and integration test. Test-driven development includes the following benefits:
TDD promotes understanding the requirements before development starts, knowing
which "contract" must meet the code.
Combined with Refactoring and with iterative and gradual design, TDD serves as support to
the concept of emerging architecture.
As a result,
The design and code are simple and "clean", and it is only written what is
necessary in order to meet the compliance of functioning requirements / specification
of the method / component, avoiding over-engineering.
The code is testable from the start.
TDD is also test automation. The first thing done is translation of requirements to
test (when passing tests, it will ensure that the software meets the requirements that
have been established) thus, per system, automated test code is provided.
The easiest way is to refer the following steps for following TDD practice:
1. Write the unit test that ensures the correct running of the
functionality to be developed and check whether the test
fails.
2. Write the code that makes the test pass successfully.
3. Refactor the code written to eliminate duplication and make
improvements.
4. Return to ensure the test passes and the code still works.
9. 413 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
Because most of the TDD tools use a green and red signal when test work/doesn’t work, we refer
this sequence as Red-Green-Refactor.
Picture is taken from http://www.thealmightyjenny.com/
It is important to remark that the aim of TDD is not just to validate what is done but –more
importantly- to clarify what is needed in order to create clear, flexible and stable code.
For more information about TDD, check out Chapter 11 - Extreme Programming.
10. 414 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
As we mentioned before, a Unit Test is a function which verifies that a method or group honours
its contract or, what in other words, the implementation under a test meets the desired
requirements. This approach fully assumes that developers have all the information needed to test
all the possible pathways. This includes not only correct inputs, but also incorrect inputs, so
that error handlers can be verified as well.
This helps developers know:
- How the implementation will handle errors.
- Which tests verify all code pathways.
- That Unit Tests can be used as a documentation guideline by other developers when
adding or modifying code.
The ability to write comprehensive tests is vital information to any person who wants to
implements new code, therefore good Unit Tests should always ensure that all the different
pathways are exercised (code coverage).
11. 415 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHY testing
TESTING APPROACH IN AGILE
Normally during the product development there are a lot of people with different views, needs and
roles, and depending on this, different tests might need to be used; this includes but not limited
to:
Acceptance Tests – They focus on making sure that they can handle or resolve what the
client asked for. The main actor here is the Tester with close collaboration from the rest of
people and the Customer (or Product Owner if using Scrum).
Integration Tests – In this level, test process focuses on combining individual software
units/components as a group (i.e. different modules that are part of one product). The
purpose here is to expose faults in the interaction between the integrated units.
Unit Tests – Short program fragments written by developers that exercise some narrow
part of the product's source code and check their results.
Regardless of the type of test being used, everything is done incrementally and iteratively with
the aim to add value to the Potential Software Increment.
These are some of the advantages I have seen when using tests:
o Developers know whether the last task has been completed successfully as
specified by the associated tests.
o Code can be maintained easier, something which helps make quicker changes.
o Big refactoring activities can be done with higher confidence.
o Teams can make sure they are delivering what the customer asked for, and
with high quality.
o Developers can automate all Tests from the present and past
(regression tests) to assure the system health.
12. 416 Agile White Book – AXA Emerging Markets EMEA-LATAM
TYPES of tests
UNIT TESTS
A unit test is a test written by the developer to verify that a relatively small piece of code is doing what
it is intended to do. As we have seen, they are narrow in scope, they should be easy to write and
execute, and their effectiveness depends on what the programmer considers to be useful. Unit Tests
are intended for the use of the development team only.
INTEGRATION TESTS
An Integration Test is done to demonstrate that different pieces of the system work together.
Integration Tests cover the whole application, and they require much more effort to be placed together.
They usually need many different resources such as database instances and hardware to be allocated
for them.
Integration Tests generally use similar environment to production and, as a result of that,
complexity gets exponentially higher.
13. 417 Agile White Book – AXA Emerging Markets EMEA-LATAM
TYPES of tests
FUNCTIONAL TESTS
Many scenarios need to test external components or black-boxes where people won´t be able
to access the implementation, only its behaviour.
This situation is called Functional Testing and is used when someone can just feed inputs and
verify outputs without knowing their internal implementation.
In this case, the person do not usually have information regarding:
- How the box handles errors.
- Whether the inputs are executing all code pathways.
- How to modify the inputs so that all code pathways are executed.
- Any internal dependency or internal resource.
As you can see, functional tests limit the ability to thoroughly test the code, primarily because
the individual doesn´t know if all the code pathways are being tested. Typically, a Functional
Test only verifies that a “good” output is obtained as a result of a known input.
They are generally written by a tester to check that the product behaves as expected or by a
developer to verify that a component returns the expected values.
14. 418 Agile White Book – AXA Emerging Markets EMEA-LATAM
TYPES of tests
ACCEPTANCE TESTS
An Acceptance Test checks an expected behaviour of a software product expressed in the
Acceptance Criteria part of a User Story. They are meant to satisfy a contractual obligation
between Business and I.T. and are generally written by the Tester using a specific suite.
Similarly to Unit Tests, Acceptance Tests are generally understood to have a clear result, pass or
fail. This determines whether or not the system satisfies its acceptance criteria and enables the
customer to determine whether or not to accept the product. Acceptance Tests check how the
product conducts itself (screen, results, performance, etc.) without knowing the way the piece of
software was implemented (Functional Test).
As a benefit they encourage closer collaboration between Developers on the one hand and users or
domain experts on the other, as they require the business requirements to be expressed in a language
understood by everyone.
15. 419 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHERE to start
TEST FIRST APPROACH
Test first technique “forces” developers think in a different way, focusing on acquiring a deeper
and earlier understanding of the product instead of doing it while writing the solution. As a
result of that, a continual focus on the product quality is kept while growing the codebase.
As a general rule, code is always written in direct response to a Test. It means that you write the
Test first before adding a single line of code to your implementation.
The first step then is to write the test; it will not initially compile because none of the required
classes or methods exist.
[Test]
public void ShouldReturnOne()
{
string actual = English.NumberToWord (1);
Assert.AreEqual("one", actual, "Expected the result to be "one"");
}
Most of the unit test suites use tags to indicate that this is a “special” function and offer a couple
of methods to check the expected result.
AreEqual - Checks whether two values or references are the same.
IsTrue/IsFalse - Checks whether the outcome is True/False.
IsNull/IsNotNull - Checks whether the outcome is Null/not Null.
IsInstanceOfType -Verifies that the specified object is an instance of the specified
type.
16. 420 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHERE to start
If the specified condition is false, then the test will fail and the suite will exhibit the specified error
to the developer. Otherwise, the test will be marked as green.
All needed classes and methods should initially be implemented as “empty” boxes in order for the
test to compile.
public static string NumberToWord (int p)
{
throw new Exception("The method or operation is not implemented.");
}
The next step is always to start coding the production implementation until the test passes.
public static string NumberToWord(int number)
{return "one";
}
The simplest code to resolve the original problem should be written and then more tests added
when additional functionality is needed (i.e. ReturnTwo, ReturnOneHundred, etc.).
As you can see, it forces everyone to think through requirements or design before a single line
of functionality is written.
17. 421 Agile White Book – AXA Emerging Markets EMEA-LATAM
WHERE to start
WRITE GOOD UNIT TESTS
As a rule of thumb, you write just one small test at a time, make it work as quickly as possible
and then write another test. In this way, code and tests increase and establish a solid
foundation for the product.
18. 422 Agile White Book – AXA Emerging Markets EMEA-LATAM
HOW TO WRITE great tests
I believe the following practises should make your code shine and allow everyone to easily read
and maintain it at any time:
Make sure the effort or abilities needed to create or modify a test are never greater than
implementing the production code itself.
Assure only one thing at a time is tested.
Avoid adding multiple assertions in a single Unit Test.
Isolate tests from other code in the application as well as any external dependencies or
events by using mock objects (we will see it soon).
Make sure tests are capable of being run over and over and produce similar
results.
Never assume that tests are going to be run in any specific order.
Create tests that are easy to automate.
Remember that you should only write code to 'fix' a failing test. This mean that code should
do just what is required in order to make the test pass and nothing else.
19. 423 Agile White Book – AXA Emerging Markets EMEA-LATAM
HOW TO WRITE great tests
WHAT TO CHECK
We generally find that developers initially struggle to establish what is needed to test. The
following lines can give you some ideas:
Boundary – Define the list of prescribed boundaries conditions you need
for the test (Range, order, existence, etc.)
Cardinality – Have in mind the number of the output elements and values
you expect.
Timeframe – Delimit a Time considered as relevant (i.e. Are results
obtained in the expected time interval?)
Cross-checks – Check the results by using other forms of processing.
Error-force – Think how you can force error conditions to check
boundaries.
Performance – Verify what the minimum performance requirements are.
20. 424 Agile White Book – AXA Emerging Markets EMEA-LATAM
HOW TO WRITE great tests
TYPICAL TEST STRUCTURE
An effective test structure ensures that all required actions are completed. In general, they
are independent from product code -different solution- and offer a consistent structure that allows
you build a self-documenting test. A commonly applied structure has the following four parts:
Setup – Place where the right state to run the test is set.
Exercise – Runs the code to be tested.
Validate – Place that ensures the tests results are correct.
Cleanup – Special area where the overall product is restored to the pre-test
state.
These parts perform all setup and clean-up actions required by the test, this includes creating a
database connection, instantiating some dependant class, initializing state/global variables, etc. It
is not also unusual to have extra setup and clean-up sections at the solution level. The main
reason to require them is mainly based on performance reasons.
We have seen that this is one of the parts that causes more problems when people start using
Unit Tests. This is due to the fact that complex environments normally require elaborated setup
and clean-up stages which in themselves may be buggy, time consuming, and difficult to maintain.
21. 425 Agile White Book – AXA Emerging Markets EMEA-LATAM
HOW TO WRITE great tests
UNIT TESTS REFACTORING
Remember that tests are code that needs to be refactored and improved, in the same way as any
other part of the production code, so XP refactoring techniques can be also used in here.
Sometimes you encounter failing tests even though the change made to the code was completely
fine; this usually means that you have encountered conflicting requirements. This frequently happens
when a new requirement conflicts with an old feature that may no longer be valid. You have two
possible alternatives in here:
Delete the failing test after verifying that it is no longer valid.
Change the old test so you test the new requirement.
Sometimes an old test might need just to include a new initialisation process as a result of a change in
shared objects (i.e. database). If that is the case, you should only need to refactor the setup part to
make sure it uses the new way.
One last thing to have in mind is that duplication in tests code greatly increases the cost of writing
and maintaining them. As a result of this, we recommend you reuse as much as you can as long as it
does not compromise the value of test as documentation.
22. 426 Agile White Book – AXA Emerging Markets EMEA-LATAM
Here are some ideas that might help:
- Perform most tests without the database (check
the next section).
- Allow each test to prepare their own set of data on
the database and rollback the changes when the
clean up is executed.
- Use in-memory databases (Derby, H2, HSQLDB,
etc.)
TESTING techniques
TEST CODE THAT INTERACTS WITH DATABASES
You may come across code that interacts with databases, and in this case, adjusting your tests to take
this into account is required. A similar scenario is found when Functional Tests that require
preparation are used, for example, the need of a predefined set of values to ensure that tests always
have the same data to work with.
23. 427 Agile White Book – AXA Emerging Markets EMEA-LATAM
TESTING techniques
TESTS AND INTERACTIONS BETWEEN MODULES
As we have mentioned before, a Unit Test should only verify one method at a time. It means that
some parameters are passed to just one module, and once values are returned, the assertion should
verify that output.
There are many scenarios where modules may use other modules, for example, to get data from a
database, write a file to a folder, etc. This obviously breaks the “test one method” principle and adds
variability to the process.
In order to stick to the rule, the dependency should be substituted with one that is easier to handle
during testing. This technique is known as dependency injection or mock objects and gives
isolation while keeping simplicity.
Basically, the injected dependency pretends to implement the required functionality, replacing it
with one that is easier to control from the test. Another scenario where mock objects are needed is
when good performance or a simplified setup and clean-up process is needed. These are some of
the benefits of “mocking” objects:
- Code can be tested even if the dependency is not available yet.
- Indirect outputs can be captured and controlled.
- Error conditions can be simulated, such as timeouts and connection errors.
- Any type of “hard to set up” dependencies (i.e. low databases or connections) can be avoided.
Have in mind that writing and using substitutes may be long, complicated and susceptible to error and,
in order to prevent this, there are some frameworks available in the market that simplify the whole
process (EasyMock, Mockito, jMock, etc).
24. 428 Agile White Book – AXA Emerging Markets EMEA-LATAM
TESTING techniques
CONTINUOUS INTEGRATION
Continuous Integration (CI) is a practise coming from Extreme Programming (XP) that uses a tool
which helps developers integrate code and Unit Tests into a shared repository several times a day
(Check out Chapter 11 for more information about Extreme Programming). By integrating regularly,
people can detect errors quickly, and locate them easier.
Check out Chapter 11 for more information about Continuous Integration.
25. 429 Agile White Book – AXA Emerging Markets EMEA-LATAM
TESTING techniques
DANGERS OF INVERTING THE SEQUENCE
One practise we have broadly seen when people begin using TDD is that they start inverting the
sequence, it means, writing the code first and test after, as it looks more natural and
consistent. Even if it appears to be a naïve change, it creates a different outcome and a huge
number of undesired consequences. Under these conditions, Tests no longer affect the way
that developers think about the solution as they start focusing on small parts of the code instead
of the possible edges of the solution.
Additionally, tests may also turn out to be optional making portions of the code untestable or not
“safe”. As a result of that, the product becomes less sustainable in the long term as it stops
supporting the idea of quality, simplicity or embracing the change.
26. 430 Agile White Book – AXA Emerging Markets EMEA-LATAM
TAKE AWAY
REMEMBER
Create a repeatable and reliable testing process and, if possible, automated.
The whole team is responsible for quality.
Defects are easy to fix if you use tests.
Code is documented by the test.
DEEPEN YOUR KNOWLEDGE
Agile Testing Book
EasyMock, Mockito, JMock
The Role of the Agile tester
Test-driven Development
Behaviour-driven Development
BENEFITS
Helps ensure a quality product during the whole development process, not only at the end.
The whole Team focuses on the quality of the product, at all moments.
Encourages face-to-face communication between all Team members.
Automated tests provide confidence to the Team to make changes safely.
Everybody in the team does testing; not merely the testers.
As more tests become automated, this allows for specialised Testers to work on other important areas,
such as the Acceptance Criteria of User Stories.