hohooooo and then I found the answer from Quora but sorry I forget from whom :D
- They are not afraid of destructive testing. Developers subconsciously avoid negative scenario testing. If you use an application a specific way, you'll hear them exclaim: "You're not supposed to do that!"
- They find hidden defects. Developers in high stress situations may often not reveal low-probability error scenarios, thinking "I'll fix this next time. No one will notice it anyway."
- They have greater discipline for defect tracking, prioritization and reporting. Developers are generally averse to documentation, though there are always a lot of exceptions. They tend to hold a lot of defect information in their head. "Oh I already know that one. Johnny and I discussed it and we figured we'll fix it in the patch next month." "Is it being tracked?" "Its already fixed in the branch. So its not a problem."
- They don't tire of regression - it's their job. Developers are bored of regression testing. If they are sure a change won't impact a related function logically, they don't test it. Its pointless and boring. QA staff does not take such risks and defects do emerge - we are human after all and cannot think of every scenario.
- A dedicated, restricted QA environment enforces deployment discipline, so you have fewer surprises during go-live. Developers have a tendency to tinker with code and databases ad-hoc on every environment they have control over.
- Products usually start with great design and usability, but then reality creeps in as some features are too complex, others are just not feasible as designed, competing products introduce a hot new feature, or somebody just got a killer feature idea. Both product managers and developers are up to their ears with minute decisions and changes every day and it is easy to lose sight of the overall experience. QA plays a vital role as a check point to ensure the product remains usable through all this.
- There is specialized QA staff for performance testing, vulnerability testing, accessibility testing, etc. and they are much more effective and efficient at these than developers.
- Product managers and end-users are not as effective as dedicated QA staff. They have their own day jobs.