Functionality testing may be defined as the process of quality assurance. It is a type of a black box testing which bases its test cases to the specification of the software component.
Software testing is done to evaluate the compliance of the system. It is mainly used for software testing.