Testing phase in the development. What are the cons to assigning testing to another person or team?
In my firm, we have the practice that the test phase is made by the same people who develop the software and you are responsible for what the client does. The organization has 2-3 software packages with a lot of code that is always modified every day in each part or we add new functions to them. Please can you tell me what the professionals (if there are) do to leave all the development and test to the same people (1) and the tests and what are the cons (if there are) to assigning testing to another person or team? Can you show me a model of the testing process that has been successfully applied and that works well in a firm of 50 people who work on different projects, divided into teams of 3-4 people?
The short answer to your question is that if the same person does both the development and the testing, he's going to bring a lot of assumptions into the tests. On the other hand, he probably already knows the weak points and how the code works, so he's got a lot to offer in the testing process too. It doesn't sound like you have dedicated testers, so working in those constraints, I think one of the first steps you could do to improve your tests would be to have coming up with and designing test cases be a collaborative process. With teams of 3 or 4, that shouldn't add too much overhead to people's jobs and will get more diverse ideas into the process. Having dedicated QA engineers really has value. Quality and testing, not the development of features or behaviours, is going to be on their mind full time and they're going to add a lot of depth to your testing, but I don't know if that's an option available to you in your organization.