The SQA2 Blog:
In the QA field, there may not be clearly defined roles for QA testers, analysts, and engineers across all organizations. This leads to confusion about the exact duties performed by each of these titles. What should each of these roles be expected to do?
Based on experience, I would define tester as someone who executes assigned test cases then documents and reports the results, usually to a QA lead or other manager. A tester may not be responsible for identifying the root cause of any defects found. A QA analyst on the other hand, should be expected to provide additional information related to a defect. An analyst should be able to determine the contributing factors leading to a defect. For example, an analyst should know that a certain function being tested fails because it causes an exception that leads to a memory leak or stack overflow. An analyst may or may not be expected to write test code automation.
A QA engineer should be able to write test automation code and other custom code to test applications. This job level should also be expected to produce test plans. It may be expected to create custom automation frameworks and possibly work with custom builds as well.