Software testing is a process of evaluating software to detect the differences between given input and expected output. It is a part of software development. Software testing can be done manually or by using automated tools.