We are currently having multiple scrum teams with 3 to 6 developers and 1 dedicated tester in each team.
Should we have scrum team like this OR have all the developers and they can share testing responsibility mutually?
In a Scrum team it is best to distinguish between roles and capabilities.
Every Scrum team needs a testing capability, but it does not necessarily need tester roles.
The whole Scrum team takes responsibility for quality. This means more than just testing, it also means:
There are undoubted skills to being a good tester and some will be better at it than others. However, we can look to share this knowledge around the Scrum team using mentoring and training. This is why we talk about having t-shaped skill profiles in a Scrum team.
While sharing testing responsibility across the team is important, Agile teams still need dedicated testers, especially now with broader focuses on automation. Not having a dedicated person solely focused on quality could spell disaster for your team.
The only solution is to hire a one-armed project manager. That way he can't say "on the other hand..."
Obviously having "developers" also being "testers" leads to a conflict of interest.
On the other hand, let's assume a big release has now finished coding. The "developers" have no work and the "testers" are overloaded. So should the developers play solitaire on their computers until the testers are done?
So there just isn't absolute solution to the dilemma.