Buscar

Oficina - Érika Hmeljevski - Modulo_3_Preparando os testes

Prévia do material em texto

Fundamentos em Teste de Software
Módulo 3 – Preparando os testes
Érika Hmeljevski – 2010
Onde estamos?
Atividades:
 Adquirir ferramentas de teste;
 Disponiblizar ferramentas de teste;
 Configurar ferramentas de testes;
 Treinar equipe de testes para estas ferramentas;
 Configurar ambiente de testes para o projeto.
Preparando os testes
Ambiente de Teste
Ambiente de Teste
Testes
Unitário
Integração
Testes
Integração
Sistema
Regressão
Aceitação
Testes
Aceitação
Estresse
Performance
Ambiente de
Desenvolvimento
Ambiente de
Teste
Ambiente de
Produção
Técnica: É um processo que assegura que alguns aspectos do sistema funcionam 
propriamente
Ferramenta: Instrumento usado para aplicar a técnica 
Técnica X Ferramenta
A técnica de balançar um instrumento aplicando força para conseguir 
um objetivo pode ser aplicada tanto por um martelo para pregar 
um prego como por um machado para cortar um tronco no meio.
É a combinação entre os dois aspectos que permite que o processo de 
teste seja desempenhado
 O testador precisa primeiro entender quais ferramentas devem ser usadas 
com cada técnica
 Automação não é resposta para as dificuldades do processo de testes;
 Resolve grandes problemas, mas é fantasia pensar que vai tornar a vida dos testadores 
“mais fácil”;
 Automatização é muito mais que simplesmente adquirir uma ferramenta;
 A automação é realmente necessária?;
 Definir as etapas do processo de teste que realmente precisam ser automatizadas;
 É imprescindível a existência de um processo de testes e uma base metodológica já 
consolidadas;
 Sua introdução deve ser vista como um investimento a longo prazo;
 Sua implementação não é trivial nem barata;
 Ferramentas devem ser escolhidas com base na sua capacidade de conseguir atender os 
objetivos do teste;
 Deve ser avaliada a relação custo/benefício da 
 automatização dos testes.
Automação de Testes
Quando:
 Existirem fortes pressões para melhorar a qualidade;
 O projeto tiver situações que não possam ser testadas 
adequadamente pelos métodos tradicionais;
 O perfil dos softwares desenvolvidos forem complexos 
e com impacto no negócio.
Automação dos Testes
 Ferramentas manuais;
 Ferramentas para gestão de testes e rastreabilidade;
 Ferramentas para gestão de defeitos;
 Ferramentas para testes de Performance/Estress;
 Ferramentas de automação de testes de regressão;
 Ferramentas de cobertura de código;
 Ferramentas de suporte;
 Ferramentas de versionamento;
 Ferramentas para gestâo de Projetos; etc.
