Most Active Speaker

Mark Noonan

Mark Noonan

Cypress

Atlanta, Georgia, United States

Actions

Mark is a senior engineer on the Component Testing team at Cypress.io. His background before Cypress is in front-end development in agency and enterprise contexts, and before that he spent many years in developmental disability support at the Atlanta nonprofit, People Making Progress.

Awards

  • Most Active Speaker 2023

Area of Expertise

  • Information & Communications Technology

Topics

  • Accessibility
  • Testing
  • UI Testing
  • JavaScript
  • Front-End Development
  • HTML
  • Cypress

Automated Accessibility Testing in the Cloud

Like other aspects of quality, success with accessibility requires a multi-layered approach including automation and manual validation. In this talk we'll look at the automation layer of accessibility testing, and discuss the strengths and weaknesses of common approaches. We'll learn how this layer fits into an overall accessibility strategy to meet your overall goal: building and maintaining software that works for people with disabilities.

We'll also talk about how we are tackling this at Cypress, where we generate highly detailed accessibility reports based on existing test flows in Cypress Cloud, and what I've learned from talking to dozens of companies about how they manage accessibility.

End-to-End and Component Testing with Cypress

In this workshop you will get hands-on experience writing component tests and end-to-end tests in the browser with Cypress. We'll explain what Cypress is doing as it executes your tests, and cover many Cypress basics like commands, assertions, time-travel debugging, and network stubbing.

We'll also talk about decision making in testing, how to avoid testing too much or too little in complex, component-driven frameworks. When end-to-end and component tests are running in the same browser, using the same commands, we have some new options for code sharing and test organization.

Most of all, this workshop teaches testing in a way that is formed around a practical front-end development workflow. We will start from a design and requirements for a small widget we have to build, go to a set of well tested components that meet the requirements, and place the widget in a full page content for end-to-end testing.

UI Component Tests and Testing Strategy

Writing UI component tests that run in your browser right alongside the development environment is a powerful workflow for test-driven development on the front end. In this talk, we will discuss how Component Testing in Cypress lets developers take a component-first, test-driven approach to developing components. This approach can streamline our end-to-end tests by shifting coverage of certain details (like accessibility and correctness of the DOM) to the left of the development process.

The talk will cover some “dos” and “don’ts” for component tests, and compare component testing to end-to-end testing, then talk about how both work together as part of an effective testing strategy for web applications, and some new opportunities for code sharing between testing types that might be worth exploring.

What is a Vue Component?

Pretty much anything smaller than a whole application can be considered a "component", but when we want to talk about them with other people, it can help to be more specific.

In this talk let's use examples and try to separate out (and name) different kinds of components based on their role in an application in the designs we are building with Vue. We'll start with a basic component and work our way up, taking some time along the way to talk about props, slots, and the component lifecycle.

Spotting patterns in how we use components can help us understand our front-end architecture and testing needs, find some language that we can use when talking with designers and other stakeholders about "components" as they see them, and be more clear when communicating with other developers in our own team about the actual Vue components that implement a given design.

Researching and Writing Accessible JavaScript Thingies

You know it when you see it. It's an interactive part of a design comp. It animates on hover. Or scroll. Or maybe, when you select it, some other thing changes. It's not a dropdown or an accordion, it's a thingy.

This talk will explore ways of mapping creative interactive designs to standard accessible usability patterns so that we can meet the expectations of all our users when implementing innovative designs. It starts with understanding the nature of the content being displayed, and the nature of the interaction going on, ignoring the visuals.

Armed with this knowledge, we can find the right HTML and JS to represent this interaction in a usable way. We'll talk about resources that help make this kind of thinking second nature, and how to avoid reinventing the wheel when things look new, if they really just represent one of many existing patterns.

How to Test Components in the Browser with Cypress

Cypress Component Testing provides a real browser environment for building and testing isolated components in the browser. This means all of the Cypress tooling for writing and debugging end-to-end tests can now be used for components.

This talk will show you how to set up component testing and test some common scenario. Multiple frameworks and bundlers are supported in Cypress, but the core principles of how testing works are the same in all of them, so this content should be applicable whether you use React, Vue, Angular, Svelte or something else entirely.

We'll use examples to talk about common test situations and some early gotchas you might experience when getting started.

Accessibility Can Streamline Your Front End Process

Starting with accessibility when building user interfaces can simplify your decision making, and streamline your overall front-end development process. We'll look at how to recognize good and bad practices for accessibility with examples in HTML, CSS, and JavaScript. Then we'll see how those practices relate to a more robust, maintainable, and testable end result for your team over the long term. Finally we'll take a quick tour of some resources you can use to start focusing on accessibility in your own work.

The Testing Sea Monster - a whale of a tale about front-end testing

Mental models like the testing pyramid and testing trophy provide good high level ideas about different categories of automated testing - unit, integration, end-to-end. They help us understand the tradeoffs between them and the value of each.

In real life, sometimes testing feels a lot less organized than that. Instead of a pyramid, it's more like sea monster, trying to pull our ship down with its many weird tentacles. Not only that, it's doing this when we are focused on getting our ship from A to B. We don't want to be fighting off this sea monster, we want to be delivering quality software. We only want to think about testing in the context of how it helps us deliver quality software quickly, and with confidence.

In this talk we'll focus on front-end testing and a decision framework to help us "test what matters, where it matters" and outsmart the sea monster. We will use Cypress to show examples of end-to-end, component, unit, and API level tests and see how they work together.

Connect.Tech 2023

October 2023 Atlanta, Georgia, United States

MagnoliaJS 2023 Sessionize Event

October 2023 Jackson, Mississippi, United States

North Atlanta Javascript and Web Dev

June 2023 Atlanta, Georgia, United States

KCDC 2023 Sessionize Event

June 2023 Kansas City, Missouri, United States

Scenic City Summit 2023 Sessionize Event

June 2023 Chattanooga, Tennessee, United States

Vueconf.US 2023 Sessionize Event

May 2023 New Orleans, Louisiana, United States

Stir Trek 2023 Sessionize Event

May 2023 Columbus, Ohio, United States

Modern Web / React ATL / Vue ATL / Atlanta JS

March 2023 Alpharetta, Georgia, United States

CodeMash 2023 Sessionize Event

January 2023 Sandusky, Ohio, United States

Connect.Tech 2022 Sessionize Event

November 2022 Atlanta, Georgia, United States

Test Automation & Digital QA Summit

UI Component Test and Testing Strategy

September 2022 Atlanta, Georgia, United States

Atlanta Developers' Conference 2022 Sessionize Event

September 2022 Marietta, Georgia, United States

Atlanta Code Camp 2021 Sessionize Event

October 2021 Marietta, Georgia, United States

KCDC 2021 Sessionize Event

September 2021 Kansas City, Missouri, United States

Mark Noonan

Cypress

Atlanta, Georgia, United States

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top