And I'm not sure I entirely understood what was being asked.
To use DataAssist (the forum category under which this is posted) one would have to have a testing server installed (not as a preference, but as a requirement for using the extension). So my initial understanding was that the question was more to do with whether the database had to be one set up on the local machine (as a component of the testing server) or whether it could be one that is on the remote server and accessible directly from within Dreamweaver (with the correct login credentials for the remote connection).
In that case, then no, a 'test site' database is not strictly necessary, if you prefer to use one on your remote server, and you can configure your remote-server mySql to accept connections from outside that particular localhost. Your database on the remote server will have all the correct login details, ready to go.
The information that is missing is whether the database being, or to be, accessed from within Dreamweave is currently 'live' and already interacting with your live site. It may be that you simply want to ensure that it functions correctly in its final setting, with all initial data in place and proved when the 'going live' date arrives, or it may simply be that (again, if the site is not yet live) you might as well use that remote server database anyway rather than having to bother with going through the annoyance of duplicating effort with setting one up on your local machine.
In any event, - even if the database were live and interacting with your live site - you would export the entire database to backup anyway before making any significant changes, and such a backup would be more likely to re-import fault-free to its native database than from a similar (but not the original) database that was set up in your testing server.
I haven't used a testing-server database for a couple of years now. I don't see the point of it (unless I expect broadband connectivity problems). I connect to my remote-server(s) mySql and create and use a database for the purpose, or duplicate an existing one to play with (which, admittedly, is effectively a test database).
" . . . but when I set up a form, it captures data and emails it to recipient but doesn't send it to database."
Also I'm not sure if you are just mentionining what you have set the form to do, (i.e. just send data in emails) of you are reporting a problem with (not being able to) writing the form data to database?