SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 1/7
Roger Ritter
Software Engineering, Software Quality and Projects

A importância dos
Testes não Funcionais
Muitas vezes nos preocupamos tanto
com os Testes Funcionais
(principalmente quem faz uso de
metodologias ágeis) que não
reservamos tempo para testes não
funcionais como testes de segurança,
de desempenho, de usabilidade entre
outros.
Foi exatamente isto que muitas
pessoas pensaram quando viram o
‘escândalo’ (no bom sentido) causado
por Marco Agner através das suas
descobertas de falhas no site
ingressos.com.
Em seu blog ele publicou em 03 de
maio de 2014, falhas de segurança no
site do serviço prestado pela empresa
Ingressos.com. caracterizando como
falhas críticas por dois motivos:
Expõem informações de clientes;
Coloca em risco o principal
serviço oferecido;
Estas falhas, apensar de extremamente
Bem vindo ao
RogerRitter.com.br!
Meu nome é Roger
Ritter e trabalho com
qualidade e teste de
software desde 2010,
atualmente no Dpto
de Informática na
Universidade de Passo
Fundo.
Creio nos valores do
desenvolvimento ágil
de software , na sua
gestão e em seu
empirismo. Que a
automação de teste
possa ajudar o
trabalho do testador e
que a simplificação e
uma boa
comunicação muitas
vezes é o melhor
caminho para alguns
dos problemas da
engenharia de
software.
uPlace AvaLiter Sobre
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 2/7
graves, nada mais é que descobrir o ID
de um parâmetro GET recebido por um
arquivo .php ou outro no qual o autor
não mencionou.
Explicando melhor o comando GET,
basicamente é você ter uma URL
parecida com isto:
http://exemplo.com.br/arquivoexemplo.php?
nome=ROGER
E alterar os valores correspondentes
com o que você procura, no exemplo
acima estou buscando os dados de
‘ROGER’, se eu quiser ver os dados do
Paulo, alteramos para ‘PAULO’ ao invés
de ‘ROGER’, se eu quiser ver os dados
da Maria, então portanto, ‘MARIA’ ao
invés de ‘ROGER’.
Ex.: http://exemplo.com.br/arquivoexemplo.php?
nome=PAULO
Ex.: http://exemplo.com.br/arquivoexemplo.php?
nome=MARIA
Agora, a descoberta do autor que foi a
grande jogada, veja como era banal:
Esta é a impressão de um ingresso, isto
mesmo, ingresso!
Procurar em RogerRitter.com.br
Tags
Falha de Software
Relato de
Campo Testes
Não Funcionais Testes
Ágeis
Tópicos
recentes
A importância
dos Testes não
Funcionais
Minhas
Experiências em
Testes Ágeis
Arquivos
maio 2014
abril 2014
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 3/7
Perceba acima o ‘ID’ com o
número: 290420142855736335945869
0931, e agora veja os dados da compra
que ele realizou:
Buscando o ID novamente
então: 290420142855736335945869
0931, logo na primeira visualização já
percebe-se que os primeiros dígitos
são a data e os últimos dígitos são a
hora que o usuário efetuou a compra.
Portanto agora faltava descobrir os
outros números que foram
encontrados no código, como mostra o
autor através de uma imagem:
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 4/7
Ok, código descoberto, alterasse para o
código de uma outra pessoa e pimpa!
Abre o ingresso meu, seu, de quem
quiser. Além disto o autor destaca que
poderia alterar o código ilustrado na
imagem acima e sem informar os
outros dígitos que também funcionava.
O post original de Marco Agner está
disponível através deste link. (Acessado
em 09/05/2014)
Ou em forma de impressão (.pdf)
através deste link.
Repercussão
A falha descoberta por Agner teve
grande repercussão especialmente nos
sites da INFO e EXAME onde
impulsionaram a notícia do feito do
autor.
Veja na INFO através deste link.
Veja na EXAME através deste link.
Equipes Ágeis x Testes
não funcionais
Equipes ágeis inicialmente tendem a
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 5/7
garantir a funcionalidade dos
incrementos para depois atacar as não
funcionalidades como segurança e
desempenho, por exemplo. Isto
quando o ‘Líder de Testes’ traça este
tipo de estratégia.
Este assunto já é bastante antigo, Scott
Ambler causou muita discussão
quando ele declarou em 2008: “O
conceito de product backlog do Scrum
funciona bem para requisitos funcionais
simples, mas… se torna insuficiente para
requisitos não-funcionais e restrições de
arquitetura.” através deste artigo no site
Dr.Dobb’s.
Seu artigo também teve bastante
repercussão naquela época
especialmente no Scrum Development
Yahoo Group (Grupo de
Desenvolvimento em Scrum do Yahoo)
no qual uma das soluções para este
tipo de problema foi que os requisitos
deste tipo seriam tratados na
‘Definição de Pronto’ do time. Isto é,
cada história não é considerada pronta
até que tenha sido determinado que a
implementação da estória satisfaça o
requisito não funcional, de
desempenho, por exemplo. Esta análise
seria feita através de um processo de
revisão e/ou testes de carga.
Conclusão
Testes não funcionais são sempre
muito importantes, como Agner nos
mostrou, o que ocorre é que algumas
empresas ainda não perceberam a
importância da Qualidade de Software
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 6/7
em seu processo de desenvolvimento,
empresas com fluxo muito intenso
como a Ingresso.com, no exemplo de
Agner, deve-se realizar testes não
funcionais para não deixar lacunas
como o desenvolvedor encontrou.
Portanto é provado que existem
problemas na equipe de Qualidade de
Software desta empresa.
Provavelmente um usuário leigo não
encontraria as falhas que o
desenvolvedor encontrou, mesmo
assim ainda continua sendo uma falha
encontrada e repercutida no ambiente
de produção no qual os custos desta
falha serão bastante alto, pois não
pode-se dizer que a utilização dos
serviços desta empresa são seguros na
presente data.
Considero o teste funcional o mais
importante pois antes de realizar
qualquer validação sobre um
incremento devemos saber se ele
cumpre os requisitos estabelecidos, ao
efetuar testes não funcionais a um
incremento no qual seus requisitos não
foram validados corre-se o risco da
entrega ser falha e consequentemente
um incremento não utilizável. Portanto,
antes de qualquer teste, sugiro o teste
funcional para após deste providenciar
os testes não funcionais.
Concorda com isto? (comente abaixo)
 Posted on 13 de maio de 2014 by roger
 Leave a comment
 Posted in Testes Não Funcionais
 Tagged Falha de Software, Relato de Campo, Testes Não
