Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
O VERDADEIRO VALOR DOS TESTES
KATIANA MAIA• Analista de Teste e Qualidade
• Meetup: CariocaQA RJ
O QUE É UM TESTE?
• Teste é toda atividade realizada dentro do processo de desenvolvimento de software que necessita da
verificação de um resultado.
PARA QUE SERVE O TESTE?
• Os testes devem demonstrar que os softwares funcionam como o esperado
• Atender os requisitos de negócios reais
• Ganhar confiança sobre o nível de qualidade
• Prover informações para tomada de decisão
• Redução de custos (automação, desenvolvimento de novas funcionalidades, desenvolvimento mais assertivo)
• Prevenir defeitos (automação)
• Encontrar defeitos (complementar automação)
• Conhecer o sistema (teste exploratório)
ERROS, DEFEITOS,
FALHAS
• Defeitos acontecem em todas as fases do ciclo de vida de um software, causando problemas e prejuízos a todos os envolvidos, muitas vezes causando graves prejuízos materiais
• Se existe software, existe bug
RELATÓRIO ANUAL DE FALHAS DA TRICENTIS, 2018
Principais de falhas de software.
Bug de software: um software nãofunciona como projetadoFalha de usabilidade: uma falha dedesign que diminui a usabilidade de
produto ou aplicaçãoVulnerabilidade de segurança: umafalha que os invasores podemexplorar para alterar ocomportamento de um sistema
CUSTO1. Custo estimado em falhas
US$ 1,7 trilhão2. Afetaram 3,68 bilhões de
clientes3. 268 anos de tempo
perdido em busca dessasfalhas
1.177
606
314
Auditorias
Bancário
Criptomoeda
Folha de pagamento
Mercado de ações
Relatório anual de falhas da Tricentis, 2018Indústria Financeira
FALHA NO REQUISITOS/ESPECIFICAÇÃO
TESTE ESTÁTICO
• Verificação antes do sistema ser construído
• Objetivo é descobrir problemas no requisito/especificação
FBI
• Projeto para substituir os arquivos de papel do FBI, 2006
• Custo: US$ 170 mi
• Meses escrevendo 170.000 linhas de código
• 1 mês depois o sistema foi jogado no lixo
• Problema: Erro de concepção do projeto. Sistema entregue era incompleto e inutilizável
Fonte: http://www.washingtonpost.com/wp-dyn/content/article/2006/08/17/AR2006081701485.html?noredirect=on
VOLKSWAGEN ANUNCIA RECALL POR “DIESELGATE”, 2015
• Falha: Software instalado detecta quando o carro está sendo inspecionado paraverificar o nível de emissão de poluentes e só então passa a controlar os gases que oveículo solta na atmosfera. Esse controle fica desligado em situações normais derodagem, fazendo com que os carros poluam muito além do nível exigido no país
• Recall de 11 milhões de automóveis a diesel em todo o mundo (recompra ou conserto)
• Prejuízo de US$ 15 bi por fraude nos EUA + US$ 10 bi para recomprar carros + Multaadicional US$ 86 mi
• Prejuízo de R$ 58 milhões por fraude no Brasil
• Ações do grupo caíram 19% na Bolsa de Frankfurt
• Engenheiro condenado a 7 anos de prisão e multa de US$ 400 mil
Presidente da Volkswagen:
"Pessoalmente e profundamente lamento muito que tenhamos quebrado a confiança denossos clientes e do público. A Volkswagen não tolera nenhuma violação, nem de leis,nem de normas, a equipe fará tudo o que for possível para recuperar a confiança daspessoas“.
FALHA NO DESIGNTESTE DE USABILIDADE
• Objetivo: O que você quer testar e como as hipóteses serão validadas.
• Serve para verificar se um software atende a necessidade real do usuário. Oresultado mostra as dificuldades e pontos positivos da experiência.
• Por isso, é importante observar usuários reais navegando paraentender melhor suas necessidades e anseios, além de dificuldades e falhastécnicas, que podem levá-los a abandonar tarefas e não atingir o objetivodo site.
• Benefícios: Contribui para a redução dos custos de manutenção, constatamais cedo a aderência do usuário ao que foi entregue, desenvolvimentomais assertivo.
PROBLEMAS DE USABILIDADE FEZ DISPARARALARME SOBRE MÍSSIL NO HAVAÍ, 2018
• Falha: interface confusa fez disparar um aviso de míssil: “Míssilbalístico ameaça entrar no Havaí. Procure abrigo imediato, istonão é um exercício”
• Alerta foi emitido para todos os telefones e televisores do Havaí
• Causou pânico geral
• Dadas as consideráveis tensões entre os Estados Unidos e aCoréia do Norte, essa notificação é um pesadelo a ser recebidoe poderia corroer a confiança no sistema
Governador David Ige o alarme falso foi determinado comoresultado de erro humano:
"Isto não deveria ter acontecido. Estamos investigando asequência de eventos que ocorreram. Foi cometido um erro nogerenciamento de emergências que permitiu que este falsoalarme fosse enviado.
Foi um procedimento que ocorre na mudança de turno, onde elespassam para garantir que o sistema está funcionando e umfuncionário apertou o botão errado. ”
FALHA EM DESENVOLVIMENTOTESTE UNITÁRIO/INTEGRAÇÃO
• Feedback mais rápido sobre o processo de desenvolvimento
• Maior retorno sobre investimento
APPLE MAPS NO IOS 6, 2012
• Criaram a própria versão do Maps e deixaram de usar o Google
• Na pressa de lançar o mais recente e melhor aplicativo de mapas, fizeram imperdoáveis problemas de navegação:
• Cidades foram apagadas
• Edifícios desaparecendo
• Ponto de referência achatados
• Ilhas duplicadas
• Gráficos distorcidos
• Dados de localização falsos
APPLE MAPSIOS6
Irlanda Ilhas Caimã
APPLE MAPSIOS6
Igreja de Gustaf Vasa Kyrka. Estocolmo, Suécia Divisa do Estado de Nevada com Arizona, EUA
PESQUISA: A NOVA EXPERIÊNCIA DO USUÁRIO DE COMÉRCIO ELETRÔNICO: MUDANÇAS NAS
EXPECTATIVAS DOS USUÁRIOS, 2018
• Além de exigir extrema precisão, os usuários também são menos tolerantescom informações imprecisas, faz com que questione a credibilidade dosite.
• Como afirma a Lei de Jakob sobre a Experiência do Usuário da Internet: osusuários passam a maior parte do tempo em outros sites que não os seus.Isso só aumenta a pressão por oferecer a mesma qualidade de serviço.
• A batalha pelo valor de mercado do comércio eletrônico agora estácentrada em quem pode atender às crescentes expectativas dos clientespor experiências de compras simples, rápidas, confiáveis e convenientes.
Fonte: https://www.nngroup.com/articles/ecommerce-expectations/
PESQUISA: 67% DOS COMPRADORES ON-LINEDEIXARÃO UM SITE DEVIDO AO DESEMPENHOLENTO, 2013• Uma vez on-line, os compradores consultam três sites em média antes de
fazer uma compra e o desempenho insatisfatório do website faz com queo comprador vá a um concorrente
• 67% dos compradores disseram que parariam de usar um site se aspáginas estivessem sendo carregadas lentamente em seu smartphone
• 29% dos compradores que usam um dispositivo móvel comprariam deuma loja convencional depois de passar por problemas no site, comobaixa velocidade e confiabilidade
• 22% comprariam do site de um concorrente depois de experimentarproblemas no site
Fonte: https://www.riverbed.com/press-releases/New-Harris-Poll-Reveals-67-Percent-of-Online-Shoppers-Will-Leave-a-Website-Due-to-Slow-Performance.html
DANOS COLATERAIS
• Valor do ROI (Retorno sobre o investimento) diminui muito com:
• Danos a marca
• Ações legais
• Perda de credibilidade da marca
• Perdas provocadas por paradas indevidas
• Resultados imprecisos
• Perda de credibilidade da equipe de desenvolvimento
O QUE É QUALIDADE DE SOFTWARE?NORMA ISO/IEC 9126
Qualidade é a totalidade de características de um produto de software que lhe
confere a capacidade de satisfazer necessidades explícitas e implícitas
• Necessidades explícitas são aquelas definidas no requisito. Esses requisitos devemdefinir as condições em que o produto deve ser utilizado e dizer seus objetivos,
funções e desempenho esperado. São, portanto, fatores relativos à qualidade do
processo do desenvolvimento do produto que são percebidos somente pelas
pessoas que trabalharam no seu desenvolvimento.
• Necessidades implícitas são aquelas que, embora não expressas no requisito, são
necessárias para o usuário. Estão englobados em esta classe os requisitos quenão precisam ser declarados por serem óbvios, mas que pela gravidade de suas
consequências devem ser levados em consideração.
CARACTERÍSTICAS E SUBCARACTERÍSTICAS DA QUALIDADE
MODELO DE QUALIDADE NBR ISO/IEC 9126
Funcionalidade
Adequação
Acurácia (precisão)
Interoperabilidade(comunicar com outros sistemas)
Segurança de acesso
Confiabilidade
Maturidade
Tolerância a falhas
Recuperabilidade
Usabilidade
Inteligibilidade(compreendido)
Apreensibilidade(capacidade de
aprendizado)
Operacionalidade
Atratividade
Eficiência
Comportamento em relação ao
tempo
Utilização de recursos
Conformidade
Manutenibilidade
Analisabilidade(capacidade de ser modificado)
Modificabilidade(modificação seja
implementada)
Estabilidade(evitar efeitos
inesperados da modificação)
Testabilidade(validação depois da modificação)
Portabilidade
Adaptabilidade
Capacidade para ser instalado
Coexistência
Capacidade para substituir
PARA QUE SERVE O MODELO DE QUALIDADE?
• Validar a completitude de uma definição de requisitos
• Identificar requisitos de software
• Identificar objetivos para teste de software
• Identificar critérios para garantia de qualidade
QUALIDADE DE SOFTWARE NA VISÃO DO CLIENTE
O time de desenvolvimento faz o software, mas o cliente é quem vai usar.
• Cada cliente pode ter desejos e necessidades diferentes em relação ao mesmotipo de produto.
• Estão mais interessados na usabilidade do software
• Na funcionalidade
• No desempenho
• O cliente valoriza que o software responda às suas necessidades
• A qualidade do desenvolvimento/testes deve responder às questões do cliente:• A função está disponível e é executada eficientemente?
• Funciona corretamente e sem imprevistos?
• O software é seguro? Evita que pessoas não autorizadas tenham acesso aosdados
• É fácil usar ou precisa de muito treinamento?
MODELO DE QUALIDADE PARA QUALIDADE EM USO
NBR ISO/IEC 9126
Qualidadeem uso
Eficácia Produtividade Segurança Satisfação
QUANTO CUSTA A FALTA DA QUALIDADE?
1 10 100
1.000
10.000
O custo de correção de um bug é maior do que criarmos
verificações e validações para evitá-los.
DIFERENTES INTERPRETAÇÕES AO LONGO DE VIDA DO SOFTWARE
PIRÂMIDE DE TESTESDESENVOLVIMENTO
$$$
$
Recomendação:
1. Escrever testes com granularidade diferentes
2. Quanto mais alto nível você estiver, menos testes você deve ter
Testes de serviço
Testes unitários
Teste de
Tela
Mais tempo e esforço
Maior ROI
Testes
manuais e
exploratórios Resposta mais lenta
Resposta mais rápida
10%
20%
70%
Fonte: Mike Cohn
ERRE, MAS ERRE RÁPIDO
• Um bom desenvolvimento diz que você errou o mais rápido possível
• Testes de unidade oferecem resposta quase que imediata se seu códigopassou ou não no teste
• Evitar duplicação de testes nas diferentes camadas da pirâmide de testes
• Teste apenas uma condição por teste, isso ajuda a ter testes fáceis de ler emais rápidos
RESPONSABILIDADE
• Todo o time é responsável pelo produto, da concepção à produção
• Leitura cuidadosa da especificação
• Desenvolvimento com qualidade, código limpo e confiável
• Teste o suficiente
• Testes com granularidades diferentes, precisos e confiáveis
REFERÊNCIAS
• A pirâmide de teste prática: https://martinfowler.com/articles/practical-test-pyramid.html
• Pesquisa sobre e-commerce: https://www.nngroup.com/reports/ecommerce-user-experience/
• Quadrante mágico Gartner para Automação de Teste de Software: https://www.gartner.com/doc/reprints?id=1-4KT1O8L&ct=171120&st=sb
• https://www.tricentis.com/blog/2018/03/05/software-fail-awards-2018/
OBRIGADA!