Reflect is a no-code, cloud-based platform for creating end-to-end tests. It's the fastest way to create and maintain end-to-end tests for your web app.
Hi Product Hunt!
We're excited to launch the new version of Reflect today! Back in April of 2020, my co-founder Fitz and I launched Reflect right here on Product Hunt. Since then, Reflect has evolved from just a fast way of creating end-to-end tests, to a complete testing platform that helps developers build and maintain test suites in a fraction of the time of other tools.
Testing helps prevent customers from hitting bugs. We all know that. But why is the process of testing web apps so inefficient? If you were building an automated test suite today, you'd probably use a code-based tool like Selenium or Cypress. Code-based testing has been the norm for the past 15 years (!), and yet it still has some very fundamental problems that make them difficult to use:
1. Translating a user's actions into code is a painstaking, time-consuming process. Just think of a simple workflow in your app, like signing up for a new account. There's probably 20 or 30 separate steps involved. Translating each click and form field interaction into code is not something that most developers would consider the highlight of their day.
2. These tests break all of the time. Any change you make to your app is at risk of breaking these tests. That's because these tools use a single CSS selector to know what element to target when running an action like a click or form input. These hidden dependencies often cause tests to fail even when no bug is present. Having to fix up tests all the time becomes a huge distraction and causes test suites to quickly fall out of use.
3. Existing tools have major limitations that prevent you from testing common workflows or catching common types of bugs. Cypress can't test workflows that span multiple domains, so good luck testing Google sign-ins. Selenium has poor support for drag-and-drop, file-uploading, and common building blocks like Web Components and Shadow DOM. Neither tool can detect visual regressions, like a button that's the wrong color or a modal that's obscured. This means even if you had 100% test coverage, you're still going to have a whole class of failures that you're not going to catch. And if you want coverage for visual issues, you'll need to use a third-party tool that costs extra.
We've built Reflect to address these issues. With Reflect, you don't write code to create tests. Instead, Reflect spins up a browser in the cloud and records your actions as you use your site. Those actions are automatically translated into tests. We believe the *browser* is the best interface for creating E2E tests, not your IDE. For one thing, it's way faster. Workflows that would take half a day to write in a code-based tool take just a few minutes to build in Reflect. Since end-to-end tests replicate user behavior, any workflow that you'd want to test, *by definition* can be done in the browser directly. So in a sense we're just cutting out the middle-man :)
We've also built what we believe is the best way of maintaining these tests: an online debugger for your tests. You can fast-forward into any part of a test and add additional steps, tweak settings, and watch the test run live to ensure it's repeatable. If an issue is found with your test changes, you can take steps to fix it immediately. We even provide a set of recommendations for how to fix up the issue. And if you’re a developer fearing the loss of code reuse in a no-code tool, we have that covered too, with reusable sub-tests called Segments
Reflect is a "batteries included" solution in that the infrastructure for running the tests is provided with our application. You can choose to schedule tests (e.g. run them daily at noon), run them on-demand, or hook it up to your CI/CD platform to kick tests off after a successful deployment. We also integrate with platforms like Vercel and Heroku so that you can use Preview Environments to run tests on every Pull Request.
We're excited to get your feedback on what's been over a year of product development and iteration since our initial launch!
- The Reflect Team (Fitz, Kyle, Todd, and Zach)
Congrats on the launch @toddmcneal@fitzn! When I first tried out Reflect, I had a big AHA moment— this is definitely the way to keep regression test coverage high and up-to-date for teams that release often. Previously, I had written tons of selenium tests with CSS selectors and various mock hacking. Being able to drag-drop and "write tests" visually is a game-changer even if an engineer is the one doing it.
Reflect
ChatAndBot
Reflect
Flow Club
Reflect