15/5/2014 A importância dos Testes não Funcionais | Roger Ritter
http://rogerritter.com.br/?p=48 7/7
 Minhas Experiências
em Testes Ágeis
Funcionais
Edit
Deixe uma resposta
Conectado como roger. Desconectar?
Comentário
Você pode usar estas tags e atributos de HTML: <a
href=""title=""><abbrtitle=""><acronym
title=""><b><blockquotecite=""><cite><code>
<deldatetime=""><em><i><qcite=""><strike>
<strong>
Publicar comentário
Criado com  Wordpress e hospedado com uPlace.com.br Início

Mais conteúdo relacionado

Semelhante a A importância dos testes não funcionais

Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaLivia Gabos
 
Teste em produção - Paraiso ou Inferno?
Teste em produção - Paraiso ou Inferno?Teste em produção - Paraiso ou Inferno?
Teste em produção - Paraiso ou Inferno?Sarah Pimentel
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
Tutorial avancado com appscan
Tutorial avancado com appscanTutorial avancado com appscan
Tutorial avancado com appscanReinaldo Rossetti
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareJeremias Araujo
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti InternaRoger Ritter
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareGTS-CE
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Papel do tester em projeto scrum
Papel do tester em projeto scrumPapel do tester em projeto scrum
Papel do tester em projeto scrumVinicius Sabadoti
 

Semelhante a A importância dos testes não funcionais (20)

Introdução ao Teste de Software
Introdução ao Teste de SoftwareIntrodução ao Teste de Software
Introdução ao Teste de Software
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostaria
 
