How much could agentic AI help a small team deliver a complex migration? That was something I got to explore while leading the migration of a critical banking application used by traders around the world – all with a tight deadline and a team of four.
What started as an experiment with Claude Code became an automated testing capability that helped us check fixes, investigate failures and catch regressions daily. By the end, we had 107 tests running in around 18 minutes.
Coming from a platform engineering background, I’d never used Playwright before this project. By the end, I was using it with Claude Code to run daily regression tests and help the team investigate failures.
The project and the challenge
I was the technical lead in a team of four consultants migrating and modernising an on-premises banking application for a leading global investment bank. Alongside me were a platform engineer, a .NET developer and a DBA.
We were moving the application to AWS, implementing infrastructure as code and CI/CD, and addressing security requirements. We were also migrating the database from Sybase to Microsoft SQL Server, which turned out to be a significant part of the work.
The migration approach had changed, and some of the tooling we’d planned to use wasn’t available for our migration or within the client’s environment. A large proportion of the stored procedures weren’t working correctly on SQL Server and needed fixing.
With a tight deadline, we needed a reliable way to check those fixes and make sure we hadn’t broken something else. The development environment had enough issues that we needed to stabilise it before handing it over for formal UAT.
Starting with a smoke test
Around this time, the client made Claude Code available through VS Code in a containerised development environment and encouraged us to experiment.
My background is platform engineering. I’m not a test automation engineer, a software engineer or a DBA, but I wanted to see whether I could use Claude Code and Playwright to help with the testing and ultimately speed up delivery.
I started with a basic smoke test to see whether it would run inside the client’s network and interact with the application. Once that worked, I showed the team and got their buy-in to focus on taking it further.
We used the internal test team’s existing cases to build an automated end-to-end regression suite. Their documented workflows and expected results gave us a baseline for checking that the AI-generated tests covered the intended scenarios and correctly identified whether the application behaved as expected.
The tests covered searching, creating, amending, copying and transferring records. They needed to navigate through multiple screens, enter data, handle validation and check the outcome. Getting a page to load was only the starting point.
Giving Claude the right context
Giving Claude access to the application’s C# source code, alongside SQL Server access through MCP, made a big difference.
We extracted around 2,600 UI selectors from the application source, giving the tests concrete references for the fields and buttons they needed to interact with. Claude could also inspect the application logic, look at the stored procedures behind an operation and query the database when investigating failures.
That context helped us distinguish between a broken test, unsuitable test data, an application defect and a stored procedure migration issue. A failed test gave us a starting point for investigation.
There was a fair bit of trial and error:
- The application relied heavily on JavaScript alerts. A test could dismiss an error message and carry on as though everything had worked. We had to check what those alerts actually said.
- Running more browsers in parallel caused session conflicts and misleading failures. We settled on two concurrent browser sessions.
- Adding stronger assertions initially reduced our pass rate because the tests started catching issues they’d previously missed.
We also had to handle slow responses, session recovery and data left behind by failed test runs. Those details took work, but they were necessary to make the suite useful day after day.
Making it part of daily delivery
It became part of our daily workflow. The developer or DBA would make a change, I’d run the relevant tests or the full suite, and we’d review what had improved, what was still failing and whether anything had regressed.
For straightforward stored procedure fixes, I could ask Claude to make the change and rerun the tests. For more complex issues, it helped trace the application and database logic, create detailed Jira tickets and assign them to the relevant team member to investigate and validate.
One stored procedure fix, for example, addressed an alert dashboard crash caused by a missing result set. Investigating that kind of failure required understanding both what the C# application expected and what the migrated procedure actually returned.
I also built reusable Claude Code skills for running the suite, comparing results with previous runs, investigating failures, generating consistent reports and tracking progress. These brought the repeated steps into a process I could run each day as the team worked through the fixes.
This was where agentic AI became particularly useful. I could ask Claude to run tests, examine the failures and prepare findings for the team, using the source code, database and test results as evidence.
That meant we could check changes daily while preparing for UAT, without waiting for a manual regression cycle. The internal test team’s cases remained the foundation, and their formal UAT followed once we had stabilised the application.
What a small team could deliver
The AWS team had estimated that a migration like this would typically need at least ten people or more without AI. We had four. That was an estimate, but it gives some context to the workload.
What I found most useful was being able to contribute beyond my usual platform engineering role. With the test team’s cases, our developer and DBA’s expertise, and the context I already had from leading the migration, I could build something that helped the whole team make changes and get feedback faster.
We handed the full repository over to the client, including the automated tests, reusable Claude Code skills, reporting workflows and CLAUDE.md project guidance. This gave anyone continuing the work; the code and context to run, maintain and extend the suite. An experiment that started with a basic smoke test became a capability that supported delivery and stayed with the client.
How Cevo can help
At Cevo, we combine deep AWS expertise with AI-enabled delivery to help organisations migrate, modernise and get more from their cloud investment. From early discovery and architecture through to implementation and optimisation, we work alongside your team to accelerate progress and build the capability to keep improving.
Planning a migration or modernisation project? Talk to Cevo about how agentic AI could help you deliver faster and achieve more with your team.
Sam Ammoun is a Managing Consultant at Cevo with over 14 years of experience in cloud infrastructure, platform engineering and migration. He helps organisations migrate to AWS and modernise their environments, with a focus on automation and practical applications of AI.



