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?