- Book: Hands-On Automated Testing with Playwright: Create fast, reliable, and scalable tests for modern web apps with Microsoft's automation framework
- LinkedIn Learning Courses: Learning Playwright and Playwright Essential Training: Abstractions, Fixtures, and Complex Scenarios
- Blog: https://playwrightsolutions.com/
Adventures in Automation
Stories for Software QA Engineers shifting from manual to automated testing.
February 18, 2026
February 12, 2026
AI: Good as a Research Assistant. Bad for Creating GitHub Action Workflows
- "Here is a list of toolsets. Describe them. Be brief".
- "What are the release dates of these toolsets?"
- "Use corporate tech blogs as primary sources".
- "Cite your sources. Provide links".
- It doesn't realize that GitHub actions have new versions that have been released in the past year.
- It declares you should be using a Mac runner since it is more stable. No, a Linux runner is better! No, a Mac runner! It flip flops on them between code reviews.
- If you ask it to shift to a build / test / report stage, it always forgets to upload the artifacts in one stage so they can be downloaded to another.
- It suggests Intel-based Android emulators to be used on Mac OS runners, only recognizing how it fowled up if you copy-and-paste the error to it.
- It will erase and change the comments you placed in the workflow if you do not watch out.
- It keeps wanting to go out of the box you placed it in, and rearrange disorganized code that runs elsewhere in the project, and change it to pretty code that has hidden errors in it.
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
February 11, 2026
New Project: Cursor creates a Playwright + C-Sharp test framework
Let the battle begin!
Happy Testing!
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
February 9, 2026
New project: Creating an automated test framework in Playwright + C# using GitHub Copilot
The Test
- Login C Sharp: https://github.com/tjmaher/login-c-sharp
WARNING!
The Results!
So, how did GitHub Copilot + Chat GPT do creating an automation framework? I would say it did so good that it was hideously frustrating when it messed up the simple things.
It's like an eager-to-please junior dev who doesn't completely know the material and doesn't know it isn't reading the latest documentation.
Why would it not know it was implementing out-of-date libraries when creating the GitHub Actions Workflow? It was so sure it had everything correct until I copied-and-pasted the error I received from the GitHub Actions log files and fed the error back to it.
Why does it not read actual documentation? Why does it skip carefully enumerated steps? And why does it always profusely apologize to me while doing the same mistake over and over again?
I feel that it got me 80% there, but it was super frustrating needing to drag it bodily across the finish line.
Happy Testing!
February 6, 2026
New Features of Detox Demo: Security Scanning + Android Support + Cross-Platform Builds!
Remember that tiny little two-screen React Native app I created back in December 2025? The one that just had a Login Page and a Secure Area? Well, I may have gone a little overboard adding features to it again.
What started as a simple React Native Login Page demo for my AutomationGuild talk in April 2026 has become... way, way, way too much.
What's new in Detox Demo?
๐ Tools and Technologies Galore!
The project now uses: React Native, Yarn, Detox, Detox CLI, Allure Reports, Snyk, GitHub Actions, GitHub Workflows, GitHub Pages, Metro bundler, CocoaPods, Android Gradle configuration, iPhone simulators and Android emulators, and includes troubleshooting guides for both macOS and Windows.
All open-source. All documented. All completely unnecessary for what is essentially a Login button and a Logout button.
๐ Snyk Security Scanning
Because even a demo app that has hardcoded credentials (yes, tomsmith and SuperSecretPassword! are right there in plain text in credentials.ts) deserves security scanning!
I've added a new security.yml GitHub Actions workflow that:
- Scans
package.jsonandyarn.lockfor vulnerable npm packages - Runs Static Application Security Testing (SAST) on the source code
- Uploads results to GitHub Code Scanning so they appear in the repository's Security tab
It runs on every push to main, every pull request, and you can kick it off manually.
Snyk is free for public repositories. If it's free, it's for me, I'll take three.
๐ค Android Support
The app now runs on Android! I've added:
- android-regression.yml - A full CI/CD pipeline for Android emulator testing
- Cross-platform Gradle commands in .detoxrc.js that automatically detect Windows vs macOS
- Complete Setup for Android documentation in the README
Run locally on Windows 11 or macOS:
yarn start # Start Metro in one terminal yarn detox:android # Build and test in another
All 5 tests pass:
- ✅ Secure Area Flow: 2 tests
- ✅ Login Flow: 3 tests
๐ช Windows 11 Local Development
Since I'm developing on a Windows 11 machine these days, I asked GitHub CoPilot to generate comprehensive Setup for Windows 11 Local Development guide covering:
- Android SDK installation
- AVD creation
- Environment variable setup
- Troubleshooting common issues
Plus a matching Setup for macOS Local Development guide for MacBook users.
๐งน GitHub Copilot Code Review Fixes
I now run GitHub Copilot's code review feature on the codebase. All the source files created by GitHub Copilot now have a "Created by GitHub Copilot" comment at the top, because credit where credit is due!
Happy Testing!
February 4, 2026
Creating a GitHub Actions Workflow for Android Detox Testing with GitHub CoPilot? What Could Go Wrong?
Last month, I shared my experience using GitHub Copilot to create a React Native app from scratch to be used in my DetoxDemo project in my article, First Time Using GitHub CoPilot to Create a ReactNative LoginPage app. What Could Go Wrong?
This time, I used GitHub Copilot (Claude Opus 4.5) to create a GitHub Actions CI/CD workflow for running Detox end-to-end tests on Android. While GitHub CoPilot is incredibly powerful, it still required significant human guidance to get the workflow passing.
Detox Demo: https://github.com/tjmaher/detox-demo
I had a working GitHub Actions Workflow with ios-regression.yml and asked Copilot to create an Android version that matched. Despite this instruction, I had to repeatedly ask Copilot to compare against the iOS workflow to create the Android workflow, android-regression.yml.
The result? 14 commits, 17 hours, and a lot of lessons learned. Here's the timeline of what went wrong, and what finally worked:
The Stats
Total Commits: 14 commits
Time Span: ~17 hours
- Started: Feb 3, 2026 at 9:54 PM EST
- Finally Passed: Feb 4, 2026 at 3:15 PM EST
February 3, 2026
The Facebook Ecosystem: React, React Native, Metro, and Yarn
Before building an automated testing framework, I had to do some research on the toolsets in the Facebook ecosystem that SELF’s mobile app used: React, React Native, Metro, and Yarn.
GitHub:
- https://github.com/facebook/react
- https://github.com/facebook/react-native
- https://github.com/facebook/metrohttps://github.com/yarnpkg/berry
January 30, 2026
Hands on Automated Testing with Playwright is the start of a wonderful conversation with the Playwright community!
- Sample code is included: Just like Butch's courses, it provides a GitHub repo chock-full of code examples where Butch and Faraz walks through the examples chapter by chapter so the reader can see implemented the concepts that they both explain.
- Reference links is included: Need to do a deep dive on a topic? The authors have included links to the primary sources, such as Faraz Kelhini's article, Understanding Shadow Dom. (2019)
- QR codes that connect to the Playwright community: Want to connect with the Playwright community at large? See a Playwright community calendar? Scan the included QR codes in the books.
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
GitHub repo
January 23, 2026
#OpenToWork: Looking for My Next Test Automation Adventure!
After an incredible but way too short run at SELF ID, building mobile test frameworks for our React Native app, I'm ready to bring my expertise to a new team that values quality, automation, and collaboration.
What I bring to the table:
With a decade of experience as an automation developer, I don't just write tests. Embedded with a development team, I learn about the wants and needs of the stakeholders - the developers, the designers, the business analysts, the business itself - and construct a test automation framework, two week sprint by two week sprint, that truly fits their needs. [ See my Programming Projects ]
The quicker the automation framework is stood up, the quicker I can get to the truly fun stuff: Making sure the brand-new untested features fresh off the developer's local machine meets not just the spec, wireframes, requirements, and design, but also to make sure it matches those undocumented expectations that were discussed but may have not been carefully documented... something that AI will never be able to do.
My most recent project? DetoxDemo (https://github.com/tjmaher/detox-demo) - a complete mobile automation framework showcasing:
- Mobile test automation with Detox + TypeScript for React Native iOS apps
- Page Object architecture that keeps tests clean and maintainable
- Allure Reports integration with visual test results published via CI/CD
- GitHub Actions workflows with configurable test execution options
What I'm looking for:
Software Engineer in Test or SDET roles where I can design automation strategies, sharing my testing worldview with developers, and build frameworks that the entire team can use to check their work before merging into main. Remote work is preferred, but I am open to hybrid opportunities in the Boston area or Southeastern Massachusetts.
My toolbox includes: Detox, some Playwright, Selenium WebDriver, Ruby/Capybara, Java, TypeScript/JavaScript, React Native, CI/CD pipelines, and Allure Reports. But more importantly - I know how to research new tools, validate stakeholder needs, and implement solutions that fit your tech stack.
If you know of opportunities, I'd love to connect. Drop me a message or comment below. I'm always happy to chat about testing, automation, or that one flaky test that's driving you crazy.
I will be speaking at Joe Colantonio's TestGuild in April 2026. See you then!
#OpenToWork #SDET #TestAutomation #SoftwareEngineering #QualityEngineering
Happy Testing!
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
AI wants to take over QA? Let it!
I am all in favor of outsourcing the "boring stuff" to automated tests or AI. Who really wants to check for the umpteenth time that the same page in the web app has the correct working functionality on Chrome, Firefox, MS Edge, Mac Safari, and all the various screen sizes. BORING!
Now, it takes a real software tester to make sure the brand-new untested features fresh off the developer's local machine meets not just the spec, wireframes, requirements, and design, but also to make sure it matches those undocumented expectations that were discussed but may have not been carefully documented. Or that the user experiences matches how the designer really wanted the web app to operate. Or that the user experience doesn't change too much when you operate the web app in the wild.
That all is fun part of the job ... realizing during testing that the business requirement or the design were actually unclear, and that you as a tester found a unique edge case.