Drupal coding standards and best practicesvaluebound
Every coder needs to follow a set of rules to code in any language. Drupal too follows a standard for coding and best practices to ensure the code is readable, manageable and editable.
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...Bert Jan Schrijver
This document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and Continuous Deployment. The goal of CD is to have a repeatable, reliable process for releasing software. Key principles of CD include keeping everything in version control, continuous improvement, and automating processes. Ingredients for successful CD include culture/organization, design/architecture, testing/verification, building/deploying, and information/reporting. CD is enabled by DevOps, where developers and operations work together throughout the software development lifecycle. The document provides examples of CD patterns and anti-patterns and encourages starting with small improvements.
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...Bert Jan Schrijver
The document discusses principles of continuous delivery and DevOps. It defines continuous delivery, continuous integration, and DevOps. The goal of continuous delivery is to have software ready for release at any time by building and testing it frequently. DevOps aims to have development and operations teams work together throughout the software lifecycle. The document outlines ingredients for successful continuous delivery like automated testing, version control, and building quality in from the start. It also discusses patterns and anti-patterns for continuous delivery and DevOps.
The document discusses Cucumber, a tool that allows executing plain text behavioral descriptions as automated tests. It can:
- Execute Ruby code associated with sentences written in a natural language format. This allows customers to read and understand the tests.
- Be used for end-to-end testing of web applications from the user interface to the data layer.
- Leverage the Ruby programming language to access databases, configure tests, and more.
- Grow project-specific vocabularies over time through its framework and grammar to improve communication between customers and developers.
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Bert Jan Schrijver
This document discusses principles of continuous delivery and DevOps. It defines continuous integration, continuous delivery, and continuous deployment. The goal of continuous delivery is to have software ready for release at any time by building and testing frequently. DevOps aims to have development and operations teams work together throughout the software lifecycle. The document provides principles and ingredients for continuous delivery, including automating processes, keeping everything in version control, and continuous improvement. It also discusses patterns and anti-patterns for continuous delivery.
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...Bert Jan Schrijver
This document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and DevOps. The goal of CD is to reliably release software quickly by having an automated testing and deployment pipeline. DevOps aims to break down silos between development and operations to collaboratively deliver software. The document provides examples of CD and DevOps principles, ingredients, patterns and anti-patterns to guide successful implementation.
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...Bert Jan Schrijver
This document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and DevOps. The goal of CD is to reliably release software quickly by having an automated testing and deployment pipeline. DevOps aims to break down silos between development and operations to collaboratively deliver software. The document provides examples of CD and DevOps patterns that teams can follow like automating testing, deployments and monitoring. It also identifies anti-patterns to avoid.
Rory Preddy gave a presentation on polyglot programming. He defined a polyglot programmer as someone who uses multiple programming languages in a single application. He discussed polyglot paradigm programming, which combines multiple programming paradigms like object-oriented, functional, and logic paradigms. He also discussed polyglot systems, which use different languages for different parts of a multi-tiered project based on which language is best suited. He provided examples of domain-specific languages, dynamic languages, and stable core languages used in polyglot systems. Finally, he discussed benefits and challenges of polyglot programming and how to get started with it.
Drupal coding standards and best practicesvaluebound
Every coder needs to follow a set of rules to code in any language. Drupal too follows a standard for coding and best practices to ensure the code is readable, manageable and editable.
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...Bert Jan Schrijver
This document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and Continuous Deployment. The goal of CD is to have a repeatable, reliable process for releasing software. Key principles of CD include keeping everything in version control, continuous improvement, and automating processes. Ingredients for successful CD include culture/organization, design/architecture, testing/verification, building/deploying, and information/reporting. CD is enabled by DevOps, where developers and operations work together throughout the software development lifecycle. The document provides examples of CD patterns and anti-patterns and encourages starting with small improvements.
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...Bert Jan Schrijver
The document discusses principles of continuous delivery and DevOps. It defines continuous delivery, continuous integration, and DevOps. The goal of continuous delivery is to have software ready for release at any time by building and testing it frequently. DevOps aims to have development and operations teams work together throughout the software lifecycle. The document outlines ingredients for successful continuous delivery like automated testing, version control, and building quality in from the start. It also discusses patterns and anti-patterns for continuous delivery and DevOps.
The document discusses Cucumber, a tool that allows executing plain text behavioral descriptions as automated tests. It can:
- Execute Ruby code associated with sentences written in a natural language format. This allows customers to read and understand the tests.
- Be used for end-to-end testing of web applications from the user interface to the data layer.
- Leverage the Ruby programming language to access databases, configure tests, and more.
- Grow project-specific vocabularies over time through its framework and grammar to improve communication between customers and developers.
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Bert Jan Schrijver
This document discusses principles of continuous delivery and DevOps. It defines continuous integration, continuous delivery, and continuous deployment. The goal of continuous delivery is to have software ready for release at any time by building and testing frequently. DevOps aims to have development and operations teams work together throughout the software lifecycle. The document provides principles and ingredients for continuous delivery, including automating processes, keeping everything in version control, and continuous improvement. It also discusses patterns and anti-patterns for continuous delivery.
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...Bert Jan Schrijver
This document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and DevOps. The goal of CD is to reliably release software quickly by having an automated testing and deployment pipeline. DevOps aims to break down silos between development and operations to collaboratively deliver software. The document provides examples of CD and DevOps principles, ingredients, patterns and anti-patterns to guide successful implementation.
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...Bert Jan Schrijver
This document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and DevOps. The goal of CD is to reliably release software quickly by having an automated testing and deployment pipeline. DevOps aims to break down silos between development and operations to collaboratively deliver software. The document provides examples of CD and DevOps patterns that teams can follow like automating testing, deployments and monitoring. It also identifies anti-patterns to avoid.
Rory Preddy gave a presentation on polyglot programming. He defined a polyglot programmer as someone who uses multiple programming languages in a single application. He discussed polyglot paradigm programming, which combines multiple programming paradigms like object-oriented, functional, and logic paradigms. He also discussed polyglot systems, which use different languages for different parts of a multi-tiered project based on which language is best suited. He provided examples of domain-specific languages, dynamic languages, and stable core languages used in polyglot systems. Finally, he discussed benefits and challenges of polyglot programming and how to get started with it.
This document provides an overview of the Cucumber testing tool. It discusses Behavior Driven Development (BDD) and how Cucumber enables BDD. The document covers the key components of Cucumber including Gherkin language, feature files, step definitions, and tags. It also provides examples of how Cucumber can be used with Selenium for automated testing and discusses Cucumber reports.
Test Driven Development (TDD) on Force.com projectsAldo Fernandez
Testing is the key to successful long-term development and is a critical component of the development process. Salesforce's Best Practices strongly recommend that you use a test-driven development process, that is, test development that occurs at the same time as code development. But, how real is this in our projects? what are the long-term benefits? how to encourage developers to think test-first? is this feasible? Join us to discover myths and truths of TDD.
Testing for Agility: Bringing Testing into EverythingCamille Bell
The document discusses testing in an agile environment. It covers:
- Bringing testing into all aspects of development, not just as a separate phase.
- The problems that can arise from using a "waterfall" testing approach of waiting until late in the process to test, rather than continuous testing.
- How agile practices like test-driven development, behavior-driven development, and continuous integration can help transform testing practices from waterfall to more iterative and collaborative approaches.
This document discusses principles of continuous delivery and DevOps. It defines continuous integration, continuous delivery, and continuous deployment, and explains that the goal of these practices is to reliably and repeatedly deploy software updates. The document outlines ingredients for successful continuous delivery, including building quality in, keeping everything in version control, automating processes, and ensuring everybody is responsible for software delivery. It also discusses DevOps and why organizations adopt continuous delivery and DevOps practices like reducing errors, empowering teams, and increasing deployment flexibility.
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Bert Jan Schrijver
This document discusses principles of Continuous Delivery and DevOps. It defines key terms like Continuous Integration, Continuous Delivery, and DevOps. The document explains that the goal of Continuous Delivery is to have working software in production. It outlines ingredients for Continuous Delivery like culture, automation, and testing. It also discusses patterns and anti-patterns and provides guidance on getting started with Continuous Delivery.
Don't get blamed for your choices - Techorama 2019Hannes Lowette
As developers, we make choices all the time: architecture, frameworks, libraries, cloud providers, etc. And if you’ve been around for a while, you probably ended up regretting at least some of your choices.
In this session, we'll explore the typical pitfalls of making development choices and how to avoid them. By the end of this session, you will be armed to take any decision they will throw at you.
Now, if only there was a way to prove to your peers and superiors that you acquired this skill...
Well, there is! RAD Certification! I'll end my talk by telling you about this awesome certification program!
Being Test-Driven: It's not really about testingRaj Indugula
This document discusses test-driven development (TDD) and behavior-driven development (BDD). It describes how BDD uses conversations to discover requirements and build shared understanding. BDD captures conversations as executable specifications expressed in a common language. TDD follows the "Red-Green-Refactor" process of writing a failing test, adding code to pass the test, and refactoring code. TDD drives better design through incremental development guided by tests and prevents overdesign. While TDD can improve design, it also risks overly complex test code and dependencies if not kept simple. The document advocates starting with examples to guide development and testing in a test-driven manner.
The Wall Street Journal already mentioned it in 2011: “Software is eating the world”. The world is starting to discover that nowadays, every company is an IT company. Product owners and other business representatives are seeing their competitors release new features to end users every day, and are demanding the same from their own software teams.
How do you measure up to this heavy pressure as an IT organisation? How to you manage to be able to quickly make changes to software systems in fast paced environments, without losing grip on quality? How do you build and test software in such a way, that it's always in a releasable state?
In this talk, I'll explain the principles of Continuous Delivery. You'll leave the session with enough insights to get started yourself right away.
1) DevOps aims to automate and integrate processes between software development and IT teams to increase efficiency. It emphasizes cross-team communication and technology automation.
2) When adopting Salesforce DevOps, organizations face challenges around lack of best practices, admin-friendliness of tools, complexity of Salesforce environments, and finding expertise.
3) There are two main approaches to Salesforce DevOps - building out a solution using Salesforce tools like DX and scripting, or buying an ISV solution. Building provides more flexibility while buying provides pre-built features and support.
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...Bert Jan Schrijver
The document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and Continuous Deployment and explains that the goal of CD is to have software ready for release at any time by building and testing it frequently. The key principles of CD include automating processes, keeping everything in version control, and having all team members responsible for software delivery. CD relies on factors like testing, continuous integration, monitoring, and ensuring the culture and architecture support rapid, reliable releases.
The document discusses whether the Groovy programming language is better than Java for testing. It outlines some of the pros and cons of each approach. While Java and JUnit tests are performant and well-supported, Groovy and the Spock testing framework make tests more readable, easier to write, and help describe expected system behavior through features like mocking and hamcrest matchers. Migrating existing Java tests to Groovy would require learning a new language but allow exploring its testing advantages without impacting production code. In conclusion, both have tradeoffs and the best approach depends on the specific project needs and developer preferences.
Adapting Agility: Getting your Agile Transformation UnstuckCamille Bell
In this presentation, I explore many common Agile transformation issues and what you can do about them. I cover challenges with customers, technical process, organizational hurdles, prioritization, agile requirements, etc. Some of the topics include:
o No single Product Owner in Scrum.
o No on-site customer for Extreme Programming.
o The user stories are too big.
o The user stories are too vague.
o Bug count is going up or not going down.
o Customer/Stakeholders/PO never choose technical stories for next iteration/sprint.
o Customer/Stakeholders/PO won't take the time to prioritize their backlog.
o Even though story points match prior velocity, there seems to be too much work.
o Stand-up or Scrum meetings take forever.
o Stand-up or Scrum meetings are short, but no one talks about real problems.
o Management doesn't value removing impediments quickly.
o Velocity seems to be slowing down.
o So many hoops to jump through that it takes forever to get anything done.
The document provides an overview of DevOps including its definition, history, components, and adoption process. DevOps is defined as a practice that emphasizes collaboration between development and operations teams. It aims to automate and monitor the software delivery process. The document outlines the people, processes, and technologies involved in DevOps. It also presents sample DevOps pipelines for different technology stacks and discusses adopting DevOps in an organization.
In his recent book, Clean Agile, Robert C "Uncle Bob" Martin chooses Extreme Programming (XP) for the basis of his explanation of Agile because "of all the Agile processes, XP is the best defined, the most complete, and the least muddled."
So why is it that in my professional life I only hear us speaking about Agile in terms of Scrum, Sprints, and possibly Kanban? Often I mention XP and people are not sure what I mean. Am I sure myself?
Coined in 1999 by Kent Beck and Ward Cunningham, XP has been with us for twenty years, but may of its practices have been with us for much longer. Many of them will be familar to you, but did you know they came from XP?
This talk aims to take us back to what XP is, how it fits in the Agile world, how it sits alongside other methodologies, and why, like Uncle Bob, I believe it is the best defined methodology, and what we should all be talking about.
The talk is based on a heavily refactored talk that Mike gave previously at Agile on the Beach conference, updated for 2020.
Given at Ox:Agile Meetup on February 11th 2020: https://www.meetup.com/OXAGILE/events/nxrdmrybcdbpb/
Belgium Testing Days - Making Test Automation Work in Agile Projectslisacrispin
Slides from tutorial. Note that the most important part of the tutorial is the exercises, and I can't capture that in the slide deck. Please do not use these for public paid courses, I'm tired of our stuff being ripped off for agile testing classes.
Minding your own business - TestBash 2 talklisacrispin
This document is the notes from a presentation on testing by Lisa Crispin in Brighton, UK in 2013. The presentation discusses the importance of testers gaining knowledge of the business domain and stakeholders in order to understand why certain features or deliverables are important. It suggests techniques for testers to learn about the business such as creating personas, mapping impacts, and using mind mapping or story mapping. The presentation also notes that domain knowledge can help testing be more efficient and enable simplification.
Ike Ellis gave a presentation on the 14 habits of great SQL developers. Some of the key habits discussed included having strong testing practices like using mocking frameworks and testing that code runs correctly; always automating processes and never directly changing objects in production; questioning assumptions and re-evaluating decisions; understanding the true goal is to deliver value rather than just writing code; treating software development as a team sport through practices like code reviews and knowledge sharing; and constantly improving code quality by refactoring and fixing issues. The presentation emphasized habits like these can help developers increase their value.
This document summarizes Rik Dryfoos' presentation on software craftsmanship. It discusses that craftsmanship focuses on not just delivering working software, but well-crafted software that is easy to maintain. It presents the costs of only focusing on delivery over ownership. Craftsmanship is defined as code that is simple, lacks duplication, and is readable. The document also discusses a manifesto for software craftsmanship and challenges that top-down management poses for craftsmanship.
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
Why You Need to Stop Using "The" Staging ServerOutlyer
Old staging methodology is broken for modern development. In fact, the staging server is left over from when we built monolithic applications. Find out why microservice architectures are driving ephemeral testing environments & why every sized dev shop should deliver true continuous deployment.
Staging servers slow down development with merge conflicts, slow iteration loops, and manhour intensive processes. To build better software faster containers and infrastructure as code are key in 2017. Dev Ops professionals miss this talk at their own peril.
This document provides an overview of the Cucumber testing tool. It discusses Behavior Driven Development (BDD) and how Cucumber enables BDD. The document covers the key components of Cucumber including Gherkin language, feature files, step definitions, and tags. It also provides examples of how Cucumber can be used with Selenium for automated testing and discusses Cucumber reports.
Test Driven Development (TDD) on Force.com projectsAldo Fernandez
Testing is the key to successful long-term development and is a critical component of the development process. Salesforce's Best Practices strongly recommend that you use a test-driven development process, that is, test development that occurs at the same time as code development. But, how real is this in our projects? what are the long-term benefits? how to encourage developers to think test-first? is this feasible? Join us to discover myths and truths of TDD.
Testing for Agility: Bringing Testing into EverythingCamille Bell
The document discusses testing in an agile environment. It covers:
- Bringing testing into all aspects of development, not just as a separate phase.
- The problems that can arise from using a "waterfall" testing approach of waiting until late in the process to test, rather than continuous testing.
- How agile practices like test-driven development, behavior-driven development, and continuous integration can help transform testing practices from waterfall to more iterative and collaborative approaches.
This document discusses principles of continuous delivery and DevOps. It defines continuous integration, continuous delivery, and continuous deployment, and explains that the goal of these practices is to reliably and repeatedly deploy software updates. The document outlines ingredients for successful continuous delivery, including building quality in, keeping everything in version control, automating processes, and ensuring everybody is responsible for software delivery. It also discusses DevOps and why organizations adopt continuous delivery and DevOps practices like reducing errors, empowering teams, and increasing deployment flexibility.
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Bert Jan Schrijver
This document discusses principles of Continuous Delivery and DevOps. It defines key terms like Continuous Integration, Continuous Delivery, and DevOps. The document explains that the goal of Continuous Delivery is to have working software in production. It outlines ingredients for Continuous Delivery like culture, automation, and testing. It also discusses patterns and anti-patterns and provides guidance on getting started with Continuous Delivery.
Don't get blamed for your choices - Techorama 2019Hannes Lowette
As developers, we make choices all the time: architecture, frameworks, libraries, cloud providers, etc. And if you’ve been around for a while, you probably ended up regretting at least some of your choices.
In this session, we'll explore the typical pitfalls of making development choices and how to avoid them. By the end of this session, you will be armed to take any decision they will throw at you.
Now, if only there was a way to prove to your peers and superiors that you acquired this skill...
Well, there is! RAD Certification! I'll end my talk by telling you about this awesome certification program!
Being Test-Driven: It's not really about testingRaj Indugula
This document discusses test-driven development (TDD) and behavior-driven development (BDD). It describes how BDD uses conversations to discover requirements and build shared understanding. BDD captures conversations as executable specifications expressed in a common language. TDD follows the "Red-Green-Refactor" process of writing a failing test, adding code to pass the test, and refactoring code. TDD drives better design through incremental development guided by tests and prevents overdesign. While TDD can improve design, it also risks overly complex test code and dependencies if not kept simple. The document advocates starting with examples to guide development and testing in a test-driven manner.
The Wall Street Journal already mentioned it in 2011: “Software is eating the world”. The world is starting to discover that nowadays, every company is an IT company. Product owners and other business representatives are seeing their competitors release new features to end users every day, and are demanding the same from their own software teams.
How do you measure up to this heavy pressure as an IT organisation? How to you manage to be able to quickly make changes to software systems in fast paced environments, without losing grip on quality? How do you build and test software in such a way, that it's always in a releasable state?
In this talk, I'll explain the principles of Continuous Delivery. You'll leave the session with enough insights to get started yourself right away.
1) DevOps aims to automate and integrate processes between software development and IT teams to increase efficiency. It emphasizes cross-team communication and technology automation.
2) When adopting Salesforce DevOps, organizations face challenges around lack of best practices, admin-friendliness of tools, complexity of Salesforce environments, and finding expertise.
3) There are two main approaches to Salesforce DevOps - building out a solution using Salesforce tools like DX and scripting, or buying an ISV solution. Building provides more flexibility while buying provides pre-built features and support.
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...Bert Jan Schrijver
The document discusses principles of Continuous Delivery (CD) and DevOps. It defines CD, Continuous Integration, and Continuous Deployment and explains that the goal of CD is to have software ready for release at any time by building and testing it frequently. The key principles of CD include automating processes, keeping everything in version control, and having all team members responsible for software delivery. CD relies on factors like testing, continuous integration, monitoring, and ensuring the culture and architecture support rapid, reliable releases.
The document discusses whether the Groovy programming language is better than Java for testing. It outlines some of the pros and cons of each approach. While Java and JUnit tests are performant and well-supported, Groovy and the Spock testing framework make tests more readable, easier to write, and help describe expected system behavior through features like mocking and hamcrest matchers. Migrating existing Java tests to Groovy would require learning a new language but allow exploring its testing advantages without impacting production code. In conclusion, both have tradeoffs and the best approach depends on the specific project needs and developer preferences.
Adapting Agility: Getting your Agile Transformation UnstuckCamille Bell
In this presentation, I explore many common Agile transformation issues and what you can do about them. I cover challenges with customers, technical process, organizational hurdles, prioritization, agile requirements, etc. Some of the topics include:
o No single Product Owner in Scrum.
o No on-site customer for Extreme Programming.
o The user stories are too big.
o The user stories are too vague.
o Bug count is going up or not going down.
o Customer/Stakeholders/PO never choose technical stories for next iteration/sprint.
o Customer/Stakeholders/PO won't take the time to prioritize their backlog.
o Even though story points match prior velocity, there seems to be too much work.
o Stand-up or Scrum meetings take forever.
o Stand-up or Scrum meetings are short, but no one talks about real problems.
o Management doesn't value removing impediments quickly.
o Velocity seems to be slowing down.
o So many hoops to jump through that it takes forever to get anything done.
The document provides an overview of DevOps including its definition, history, components, and adoption process. DevOps is defined as a practice that emphasizes collaboration between development and operations teams. It aims to automate and monitor the software delivery process. The document outlines the people, processes, and technologies involved in DevOps. It also presents sample DevOps pipelines for different technology stacks and discusses adopting DevOps in an organization.
In his recent book, Clean Agile, Robert C "Uncle Bob" Martin chooses Extreme Programming (XP) for the basis of his explanation of Agile because "of all the Agile processes, XP is the best defined, the most complete, and the least muddled."
So why is it that in my professional life I only hear us speaking about Agile in terms of Scrum, Sprints, and possibly Kanban? Often I mention XP and people are not sure what I mean. Am I sure myself?
Coined in 1999 by Kent Beck and Ward Cunningham, XP has been with us for twenty years, but may of its practices have been with us for much longer. Many of them will be familar to you, but did you know they came from XP?
This talk aims to take us back to what XP is, how it fits in the Agile world, how it sits alongside other methodologies, and why, like Uncle Bob, I believe it is the best defined methodology, and what we should all be talking about.
The talk is based on a heavily refactored talk that Mike gave previously at Agile on the Beach conference, updated for 2020.
Given at Ox:Agile Meetup on February 11th 2020: https://www.meetup.com/OXAGILE/events/nxrdmrybcdbpb/
Belgium Testing Days - Making Test Automation Work in Agile Projectslisacrispin
Slides from tutorial. Note that the most important part of the tutorial is the exercises, and I can't capture that in the slide deck. Please do not use these for public paid courses, I'm tired of our stuff being ripped off for agile testing classes.
Minding your own business - TestBash 2 talklisacrispin
This document is the notes from a presentation on testing by Lisa Crispin in Brighton, UK in 2013. The presentation discusses the importance of testers gaining knowledge of the business domain and stakeholders in order to understand why certain features or deliverables are important. It suggests techniques for testers to learn about the business such as creating personas, mapping impacts, and using mind mapping or story mapping. The presentation also notes that domain knowledge can help testing be more efficient and enable simplification.
Ike Ellis gave a presentation on the 14 habits of great SQL developers. Some of the key habits discussed included having strong testing practices like using mocking frameworks and testing that code runs correctly; always automating processes and never directly changing objects in production; questioning assumptions and re-evaluating decisions; understanding the true goal is to deliver value rather than just writing code; treating software development as a team sport through practices like code reviews and knowledge sharing; and constantly improving code quality by refactoring and fixing issues. The presentation emphasized habits like these can help developers increase their value.
This document summarizes Rik Dryfoos' presentation on software craftsmanship. It discusses that craftsmanship focuses on not just delivering working software, but well-crafted software that is easy to maintain. It presents the costs of only focusing on delivery over ownership. Craftsmanship is defined as code that is simple, lacks duplication, and is readable. The document also discusses a manifesto for software craftsmanship and challenges that top-down management poses for craftsmanship.
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
Why You Need to Stop Using "The" Staging ServerOutlyer
Old staging methodology is broken for modern development. In fact, the staging server is left over from when we built monolithic applications. Find out why microservice architectures are driving ephemeral testing environments & why every sized dev shop should deliver true continuous deployment.
Staging servers slow down development with merge conflicts, slow iteration loops, and manhour intensive processes. To build better software faster containers and infrastructure as code are key in 2017. Dev Ops professionals miss this talk at their own peril.
How BDD with tools like Cucumber can create a stronger team, a better quality product, and ultimately a more useable API. Given at the #apistrat SF conference 10/24/2013
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
The document discusses Behavior Driven Development (BDD) and how it can help increase quality and prepare an organization for increased business demands. It describes BDD as an industry practice where the whole team collaborates on system testing and definition of done. BDD promotes requirements using examples, collaboration between roles, finding defects earlier and more often through automation, and keeping technical debt low.
This document outlines an agenda for a presentation on Test Driven Development (TDD) best practices. The agenda includes sections on an overview and introduction to TDD, what TDD is and the process, challenges of TDD, learning and best practices for sustaining TDD, frameworks and variations of TDD, and a question and answer period. Some key best practices discussed are writing tests before code, focusing tests on functionality rather than code structure, and establishing governance and training to ensure proper adoption of TDD.
• What is Behavior Driven Development?
• What is its value?
• How does BDD differ from Test-Driven Development?
• What is the role of the customer/product owner in BDD?
• What about teams that have traditional manual testers?
• What about teams that have developers but not testers?
• What is a good BDD test?
• What should be tested manually?
Moving faster with CI/CD: Best DevOps practices and lessons learntMalinda Kapuruge
The document discusses implementing continuous integration (CI) and continuous delivery (CD) practices to reduce time to market and quickly fix production issues. It describes setting up automated testing, code scanning, and infrastructure as code in a CI pipeline using tools like GitHub Actions, Jest, Docker, and Terraform. This allows small code changes to be frequently committed, tested, and merged while avoiding large deployments. Changes are then continuously delivered to staged environments like development, test, and production through automated deployment processes.
The document discusses best practices for writing software that matters through techniques like behavior-driven development (BDD). It compares test-driven development (TDD) to BDD, noting that BDD shifts the focus from verification to specification by describing desired behaviors. The document also provides examples of how to structure user stories and define scenarios using a given-when-then format to plan development around customer needs.
Javascript Tests with Jasmine for Front-end DevsChris Powers
Jasmine isn't just for Rubyists - it's for anyone that wants to revolutionize their Javascript code and development workflow. I give a tutorial in getting up and running with an agile, Test Driven Development workflow using nothing but HTML and Javascript.
Behaviour testing for single-page applications and API’sAndrew Kirkpatrick
The document discusses behavior testing for single-page applications and APIs. It covers how testing the web has evolved as applications have become more dynamic and separated into front-end and back-end codebases. This has made end-to-end testing more complex. The document advocates for behavior driven development (BDD) using a tool like Behat, which allows writing tests in a business-readable language called Gherkin that can test both the front-end and back-end applications and their integration. Examples are given of how to set up BDD testing across multiple containers to test the full system behavior.
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Jason Tice
The document discusses test-driven development (TDD). TDD is a software development process where test cases are created to specify requirements before code is written to pass those tests. This ensures code meets requirements. Benefits of TDD include fewer bugs due to comprehensive testing, and ability to refactor code without breaking functionality. The document provides examples of different types of tests and outlines best practices for getting started with TDD.
Entering in the full TDD, including:
- how TDD works and why it is required in Agile development
- why there are so many people that say that TDD does not work
- how to fix the problems in bad TDD to make it effective
- and the primary value of the sofware: make it adaptable
DevOps Fest 2020. immutable infrastructure as code. True story.Vlad Fedosov
This document discusses the journey of transitioning infrastructure management at Namecheap to an immutable infrastructure as code model using tools like Terraform, Docker, and Jenkins. Key points include taking over a project from an outsourcing company, setting up immutable infrastructure with infrastructure as code, configuring CI/CD pipelines as code in Jenkins, and lessons learned around testing, chaos engineering, and encouraging team feedback. The overall goals were to make infrastructure hard to break, easy to repair, and easy to modify.
The document discusses the importance of testing code through test-driven development (TDD) and behavior-driven development (BDD). It explains that TDD involves writing tests, watching them fail, making them pass, refactoring, and repeating. BDD is more complex and involves business analysts, developers, and stakeholders specifying desired behaviors as user stories. The document encourages writing unit tests because it allows for quick code changes with confidence, helps understand code design, and documents expected behavior, though it takes time initially.
This document summarizes Rik Dryfoos' presentation on software craftsmanship. It discusses that craftsmanship focuses on not just delivering working software, but well-crafted software that is easy to maintain. It presents the costs of only focusing on delivery over ownership. Craftsmanship is defined as code that is simple, lacks duplication, and is readable. The document also discusses a manifesto for software craftsmanship and challenges that top-down management poses for craftsmanship.
This document discusses Behavior Driven Development (BDD), an evolution of Test-Driven Development (TDD). BDD focuses on designing tests before implementation based on customer needs using a single language. It aims to improve software design, testability and decrease bugs through executable documentation and acceptance tests written by domain experts rather than developers. A list of common BDD tools is also provided.
Similar to BDD & Beyond: The Past, Present, & Future of Test Automation (20)
The March 2022 meetup covered several cloud computing updates. ARM64 virtual machines are now available on certain cloud providers but with limitations on regions and setup requirements. Some previously free services like multi-region storage buckets and load balancer egress data will now incur additional costs. Google Cloud announced Prometheus as a managed service and Knative as incubating. AWS Lambda saw boosts to function URLs and ephemeral storage and EC2 instances can now be automatically backed up. Cloud organizations in AWS can centrally close member accounts.
Event link: https://www.meetup.com/rvacloudwranglers/events/283401214
Description:
Breaking into the tech field...sucks. And what makes it an even bigger bummer is that it seems like there's no ladder, no support system, no love from everyone on the "inside".
Well, enough with that mess. This is a 45-minute overview of what's going in Richmond's tech scene, how to stop throwing your online applications at the proverbial wall, and how to squirm your way into the front door.
After Ford's overview, we'll moderate an epic panel discussion featuring some of the brightest, most loving technologists in the Richmond area:
Crystal Harvey, VP @ Robert Half
Alyssa Paulette (Engineer @ Capital One)
Dominique Meeks Gombe (Engineer @ Capital One)
Sam Thacker (Engineer @ CarMax)
Kim Mahan (Founder @ MAXX Potential)
After, we'll be raffling a couple of hot items:
AirPods (thanks to Robert Half)
Interview.io $150 voucher (thanks to Interview.io)
Tons of swag (thanks to AWS & Azure)
Buckle up! This is going to be our most legit event yet.
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)Ford Prior
This summary covers the key updates from AWS over a one month period from March 5th to April 8th 2020 across compute, data/storage, analytics, and machine learning services:
- AWS App Mesh launched support for end-to-end encryption. Applications using Amazon SNS can now be hosted in Asia Pacific (Mumbai) and Europe (Frankfurt) regions.
- Amazon Connect added phone numbers in twelve new countries. Amazon Personalize Optimizer was introduced using Amazon Pinpoint events.
- EC2 Batch now supports FSx for Lustre file systems. Bottlerocket, a new open-source Linux OS purpose-built for containers, was announced.
- Athena added work
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)Ford Prior
The document summarizes updates to AWS services from April 9 to May 12, 2020. It highlights enhancements to compute services like EKS and ECS, analytics services including Redshift and QuickSight, data and storage improvements such as expanded public data sets and RDS updates, and machine learning capabilities like new features for SageMaker and Amazon Polly.
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)Ford Prior
1. The document summarizes new and updated AWS services from February 15th to March 5th, 2020 that were presented to an AWS user group.
2. Key updates include EKS availability in new regions, improved EBS-optimized EC2 instances, secrets management integration with ECS, and new IAM condition keys.
3. The summary also briefly outlines updates to several other AWS services including EBS, Lambda, Connect, Transcribe, Greengrass, IoT Core, Control Tower, Bottlerocket, Rekognition, Aurora, and more.
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)Ford Prior
The document provides an overview of new and updated AWS services from February 2020. Key points include:
- AWS Glue adds new transforms for Apache Spark applications to work with datasets in S3.
- AWS Device Farm announces desktop browser testing using Selenium.
- Amazon EC2 Spot instances can now be stopped and started like on-demand instances.
- Alert to rotate certificates for RDS, Aurora, and DocumentDB instances due to an expiration.
re:Cap RVA - A Recap of AWS re:Invent 2019Ford Prior
This document provides an introduction to an individual who is a husband, father of two, English major, and AWS certified professional with interests in cloud technologies, open source, and martial arts. It then summarizes several AWS announcements including new capabilities for quantum computing labs, AI tools for regular users, identity and access management, and highlights from the AWS re:Invent keynote.
This is my noob recap of KubeCon 2019, which I transformed into a kubernetes bootcamp. I walked away with a bunch of learnings, so here they are for you :)
Agile QA: Redefining Quality in the Wild WestFord Prior
Agile has flipped the traditional software development lifecycle on its head. For the QA specialist, the waterfall-driven "testing stage"—where testers execute a pre-defined set of tests within a pre-defined timeline—has been redistributed and re-framed within Agile. I would even say it's been reborn.
Topics: Is Agile changing the quality game? How are QA thought leaders attempting to redefine our space? What are some tips/tricks/mindmaps I can use to do QA right on an agile team?
A super enjoyable and entertaining walk through API memory lane, then a primer on how to test API's from a unit, integration, and monitoring standpoint. Then a demo on a CI/CD implementation I created at Snagajob.
RVA QA Meetup #2: The Wild West of Agile QAFord Prior
This document outlines an agenda for discussing Agile QA. It begins with defining QA and Agile concepts separately, then discusses how they intersect in Agile QA. Key topics covered include testing approaches in Agile like testing early and often, automating tests when possible, and having testers involved throughout the development process. Success factors like collaboration, well-defined requirements and definitions of done, and strong defect management processes are covered. Anti-patterns like siloed teams and lack of communication are also discussed. The document provides testing tools, tips, and resources to help with Agile QA.
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.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
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.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
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.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
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.
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.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
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…
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
18. Yay!:
✓ Supports most browsers
✓ Supports most languages
✓ Popular w/ big community
✓ IDE allows bootstrapping test creation
✓ Selenium Grid = massive parallelization
19. Not so good:
○ SOP compliance
○ Limitations of JavaScript
○ Infrequent releases
○ Doesn’t like Safari
22. Yay!:
✓ Small, comprehensible API
✓ Durable to change b/c uses native OS
✓ Speed & performance (w/ trade-offs)
✓ Tiny (no server process)
✓ Accommodates Selenium API
23. Not so good:
○ Writing native browser code
○ Doesn’t like IE
○ Only supports Java?!
○ <?>
38. TDD, BDD, ATDD
New software development methodologies
They do just 2 things:
Problem Solution How
Changing, complex
requirements
1. Makes it easy to talk
about specs & stories
universal language and
format
High velocity 2. Helps developer “flow” w/ a fast, elegant,
automated feedback loop
39. RED
Outline an aspect of the
product that’s failing the
customer in some way.
GREEN
Come up with a solution so
that the customer wins
instead of loses.
REFACTOR
Streamline and slim down
experience while making
sure customer is still
winning.
BDD
(red, green, refactor)
For business people:
40. RED
Write some unit test code
that fails because the
feature it’s testing is non-
existent.
GREEN
Write some real code until
that test code is passing
instead of failing.
REFACTOR
Refactor the real code as
much as possible while unit
tests still pass.
TDD
(red, green, refactor)
For programmers:
41. RED
Write some acceptance test
code that fails because the
feature it’s testing is non-
existent.
GREEN
Give it to the programmer
and let him write real code
until your tests pass.
REFACTOR
Add test to “regression” list.
Programmer refactors/adds
new code without
regressing.
ATDD
(red, green, refactor)
For testers:
42. RED
Outline an aspect of the
product that’s failing the
customer in some way.
GREEN
Come up with a
solution so that
the customer
wins instead of
loses.
REFACTOR
Streamline and slim down
experience while making
sure customer is still
winning.
BDD
(red, green, refactor)
Put ‘em together:
RED
Write some test code
that fails because the
feature it’s testing is
non-existent.
GREEN
Write some real
code until that
test code is
passing instead
of failing.
REFACTOR
Refactor the real
code as much as
possible while
still passing
tests.
TDD
(red, green, refactor)
REFACTOR
Add test to “regression” list.
Programmer refactors/adds
new code without regressing.
RED
Write some
acceptance test
code that fails
because the
feature it’s testing
is non-existent.
GREEN
Give it to the
programmer and
let him write
real code until
your tests pass.
ATDD
(red, green, refactor)
43. Gherkin
✓ 2005
✓ Chris Matts
✓ ThoughtWorks
“Let’s start using a common way of talking
about requirements between Devs, PO’s,
and QA’s.”
44. JBehave
✓ 2006
✓ Dan North
✓ ThoughtWorks
✓ Agiledox (JUnit utility)
✓ TDD
“...And this format is specific enough for us to write
into test code.”
45. RSpec
✓ 2006
✓ Aslak Hellesøy
✓ ThoughtWorks
✓ BDD
“...And it can also be a way to communicate
specifications before they’re even coded.”
46.
47. RSpec Story Runner
✓ 2007
✓ David Chelimsky
✓ ThoughtWorks
✓ BDD
“In fact, let’s abstract it all so that it runs off
of plain text in a Given/When/Then format!”
StoryRunner
48. Cucumber
✓ 2008
✓ Aslak Hellesøy
✓ ThoughtWorks
✓ Forked from RSpec
✓ ATDD
“...and now it’s even better, plus in a bunch
of different languages!”
57. AI & ML are here.
✓ Trained on 1000’s of apps
✓ Less CSS targeting
✓ Based on natural language
58. Regression Classification Anomaly detection Pattern recognition
The high tomorrow will
probably be 84.6 F.
Tomorrow will be
muggy.
Tomorrow will be
abnormally hot.
Wear a raincoat
tomorrow, no need for
rain boots, and maybe
an umbrella.
This type of bug will
probably take 3 weeks to
fix and impact 1,000
users per day.
This page is a form, and
these are the relevant
fields and that’s the
Submit button.
This shouldn’t exist. That
shouldn’t have
happened.
That is a user profile,
and here’s how you
update it.
59. Here to stay (for now):
✓ “QA brain”
✓ Domain knowledge
✓ HTTP/Web (Selenium
WebDriver)
Editor's Notes
API testing 101
About Me
About Snagajob
HTTP
Is how the web communicates. Super quick over the wire, 234 ms.
API's
An API isn’t the same as the remote server — rather it is the part of the server that receives requests and sends responses.
The code that takes the HTTP requests and turns it into business vaue.
Stores in database so another app can access it,
Applies some logic to transform it into a number someone really cares about
Feeds it into some proprietary algo to drive insight
All of the above
Public & Private (amazon button story)
Microservices are new hottness
HTTP basics
this is a protocol, just like a language.
1) headers (includes auth, tells service what type of content it's delivering, and what to accept in terms of a response)
2) querystrings (optional) which are on the actual route and specify what to ask the application for (e.g. `http://gateway.api.snagQA.corp/customers?isActive=true` is asking for customers where isActive=true)
3) body (also optional) which is giving some detailed data to the service
so, those 3 things
the BODY is usually part of anything related to creation, but it can also be passed to an existing entity to overwrite some existing data.
so new customers will have large bodies
Project Mercury (NASA) software development, ran with half-day iterations. “All of us, as far as I can remember, thought waterfalling of a huge project was rather stupid, or at least ignorant of the realities.” — Weinberg G. M. (Project Mercury)
Monolithic architecture = monologue
One guy, totally opaque, barely making sense
Client-server architecture = two people talking
Two people with obvious intentions, personalities, concerns
Software development in the 1990s was shaped by two major influences: internally, object-oriented programming replaced procedural programming as the programming paradigm favored by some in the industry; externally, the rise of the Internet and the dot-com boom emphasized speed-to-market and company growth as competitive business factors. Rapidly changing requirements demanded shorter product life-cycles, and were often incompatible with traditional methods of software development.
1986
While in the process of developing and using early versions of Scrum, Ken asked Professor Babatunde A. Ogunnaike Tunde, a famous process control research engineer, to look at software development processes. Tunde investigated several commercial software-development methodologies to conclude that the waterfall and predictive process is not a good fit for the work of software development. He confirmed the empirical approach of Scrum to be the preferred process.
“The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. The second time there was a lot more on the line. I thought, "Damn the torpedoes, at least this will make a good article," [and] asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else.”
Why Cambrian?
~Oxygenation
~Two continents colliding
~Large extinction allowed open field
~All three?
Despite their proliferation, however, many Cambrian creatures eventually went extinct, including the exotic Opabinia, which had five eyes and a nose like a fire hose, and Wiwaxia, an armored slug with two rows of upright scales.
(Selenium Core replaced by WebDriver API’s in RC)
Wc3 stuff:
-2 independent implementations (Gecko + IE)
-Test Suite
Get Appium up to speed (it’s lingering behind)
Session Protocol Payload (currently, you can send pretty much anything into Desired_Capabilities, but with W3C it’s regimented
Commercial tool vendors adopting open-source WebDriver
EdgeDriver is focus of Microsoft; but IE Driver will stay open-source
Only spec-dialect version of protocol (no open-source drivers, browsers must comply)
Tighter Desired_Capabilities
https://intoli.com/blog/running-selenium-with-headless-chrome/
...So Google goes its own way with HEADLESS BROWSERS, too.
2017
With versions 59 and onwards, it will now be possible to harness the power of V8, Blink, and the rest of Chrome in a non-graphical server environment.
It has long been rumored that Google uses a headless variant of Chrome for their web crawls. Over the last two years or so it had started looking more and more like this functionality would eventually make it into the public releases and, as of this week, that has finally happened. With versions 59 and onwards, it will now be possible to harness the power of V8, Blink, and the rest of Chrome in a non-graphical server environment.
This may not sound earth-shattering if you don’t deal with headless browsers very often but it’s actually a pretty big deal. To put this into context: PhantomJS, one of the current leaders in the space, has over 21k stars on GitHub and is used by companies such as Netflix and Twitter for both unit and performance testing. Vitaly Slobodin, the former maintainer of PhantomJS, had this to say after hearing the news.
I think people will switch to it, eventually. Chrome is faster and more stable than PhantomJS. And it doesn’t eat memory like crazy.
I don’t see any future in developing PhantomJS. Developing PhantomJS 2 and 2.5 as a single developer is a bloody hell. Even with recently released 2.5 Beta version with new and shiny QtWebKit, I can’t physically support all 3 platforms at once (I even bought the Mac for that!). We have no support. From now, I am stepping down as maintainer. If someone wants to continue - feel free to reach me.
– Vitaly Slobodin
IIRC Cucumber was a re-write of the RSpec Story Runner, which was a re-write of JBehave.
AFAIK GWT came from Chris Matts, who was a business analyst working at Throughtworks with Dan North and @lunivore
IIRC Cucumber was a re-write of the RSpec Story Runner, which was a re-write of JBehave.
AFAIK GWT came from Chris Matts, who was a business analyst working at Throughtworks with Dan North and @lunivore