Post on 14-Jan-2015
description
Quando Utilizar Crowdsourcing em Testes
Boeing 787
Passageiro podia acessar a interface de administração do avião!
First National Bank of Chicago(Maio/1996)
– Atualização do software dos caixas eletrônicos• Nova codificação das
mensagens não foi testada em todos os protocolos utilizados nos caixas
– Resultado: Crédito de aproximadamente U$ 925mi na conta de cada um dos 823 clientes;
– Aproximadamente U$ 800bi representou o maior erro bancário da história dos EUA.
Royal Bank of Scotland/NatWest(Junho/2012)
– Backup realizado devido a uma atualização do sistema computacional:• Apagou todos os dados e deixou 17 milhões
de contas de clientes indisponíveis• 1.200 agências paradas durante quase 1
semana
– Prejuízo estimado:• U$$ 77 mi à U$$ 160 mi
Gol(2010)
– Problemas em software de escalas de tripulantes;
– Gerou um colapso no atendimento nos aeroportos brasileiros;
–Multa aproximada de 2 milhões de reais aplicada pela Anac.
Importância dos testes de software
US$ 60 bilhões são gastos anualmente nos
EUA para resolver falhas de software.
Estudos indicam uma economia potencial de 30% dessa despesa, caso exista algum investimento
prévio em testes.
50% do esforço do desenvolvimento é gasto
para corrigir falhas imprevistas de software.
Uma pesquisa feita em 2010 indicou que
executivos entendem a importância de qualidade
de software, mas consideram um
investimento caro.
Processo de testes de software
Planejamento Especificaçãodos Testes Automação Execução
e Análise FechamentoObjetivos
Alcançados?sim
Especificaçãode Requisitose Aplicação
Plano deTestes
Desenhodos Testes
Scripts de Execuçãode Testes
Relatório de Incidentes
Relatóriode Lições
Aprendidas
não
Processo de testes de software
Equipede
Testes
Arquiteto de Testes
Analista de Testes
Gerente de TestesProgramador
de Testes
Testador
Testes exploratórios
Crowdsourcing em testes
Como testar projetos com orçamento e/ou prazos apertados?
Testes exploratórios
Não depende de scripts de testes
• Livre de casos de testes formais e específicos
O objetivo é utilizar o sistema como o usuário utilizaria
• Exige pouca documentação
Exemplos de técnicas
• Testar links• Autenticação• Navegação• Campos obrigatórios• Datas inválidas
Crowdsourcing em testes
Modelo baseado na utilização de mão-de-obradisponível na Internet para identificação de falhas em
sistemas.
Crowdsourcing
• O termo foi criado por Jeff Howe em artigo da revista Wired em 2006.
• Crowdsourcing é um modelo de produção que utiliza a inteligência e o conhecimento coletivo para resolver problemas.
Exemplos de crowdsourcing
280 fãsR$
56.000,00 de
arrecadação
Fiat MIO•17.460 participantes•10.647 idéias enviadas
Exemplos de crowdsourcing
Verbetes em inglês: 4.000.000+Verbetes em 285 idiomas
Mais de 17.5 mi usuários na língua inglesa
• Projeto colaborativo de informações geoespaciais
• Aproximadamente 500 mil colaboradores
Exemplos de crowdsourcing
• 200.000+ tarefas disponíveis e finalizadas por dia
• Mais de U$ 13.000,00 pagos por dia
•Aproximadamente 170.000 projetos já realizados•110 designers por projeto•Mais de R$ 3 mi pagos aos designers no último mês
Exemplos de crowdsourcing
Crowdsourcing em testes
É um modelo que apresenta resultados rapidamente e com baixo custo.
• Recebem por entrega, que na maioria dos casos são falhas encontradas nos sistemas;
• Os melhores podem ser premiados, dependendo do projeto.
Equipes de qualquer tamanho e perfil podem ser mobilizadas e desmobilizadas rapidamente.
Os testadores recebem pela produtividade.
Existem modelos nos quais o próprio cliente realiza a validação das falhas e modelos no qual existe a garantia de qualidade dos resultados.
Crowdsourcing em testes funciona para qualquer projeto?
Planejamento Especificaçãodos Testes Automação Execução
e AnáliseFechamentoObjetivos
Alcançados?sim
Especificaçãode Requisitose Aplicação
Plano deTestes
Desenhodos Testes
Scripts de Execuçãode Testes
Relatório de Incidentes
Relatóriode Lições
Aprendidas
não
VS
Crowdsourcing x Modelo tradicional de testes
Prazos
apertados
• A mobilização de pessoas na Internet demonstrou ser uma ação extremamente ágil.• Em poucos minutos, é
possível contar com centenas de pessoas disponíveis para realização dos testes
• No modelo tradicional, esse é um processo lento que muitas vezes envolve contratação de profissional.
• A execução também é um processo mais lento no modelo tradicional.• Enquanto trabalhamos
com dezenas de pessoas alocadas, no crowdsourcing é possível disparar os testes em paralelo com centenas de pessoas.
Confidencialidade
• Manter sigilo de projetos no modelo crowdsourcing não é uma tarefa trivial.• Pessoas
totalmente desconhecidas têm acesso ao sistema. Nada impede que essas pessoas divulguem, até mesmo para concorrentes, as informações envolvidas nos testes.
• Existem mecanismos para amenizar o risco:• Acordo de
confidencialidade com testadores mais confiáveis
• Acesso à aplicação através de VPN’s
• No modelo tradicional, os testadores são profissionais contratados e, desta forma, já comprometidos através de contratos de trabalho• Além do
contrato, também atuam em ambientes com acesso controlado
Crowdsourcing x Modelo tradicional de testes
Testes de usuá
rio
• No modelo tradicional, existe o teste de aceitação, porém é limitado a um pequeno grupo de usuários.
• O crowdsourcing é o melhor caminho para entender efetivamente qual impacto da aplicação no ambiente do usuário.• Dezenas ou
mesmo centenas de pessoas com o perfil de uso da aplicação podem ser consultadas para falar exatamente sobre suas impressões sobre o sistema
Crowdsourcing x Modelo tradicional de testes
Conhecimento do
negócio
•Neste ponto, existe uma grande chance do modelo tradicional ser a melhor opção.•Sistemas especializados exigem um grande conhecimento da equipe de testes. Esse conhecimento só é criado dentro do ambiente do cliente.•No crowdsourcing, esse nível de envolvimento não é possível uma vez que os testadores não são alocados em um ambiente específico.
Crowdsourcing x Modelo tradicional de testes
Múltiplas
plataforma
s
• O grande número de versão de SO’s, navegadores web e dispositivos móveis torna a montagem e manutenção de uma infraestrutura de testes um processo altamente caro no modelo tradicional.
• No crowdsourcing, é possível contar com as plataformas distintas dos testadores, o que elimina o processo de montagem de infraestrutura.
Crowdsourcing x Modelo tradicional de testes
Garantia de
cobertura dos
testes
• O modelo tradicional apresenta pequena vantagem neste caso.• Equipe
especializada consegue realizar uma análise de cobertura e executar exatamente os pontos críticos da aplicação
• No crowdsourcing, os testadores em geral atuam realizando testes exploratórios, sem uma garantia de que determinados pontos da aplicação serão exercitados.• No entanto,
essa limitação é facilmente sanada trabalhando com um modelo misto, no qual testadores mais experientes definem os caminhos a serem explorados e a comunidade de testadores executa exatamente o que é necessário, podendo inclusive explorar outros pontos.
Crowdsourcing x Modelo tradicional de testes
Disponibilidade 24x7
• O Crowdsourcing possui ampla vantagem nesse contexto. Existem testadores disponíveis 100% do tempo.
• No modelo tradicional, a empresa tem de trabalhar com horas extras ou contar com turmas de testadores alocadas em diversos turnos de trabalho.
Crowdsourcing x Modelo tradicional de testes
Exigência
de documentação
• Assim como o domínio do negócio, a geração de documentação de testes é uma tarefa mais direcionada para equipes especializadas.
• No crowdsourcing, é possível obter testadores que possuem competência para esse tipo de tarefa, mas como normalmente não há exigência para o perfil, o risco de não obter resultados satisfatórios é grande.
Crowdsourcing x Modelo tradicional de testes
Orçament
o restri
to
• Para projetos que contam com baixo orçamento, o crowdsourcing é a melhor opção, pois trabalha com investimento variável de acordo com a realidade de cada projeto.
• O modelo tradicional envolve alocação de recurso por hora ou mesmo contratação de profissional• A
desmobilização de equipe envolve muitas vezes acertos trabalhistas.
Crowdsourcing x Modelo tradicional de testes
Considerações finais
Qualidade de software é importante para projetos de qualquer natureza.
• Nem sempre é aplicável devido ao tamanho do projeto.
O completo processo de testes é importante para garantir a qualidade de sistemas.
• Porém, não apresenta muitas vezes a escalabilidade necessária.
É possível atender pequenos projetos utilizando testes exploratórios.
Considerações finais
O crowdsourcing apresenta-se como uma solução interessante para projetos de qualquer porte.
• Das características apresentadas, muitas podem estar combinadas.
É importante ressaltar que o modelo não é aplicável em qualquer cenário.
O mais comum é a adoção de soluções híbridas.
crowdtest.mefacebook.com/crowdtest
@crowdtest