Software Quality Assurance: From Theory To Implementation