I'm wondering how should testing take place in small teams (or start-up teams).I'm talking 5-10 developers that are assigned to multiple development tasks.From my experience there is little to none testing in the development process, but I also hear small teams can get through the initial level of software process maturity.How does QA and testing take place during development in a mature-but-small team?(please, if you can, describe the whole software process including who should be doing what)EDIT (more detail):I'm especially interested in a team developing a distributed processing-intensive back-end with a website as it's API. The two parts (back-end, front-end) are developed by two different groups of 3.I want to understand who tests what, and when. If I write a module and it's unit tests, do I write integration tests when completing the code? Should you assign a developer on such a small group to focus on testing?
Software process of small company
testing;development process
If the team is mature, they should be writing both unit-level tests and automated acceptance testing. There's simply no good way to write robust code without testing. All of the good software developers I know are constantly asking themselves how can I test this?. I've worked on teams where each developer was responsible for testing their own code, and teams where there were one or more dedicated test engineers. In both cases, the teams were able to deliver high quality software. The teams I've been on that thought testing was not something a software engineer should do generally produced low quality software.At the end of the day, the team should be responsible for the quality of the software they produce. Somebody needs to be writing tests daily. Whether they each take a part, they take turns, or they have a dedicated tester or two, should be left to the team to decide. To decide to do none of those is to decide to produce crappy code.In my opinion, every software team needs an appropriate number of people dedicated to testing. The number goes up with the size of the team, and the number should never be less than one. In addition, every software engineer should be responsible for unit-testing their own software. 