This is usually referred to as functional or acceptance testing. The goal of these types of tests is to confirm that the overall application works as expected from a users perspective. This is easy with bash. Testing individual units of code inside of a bash script is more difficult. This can be useful for pin pointing which function introduced a bug.
Edit: want to add that difficult does not mean impossible. Bats exists, and you could structure a bash script to be more easily testable.