Teste em produção - Paraiso ou Inferno?
Teste em produção - Paraiso ou Inferno?Teste em produção - Paraiso ou Inferno?
Teste em produção - Paraiso ou Inferno?
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Agiidade na Qualidade de Software -2011
Agiidade na Qualidade de Software -2011Agiidade na Qualidade de Software -2011
Agiidade na Qualidade de Software -2011
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
Tutorial avancado com appscan
Tutorial avancado com appscanTutorial avancado com appscan
Tutorial avancado com appscan
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti Interna
 
Papéis em teste e qualidade de software
Papéis em teste e qualidade de softwarePapéis em teste e qualidade de software
Papéis em teste e qualidade de software
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Testes de a a z
Testes de a a zTestes de a a z
Testes de a a z
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Papel do tester em projeto scrum
Papel do tester em projeto scrumPapel do tester em projeto scrum
Papel do tester em projeto scrum
 

Mais de Roger Ritter

Arquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMArquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMRoger Ritter
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartRoger Ritter
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartRoger Ritter
 
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosTécnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosRoger Ritter
 
Técnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicossTécnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicossRoger Ritter
 
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no WordpressRoger Ritter
 

Mais de Roger Ritter (7)

Arquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMArquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPM
 
Planning Onion
Planning OnionPlanning Onion
Planning Onion
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em Dart
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em Dart
 
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosTécnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos Eletrônicos
 
Técnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicossTécnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicoss
 
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
 

