First of all we should take at most care when do we record some data in the production database, which cannot reverted back. Like in the inventory application, if you create a picking/transfer and mark it is done, easily you cannot revert it back or delete it from the db. Here the only way is to record an opposite entry or use third party apps to delete it.
So this is just a case, coming to your questions,
1. If you somehow delete the test data's, it will be deleted from the database. If you just to need to control visibility, if the archive option is available, you can use it.
2.For demo/test, if you are using Odoo SH, you can use the staging/development branches. If it is not odoo sh, you can create a separate odoo instance in same machine or different machine for the test purpose.
3. Yes, from the database manager page, ie, ip:port/web/database/manager , you can duplicate the db, try different things to clean up the data and if everything goes fine, you can continue with this db as live db.