software testing is the process of verifying the functionality of a software application or product by checking its functionality against what is expected. This can be done through tests that are run on their functionality, or by conducting user interactions with the functionality.