As referências deste artigo necessitam de formatação. (agosto de 2015) |
Crowdtesting é uma vertente em engenharia de testes que busca explorar os benefícios, a eficácia e a efetividade do crowdsourcing. A principal diferença em relação ao método tradicional está na realização dos testes através de um expressivo número de Engenheiros de testes espalhados por diferentes lugares, ao contrário de profissionais ou consultores contratados por empresas. O software é imergido em um ambiente mais realista e diverso o qual proporciona um produto final mais confiável, com melhor custo-benefício, e livre de bugs. [carece de fontes] Além disso, Crowdtesting permite executar Teste de usabilidade remotamente, uma vez ser possível recrutar específicos grupos alvo através da crowd.
Este método de teste é considerado quando o software possui uma dependência maior do feedback do usuário, além de possuir um conjunto de usuários alvo mais diverso. É comumente empregado em Games, aplicações mobile, em casos onde especialistas podem ser demasiadamente difíceis de serem encontrados para um teste em específico, ou em situações em que a empresa não possui os recursos necessários para arcar com os testes internamente.
Empresas de Crowdtesting disponibilizam suas plataformas para a execução dos ciclos de testes, geralmente livres de custo para aquelas empresas cujos softwares estão sendo testados. A partir daí, eles liberam estes softwares para a comunidades de testers, os quais se registraram voluntariamente. Estes testes são, geralmente, pagos por cada bug encontrado, dependendo ainda do tipo de bug e de seu valor no mercado. Ao time de testers que participam do Crowdtesting é geralmente adicionada uma equipe interna de Qualidade. Dependendo da tarefa, algumas plataformas oferecem acesso à crowd através de um serviço self-service, através de um serviço gerenciado por um promotor ou ambos.
Existem várias vantagens do Crowdtesting:
Existem várias desvantagens do Crowdtesting:
A principal diferença entre o Crowdtesting e Outsource Testing é que, em Crowdtesting, os engenheiros de teste podem pertencer a diferentes locais de trabalho, enquanto que em Outsource Testing, os engenheiros fazem parte do mesmo local de trabalho ou mesma empresa que disponibiliza o Outsourcing. Em Crowdtesting, pessoas testam software voluntariamente com a possibilidade de não serem pagas (nos casos onde bugs não são encontrados), enquanto que em Outsourcing os testers sempre são pagos por seus trabalhos.
Enquanto que em alguns projetos é possível conseguir um resultado de teste que seja satisfatório utilizando uma abordagem ou outra, uma abordagem mais completa seria utilizar um método holístico de teste de software, o qual utiliza uma equipe de testes dedicada (interna à empresa) juntamente com a Crowd. Crowdtesting é uma melhor escolha para casos de beta ou em testes de compatibilidade, os quais são etapas essenciais antes de iniciar testes; Entretanto, a grande maioria dos softwares são muito complexos, para que este tipo de abordagem possa cobrir todos os possíveis problemas existentes. Uma equipe de testes dedicada será melhor capacitada a testar prováveis defeitos, uma vez que possui melhor ideia a respeito da arquitetura do software, no entanto, nunca será capaz de abranger todo o escopo testado pela Crowd. Portanto, é uma boa solução integrar múltiplos times em qualquer projeto de desenvolvimento (além de desenvolver com princípios de testabilidade em mente desde o início.)
Crowdtesting por si só pode não entregar o melhor feedback a respeito do software em teste. Uma abordagem de teste mais diversa, unindo Crowdtesting e times de teste dedicados pode ser mais favorável. "Possuindo esta diversidade de pessoal permite à empresa aumentar ou diminuir seus recursos de maneira fluida, cumprindo prazos de entrega em períodos de pico, além de cortar gastos em períodos mais tranquilos."