quando utilizar crowdsourcing em testes | crowdtest no devday

Post on 14-Jan-2015

1.090 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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.

top related