Difference between software and hardware testing

Hello Everyone! This one may seem an elementary question but I just wanted to get a clear explanation as to what is the difference between software and hardware testing. How are these two tested? What are the main systems being checked for each one and what are your most recommended tools available for download online that one can use in testing a software and hardware.
