My software testing practise site has had an update

RBP has been updated and given a nice new UI plus some bonus improvements

My software testing practise site has had an update
A screenshot of the new home page for restful-booker-platform

Recently, I realised that my software testing practice site, Restful-booker-platform (RBP), needs some love. So over the past few months, I’ve been working on updating RBP’s technology and presentation, and it was a great opportunity to try out new AI tools that I will share my experiences on soon. But for now, I wanted to share some of the updates I’ve made to RBP with you all so you can take advantage of it for your software testing practice. As well as highlight changes that might impact current users of the site.

What is RBP?

If you’ve not come across RBP before, now is a great time to try it out. I created RBP as an application that can be used by anyone who wants to practise software testing activities, ranging from test automation to exploratory testing. RBP is a collection of services that simulate a bed and breakfast booking and is designed to simulate the type of web service platform you might see developed in a professional context. The goal is to give you a real feel for testing / automating a professional web application.

There are lots of opportunities to try out different testing and automation activities such as UI, API and unit testing. Plus, it’s riddled with issues that can be discovered through exploratory testing. And don’t get me started on what you might find using accessibility testing tools.

You can access a deployed version of RBP at https://automationintesting.online, OR you can run a local version by running it via Docker or building the code locally. All of which can be done by downloading the RBP code at https://github.com/mwinteringham/restful-booker-platform

What’s new in RBP?

So what has changed in RBP? The lion’s share of changes has been focused on updating the look of the user interface as well as the architecture behind it. Over the past few weeks, I’ve:

Migrated to Next.js

The old approach to serving the UI and routing requests wasn’t great. The UI was bundled into a Spring API, and then a router would handle the routing of requests to the various servers. All of which could easily break. Using Next.js streamlines the UI and routing, reduces complexity and makes future development a lot easier.

Brand new home page and reservation page

With Next.js in place and with the support of GitHub Copilot, I’ve been able to overhaul the home page and create a brand new reservation page for bookings.

I’ve expanded the branding options in the admin page to configure different aspects of the home page. Such as writing out directions to the B&B to be rendered in the location section. I’ve also found a new home for the calendar from hell. Good luck automating that!

GitHub Actions

I’ve also migrated the pipeline that handles testing and deployment of the application from Circleci to GitHub Actions. I chose this as I found GitHub Actions to be a bit easier to debug, as well as being a bit more reliable. But the main benefit now is that other users can set up their pipeline quickly by simply forking the repo, giving users more of the professional development experience I wanted from the project.

How might it impact your existing work?

RBP gets a lot of use, and it always gives me a warm and fuzzy feeling seeing it used in workshops and blog posts. However, the challenge is to reduce the number of breaking changes that might impact users. There comes a point, though, when changes are necessary, so if my work has impacted anyone, I’m sorry for the extra work, but I do believe it’s worth it.

That said, here are some changes you might notice:

Changes to UI

The UI has changed for the home page, but with the migration to Next.js, the admin has had some subtle changes. You may notice selectors you once used in automation might not work any more. I’m always open to modifying the code so it has a few more IDs to use, so feel free to get in touch or open a pull request to add them in.

Change to API calls

The migration to Next.js has also impacted how the backend APIs are called on https://automationintesting.online. Originally, you could call the APIs directly (for example POST /booking/), and the proxy that used to be in place would handle the routing for you. Now the routing is handled by Next.js, which means that any API requests that are made will need /apito be put at the front of the request. For example, sending a request such as POST /branding now has to be updated to POST /api/branding.

To be clear, this doesn’t impact any API tests locally as they can still be called directly.

What’s next

I’m open to suggestions for ways in which RBP can be expanded further to give users new opportunities to practise their testing skills. Some ideas that have been put forward include:

  • Payments system
  • User booking management
  • Challenges for users to complete

These are all great ideas, and as and when I have time, I hope to implement these. However, if you have any other ideas that you want to see added, either sign up for my blog below and drop a comment, ping me a message on LinkedIn, or perhaps raise an issue or a Pull request on GitHub. I look forward to hearing your suggestions.