Putting a hashbang on your script won't change what it takes to run it. You have to either set it to be executable (chmod +x test.sh) and then run it (./test.sh), or you can call it as an argument of the shell (sh test.sh).
You can also put the script in any location from your $PATH variable (e.g. ~/bin/, /usr/local/bin/) and, if it's executable, you can run it from anywhere without referencing its location (test.sh).
If a script is run without being an argument of the shell, it will by default run in whatever shell you're currently using. That is where the hashbang gets important... if you want to make sure it's run as a bash script, even if the user is using tcsh or ksh or something else, you put #!/bin/bash as the first line of the script.