The Difference between Software Testing and Hardware Testing