acceptance testing in software engineering diagram