Software quality assurance; a practical approach