Are you ready to challenge the existing beliefs centered around browser automation? Explore Taiko - a free and open source library that has a lean learning curve, with Easy APIs to quickly automate web applications and reduce test flakiness with a prerequisite of NodeJS.
With agile and faster delivery becoming a norm, building security into the software is the best way to deliver secure software at the pace of DevOps. Then, what are the different people aspects, processes, practices and tools that uphold security seamlessly?
Continuous Compliance and DevSecOps in Times of GDPR, HIPAA and SOXDevOps.com
Developers, operators, and corporate executives all agree that compliance with security and regulatory requirements is critical, but many find that enforcing security through manual scans and “best efforts” at the end of the cycle wastes staff time and adds days or weeks to the release schedule. Once the required environments are built, tested, and certified, today’s customer-centric product owners are already longing to push out the next set of changes, absorbing even more of IT Operations’ time to scramble for security and compliance solutions.
This talk will draw on the path-of-least-resistance considering lessons from the Ukraine and similar types of attacks, discussing, from an introductory level, good practice secure architecture models and the challenges posed to their implementation by emerging technology and support requirements. Attention will be paid to the way real-world support & operations solutions can unintentionally, or invisibly bridge security enforcement zones, and what this means for your threat model.
stackconf 2021 | Fuzzing: Finding Your Own Bugs and 0days!NETWAYS
This presentation has as objective to explain how 0day are found through Fuzzing technique. I’ll be explaining how you can create a fuzzer, what are types of fuzzing and types of targets. And how you can find a Buffer Overflow vulnerability and write your own exploit. PoC demos included, of course! (include 2 movies PoC).
Agile Testing for Embedded and IoT Software DevelopmentTechWell
Much of the success of agile adoptions is due to the automated testing approach used in agile projects. Because many of these techniques were pioneered in the development of web applications, it can be difficult to see how these techniques can be leveraged for a project where software is being built for an embedded or Internet of Things (IoT) application. Thomas Stiehm describes ways to leverage agile testing techniques for embedded systems. Whether you are building a medical device, embedded controller, or IoT device, learn how to leverage these testing practices to create fully automated tests that fit into a DevOps build pipeline and help your team create higher-quality, more reliable software. Test automation, the best way to maintain and execute a comprehensive suite of regression tests, allows you to maintain control of your testing process while increasing test coverage. Join Thomas to see how you can take control of your test process by stepping up your test automation to the next level.
With everything going on in DevOps, I think we can safely say that building pipelines is the way to deploy your applications to production. But knowing what you deploy to production and whether it is actually okay needs more data, like security checks, performance checks, and budget checks. We’ve come up with a process for that, which we call Continuous Verification “A process of querying external systems and using information from the response to make decisions to improve the development and deployment process.” In this session, we’ll look at extending an existing CI/CD pipeline with checks for security, performance, and cost to make a decision on whether we want to deploy our app or not.
Meeting rooms are talking! are you listening?Cisco DevNet
How can you tell if meeting room A302 is occupied right now? Ask an API! The same Cisco Collab devices that provide high-quality video are also embedding a rich API where you can get real-time info and create a personalized experience with custom UI controls. In this talk, we’ll detail how to create controls to turn off the lights or take the curtains down, how to build interactive maps that show rooms occupation in React, or build a Maze game in Javascript and deploy it to the latest Cisco Collab devices. If you love modern user experiences, IoT, know a bit Javascript, come get inspired!
With agile and faster delivery becoming a norm, building security into the software is the best way to deliver secure software at the pace of DevOps. Then, what are the different people aspects, processes, practices and tools that uphold security seamlessly?
Continuous Compliance and DevSecOps in Times of GDPR, HIPAA and SOXDevOps.com
Developers, operators, and corporate executives all agree that compliance with security and regulatory requirements is critical, but many find that enforcing security through manual scans and “best efforts” at the end of the cycle wastes staff time and adds days or weeks to the release schedule. Once the required environments are built, tested, and certified, today’s customer-centric product owners are already longing to push out the next set of changes, absorbing even more of IT Operations’ time to scramble for security and compliance solutions.
This talk will draw on the path-of-least-resistance considering lessons from the Ukraine and similar types of attacks, discussing, from an introductory level, good practice secure architecture models and the challenges posed to their implementation by emerging technology and support requirements. Attention will be paid to the way real-world support & operations solutions can unintentionally, or invisibly bridge security enforcement zones, and what this means for your threat model.
stackconf 2021 | Fuzzing: Finding Your Own Bugs and 0days!NETWAYS
This presentation has as objective to explain how 0day are found through Fuzzing technique. I’ll be explaining how you can create a fuzzer, what are types of fuzzing and types of targets. And how you can find a Buffer Overflow vulnerability and write your own exploit. PoC demos included, of course! (include 2 movies PoC).
Agile Testing for Embedded and IoT Software DevelopmentTechWell
Much of the success of agile adoptions is due to the automated testing approach used in agile projects. Because many of these techniques were pioneered in the development of web applications, it can be difficult to see how these techniques can be leveraged for a project where software is being built for an embedded or Internet of Things (IoT) application. Thomas Stiehm describes ways to leverage agile testing techniques for embedded systems. Whether you are building a medical device, embedded controller, or IoT device, learn how to leverage these testing practices to create fully automated tests that fit into a DevOps build pipeline and help your team create higher-quality, more reliable software. Test automation, the best way to maintain and execute a comprehensive suite of regression tests, allows you to maintain control of your testing process while increasing test coverage. Join Thomas to see how you can take control of your test process by stepping up your test automation to the next level.
With everything going on in DevOps, I think we can safely say that building pipelines is the way to deploy your applications to production. But knowing what you deploy to production and whether it is actually okay needs more data, like security checks, performance checks, and budget checks. We’ve come up with a process for that, which we call Continuous Verification “A process of querying external systems and using information from the response to make decisions to improve the development and deployment process.” In this session, we’ll look at extending an existing CI/CD pipeline with checks for security, performance, and cost to make a decision on whether we want to deploy our app or not.
Meeting rooms are talking! are you listening?Cisco DevNet
How can you tell if meeting room A302 is occupied right now? Ask an API! The same Cisco Collab devices that provide high-quality video are also embedding a rich API where you can get real-time info and create a personalized experience with custom UI controls. In this talk, we’ll detail how to create controls to turn off the lights or take the curtains down, how to build interactive maps that show rooms occupation in React, or build a Maze game in Javascript and deploy it to the latest Cisco Collab devices. If you love modern user experiences, IoT, know a bit Javascript, come get inspired!
How to easily design and automate test cases.pdfMaveryx
This tutorial will explore how to design and automate a test case using Google Search as an example. Particularly, we’ll see an example of functional black-box testing.
First, functional testing is a type of software testing in which test cases derive from the specifications of the software under test. In other words, functions are tested by providing input and examining the output against specified or implicit functional requirements.
Black-box testing examines the functionality of an application without peering into its internal structure. So, functional black-box testing aims to verify if an application respects its functionalities specifications (i.e. it does what it is supposed to do) by ignoring its specific internal structure.
Test automation means using a software tool to control the execution of the tests and the comparison of the outcomes with the expected ones.
In this tutorial, you will use the Maveryx testing tool and its Java API to automate tests using Google Search.
Maveryx is automated functional testing and regression testing tool. It provides automated testing capabilities for functional, regression, UI, data-driven, codeless, and low-code testing of desktop and web applications.
Writing test scripts is one of the main activities in test automation.
A test script is a sequence of instructions to execute a test. To put it another way, it is a short program written in a scripting or programming language, like Java.
Good practices for debugging Selenium and Appium testsAbhijeet Vaikar
We often come across situations when:
> We cannot figure out why our Selenium/Appium scripts fail during execution either locally or on CI.
> We need to debug scripts locally while writing them but find debugging painful and slow
Debugging the scripts is often the approach to fix them. What all different ways we can do it?
I shared about some of the good practices I have used for debugging Selenium and Appium scripts
A short presentation slide deck I gave to interns we have this summer of 2019 on (unit) testing in software development. This is not a code-centric slide deck and just looking at the slides loses some context without being there in person, or having discussions, etc.
Automation Abstractions: Page Objects and BeyondTechWell
When you start writing automation for your projects, you quickly realize that you need to organize and design the code. You will write far more than “test” code; you also will write abstraction code because you want to make tests easier to read and maintain. But how do you design all this code? How do you organize and structure it? Should you use a domain specific language? Should you go keyword driven or use Gherkin? Should you use page objects with POJO or Factories? Do you create DOM level abstractions? Where do domain models fit in? Alan Richardson provides an overview of options available to you when modeling abstraction layers. Based on his experience with many approaches on real-world commercial projects, Alan helps you understand how to think about the modeling of abstraction layers. Illustrated with a number of code examples, Alan shows you a variety of approaches and discusses the pros and cons associated with each.
Puppeteer - A web scraping & UI Testing ToolMiki Lombardi
Puppeteer is more than a node library.
It comes with a powerful toolset that enable you to test every feature in every environment of your application.
In today’s environment of plummeting software delivery cycle times, test automation becomes a more critical and strategic necessity. How can we possibly keep up with software delivery's explosive pace while retaining satisfactory test coverage? How do we keep the reins on costs and reduce risk? Carl Nagle maintains that the long-term solution is a greater level of “sustainable” test automation. The Software Automation Framework Support (SAFS) method separates test design from test execution with a data-driven, action-based approach that encapsulates volatile application-specific data into readily localizable “maps” for simple maintenance. Test designs (scripts or programs) are completely independent of the ready-to-run SAFS engines that will execute them. And since the test design methodology does not change over long periods of time, testers can focus more on getting robust automation in place quickly and pay less attention to each new technology, testing tool, or test IDE. Join Carl to learn how test automation thrives when testers and tools are not tied up in application-specific silos.
Design System as a Product - Maria Elena Duenias, Esther Butcher
Design systems are a great example where web development and design meet. You can find innumerable resources on the internet, books and conferences on how to build them, and how they are exactly what your organization needs. But, building one requires a lot more than following a recipe. In this talk we are going to discuss how to build a design system as an internal product, and how it evolves to become what the users need.
Designers, Developers and Dogs: Finding the magic balance between product and tech - Charlotte Vorbeck, ShareNow and Sahil Bajaj
How can an agile delivery team become a successful product team? When does collaboration between product and tech succeed and when not? Why do people in some teams inspire each other while others in the same environment don't speak the same language? In this talk we want to share our learnings and experiences from rebuilding an internal tool for customer support at ShareNow. What could have been just another boring rewrite surprisingly became one of our best experiences in collaboration. We will look at how a joint discovery phase helped us to come up with a shared vision, how a better team setup enabled us to do the necessary work, how focusing on the customer kept us aligned during our journey, and also how we built upon existing collaborative techniques to achieve this new level of cooperation and trust.
More Related Content
Similar to TWISummit 2019 - Take the Pain out of Browser Automation!
How to easily design and automate test cases.pdfMaveryx
This tutorial will explore how to design and automate a test case using Google Search as an example. Particularly, we’ll see an example of functional black-box testing.
First, functional testing is a type of software testing in which test cases derive from the specifications of the software under test. In other words, functions are tested by providing input and examining the output against specified or implicit functional requirements.
Black-box testing examines the functionality of an application without peering into its internal structure. So, functional black-box testing aims to verify if an application respects its functionalities specifications (i.e. it does what it is supposed to do) by ignoring its specific internal structure.
Test automation means using a software tool to control the execution of the tests and the comparison of the outcomes with the expected ones.
In this tutorial, you will use the Maveryx testing tool and its Java API to automate tests using Google Search.
Maveryx is automated functional testing and regression testing tool. It provides automated testing capabilities for functional, regression, UI, data-driven, codeless, and low-code testing of desktop and web applications.
Writing test scripts is one of the main activities in test automation.
A test script is a sequence of instructions to execute a test. To put it another way, it is a short program written in a scripting or programming language, like Java.
Good practices for debugging Selenium and Appium testsAbhijeet Vaikar
We often come across situations when:
> We cannot figure out why our Selenium/Appium scripts fail during execution either locally or on CI.
> We need to debug scripts locally while writing them but find debugging painful and slow
Debugging the scripts is often the approach to fix them. What all different ways we can do it?
I shared about some of the good practices I have used for debugging Selenium and Appium scripts
A short presentation slide deck I gave to interns we have this summer of 2019 on (unit) testing in software development. This is not a code-centric slide deck and just looking at the slides loses some context without being there in person, or having discussions, etc.
Automation Abstractions: Page Objects and BeyondTechWell
When you start writing automation for your projects, you quickly realize that you need to organize and design the code. You will write far more than “test” code; you also will write abstraction code because you want to make tests easier to read and maintain. But how do you design all this code? How do you organize and structure it? Should you use a domain specific language? Should you go keyword driven or use Gherkin? Should you use page objects with POJO or Factories? Do you create DOM level abstractions? Where do domain models fit in? Alan Richardson provides an overview of options available to you when modeling abstraction layers. Based on his experience with many approaches on real-world commercial projects, Alan helps you understand how to think about the modeling of abstraction layers. Illustrated with a number of code examples, Alan shows you a variety of approaches and discusses the pros and cons associated with each.
Puppeteer - A web scraping & UI Testing ToolMiki Lombardi
Puppeteer is more than a node library.
It comes with a powerful toolset that enable you to test every feature in every environment of your application.
In today’s environment of plummeting software delivery cycle times, test automation becomes a more critical and strategic necessity. How can we possibly keep up with software delivery's explosive pace while retaining satisfactory test coverage? How do we keep the reins on costs and reduce risk? Carl Nagle maintains that the long-term solution is a greater level of “sustainable” test automation. The Software Automation Framework Support (SAFS) method separates test design from test execution with a data-driven, action-based approach that encapsulates volatile application-specific data into readily localizable “maps” for simple maintenance. Test designs (scripts or programs) are completely independent of the ready-to-run SAFS engines that will execute them. And since the test design methodology does not change over long periods of time, testers can focus more on getting robust automation in place quickly and pay less attention to each new technology, testing tool, or test IDE. Join Carl to learn how test automation thrives when testers and tools are not tied up in application-specific silos.
Design System as a Product - Maria Elena Duenias, Esther Butcher
Design systems are a great example where web development and design meet. You can find innumerable resources on the internet, books and conferences on how to build them, and how they are exactly what your organization needs. But, building one requires a lot more than following a recipe. In this talk we are going to discuss how to build a design system as an internal product, and how it evolves to become what the users need.
Designers, Developers and Dogs: Finding the magic balance between product and tech - Charlotte Vorbeck, ShareNow and Sahil Bajaj
How can an agile delivery team become a successful product team? When does collaboration between product and tech succeed and when not? Why do people in some teams inspire each other while others in the same environment don't speak the same language? In this talk we want to share our learnings and experiences from rebuilding an internal tool for customer support at ShareNow. What could have been just another boring rewrite surprisingly became one of our best experiences in collaboration. We will look at how a joint discovery phase helped us to come up with a shared vision, how a better team setup enabled us to do the necessary work, how focusing on the customer kept us aligned during our journey, and also how we built upon existing collaborative techniques to achieve this new level of cooperation and trust.
During this presentation, Ward Coessens, ThoughtWorks' Consultant will share best practice insights from the Daimler partnership, helping the automotive group on their cloud innovation journey.
How to create more business impact with flexible teams - Jan Hegewald, Zalando & Rebekka Beels, Zalando
Usually, Software Engineering teams are organized around a fixed set of components which they develop further and maintain. Such component teams gain a high level of expert knowledge about their services. However, with agile product development, it often is difficult to implement the most important initiatives with such teams. This leads to a situation where the teams do not work on the most relevant business topics but on those for the respective team. At Zalando, we introduced a new model where we shape teams flexibly around business goals to create the highest impact. How we organize these teams and which challenges especially for the software quality need to be addressed, will be explored in this talk.
Amazon’s Culture of Innovation & The Working Backwards session
Working Backwards; leading organisations achieve growth by marrying customer-obsession with a modern technology strategy. Where do you begin? By focusing on the customer.
During this webinar, Amazon will discuss key innovation principles which have been instrumental in their continued success and their Working Backwards approach.
Dual-Track Agile for Discovery & Development - Adriana Katrandzhieva
The talk will focus on one of the ways teams can ensure continuous delivery and design in their projects. The so-called ‘Dual-track’ model shows the parallel tracks of discovery and development throughout the product design and delivery process. These continually feedback into each other informing new hypothesis that can be tested in order to be proven/disproven. This model is not always easy to implement out of the box and so I will share my own experiences in applying it in practice - what worked, what didn't and how the model can be adjusted to fit different teams and organisational environments.
Designing the Developer Experience - Tanja Bach, Jacob Bo Tiedemann
Working with software that some other people have built, is not only daily business for private and business users but also for developers. Just like any other product, a product for developers needs to solve their problems and focus on the right jobs-to-be-done in order to be successfully adopted by the developer community. In this talk, we will explain why the developer experience matters not only to developers but also to the business. We will share our learnings and real-world examples of how we created a developer experience for a cloud infrastructure product and an IoT platform that the developers love.
When we design together - Sabrina Mach, Ammara Gafoor and James Emmott
From three distinct perspectives, this talk will contend that design is an activity undertaken by everyone in a software development team. It occurs throughout the process of delivery — not only at the beginning or the end — and it is a powerful instrument for learning about and adapting to the problems our work seeks to solve, which is a shared responsibility. Making the best use of our multidisciplinary expertise in the activity of design requires forms of collaboration that are too often disrupted by the role-based silos that keep us separated and weaken the valuable contribution our diverse approaches could make to our collective efforts. If you care about accelerating time to market, improving customer experience, or building happy and productive teams, you will want to know why and how it matters that we believe ‘design is in everything that we do’.
Hardware is hard(er): designing for distributed user experiences in IoT - Claire Rowland, www.clairerowland.com
Designing connected devices and hardware-enabled services is significantly more complex than pure software. There are more devices on which code can run, connectivity and data sharing patterns to consider, and often multiple and varied touchpoints for users to interact with. Pulling this all together into a coherent experience involves strong collaboration between design and engineering, and a systems thinking approach to UX. In this talk, we’ll introduce what designers need to know about the tech, what engineers need to know about UX for IoT, and how to facilitate the whole-collaboration needed to create great products.
www.clairerowland.com
Customer-centric innovation enabled by cloudThoughtworks
Working Backwards - Leading organisations achieve growth by marrying customer-obsession with a modern technology strategy. In this upcoming webinar, we’ve partnered with AWS to bring you exclusive insights from one of the world’s most innovative companies, Amazon.
Working Backwards - Leading organisations achieve growth by marrying customer-obsession with a modern technology strategy. In this upcoming webinar, we’ve partnered with AWS to bring you exclusive insights from one of the world’s most innovative companies, Amazon.
Find out how to validate hypotheses quickly using feedback that comes from a (large enough) number of actual users interacting with your product. In this talk, we will show you the technical foundations, research techniques and organisational setup that we have used successfully on large-scale products. These will save you development time, enable you to go live with confidence, make decisions based on real behaviour instead of best guesses, and solve the actual problems your users are facing.
As a tech leader at ThoughtWorks, a large part of my job involves recommending practices to our clients so they can build and deliver good quality software faster. In doing so repeatedly for many clients I have created a toolkit that contains practical advice from being on the ground. This is what we do, we know it works. When Julius Caesar entered Rome with his army by crossing the river Rubicon, he did something that couldn’t be undone ever again. In your journey as a leader, avoid mistakes that are difficult to correct later. Here are a set of practices that you want to adopt as soon as possible.
Handling error conditions is a core part of the software we write. However, we often treat it as a second class citizen, obscuring our intent through abuse of null values and exceptions that make our code hard to understand and maintain. In the functional programming community, it is common to use datatypes such as Option, Either or Validated to make our intentions explicit when dealing with errors. We can leverage the compiler to verify that we are handling them instead of hoping for the best at runtime. This results in code that is clearer, without hidden path flows. We’ll show how we have been doing this in Kotlin, with the help of the Arrow library.
Mutation testing in software development surfaced in academia during the 70's and has recently seen a resurgence in popularity as a legitimate tool in your testing arsenal. In this session we review the conventional testing pyramid, modern approaches to testing software and look at how mutation testing can help fill in those blind spots.
The continued adoption of containers for deployments has introduced a new path for security issues. In this talk, we will cover the most common areas of vulnerabilities, the challenges in securing your containers, some good practices to help overcome these issues and how to run container security scanning as part of your deployment pipeline.
Mainframes handle 30 billion business transactions each day and 87% of all credit card transactions*, they are not traditionally associated with flexible, fail-fast development approaches. Can we bring the practices of agile, CI/CD and fully automated deployments to applications running on a mainframe? During our talk, we'll tell you a story about test automation; redefining the smallest testable unit of a program. And we'll discuss our learnings from introducing continuous integration and agile practices to the world of insurance and mainframes.
*9 Mainframe statistics that may surprise you
ThoughtWorks' Lucy Kurian, James Lewis & Kief Morris discuss tech trends in our latest Technology Radar, covering techniques, platforms, tools, languages and frameworks.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
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
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
[Soumya]
So basically it’s a process or a series of processes to ensure code works as intended and
NOT DO ANYTHING UNINTENDED
[SOUMYA]
At ThoughtWorks; testing, plays a very big role while delivering projects. Infact, we keep learning from our projects. It helps us improve and create better tools to make testing easier.
ONE SUCH PRODUCT IS GAUGE.
[Soumya] - I am the Lead QA on it
[Neha] - and I am the Tech Lead on it
Our goal is to provide Reliable Test Automation tools. Before we begin
[Neha]
ARE YOU READY TO CHALLENGE YOUR EXISTING BELIEFS ABOUT TEST AUTOMATION!
We have seen that the Test Pyramid has been a common reference point for teams to structure their test suites
[Neha]
It is believed that there should be fewer UI tests and more of unit and service tests. Even the test pyramid clearly shows us that UI tests are costly and to have long running times.
It’s become a common practice not invest in UI Tests and concentrate on Unit tests instead. This is because UI tests are often considered difficult to write and even more difficult to maintain.
[NEHA]
But, unit tests aren’t really tests!
They are part of development process.
After all, the developers are the ones who write these tests.
[Neha]
We have also faced a lot of problems while writing UI tests! We conducted a small survey. And here are our findings
[Neha]
The common pain points were
Maintenance, Flakiness in tests and learning curve associated with the UI test tools
[Soumya]
Since we want to understand problems of test automation with examples.
We will need a system under test, For that, we chose a simple TODO app!
This is used to manage todo tasks. But today for the Demo we will only add a task and mark it as complete
[Soumya]
As you see, the App here is written in React JS.
[Soumya]
Here u can write the name of the task and press Enter to add it
[Soumya]
And then click on the checkbox to mark it as complete. Simple enough?
[Soumya]
The reason we chose this APP is because it is written in a bunch of UI frameworks with exactly the same functionality.
For this demo, we will be using the React and AngularJS flavours of the APP.
[Soumya]
To understand the problems with Maintenance, lets automate todo App with Selenium.
WHY SELENIUM: ‘Cause it's been around for ages and also been popular for a long time too.
How many of you have used selenium before. Great! So, you will be able to relate to the examples we will be giving now!
[SOUMYA]
Let’s begin, this is the URL of our todo APP, the React flavour.
Of Course SELENIUM selectors are dependent on the HTML structure
When we run against the React flavour of our todo app. The tests pass.
Obviously it was written specifically for it. I mean mainly the selectors.
But now, lets see what happens when the same test is run against the AngularJS flavour of the application.
The test failed.
[SOUMYA]
What went wrong?
[CLICK]
Why are the tests failing? Did the functionality change?
No,
[CLICK]
Did the DOM change
Yes
[CLICK]
And now! the test doesn’t seem to have the required CSS class.
[SOUMYA]
Let’s talk about some pros and cons of using selectors Xpath or Css selectors in tests.
Yes, these are very powerful. They can select any element on your HTML page.
But if you are going to use it in tests, we have to get used to updating them every time the HTML structure changes.
Be it design change, streamlining of HTML or fix bugs.
And this will be ongoing as long as your web app is evolving.
[CLICK]
We have been doing that isn’t it. We have got used to it also. So much so that
[Soumya]
We account for Maintaining locators in the test maintenance cost. As quoted in a Mozilla Test blog.
[CLICK]
But then, what about Modern Web frameworks? They auto-generate the HTML structure. It will perhaps take more effort to locate elements with Css or XPath selectors!
[Next - Neha]
[Neha]
What else adds to your cost? Flakiness?
Lets understand how flakiness affects your tests.
[Neha]
Here, the we have successfully run tests once.
Does rerunning the test without any change give the same result?
The tests have failed.
[NEHA]
What went wrong?
Is the element to interact with available after a page load or asynchronous call without any waits? Perhaps Not
[CLICK]
Will introducing delays with magic numbers help? We saw otherwise
[CLICK]
Shall try using wait for conditions instead?
[CLICK]
[NEHA]
Like so
This looks complicated isn’t, what should be your focus be; testing the application or focus on the nitty gritties of the tool being used for automation!
[Neha]
Google Testing blogs claim that more than 1 in 7 of their tests occasionally fail in a way not caused by changes to the code or tests.Flaky tests are at least twice as harmful as we think. Why? Because - We not only waste time re-running flaky tests but also real test failures which we assume to flake out. This causes the team to lose their confidence in their test suite.
[Soumya]
After seeing maintenance and flakiness issues, you may think that learning curve is the least of your problems.
But, having to write waits described earlier; or having to structure your test code with all the DOM selectors is overwhelming!
You not only have to design your production code, but also your test code.
[Soumya]
Our observation with test projects has been that Tester’s spend close to 50% of the time designing and maintaining test frameworks.
What if there were recorders to generate the required code!
Then would we be spending less time and effort to maintain tests?.
[NEHA]
Not really!
There are a lot tools which try to make writing tests easier by recording flow and generating the code. But, Be it auto generated code or handwritten, you see; the problems associated with DOM selectors doesn’t change.
So, It’s but natural that there is a general complaint with code generated using such recorders are brittle and difficult to maintain.
[Next Soumya]
[Soumya]
We have spoken so much about the problems. You know what this shows?
It shows that over the period of time we have learned to live with the associated pain points and just been looking for work arounds for it.
[CLICK]
Sometimes all it takes is a different approach!
[Soumya]
What is needed today is a tool which has a
low learning curve,
Something that eases the complexity of the required test code
Allows you to automate modern web applications quickly
Takes care of reducing test flakiness
With some nifty APIs
[Neha]
Yes, that’s where Taiko adds value!
A tool that can be used to automate modern web applications easily. It is the tools aim to reduce the flakiness and help write more maintainable code!
Let me give you a little insight about how Taiko was built. It is built over Chrome DevTools Protocol, the same Protocol used by the chrome console.
So what does this mean for a team developing Taiko. It gives us a handle over the low level protocols used by the Chrome Browser. This means, better and direct control over the browser.
So, how does this help you? Taiko is able to figure out low level details like when page loads are complete. So you don’t have to handle these in your tests anymore.
[Soumya]
In Taiko, the selectors are smart.
It has simple APIs to automate what is visible on the screen.
For example `click(“Active”)`. Clicks Active. The HTML tag associated with it doesn’t have to be specified
[Soumya]
If a textbox has focus, you can write into it using this simple API
[Soumya]
But; not all elements have text.
What we can do in such cases is select elements based on their proximity to other elements.
Here is an example where the checkbox near TechRadar is clicked.
[Next - Neha]
[Neha]
As you have seen before, the selectors API’s are simple and can be used easily to give instructions for you to perform the action on the browser. You can continue to give instructions to complete the workflow. You can then create a script out of the successful actions performed.
So you can think like a user to automate your workflow. It helps you in doing black box testing.
[Neha]
As you have seen before, the selectors API’s are simple and can be used easily to give instructions for the user to perform the action on the browser. The user can continue to give instructions to complete the workflow. The user can then create a script out of the successful actions performed.
This along with our smart selectors, Taiko helps you think like a user to automate your workflow. It helps you in doing black box testing.
[Soumya]
Let’s take the same examples we used earlier and run the tests with Taiko.
Let’s see what happens.
[Soumya]
First we run the test with the ReactJS flavor of the APP. As you can see, the smart selectors are not dependent on the HTML structure. Yes, the tests passed.
But let’s re-run it. To check if this was a false positive. It seems to work fine even without explicit waits defined in test code.
Now, let’s modify the application URL to point to the angularjs flavor of the app.
Here the tests passed in both cases. In this case, with no changes in the workflow test code didn’t change.
Mention fall back options - DOM selector
[Next - Neha]
[Neha]
Taiko has reliable inbuilt wait mechanisms. This means, Starting from opening a browser to performing other tasks, in most cases there are no explicit waits needed.
[Neha]
Putting it all together, Taiko lets you focus on writing reliable tests and reduce the cost associated with test maintenance.
[Neha]
Taiko comes with a lot of other features. Like Network interceptors are built in. No more using a proxy server to stub that annoying 3rd party payment gateway service or the like.
You can also record a video of your entire workflow using the Screencast plugin.
[Neha]
Since Taiko is a simple NodeJS library, you can integrate it with any test framework like Gauge or Mocha or Jest easily.
However, you can find your testing experience simplified using Gauge and Taiko.
TESTING EXPERIENCE SIMPLIFIED USING GAUGE + TAIKO
[Soumya]
There are a lot of free and open source tools to automate the browser and write end to end tests. Last year the Gauge team released Taiko. You may think it is yet another one in the market. But, in this blog, we will discuss what’s different about it.
Here we compared Taiko with some popular browser testing tools. There will be always pros and cons with each tool you use. If you are looking for something with cross browser support, for instance, selenium would be a good fit. If you are looking to reliably automate modern web applications with low maintenance cost, it's worth considering Taiko.
[Neha]
-----
If you have some questions about Taiko you can always reach us out on Gitter for a quick chat, Google groups for discussion or the Stack overflow.