January 27 - 28, 2021
TestJS Summit
Online

TestJS Summit - January, 2021

Test JavaScript. Test with JavaScript.

TestJS Summit is getting back in 2023 in hybrid format with the first in-person day streamed from the Berlin venue including hybrid networking features and interactive entertainment; and second day, as well as the numerous free workshops, streamed to the global audience online. TestJS Summit is event for QAs and software developers to get up to date with JS testing best practices, sharpen skills and get latest updates from top products core teams. Get a full ticket to participate in workshops, and network with others JS testing folks on December 7-11, 2023.

This edition of the event has finished, the latest updates of this JavaScript Conference are available on the Brand Website.
Core Web Vitals - What, Why and How?
27 min
Core Web Vitals - What, Why and How?
Top Content
This Talk provides an introduction to the core of Vitals and its contribution to Google search. It discusses the evolution of website performance metrics and the need to consider factors beyond the time to first byte. The concept of Core Web Vitals is introduced, consisting of three metrics: Largest Contentful Paint, First Input Delay, and Cumulative Layout Shift. The upcoming Page Experience signal, launching in May 2021, will combine Core Web Vitals with existing ranking signals. The Talk also addresses challenges in measuring performance and provides insights on layout stability and visual completeness.
Testing Web Applications Using Cypress
173 min
Testing Web Applications Using Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
Don’t Make These Testing Mistakes
27 min
Don’t Make These Testing Mistakes
The Talk discusses common mistakes in Cypress tests, such as accessing the file system directly instead of using the Cypress command, and the importance of writing effective Cypress tests for different scenarios. It also emphasizes the need for adding assertions during navigation and alternating commands and assertions. The Talk highlights the significance of documentation and examples in providing support and addresses the advantages of using the Cypress Node test runner. It concludes with tips on debugging, data tests, and testing user journeys and edge cases.
Beyond API Mocking
25 min
Beyond API Mocking
Today's Talk discusses API mocking and its role in testing. The speaker explores the advantages and disadvantages of server and client-side mocking, and introduces the use of service workers for mocking. The MockServiceWorker library (MSW) is presented as a solution that leverages service workers to intercept requests and provide mock responses. MSW is client-agnostic, widely used, and offers many features. The speaker also mentions upcoming improvements and encourages users to try MSW and provide feedback.
Writing Testable Serverless Apps Using Hexagonal Architecture
28 min
Writing Testable Serverless Apps Using Hexagonal Architecture
The scariest thing about serverless is the fear of vendor lock-in and losing control. Planning, good architecture, and deployment procedures help keep switching costs reasonable. Hexagonal architecture is a useful approach for writing testable serverless apps. Integration testing is crucial for serverless apps, and hexagonal architecture helps fight vendor lock-in and reduce switching costs. Docker is used for testing serverless functions, and the practicality of hexagonal architecture remains a question.
Play it Right with CodeceptJS: An Introduction to Supercharged End-to-End Testing
28 min
Play it Right with CodeceptJS: An Introduction to Supercharged End-to-End Testing
Concept.js is a BDD style testing framework focused on browser testing, offering easy switching between engines and Cucumber BDD support. The Pulse feature in Concept.js allows for interactive test execution and editing. Concept.js provides a user-friendly interface, reporting options, and supports parallel execution. CodeSap.js offers strategies for dealing with slow-loading elements and provides flexibility in browser control. Contributing to Concept.js is encouraged, and CodeSap.js is a good choice for advanced features and full browser control.
Testing for the Modern Web with Playwright
30 min
Testing for the Modern Web with Playwright
Arjun introduces Playwright, a library for cross-browser end-to-end testing of web applications. The challenges in modern web testing include the evolving web platform and reactive frameworks. Playwright provides capable, reliable, and fast automation, with the ability to capture events and enhance test reliability. It uses browser contexts for faster execution and supports multiple languages and frameworks. Playwright is used by companies like VS Code, Bing, Adobe, and material UI, and offers cross-browser support and an improving roadmap.
Achieving A11y Automation Testing
27 min
Achieving A11y Automation Testing
This Talk discusses automation testing tools and strategies for accessibility. It highlights EmberJS's approach to accessibility and the efforts of the developer community. The importance of prioritizing accessibility and using tools like Ember A11y testing and Axe-Core is emphasized. Integration with React, Vue, and other frameworks is made easy with NPM packages. The Talk also emphasizes the value of manual testing and user evaluation alongside automation testing.
The Evolution of Browser Automation
34 min
The Evolution of Browser Automation
Browser automation has evolved over the years, starting with Selenium and WebDriver. Tools like Cypress, Taskerfee, Puppeteer, and Playwise use different approaches for automation. The new WebDriver protocol will enable sending and receiving thousands of commands and messages simultaneously. New testing types, such as performance and accessibility testing, will continue to emerge. The new WebDriver protocol combines the best of all three approaches and provides opportunities for testing and automating web applications.
Testing React: A Convert’s Journey from Enzyme to Testing Library
8 min
Testing React: A Convert’s Journey from Enzyme to Testing Library
The speaker switched from Enzyme to the REACT Testing Library due to its encouragement of best practices, easier refactoring, and promotion of accessible code. The shift from class-based components to functional components in React is also highlighted. The benefits of the Testing Library include improved readability and user interaction simulation through DOM assertions, as well as its opinionated nature and focus on accessible code.
Shipping High Quality JS Apps with Confidence
29 min
Shipping High Quality JS Apps with Confidence
Today's Talk highlights the importance of software quality and its impact on businesses. It emphasizes the use of different tools and practices to improve software quality. The Talk covers topics such as testing with TypeScript and React Testing Library, accessibility, Cypress for end-to-end testing, writing better queries, monitoring performance, using feature flags with LaunchDarkly, and the value of Prettier. The key takeaway is that developing high-quality software with fast feedback loops and simplicity is crucial for success.
Practical Web App Performance Problem Solving
8 min
Practical Web App Performance Problem Solving
This Talk discusses runtime performance in software development. It explores the concept of garbage collection and the importance of optimizing functions for faster execution. The event loop and profiling are also highlighted as essential tools for analyzing and improving runtime performance. Real-life examples demonstrate the benefits of profiling in optimizing functions and improving app performance. Overall, the Talk emphasizes the significance of understanding and optimizing runtime performance in software development.
Detox: The Unobtainable Test Stability (or is it?)
36 min
Detox: The Unobtainable Test Stability (or is it?)
Detox is a grey box testing solution for mobile applications that manages sync between test code and the app, eliminating the need for manual synchronization. It follows the grey box testing approach used by Espresso and Earl Grey. Wix's mobile app architecture consists of four types of parts, each with its own independent CI process. Test isolation and input consistency are important for stable end-to-end testing. Android emulators perform better on Mac VMs with nested virtualization, but our next-gen setup includes Bare Metal Mac minis for improved performance. Detox is primarily used for React Native applications and has limitations, but there are learning resources available. Detox supports camera functionality and provides solutions for debugging test fails and running tests on device farms. Currently, Detox supports simulators for iOS and devices connected to the computer for Android, with work underway to support real devices. The test APK for Detox connects to the production app and Node service, and Expo is responsible for providing a test APK for Android.
Visual Regression Under the Hood
9 min
Visual Regression Under the Hood
Today's Talk discusses the value and challenges of visual regression in UI testing. It highlights the importance of predictability in loading pages and choosing the right screenshot resolution. It also mentions the use of Visual Regression Services, Docker, and the Odiff library as solutions to improve stability and efficiency in visual regression testing.
Testing React Hooks with Confidence
7 min
Testing React Hooks with Confidence
The Talk discusses testing hooks in a React application. The speaker starts by showing an untested React application and begins testing with a simple placeholder test. The importance of refactoring and testing custom hooks is emphasized, with the recommendation to use the React hooks library and achieve full test coverage. Unit testing React components may not be valuable, as the complexity lies in the hook code. Instead, end-to-end testing with tools like Cypress is recommended.
The Life-Changing Magic of Tidying Up your Test Warnings
8 min
The Life-Changing Magic of Tidying Up your Test Warnings
Today's Talk focuses on preventing test warnings in software development. Test warnings are often ignored and can lead to bugs, performance issues, and security concerns. The speaker introduces a library called jsreporter log validator that automates the process of adding rules to prevent new warnings and fixing existing ones. The library provides a summary of expected behavior, failures, and actions to take. Overall, the Talk emphasizes the importance of paying attention to test warnings and using automation to improve developer experience and prevent issues in large and legacy applications.
Introduction to JS Functional Testing at Scale
197 min
Introduction to JS Functional Testing at Scale
Workshop
Christian Bromann
Nikolay Advolodkin
2 authors
In this workshop we will take a look at the JavaScript framework landscape for automated functional testing, such as Puppeteer, Playright, Cypress, and others. We will explore what their differences are and how to choose the right tool for your project. Then, we will look at various scenarios, from basic functional test concepts to complex visual and frontend performance tests and complete the session with scaling up our solution using a cloud vendor like Sauce Labs.
Your Tests Lack Vision: Adding Eyes to your Automation Framework
28 min
Your Tests Lack Vision: Adding Eyes to your Automation Framework
Today's talk is about the importance of visual testing in software development. Visual bugs can easily be missed when relying solely on automated tests. These bugs can have a significant impact on user experience and can even cost businesses customers. Applitools offers a machine learning approach to highlight relevant differences in visual testing. Their eyes API and Cypress integration make it easy to add visual testing to existing tests. With Applitools' ultra-fast grid, visual testing can be done across multiple platforms and devices simultaneously.
Security Testing for JS Apps
5 min
Security Testing for JS Apps
Stackhawk is an application security tool that focuses on dynamic application and API security testing. It is built on top of the open source ZAP project and designed for automation in CICD. Stackhawk provides a comprehensive set of tools for application security testing and bug fixing, including viewing findings, recreating requests, and easily fixing vulnerabilities. It allows for triaging findings and integrating with other engineering stacks. Visit stackhawk.com to sign up for a free account and learn more at docs.stackhawk.com.
Get Testing out of your Tech Debt
8 min
Get Testing out of your Tech Debt
Tech debt is a common issue that teams struggle with, but addressing it effectively requires a structured approach and prioritizing issues that primarily impact developers. Feature preservation, such as automated testing and monitoring, should be considered part of building features, not tech debt. Fixing user-related issues takes priority over developer concerns, and scaling to serve more users benefits both users and developers. Climbing out of tech debt effectively is possible with a focus on developer productivity and user benefit.
Deploy with Speed and Confidence Using Contract Testing and Pact
32 min
Deploy with Speed and Confidence Using Contract Testing and Pact
The Talk discusses the cost and issues with end-to-end integration tests and the benefits of using contract testing with PACT. It explores the challenges of scaling teams and components and highlights the advantages of using PACT for testing microservices. The PACT framework is demonstrated, showcasing its ability to provide fast and reliable feedback, independent testing, and versioned contracts. The Talk also covers topics such as testing compatibility, safe removal of fields, and integrating PACT with Cypress.
Panel Discussion: Application Security Testing
30 min
Panel Discussion: Application Security Testing
Scott Gerlach
Vandana Verma
Liran Tal
Sam Stepanyan
4 authors
The panel discussion on application security testing covered various perspectives on DevSecOps, emphasizing the importance of shifting security left and the role of automation. Collaboration between developers and security teams was highlighted, as well as the need for developer-friendly security tooling. Pain points in integrating security testing early in the pipeline were discussed, including technical and cultural challenges. Open source project recommendations for building a secure pipeline were also provided.
It’s not about your Assertion Library
25 min
It’s not about your Assertion Library
This Talk discusses the importance of software testing and engineering through the example of the Muslim storm surge barrier in the Netherlands. It emphasizes the need for iteration, reflection, and making trade-offs in building great products. Testing assumptions and writing good tests are crucial for delivering value and building confidence in code. The Talk also explores the balance between test coverage and confidence, and how to foster a developer culture that values testing and collaboration.
Uniform Browser Automation Infrastructure
127 min
Uniform Browser Automation Infrastructure
Workshop
Ivan Krutov
Ivan Krutov
In this workshop, I will show you how to quickly deploy and use browser automation infrastructure with Moon solution. We will start deploying everything on your workstation and will soon be able to run Selenium, Playwright and Puppeteer tests in parallel in the same cluster. Then I will demonstrate how to easily deliver the same experience for your team using a remote cluster in the cloud platform.