Try using RMAN and it would allow you to take the backup of your database and create another copy of the same one. There you don't even have to know what to copy and where it copy. RMAN would create you the test database for you.
What I followed was I copied physically the control files,init files,data files,log files from Machine A to Machine B.Then using Database Assistant Created the DataBase in MachineB.
Hope it will work.If my methodology is wrong let me know