There are different categories of testing teams which can be used in a software testing project.
Outsourcing Software Testing
When outsourcing software testing you contact an external supplier, hire testing resources, and do testing for your project. But it has two sides of the coin.
The good one is that resource handling is done by the external provider. And you do not need to worry about testes leaving the organization, about people management and so on.
But it is also the bad part that is outsourced vendors do not have domain knowledge and information about your company and its activities. Be ready that at the initial phase you have to teach them, which is, in turn, a supplementary expenditure.
QA/QC Team
According to this type the quality team is involved in software testing. The good side is the QA team is involved and a great quality of software testing can be reached. The bad side is that the QA and QC team of any company is also involved with many other activities which can hinder the quality of the project.
Isolated Testing Team
This is a particular team of testers which do only software testing. Such testing team is not related to any project. It's like having a pool of testers in a company, which are picked up on request by the project and after conclusion again get pushed back to the pool. This type of team is rather expensive but the most useful. The reason is that you have a various aspect of thinking from a different group, which is isolated from development.
Inside Testing Group
According to this category you have a separate group, which belongs to the project.
The project allocates a detached budget for software testing and such testing group works on this project only. Well, the good side is you have a dedicated team and because they are involved in the project they have strong knowledge of it. The bad part is you need finds for them which increases the project cost.
Developers in the Role of Software Testers
According to this approach the developers of the project execute testing. The good side is developers have a very deep knowledge of the inner details so they can conduct strong level of testing. But it is also the bad side - developer and tester is the same person. Due to this it is very big probability that a lot of software bugs can be missed.
There are different categories of testing teams which can be used in a software testing project.