We use a number of factors to indicate this, including:
- A URL that clearly indicates this.
beta.yourdomain.com are my preferences.
- A modified logo that includes the words "test" or "beta", whichever is clearer to whomever will be using the test version.
- Change the colour of the header if you have one. This isn't particularly clear to most people, but it draws their attention to something being different from the non-test version which often leads them to noticing 1. or 2.
- In some cases a coloured background is used, but I tend to avoid that as often the design is part of the test, and changing the background colour has a large impact on my ability to get useful feedback on UX as it relates to visual aspects.
- A watermark is a better solution than 4. but it also has an impact on the design, so if you're testing parts of the visual UX or design, I would avoid this.
With only points 1-3 above, I have never had a problem with a user not realising that they are working on a test version, but then the users that I've worked with were typically very competent. If you choose your test users at random, then you may have to include 4. and/or 5.
As a side note, there are aspects that you wouldn't want performed on your live data that often need testing (such as deleting), and so it's often useful to create a separate environment with copies of the live data, that is stored separately. That way a user is free to try anything out without a risk of them damaging their live data.