Can developer do automation test for the feature that he has implemented?
Doing manual testing for the feature that you have implemented is obviously a bad idea. But what about automated functional tests? It seems to me that automation testing is more related to unit testing and it is ok to create automation test for the feature that you have created (though someone in our team is trying to lobby the practice according to which developers are prohibited to create automation tests for features that they have implemented). Am I right?
Question itself does not make sense without the context
The reason why I asked this question is because the mentioned person from our team says that it is absolutely prohibited to do automated test for feature that you have implemented if there are other people who can create automation tests in a team. She says that it is a common truth and it is written in every textbook on testing. This seemed to me to be not a common truth and I wanted to debunk this myth. That's why I asked this question.
Opposite arguments were that we had automation tests not to check that developer had implemented everything correctly but to make sure that an old functionality was not broken when we added a new functionality.
Our team consists of 4 developers, 2 manual testers and 1 automation tester. Sometimes automation tester has no time to finish all automation tasks and developers help him to write scripts.
I see why you are saying that my question lacks context but I thought that providing all this details would make my question too localized.
The highest quality product with the fewest production defects I ever worked on had no QA team. The developers were responsible for end-to-end service and the quality expectations were clear. The problems arise when changes are rushed through without sufficient validation - whether that is by QA or Dev.
Developers are often best placed to automate tests and also can make small changes to the implementation to make testing easier. For these reasons I would suggest best practice would be to have a tester assist in identifying what test cases offer the most value and specify their parameters. The developers can then implement these test cases.