Software refers to computer programs, procedures and documentation that make up a computer system. It includes application software, firmware, middleware and system software. Software testing ensures software is functional and meets requirements before release through tools like QTP and Loadrunner. Testware refers to all utilities and software used for testing but not for operational purposes. Examples of software include websites, programs and video games coded in languages like C and C++.