Getting Started With Selenium at ShutterstockSauce Labs
The document discusses getting started with Selenium automation at Shutterstock. It outlines Shutterstock's goals of building an enterprise-strength automation platform quickly to catch bugs earlier. Shutterstock chose Selenium due to its open source nature and partnered with an automation company to meet its goals rapidly during a period of growth. After several months, Shutterstock has developed over 600 automated test cases that run in under 2.5 hours and aims to continue expanding its automation program.
This document discusses how scaling teams to support big data growth at Yelp can negatively impact deployment speed due to an exponential increase in the probability of failures as the number of developers increases. It proposes service-oriented architecture and focusing on mean time to recovery rather than just preventing failures as ways to mitigate these risks and maintain rapid iteration. Continuous delivery, reliable but not exhaustive testing, and treating all processes as distributed are also recommended to support scaling teams while preserving deployment speed.
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
Do you remember your childhood when your mom or an older story teller pronounced the most interesting words in the world? “Once upon a time…” Let me be now your story teller, listen to my story about a legacy app, a painful problem, the search for the solution and the lucky outcome. No, no, this is not the story about a new green field project where everything is so clear. However, even in this story there is a master builder, who shows the developers how to scaffold the legacy app with BDD scenarios using SpecFlow or Cucumber and everything will be all right in the end. Let me tell you about different strategies, collaboration and testing patterns that can be followed in such a renovation-like situation. So, are you ready?... “Once upon a time there was a company where…” To be continued at my session
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Gáspár Nagy
Do you remember your childhood when your mom or an older story teller pronounced the most interesting words in the world? “Once upon a time…” Let me be now your story teller, listen to my story about a legacy app, a painful problem, the search for the solution and the lucky outcome. No, no, this is not the story about a new green field project where everything is so clear. However, even in this story there is a master builder, who shows the developers how to scaffold the legacy app with BDD scenarios using SpecFlow or Cucumber and everything will be all right in the end. Let me tell you about different strategies, collaboration and testing patterns that can be followed in such a renovation-like situation. So, are you ready?... “Once upon a time there was a company where…” To be continued at my session
This document discusses concurrency errors in Java and how to avoid them. It begins by defining a concurrency error as the result of incorrect synchronization that can cause issues like race conditions and starvation. It notes that concurrency errors can lead to data corruption, security vulnerabilities, and incorrect behavior. While Java includes synchronization primitives, concurrency is still tricky and errors can occur if the primitives are used incorrectly or without properly designing the concurrency model. The document provides examples of potential concurrency errors and ways to avoid them, such as locking on an appropriate shared object to ensure atomic read/write operations. In the end, it emphasizes the importance of remaining vigilant about concurrency through tools, analysis, and careful design.
1) The document discusses how human fallibility and increased development teams can lead to an exponential decay in the probability of successful deployments over time as the number of changes increases.
2) It recommends approaches like implementing a service-oriented architecture, focusing on mean time to recovery rather than just preventing failures, and establishing "DevOps deputies" to help mitigate this problem.
3) The key message is that organizations should embrace DevOps culture, tailor their approaches to their specific teams, plan for inevitable changes over time, and view components as distributed from the beginning.
This document discusses testing approaches for mobile applications at Yelp. It describes how Yelp uses documentation, mocks, and JSON to test new mobile APIs on iOS and Android. It outlines the different types of tests Yelp employs, including unit tests, integration tests, and UI tests. For iOS, it details how KIF is used for integration testing. For Android, it explains how Espresso is used for UI tests along with techniques for addressing flakiness and speeding up test runs.
Getting Started With Selenium at ShutterstockSauce Labs
The document discusses getting started with Selenium automation at Shutterstock. It outlines Shutterstock's goals of building an enterprise-strength automation platform quickly to catch bugs earlier. Shutterstock chose Selenium due to its open source nature and partnered with an automation company to meet its goals rapidly during a period of growth. After several months, Shutterstock has developed over 600 automated test cases that run in under 2.5 hours and aims to continue expanding its automation program.
This document discusses how scaling teams to support big data growth at Yelp can negatively impact deployment speed due to an exponential increase in the probability of failures as the number of developers increases. It proposes service-oriented architecture and focusing on mean time to recovery rather than just preventing failures as ways to mitigate these risks and maintain rapid iteration. Continuous delivery, reliable but not exhaustive testing, and treating all processes as distributed are also recommended to support scaling teams while preserving deployment speed.
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
Do you remember your childhood when your mom or an older story teller pronounced the most interesting words in the world? “Once upon a time…” Let me be now your story teller, listen to my story about a legacy app, a painful problem, the search for the solution and the lucky outcome. No, no, this is not the story about a new green field project where everything is so clear. However, even in this story there is a master builder, who shows the developers how to scaffold the legacy app with BDD scenarios using SpecFlow or Cucumber and everything will be all right in the end. Let me tell you about different strategies, collaboration and testing patterns that can be followed in such a renovation-like situation. So, are you ready?... “Once upon a time there was a company where…” To be continued at my session
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Gáspár Nagy
Do you remember your childhood when your mom or an older story teller pronounced the most interesting words in the world? “Once upon a time…” Let me be now your story teller, listen to my story about a legacy app, a painful problem, the search for the solution and the lucky outcome. No, no, this is not the story about a new green field project where everything is so clear. However, even in this story there is a master builder, who shows the developers how to scaffold the legacy app with BDD scenarios using SpecFlow or Cucumber and everything will be all right in the end. Let me tell you about different strategies, collaboration and testing patterns that can be followed in such a renovation-like situation. So, are you ready?... “Once upon a time there was a company where…” To be continued at my session
This document discusses concurrency errors in Java and how to avoid them. It begins by defining a concurrency error as the result of incorrect synchronization that can cause issues like race conditions and starvation. It notes that concurrency errors can lead to data corruption, security vulnerabilities, and incorrect behavior. While Java includes synchronization primitives, concurrency is still tricky and errors can occur if the primitives are used incorrectly or without properly designing the concurrency model. The document provides examples of potential concurrency errors and ways to avoid them, such as locking on an appropriate shared object to ensure atomic read/write operations. In the end, it emphasizes the importance of remaining vigilant about concurrency through tools, analysis, and careful design.
1) The document discusses how human fallibility and increased development teams can lead to an exponential decay in the probability of successful deployments over time as the number of changes increases.
2) It recommends approaches like implementing a service-oriented architecture, focusing on mean time to recovery rather than just preventing failures, and establishing "DevOps deputies" to help mitigate this problem.
3) The key message is that organizations should embrace DevOps culture, tailor their approaches to their specific teams, plan for inevitable changes over time, and view components as distributed from the beginning.
This document discusses testing approaches for mobile applications at Yelp. It describes how Yelp uses documentation, mocks, and JSON to test new mobile APIs on iOS and Android. It outlines the different types of tests Yelp employs, including unit tests, integration tests, and UI tests. For iOS, it details how KIF is used for integration testing. For Android, it explains how Espresso is used for UI tests along with techniques for addressing flakiness and speeding up test runs.
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...Gene Kim
Lessons Learned from a Parallel Universe
David N. Blank-Edelman, Technical Evangelist, Apcera
Just within the last ten or so years, we have seen at least two separate communities evolve at the crossroads of development and operations. The first—DevOps—grew up very much in public, the second matured sequestered within the halls of “special” companies like Google and Facebook and is only now starting to gain visibility and traction in the wider world. The DevOps and Site Reliability Engineering (SRE) communities barely speak, yet both have common ancestors and much to offer each other. Let’s look at what they have in common, how they differ, and what are the key things we can learn from both.
DevOps Enterprise Summit San Francisco 2016
Shift to the right side of your brain - 6th World Congress on Software Qualit...SYSQA BV
Mastering one way of testing isn’t enough to be a professional tester nowadays. You need to have knowledge and experience with different ways of testing to test well in every situation. In the presentation Jan Jaap will present different ways of testing like global scripting, session based testing, bug hunts, test tours and pure exploratory testing. All have proven to be useful in agile projects.
In projects where different ways of testing are used drafting a test strategy is different compared to a project where only one way is used. Jan Jaap will explain how a test strategy is made in a project where different ways of testing are used. The things to take into consideration in an agile project will also be explained.
This talk gives you an insight in the different ways of testing you have to master to optimize your test effort.
Main Statement:
Scripted testing is for agile projects too rigid to be used in agile. Testers need to learn different ways of testing to be able to optimize the way of testing in an agile project.
Key Learnings:
Scripted testing, the way of testing most of us learned and used in the past, doesn’t work in agile projects. It’s too rigid
Professional testers need to master different ways of testing to be able to test well in an agile project.
The pros and cons of different ways of testing in agile projects.
This document discusses several Agile frameworks and principles including the Agile Manifesto, Scrum, Kanban, and eXtreme Programming (XP). It provides an overview of each including key aspects like sprint planning, daily standups, and limiting work in progress. Principles of the Agile Manifesto like frequent delivery, collaborative teams, and valuing working software over documentation are also summarized.
OSS Java Analysis - What You Might Be MissingCoverity
We think FindBugs is a great tool for finding coding style and best practice types of issues, so we conducted a little experiment a few months ago. We analyzed Jenkins core code with both FindBugs and Coverity. These slides provide a high-level summary of our results.
The Party Keynote from GOTO Berlin 2014, about how to stay ahead of the technology curve when you're bombarded with terms like NoSQL, HTML5, Lambdas and so forth.
More details here: http://trishagee.github.io/presentation/staying_ahead_of_the_curve/
Why you should embrace Gradle and ditch MavenGijsLeussink
Abstract: Still using Maven as a build tool in your projects? If so, are you using it because you think it is a great tool, or just because you’ve always done it this way? Within 15 minutes we’ll share with you the reasons that made us ditch Maven and fall in love with our build tool again. Be aware though, after you’ve visited this quickie there is a big chance you’ll find yourself migrating all your projects tonight. Luckily, this is easier than you might think.
Talk (quickie) of 15 minutes on 8th November 2018 at J-Fall 2018, the annual Dutch Java User Group (NLJUG) conference.
This document discusses the importance of having a shared Definition of Done (DoD) between all parties involved in a project. It explains that without a DoD, different stakeholders can have conflicting understandings of what constitutes "done" work, leading to broken expectations. The document recommends introducing a DoD as early as possible in a project. It should be created collaboratively with input from customers, teams, and management. Automating checks against the DoD helps ensure work is truly done before moving forward. Continuous inspection and adaptation of the DoD also helps address problems over time. Having a DoD establishes a common vocabulary and allows the team to work together effectively to meet goals.
Scrum teams use burn down chart to represent/track the iteration progress, and the most common burn down chart is the time-based one. But when doing that our team got some problems, it's not accurate to use time-based burn down to represent the true velocity and the feature completion. We experienced the situation that the team-velocity was pretty good, which means team could "burn" enough hours, while we didn't DELIVER as many feature comparing with the burn down. This topic is a case study based on what we did trying to resolve our problems.
The document argues that agile practices prioritize quality over speed, which ultimately leads to faster delivery. It provides reasons for using practices like user stories, planning, continuous integration, testing, and code reviews: they catch bugs early and prevent wasted time on substandard or wrong software. While these practices take time up front, they save significantly more time than fixing issues late in a project, leading to higher quality and value delivered to customers. The document asserts that high quality projects complete more quickly due to fewer bugs and reworks.
The document discusses continuous testing and the role of a tech lead in implementing it. It explains that continuous testing involves testing software continuously throughout development. To be a continuous testing expert, a tech lead should master different testing techniques, identify what code needs testing, set a testing culture, collect and analyze testing metrics, and use insights to improve processes. The document demonstrates continuous testing in action through an automated CI/CD workflow that runs unit, integration and other tests at different stages.
Approval Tests in Action: A LEGO Exercise and an Experience Reporthouseofyin
This document describes an exercise using LEGO pieces to demonstrate approval testing. It had participants build LEGO figures according to criteria in round 1. In round 2, they wrote tests to validate the criteria. In round 3, they validated a copy of their round 1 solution. The document then discusses approval testing and provides examples of how it can detect bugs and new features. It notes benefits like easier to understand tests and testing otherwise untestable code. It also discusses applicability and weaknesses like lack of isolation.
DOES SFO 2016 San Francisco - Julia Wester - Predictability: No Magic RequiredGene Kim
This document discusses predictability in workflows and queues. It begins by defining predictability and noting that predictable systems usually have reduced cycle times and variation. It then discusses how workflows can be viewed as chains of queues and how queues can impact cycle times, throughput, and motivation if allowed to grow too large. The document provides choices that can be made to influence queues, such as using push vs pull systems and prioritization methods. It also recommends monitoring queue size and cycle time ranges as leading indicators of predictability. The overall message is that managers have control over predictability by understanding and managing their queues.
This document contains Ken DeLong's work history, activities, favorite books, strengths, and views on software engineering best practices. It emphasizes hiring the best engineers, optimizing for learning, reducing waste, attention to quality, and avoiding technical and cultural debt.
Cycle times and the Evolution From Story PointsScott Aucoin
Deck from a talk on cycle times and how to apply them for informed decision making (forecasting, team building, balance, process improvement) and evolution from traditional estimation approaches.
JavaOne - Performance Focused DevOps to Improve Cont DeliveryAndreas Grabner
These are the slides of my JavaOne presentation. The abstract goes like this:
How do companies developing business-critical Java enterprise Web applications increase releases from 40 to 300 per year and still remain confident about a spike of 1,800 percent in traffic during key events such as Super Bowl Sunday or Cyber Monday? It takes a fundamental change in culture. Although DevOps is often seen as a mechanism for taming the chaos, adopting an agile methodology across all teams is only the first step. This session explores best practices for continuous delivery with higher quality for improving collaboration between teams by consolidating tools and for reducing overhead to fix issues. It shows how to build a performance-focused culture with tools such as Hudson, Jenkins, Chef, Puppet, Selenium, and Compuware APM/dynaTrace
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...Andreas Grabner
This presentation was given at StarWest 2013 in Anaheim, CA and also broadcasted through the Virtual Conference.
It shows how important it is to focus on performance throughout continuous delivery in order to avoid the most common performance problem patterns that still cause applications to crash and engineers spending their weekends and nights in a firefighting/war room situation
To prevent regressions during testing:
- New features and modified old features must be tested thoroughly as bugs may be introduced in these areas. Verify old features still work properly after changes.
- Regression testing ensures any changes have not negatively impacted application functionality or performance.
- Testing databases poses challenges like verifying query plans do not regress when data, hardware, or database settings change.
Moving QA from Reactive to Proactive with qTestQASymphony
This document discusses moving quality assurance from a reactive to a proactive approach using qTest. It outlines some of the challenges with the current reactive approach, such as crashes occurring and teams blaming the QA team. It then discusses how to take a more proactive approach by efficiently creating and organizing tests, monitoring tests, reusing tests and parameters, consolidating results, and defining test scenarios before coding using behavior driven development. The key recommendations are to record manual and exploratory tests, use a test management system that promotes reuse, radiate test results to development systems, build combined testing dashboards, and use BDD to ensure early test planning.
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.
No matter what language you use, developing code is the same ñ spec, code, deploy, maintain. The “Big Boys” have teams to manage each task, but what happens when you don’t? I’ll go over some different methods for maintaining internal and external programs that are cheap, open source, and make your life easier. PHP has a plethora of tools for us to use to effectively code and maintain our projects; and the best part is that they are generally inexpensive or even free. The trick is finding and using these tools effectively in a workflow that the developer can use.
The document provides guidance for new MySQL DBAs on tasks to complete on their first day, including finding information about the databases, servers, and customers they will support. It emphasizes the importance of backups and testing restores, as well as communicating with teammates and customers to understand their needs and priorities. The document stresses that DBAs should document their environments, track changes over time, and establish recovery plans and standards to ensure the continued smooth operation of systems and meet service level agreements.
Although all of us speak the same language, each of us uses different meaning of words "soon”, "fine” and "done”. That’s why for one developer "I’m done” means that just a moment ago the part of the code with implemented functionality has been successfully executed, while for another developer it means that code has been committed to repository but without checking if build is green or not on continuous integration server. At the same time "done" of developer-perfectionist means totally refactored and optimized code. And only for "black swan”-developer phrase "I'm done“ means that all tests were passed, new functionality was documented on wiki and a new feature was verified by customer on the demo server.
So if you want to decrease a risk of misunderstanding inside a team or between team and customer you should make agreement about common vision of “definition of done“ and then start using it on a daily basis. In order to prevent losing your time and stepping on the hidden rake during discussion of your done criteria we will share our knowledge about creating compact and most effective “definition of done“. We will talk about lifecycle of this document and about approaches that help you to add important items to it. We will discuss doneness on different levels (preplanning, user story and task development, sprint). And of course we won’t forget to tell you how to create “Definition of Done“ which will satisfy not only your team but your customer as well.
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...Gene Kim
Lessons Learned from a Parallel Universe
David N. Blank-Edelman, Technical Evangelist, Apcera
Just within the last ten or so years, we have seen at least two separate communities evolve at the crossroads of development and operations. The first—DevOps—grew up very much in public, the second matured sequestered within the halls of “special” companies like Google and Facebook and is only now starting to gain visibility and traction in the wider world. The DevOps and Site Reliability Engineering (SRE) communities barely speak, yet both have common ancestors and much to offer each other. Let’s look at what they have in common, how they differ, and what are the key things we can learn from both.
DevOps Enterprise Summit San Francisco 2016
Shift to the right side of your brain - 6th World Congress on Software Qualit...SYSQA BV
Mastering one way of testing isn’t enough to be a professional tester nowadays. You need to have knowledge and experience with different ways of testing to test well in every situation. In the presentation Jan Jaap will present different ways of testing like global scripting, session based testing, bug hunts, test tours and pure exploratory testing. All have proven to be useful in agile projects.
In projects where different ways of testing are used drafting a test strategy is different compared to a project where only one way is used. Jan Jaap will explain how a test strategy is made in a project where different ways of testing are used. The things to take into consideration in an agile project will also be explained.
This talk gives you an insight in the different ways of testing you have to master to optimize your test effort.
Main Statement:
Scripted testing is for agile projects too rigid to be used in agile. Testers need to learn different ways of testing to be able to optimize the way of testing in an agile project.
Key Learnings:
Scripted testing, the way of testing most of us learned and used in the past, doesn’t work in agile projects. It’s too rigid
Professional testers need to master different ways of testing to be able to test well in an agile project.
The pros and cons of different ways of testing in agile projects.
This document discusses several Agile frameworks and principles including the Agile Manifesto, Scrum, Kanban, and eXtreme Programming (XP). It provides an overview of each including key aspects like sprint planning, daily standups, and limiting work in progress. Principles of the Agile Manifesto like frequent delivery, collaborative teams, and valuing working software over documentation are also summarized.
OSS Java Analysis - What You Might Be MissingCoverity
We think FindBugs is a great tool for finding coding style and best practice types of issues, so we conducted a little experiment a few months ago. We analyzed Jenkins core code with both FindBugs and Coverity. These slides provide a high-level summary of our results.
The Party Keynote from GOTO Berlin 2014, about how to stay ahead of the technology curve when you're bombarded with terms like NoSQL, HTML5, Lambdas and so forth.
More details here: http://trishagee.github.io/presentation/staying_ahead_of_the_curve/
Why you should embrace Gradle and ditch MavenGijsLeussink
Abstract: Still using Maven as a build tool in your projects? If so, are you using it because you think it is a great tool, or just because you’ve always done it this way? Within 15 minutes we’ll share with you the reasons that made us ditch Maven and fall in love with our build tool again. Be aware though, after you’ve visited this quickie there is a big chance you’ll find yourself migrating all your projects tonight. Luckily, this is easier than you might think.
Talk (quickie) of 15 minutes on 8th November 2018 at J-Fall 2018, the annual Dutch Java User Group (NLJUG) conference.
This document discusses the importance of having a shared Definition of Done (DoD) between all parties involved in a project. It explains that without a DoD, different stakeholders can have conflicting understandings of what constitutes "done" work, leading to broken expectations. The document recommends introducing a DoD as early as possible in a project. It should be created collaboratively with input from customers, teams, and management. Automating checks against the DoD helps ensure work is truly done before moving forward. Continuous inspection and adaptation of the DoD also helps address problems over time. Having a DoD establishes a common vocabulary and allows the team to work together effectively to meet goals.
Scrum teams use burn down chart to represent/track the iteration progress, and the most common burn down chart is the time-based one. But when doing that our team got some problems, it's not accurate to use time-based burn down to represent the true velocity and the feature completion. We experienced the situation that the team-velocity was pretty good, which means team could "burn" enough hours, while we didn't DELIVER as many feature comparing with the burn down. This topic is a case study based on what we did trying to resolve our problems.
The document argues that agile practices prioritize quality over speed, which ultimately leads to faster delivery. It provides reasons for using practices like user stories, planning, continuous integration, testing, and code reviews: they catch bugs early and prevent wasted time on substandard or wrong software. While these practices take time up front, they save significantly more time than fixing issues late in a project, leading to higher quality and value delivered to customers. The document asserts that high quality projects complete more quickly due to fewer bugs and reworks.
The document discusses continuous testing and the role of a tech lead in implementing it. It explains that continuous testing involves testing software continuously throughout development. To be a continuous testing expert, a tech lead should master different testing techniques, identify what code needs testing, set a testing culture, collect and analyze testing metrics, and use insights to improve processes. The document demonstrates continuous testing in action through an automated CI/CD workflow that runs unit, integration and other tests at different stages.
Approval Tests in Action: A LEGO Exercise and an Experience Reporthouseofyin
This document describes an exercise using LEGO pieces to demonstrate approval testing. It had participants build LEGO figures according to criteria in round 1. In round 2, they wrote tests to validate the criteria. In round 3, they validated a copy of their round 1 solution. The document then discusses approval testing and provides examples of how it can detect bugs and new features. It notes benefits like easier to understand tests and testing otherwise untestable code. It also discusses applicability and weaknesses like lack of isolation.
DOES SFO 2016 San Francisco - Julia Wester - Predictability: No Magic RequiredGene Kim
This document discusses predictability in workflows and queues. It begins by defining predictability and noting that predictable systems usually have reduced cycle times and variation. It then discusses how workflows can be viewed as chains of queues and how queues can impact cycle times, throughput, and motivation if allowed to grow too large. The document provides choices that can be made to influence queues, such as using push vs pull systems and prioritization methods. It also recommends monitoring queue size and cycle time ranges as leading indicators of predictability. The overall message is that managers have control over predictability by understanding and managing their queues.
This document contains Ken DeLong's work history, activities, favorite books, strengths, and views on software engineering best practices. It emphasizes hiring the best engineers, optimizing for learning, reducing waste, attention to quality, and avoiding technical and cultural debt.
Cycle times and the Evolution From Story PointsScott Aucoin
Deck from a talk on cycle times and how to apply them for informed decision making (forecasting, team building, balance, process improvement) and evolution from traditional estimation approaches.
JavaOne - Performance Focused DevOps to Improve Cont DeliveryAndreas Grabner
These are the slides of my JavaOne presentation. The abstract goes like this:
How do companies developing business-critical Java enterprise Web applications increase releases from 40 to 300 per year and still remain confident about a spike of 1,800 percent in traffic during key events such as Super Bowl Sunday or Cyber Monday? It takes a fundamental change in culture. Although DevOps is often seen as a mechanism for taming the chaos, adopting an agile methodology across all teams is only the first step. This session explores best practices for continuous delivery with higher quality for improving collaboration between teams by consolidating tools and for reducing overhead to fix issues. It shows how to build a performance-focused culture with tools such as Hudson, Jenkins, Chef, Puppet, Selenium, and Compuware APM/dynaTrace
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...Andreas Grabner
This presentation was given at StarWest 2013 in Anaheim, CA and also broadcasted through the Virtual Conference.
It shows how important it is to focus on performance throughout continuous delivery in order to avoid the most common performance problem patterns that still cause applications to crash and engineers spending their weekends and nights in a firefighting/war room situation
To prevent regressions during testing:
- New features and modified old features must be tested thoroughly as bugs may be introduced in these areas. Verify old features still work properly after changes.
- Regression testing ensures any changes have not negatively impacted application functionality or performance.
- Testing databases poses challenges like verifying query plans do not regress when data, hardware, or database settings change.
Moving QA from Reactive to Proactive with qTestQASymphony
This document discusses moving quality assurance from a reactive to a proactive approach using qTest. It outlines some of the challenges with the current reactive approach, such as crashes occurring and teams blaming the QA team. It then discusses how to take a more proactive approach by efficiently creating and organizing tests, monitoring tests, reusing tests and parameters, consolidating results, and defining test scenarios before coding using behavior driven development. The key recommendations are to record manual and exploratory tests, use a test management system that promotes reuse, radiate test results to development systems, build combined testing dashboards, and use BDD to ensure early test planning.
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.
No matter what language you use, developing code is the same ñ spec, code, deploy, maintain. The “Big Boys” have teams to manage each task, but what happens when you don’t? I’ll go over some different methods for maintaining internal and external programs that are cheap, open source, and make your life easier. PHP has a plethora of tools for us to use to effectively code and maintain our projects; and the best part is that they are generally inexpensive or even free. The trick is finding and using these tools effectively in a workflow that the developer can use.
The document provides guidance for new MySQL DBAs on tasks to complete on their first day, including finding information about the databases, servers, and customers they will support. It emphasizes the importance of backups and testing restores, as well as communicating with teammates and customers to understand their needs and priorities. The document stresses that DBAs should document their environments, track changes over time, and establish recovery plans and standards to ensure the continued smooth operation of systems and meet service level agreements.
Although all of us speak the same language, each of us uses different meaning of words "soon”, "fine” and "done”. That’s why for one developer "I’m done” means that just a moment ago the part of the code with implemented functionality has been successfully executed, while for another developer it means that code has been committed to repository but without checking if build is green or not on continuous integration server. At the same time "done" of developer-perfectionist means totally refactored and optimized code. And only for "black swan”-developer phrase "I'm done“ means that all tests were passed, new functionality was documented on wiki and a new feature was verified by customer on the demo server.
So if you want to decrease a risk of misunderstanding inside a team or between team and customer you should make agreement about common vision of “definition of done“ and then start using it on a daily basis. In order to prevent losing your time and stepping on the hidden rake during discussion of your done criteria we will share our knowledge about creating compact and most effective “definition of done“. We will talk about lifecycle of this document and about approaches that help you to add important items to it. We will discuss doneness on different levels (preplanning, user story and task development, sprint). And of course we won’t forget to tell you how to create “Definition of Done“ which will satisfy not only your team but your customer as well.
Making Test Automation Work in Agile Projects 2012lisacrispin
The document discusses strategies for effective test automation in agile projects, focusing on taking a whole-team approach to automation by treating automated tests as code, collaborating across roles, and committing to quality through practices like continuous integration and treating tests as living documentation. The presentation provides examples and exercises to help teams overcome barriers to test automation and implement an iterative, layered strategy for automating tests.
How Functional Programming Made Me a Better DeveloperCameron Presley
With the rise in popularity recently, functional programming has become ""The Next Big Thing"". As of today, there are tons of frameworks and tools that can be used for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don't need to learn functional programming, right?
In this talk, I'll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and how I now think about programming with regards to both functional and object-oriented paradigms.
There are many ways to start a new Neos-based project and there is a multitude of tools involved. These slides introduce a "perfect" way to set up a Neos project. A recording of the presentation is available at https://youtu.be/hWJSK0pE1H0
Why you should switch to Cypress for modern web testing?Shivam Bharadwaj
Cypress is a modern web testing framework built on top of mocha and uses chai as an assertion library. The E2E tests are written entirely in javascript. These slides will give you a kick ass on getting started with Cypress.
Do read my blog @ - https://dzone.com/articles/why-should-you-switch-to-cypress-for-modern-web-te
The future of testing magento 2 james cowie from shero commerce - 10 24-20 ...James Cowie
This document provides an overview of testing Magento 2 applications. It discusses the author's background and experience with test-driven development. Several common reasons for not testing are addressed, such as lack of time and budget. The benefits of testing over time, such as faster development and fewer defects, are outlined. Different testing types like unit, integration, and acceptance testing are also defined. The document then demonstrates a sample test-driven development workflow for a Magento module using PHPUnit and Behat.
DefCore: The Interoperability Standard for OpenStackMark Voelker
This presentation provides an introduction to the OpenStack DefCore Committee, which is working to create interoperability standards for OpenStack Powered clouds. You'll gain insight into the interoperability challenges of OpenStack clouds, and learn how DefCore creates it's Guidelines. Learn why the Technical Committee, Board of Directors, end users, and vendors have a seat at the table. You'll laugh, you'll cry, you'll immediately want to stop talking about cloud computing and go watch science fiction all night.
This talk was originally presented at the Triangle OpenStack Meetup Group's September 21, 2015 meeting in Durham, NC. A recording can be found here (this talk starts at the 46:10 mark): https://vmware.webex.com/vmware/lsr.php?RCID=a51f9e6882f54ccab8b715c8c0162484
A new revision with updates was given at a meeting of the China Open Source Cloud League on May 20, 2016 in Beijing. The slides here on Slideshare represent that presentation.
Morph your mindset for Continuous Delivery, Agile Roots 2014lisacrispin
This document outlines an agenda and content for a workshop on continuous integration, continuous delivery, and overcoming obstacles. The workshop includes presentations on key concepts, exercises for participants to collaborate in different roles and provide feedback, and discussions on challenges and experiments to try back at work. The goal is to help participants shift their mindset and learn techniques through interactive exercises to enable continuous delivery of software.
Java script basics for beginners ---- https://bit.ly/3fgYdEc
---------------------------------
Master the Fundamentals of JavaScript - The Language that Powers the Web.
JavaScript is one of the most popular programming languages in the world, and growing faster than any other programming language.
As a developer, you can use JavaScript to build web and mobile apps, real-time networking apps, command-line tools, and games..
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsRehgan Avon
2018 Women in Analytics Conference
https://www.womeninanalytics.org/
Data analysts create millions of lines of elegant, powerful code every year. However, because software development is not seen as their primary role, best practices of software engineering often fall to the wayside. Many data analysts are self-taught programmers who haven’t been exposed to tools like version control software, unit testing suites, and System Development Life Cycle (SDLC) processes. Popular software engineering concepts such as Don’t Repeat Yourself (DRY), design patterns, and modularization can vastly improve the quality and efficiency of analytics projects. This talk will provide a high-level introduction to these topics, and will focus on providing resources for additional learning.
Your Journey to the Uknown: A tale of how I debunk new codebases.Ivange Larry Ndumbe
The document discusses strategies for contributing to new codebases, including identifying patterns in the codebase such as frameworks or libraries used. It recommends reading documentation, checking requirements, using online resources like Google and Slack, and paying attention to identify patterns. Unit tests are described as documentation for programmers. The author thanks the reader and provides contact information.
This document provides an agenda and summary for the last class of a course on web development. It discusses homework on using JSON and databases, presentations from student group projects, and next steps. It reviews key topics covered in the course like HTML, CSS, JavaScript, databases, and hosting platforms. The document previews the main topics planned for upcoming modules, provides examples of interesting websites using technologies like speech recognition, and ends with an open question period.
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
This document discusses automated testing in Flex. It begins by explaining why automated testing is important, such as reducing costs from software errors and allowing developers to change code without fear of breaking other parts of the project. It then covers topics like writing unit tests, using theories and data points to test over multiple values, and writing integration tests. The document emphasizes that writing testable code is key, and provides some principles for doing so, such as separating construction from application logic and using interfaces. It also discusses using fakes, stubs and mocks to isolate units for testing.
The document summarizes the OpenStack Interoperability Working Group's efforts to promote interoperability across OpenStack distributions and products. It discusses how the group develops guidelines specifying required capabilities and tests. Products must pass these tests to be considered interoperable and qualify for the OpenStack logo program. The guidelines aim to ensure a consistent user experience while allowing flexibility in implementations. The document also outlines the group's governance process and opportunities for participants to provide feedback to help improve interoperability standards over time.
This document discusses computer tools for academic research. It aims to make computer use more effective for research tasks like downloading data, running regressions, and writing papers. The course covers programming principles, version control, data management beyond spreadsheets, modular Python programming, testing code, and numeric computing tools. It uses a sample research project on social networks and app adoption to illustrate these tools. The document compares the academic research cycle to software development and argues that following good programming practices can help optimize researchers' time.
This document provides an overview of agile methodology and several agile frameworks. It begins with a brief history of the traditional waterfall model and its limitations. It then introduces the agile manifesto and some core agile principles. Several agile frameworks are described at a high level, including scrum, kanban, extreme programming, and others. Key practices of scrum and extreme programming like iterations, user stories, stand-up meetings, and test-driven development are defined. The document aims to give the reader a broad understanding of agile concepts and some of the most commonly used agile frameworks and practices.
Continuous Deployment and Testing Workshop from Better Software WestCory Foy
In this workshop from the 2015 SQE Better Software West conference, Cory Foy details the Continuous Paradigm companies are embracing - including Continuous Integration, Continuous Deployment, and Continuous Testing. This presentation was co-created by Jared Richardson.
Essentielle værktøjer for det agile teamBestBrains
The document discusses essential tools for agile teams. It outlines seven key tools: (1) processes like Scrum and Kanban which define how teams work; (2) measurements like burn down charts which provide visibility; (3) source control to manage code versions; (4) continuous integration to continually build and test code; (5) automated testing to frequently test code quality; (6) code inspection to review code quality; and (7) feedback through reviews, retrospectives, and pairing to improve team collaboration and output. The document emphasizes how these tools help teams work together effectively through practices like test-driven development.
Triggers for Admins: A Five-step Framework for Creating TriggersSalesforce Developers
Have you felt intimidated by the thought of writing code? Are you an experienced Salesforce Administrator and would like to take the leap into writing your own Apex triggers? Join us to gain the tools and confidence to write your first trigger. Using specific examples and real-life scenarios, we'll walk through a concrete framework to approach the process of planning, designing, and coding a trigger.
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
6. Axe Sharpening
Definition & Origin
“Give me six hours to chop down
a tree and I will spend the first
four sharpening the axe.”
― Abraham Lincoln
6
7. Axe Sharpening
➔ Directly related to task
➔ Exhaustive list of items
➔ Results are reusable
➔ Reduces execution time
Signs & Symptoms
7
8. Axe Sharpening
➔ Setting up the IDE
➔ Setting up the version control
➔ Setting up the environment
➔ Looking for libraries
Examples in software
development
8
9. Yak Shaving
What you are doing when you're
doing some stupid, fiddly little
task that bears no obvious
relationship to what you're
supposed to be working on, but
yet a chain of twelve causal
relations links what you're doing
to the original meta-task.
― Jeremy H. Brown
Definition & Origin
9
10. Yak Shaving
➔ No direct relation to task
➔ Non-exhaustive list of items,
no clear roadmap
➔ Issues getting added up on
the way
Signs & Symptoms
10
11. Yak Shaving
1. Need a helper script
2. It requires latest lib_xyz
3. But some other package
depend on lib_xyz
4. You start updating the
packages and end up with
new kernel
5. VGA acts up on new kernel
6. Need to compile driver
7. Source code is restricted
8. ...
Example
11
12. ➔ Am I axe sharpening or yak
shaving?
➔ Am I picking right, necessary
tools or doing an overkill?
Key Questions
To know which is which!
12
13. ➔ Project objectives
➔ Project scope and lifetime
➔ Project constraints and
resources
➔ Experience in subject
➔ Roadmap with clear
milestones
Systematic
Approach
Because it works!
13
14. ➔ Feedback loop
➔ Yak shaving for learning and
exploration
Side Notes
For newbies!
14