quando utilizar crowdsourcing em testes | crowdtest no devday

31
Quando Utilizar Crowdsourcing em Testes

Upload: crowdtest

Post on 14-Jan-2015

1.090 views

Category:

Technology


0 download

DESCRIPTION

Apresentação do Crowdtest no DevDay em Belo Horizonte em outubro de 2012.

TRANSCRIPT

Page 1: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Quando Utilizar Crowdsourcing em Testes

Page 2: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Page 3: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Boeing 787

Passageiro podia acessar a interface de administração do avião!

Page 4: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 5: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 6: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 7: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 8: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 9: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Processo de testes de software

Equipede

Testes

Arquiteto de Testes

Analista de Testes

Gerente de TestesProgramador

de Testes

Testador

Page 10: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Testes exploratórios

Crowdsourcing em testes

Como testar projetos com orçamento e/ou prazos apertados?

Page 11: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 12: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Crowdsourcing em testes

Modelo baseado na utilização de mão-de-obradisponível na Internet para identificação de falhas em

sistemas.

Page 13: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 14: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Exemplos de crowdsourcing

280 fãsR$

56.000,00 de

arrecadação

Fiat MIO•17.460 participantes•10.647 idéias enviadas

Page 15: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 16: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 17: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

Exemplos de crowdsourcing

Page 18: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 19: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 20: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 21: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 22: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 23: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 24: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 25: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 26: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 27: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 28: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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

Page 29: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.

Page 30: Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay

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.