Software Test Process, Testing Types and Techniques