Ex ante: Parece haver muita confusão sobre o que é considerado como teste do que não é. Certamente, todo desenvolvedor precisa testar seu código à medida que o cria, precisa verificar se funciona. Ela / ele não pode entregá-lo a um testador antes que ele / ela pense que está feito e bom o suficiente. Mas os desenvolvedores não veem tudo. Eles podem não reconhecer erros. Esses erros só podem ser encontrados posteriormente no ciclo de desenvolvimento quando testes completos são realizados. A questão é se os desenvolvedores devem realizar esse tipo de teste ou não e, na minha humilde opinião, isso precisa ser encarado do ponto de vista de um gerente de projeto:
Os desenvolvedores podem ser testadores, mas não devem ser testadores . Os desenvolvedores tendem a evitar, de maneira não intencional ou inconsciente, o uso do aplicativo de uma maneira que possa quebrá-lo. Isso porque eles escreveram e testam principalmente da maneira que deve ser usada.
Um bom testador, por outro lado, tenta torturar o aplicativo. Sua principal intenção é quebrá-lo. Eles costumam usar o aplicativo de maneiras que os desenvolvedores não imaginariam. Eles estão mais próximos dos usuários do que do desenvolvedor e costumam ter uma abordagem diferente para testar um fluxo de trabalho.
Além disso, o uso de desenvolvedores como testadores aumenta os custos de desenvolvimento e não beneficia a qualidade do produto, tanto quanto ter um testador dedicado. Eu não permitiria que os desenvolvedores testassem seus trabalhos quando eu pudesse fazê-lo melhor por um testador a baixo custo. Somente se o ciclo de feedback entre desenvolvedores e testadores se tornar muito caro, os desenvolvedores cruzarão o código um do outro, mas, na minha experiência, esse raramente é o caso e depende muito do processo.
Isso não significa que um desenvolvedor deve ser desleixado e deixar tudo para o testador. O software deve ser copiado por testes de unidade e os erros técnicos devem ser reduzidos ao mínimo antes de entregar o software ao testador. Ainda assim, às vezes você corrige aqui, interrompe problemas ou outros erros que nenhum desenvolvedor poderia prever, tudo bem. Além disso, o teste de integração deve ser realizado principalmente pelos desenvolvedores. O principal objetivo do testador é verificar se os requisitos foram atendidos.
Em uma equipe tão pequena (e também dependendo do tamanho do aplicativo), também posso ver o testador em uma função híbrida, escrevendo testes de unidade e testes de interface do usuário. Você definitivamente deveria contratar um .
Porém, mais importante que o testador são os congelamentos / ramificações regulares. Não apresente nada que não tenha sido testado corretamente. Quando você adiciona um recurso ou altera algo, tudo ao seu redor deve ser verificado novamente. Você só terá uma má reputação se sua empresa não. Não libere algo instável. Quando o cliente quiser ter o software em uma determinada data, pare de desenvolver cedo o suficiente e teste-o adequadamente, para que você tenha tempo suficiente para a correção de erros. Freqüentemente, é melhor recusar solicitações de recursos de última hora do que implementá-las mal ou liberá-las sem testes adequados.