A importância dos testes não funcionais

  • 1. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 1/7 Roger Ritter Software Engineering, Software Quality and Projects  A importância dos Testes não Funcionais Muitas vezes nos preocupamos tanto com os Testes Funcionais (principalmente quem faz uso de metodologias ágeis) que não reservamos tempo para testes não funcionais como testes de segurança, de desempenho, de usabilidade entre outros. Foi exatamente isto que muitas pessoas pensaram quando viram o ‘escândalo’ (no bom sentido) causado por Marco Agner através das suas descobertas de falhas no site ingressos.com. Em seu blog ele publicou em 03 de maio de 2014, falhas de segurança no site do serviço prestado pela empresa Ingressos.com. caracterizando como falhas críticas por dois motivos: Expõem informações de clientes; Coloca em risco o principal serviço oferecido; Estas falhas, apensar de extremamente Bem vindo ao RogerRitter.com.br! Meu nome é Roger Ritter e trabalho com qualidade e teste de software desde 2010, atualmente no Dpto de Informática na Universidade de Passo Fundo. Creio nos valores do desenvolvimento ágil de software , na sua gestão e em seu empirismo. Que a automação de teste possa ajudar o trabalho do testador e que a simplificação e uma boa comunicação muitas vezes é o melhor caminho para alguns dos problemas da engenharia de software. uPlace AvaLiter Sobre
  • 2. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 2/7 graves, nada mais é que descobrir o ID de um parâmetro GET recebido por um arquivo .php ou outro no qual o autor não mencionou. Explicando melhor o comando GET, basicamente é você ter uma URL parecida com isto: http://exemplo.com.br/arquivoexemplo.php? nome=ROGER E alterar os valores correspondentes com o que você procura, no exemplo acima estou buscando os dados de ‘ROGER’, se eu quiser ver os dados do Paulo, alteramos para ‘PAULO’ ao invés de ‘ROGER’, se eu quiser ver os dados da Maria, então portanto, ‘MARIA’ ao invés de ‘ROGER’. Ex.: http://exemplo.com.br/arquivoexemplo.php? nome=PAULO Ex.: http://exemplo.com.br/arquivoexemplo.php? nome=MARIA Agora, a descoberta do autor que foi a grande jogada, veja como era banal: Esta é a impressão de um ingresso, isto mesmo, ingresso! Procurar em RogerRitter.com.br Tags Falha de Software Relato de Campo Testes Não Funcionais Testes Ágeis Tópicos recentes A importância dos Testes não Funcionais Minhas Experiências em Testes Ágeis Arquivos maio 2014 abril 2014
  • 3. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 3/7 Perceba acima o ‘ID’ com o número: 290420142855736335945869 0931, e agora veja os dados da compra que ele realizou: Buscando o ID novamente então: 290420142855736335945869 0931, logo na primeira visualização já percebe-se que os primeiros dígitos são a data e os últimos dígitos são a hora que o usuário efetuou a compra. Portanto agora faltava descobrir os outros números que foram encontrados no código, como mostra o autor através de uma imagem:
  • 4. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 4/7 Ok, código descoberto, alterasse para o código de uma outra pessoa e pimpa! Abre o ingresso meu, seu, de quem quiser. Além disto o autor destaca que poderia alterar o código ilustrado na imagem acima e sem informar os outros dígitos que também funcionava. O post original de Marco Agner está disponível através deste link. (Acessado em 09/05/2014) Ou em forma de impressão (.pdf) através deste link. Repercussão A falha descoberta por Agner teve grande repercussão especialmente nos sites da INFO e EXAME onde impulsionaram a notícia do feito do autor. Veja na INFO através deste link. Veja na EXAME através deste link. Equipes Ágeis x Testes não funcionais Equipes ágeis inicialmente tendem a
  • 5. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 5/7 garantir a funcionalidade dos incrementos para depois atacar as não funcionalidades como segurança e desempenho, por exemplo. Isto quando o ‘Líder de Testes’ traça este tipo de estratégia. Este assunto já é bastante antigo, Scott Ambler causou muita discussão quando ele declarou em 2008: “O conceito de product backlog do Scrum funciona bem para requisitos funcionais simples, mas… se torna insuficiente para requisitos não-funcionais e restrições de arquitetura.” através deste artigo no site Dr.Dobb’s. Seu artigo também teve bastante repercussão naquela época especialmente no Scrum Development Yahoo Group (Grupo de Desenvolvimento em Scrum do Yahoo) no qual uma das soluções para este tipo de problema foi que os requisitos deste tipo seriam tratados na ‘Definição de Pronto’ do time. Isto é, cada história não é considerada pronta até que tenha sido determinado que a implementação da estória satisfaça o requisito não funcional, de desempenho, por exemplo. Esta análise seria feita através de um processo de revisão e/ou testes de carga. Conclusão Testes não funcionais são sempre muito importantes, como Agner nos mostrou, o que ocorre é que algumas empresas ainda não perceberam a importância da Qualidade de Software
  • 6. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 6/7 em seu processo de desenvolvimento, empresas com fluxo muito intenso como a Ingresso.com, no exemplo de Agner, deve-se realizar testes não funcionais para não deixar lacunas como o desenvolvedor encontrou. Portanto é provado que existem problemas na equipe de Qualidade de Software desta empresa. Provavelmente um usuário leigo não encontraria as falhas que o desenvolvedor encontrou, mesmo assim ainda continua sendo uma falha encontrada e repercutida no ambiente de produção no qual os custos desta falha serão bastante alto, pois não pode-se dizer que a utilização dos serviços desta empresa são seguros na presente data. Considero o teste funcional o mais importante pois antes de realizar qualquer validação sobre um incremento devemos saber se ele cumpre os requisitos estabelecidos, ao efetuar testes não funcionais a um incremento no qual seus requisitos não foram validados corre-se o risco da entrega ser falha e consequentemente um incremento não utilizável. Portanto, antes de qualquer teste, sugiro o teste funcional para após deste providenciar os testes não funcionais. Concorda com isto? (comente abaixo)  Posted on 13 de maio de 2014 by roger  Leave a comment  Posted in Testes Não Funcionais  Tagged Falha de Software, Relato de Campo, Testes Não
  • 7. 15/5/2014 A importância dos Testes não Funcionais | Roger Ritter http://rogerritter.com.br/?p=48 7/7  Minhas Experiências em Testes Ágeis Funcionais Edit Deixe uma resposta Conectado como roger. Desconectar? Comentário Você pode usar estas tags e atributos de HTML: <a href=""title=""><abbrtitle=""><acronym title=""><b><blockquotecite=""><cite><code> <deldatetime=""><em><i><qcite=""><strike> <strong> Publicar comentário Criado com  Wordpress e hospedado com uPlace.com.br Início