Categorias das Ferramentas de 
Teste
Gestão de Testes: 
Acompanhamento dos testes e rastreabilidade dos casos de testes.
Free/open: Testitool, Test Case Web, Teste link, rth, TestMaster, etc…
Comerciais: RSI/QA-Test, TestLog, Mercury Quality Center, Rational Test 
Manager, TestTrack TCM, Compuware QA Director,etc..
Gestão de Projetos: 
Planejamento e Aconpanhamento de um projeto qualquer
Free/open: ganttProject; ProjectKoach; OpenProj; Xplanner, 
OpenWorkbench,etc…
Comerciais: TraceGP, Microsoft Office Project, Project Builder, BaseCamp, 
etc..
Gestão de Requisitos:
Servem para descobrir, analisar, documentar e verificar as funções e restrições 
do sistema a ser criado.
Free/open: OSRMT, Xuse, TRUC, REM,Plandora,etc..
Comerciais: Rational RequisitPro, Borland Caliber, Compuware Optimal 
Trace,etc.
Ferramentas de Teste
Ferramentas de Gerenciamento de Defeitos
Ferramentas para rastrear a origem e correção dos defeitos, acompanhar a 
qualidade do software em teste com base nos defeitos cadastrados pelos 
testadores ao longo de um ciclo de testes, acompanhar o ciclo de vida dos 
defeitos e emitir relatórios de gestão.
Free/open: Mantis, Bugzilla, Scarab, BugNet,TRAC,etc. 
Comerciais: JIRA, FogBUGZ, CaliberRM, ClearQuest, Perforce,etc.
Ferramentas para Testes de Stress e Performance
Simular diferentes níveis de carga
Free/open: J Meter, Web StressTest Tool, OpenSTA, WEBload, The Grinder, 
etc…
Comerciais: Mercury LoadRunner, Rational Performance Tester, Compuware 
QALoad, etc.
Ferramentas de Teste
12
Ferramentas para execução de Testes de Regressão
Free/open: Selenium (AJAX), Watir (Web); Canoo WebTest(Web), Apodora (Web), 
actiWATE(Web), Abbot(Java Swing), squish for KDE (Linux),etc.
Comerciais: Mercury Quick Test Professional, Rational Functional Tester, 
Compuware QARun, TestComplete, etc.
Simuladores de objetos para testes
Stubs, nos preocupamos em testar o estado dos objetos após a execução do 
método. 
Mocks, a preocupação é testar a interação entre objetos durante a execução do 
método. 
Exemplo: EasyMock
Ferramentas para geração de Scripts de Teste
Criação de scripts e casos de Teste
Comerciais: Rational Robot
Ferramentas de Teste
Ferramentas para Testes Unitários:
Free/open:J Unit, CDBUNit
Comerciais: SilkPerformer® SOA Edition da Borland, DEVPartner Studio, 
Familia Purify da Rational, etc.
Ferramentas de Cobertura de Código Dinânico
Identificam trechos de código não executados
Free/open:Crap4j, Metrics, JavaNCSS, JDepend
Comerciais: Rational PureCoverage e o Rational PurifyPlus (Windows).
Ferramentas de Análise de Código Estático
Identificam erros comuns (inicialização de variáveis, estouro de 
memória, etc.)
Free/open: PMD
Comerciais: Rational PureCoverage e o Rational PurifyPlus (Windows).
Ferramentas de Teste
Ferramentas de controle de Versionamento
Armazenam e controlam versões
Free/open: WinCVS, Subversion, darcs,Aegis, Arch etc.
Comerciais: Perforce, Microsoft Visual Source Safe, Rational 
ClearCase,StarTeam, BitKeeper,etc.
Ferramentas de Integração Contínua
Auxiliam nos testes dos métodos ágeis de desenvolvimento, base do XP, 
realizam os testes de integração e validação dos códigos.
Free/open: Scons, Bitten, Ant, Maven, Cruise Control, Gump, TinderBox, etc.
Comerciais: AntHill Pro, FinalBuilder, BuildForge, etc.
Ferramentas de Teste
Ferramentas para auxiliar em estimativas de teste:
Free/open: Construx Estimate, Testmoon
Ferramentas de configuração de recursos de máquina
Servem para estressar os recursos de um computador, ou seja, aumentar a 
utilização da memória, processamento, disco, rede e sistema operacional a 
níveis extremamente elevados.testar a robustez e a confiabilidade da aplicação
em testes quando submetida a um ambiente onde os recursos estão sendo
utilizados no limite de sua capacidade.
Free/open: Heavy Load Outros: Traffic Emulator.
Ferramentas para monitorar a performance e comportamento das 
aplicações.
Exemplo: Process Explorer free para Windows – semelhante ao gerenciador de 
tarefas com mais recursos avançados.
Ferramentas de Teste
Ferramentas para suportar diferentes configurações
Executam multiplos sistemas operacionais ao mesmo tempo no mesmo 
computador físico por meio da virtualização. (Linux,Solares,Novel 
Netware,Windows,Linux,etc…), perfeito para economia de hardware.
Free/open: VMWARE, etc.
Comerciais: Microsoft – Virtual PC, etc.
Ferramentas de Monitoramento de tráfego
Ferramentas que permitem o monitoramento e iteração com requisições HTTPs 
enviadas de um navegador para um servidor web e vice-versa (como um 
Proxy). você pode interceptar e validar o conteúdo das requisições HTTP, 
podendo modificar o conteúdo delas simulando um hacker explorando uma
vulnerabilidade do sistema (teste de segurança), assim como testar o 
comportamento da aplicação quando dados incoretos são enviados para o 
servidor (teste de robustez).
Free/open: Burp Suite,etc.
Outros: TCPMon, etc.
Ferramentas de Teste
Ferramentas para suporte a coleta de evidências de testes:
Ferramentas que capturam toda a atividade exibida no seu computador em um 
video avi. Pode servir para provar que um defeito existe e como reproduzi-lo.
Free/open: Camstudio para Windows
Outros: Wink
Ferramentas que capturam uma imagem do seu monitor,e até componentes
específicos (menus, grids, etc…)
Free/open: MWSnap para Windows
Outros: ScreenGrab Pro.
Metodo de combinacao dupla (pair wise):
Ferramentas para gerar uma lista de combinações baseadas em pair wise para
garantir uma cobertura mínima das situações possíveis.suporta IF-THEN-ELSE.
Free/open: PICT para Windows, etc.
Outros: ALLPAIRS test case generation, etc.
Ferramentas de Teste
Ferramentas de comparação:
Servem para realçar a diferença entre dois arquivos. (inclusive entre duas 
pastas).Úteis para comparar um arquivo de saída gerado pela aplicação em
teste contra o mesmo arquivo gerado por uma versão anterior da mesma
aplicação, por um outro build, ou até mesmo pelo sistema legado.
Exemplo: WinMerge Open Source para Windows, serve para realçar a 
diferença entre dois arquivos. (inclusive entre duas pastas),etc.
Outros: Perforce Virtual Merge Tool, etc.
Ferramentas para geração de dados:
Exemplo: data generator – WEB Open source – gera enormes volumes de 
dados para popular banco de dados de testes.útil quando o banco de dados é 
novo por exemplo.
Ferramentas de monitoramento de conteudo HTML,CSS e Java Scripts:
Exemplo: Firebug – open source extensão do firefox.Visualização do conteúdo
de cada requisição entre o navegador e o servidor e a possibilidade de 
monitorar requisições XML utilizadas em páginas AJAX.
Ferramentas de Teste
Ambiente de Teste
O escopo do ambiente 
será definido pelo nível 
de teste a ser executado
Quanto maior o nível, 
mais o ambiente de teste
deverá ser capaz de
reproduzir
as características do
ambiente 
de produção
Atributos
Nível
Unitário Integração Sistema Aceitação
Escopo Unidade 
individual
Unidades 
agrupadas
Sistema 
inteiro
Simulação da 
produção
Equipe Desenvolvedores Desenvolvedores 
e Testadores
Testadores Testadores e 
Usuários
Volume de 
dados
Pequeno Pequeno Grande Grande
Origem dos 
dados
Criação manual Criação manual Criação por 
processos
Dados reais
Interfaces Não existem Não existem Simuladas Reais/Simuladas
Ambiente Desenvolvimento Desenvolvimento Teste Produção
Preparação do Ambiente
Controle de Mudanças
Gerência de Configuração
Registro e controle das diversas versões geradas
Garantir que o que foi testado é o que de fato 
será entregue
Controle de Versionamento
Definição de prioridades baseadas na severidade 
do problema encontrado, no esforço para corrigí-lo, 
no impacto no cronograma e no esforço para retestá-la
A garantia da integridade do ambiente de teste está 
diretamente relacionada à garantia de qualidade do 
produto
Uma inadequada infra-estrutura (pessoal, equipamentos, 
metodologia e ferramentas) para testar softwares leva à 
situação onde os defeitos são identificados mais tarde.
Considerações Finais
Dúvidas?

Mais conteúdos dessa disciplina