Testing is necessary in software development for three key reasons:
1) Humans can introduce defects at any stage of the development process through mistakes, so testing is needed to identify defects and improve quality.
2) Exhaustive testing of all possible combinations of inputs and preconditions is not feasible for all but trivial cases, so testing focuses on risks and priorities.
3) Testing gives confidence in software quality if it finds few or no defects, provided the testing is sufficiently rigorous.