Baixe o app para aproveitar ainda mais
Prévia do material em texto
Testes de Software Fábio Castro Previously ... • O que é teste? • Importância? • Provar corretude ou encontrar erros? • É possível que testes não encontrem erros latentes? • Onde estão os defeitos? • Defeito, Erro ou Falha? Atividade! O que é teste de software? Teste de software é o processo formal de avaliar um sistema ou componente de um sistema por meios manuais ou automáticos para verificar se ele satisfaz os requisitos especificados [IEEE 729, 1983]. O que envolve? A atividade de teste envolve basicamente: • Entradas – Envolve as especificações dos requisitos; • Processos – Refere-se a utilização dos planos de procedimentos de testes, ferramentas para auxílio na depuração e nos testes propriamente dito; • Saídas – Avaliação dos resultados obtidos na fase anterior. Road Map of QA (quality assurance)... A QA engineer walks into a bar, and orders a beer. Then he orders 0 beers. Then he orders 999999999 beers. Then he orders nothing. Then he orders -1 beers. Then he orders NULL beers. Macro caminhos... Estratégias de Teste Metodologias de desenvolvimento e Teste Tipos de Teste Ferramentas de gerenciamento de testes Ferramentas de rastreio de defeitos Estratégias de TestesEstratégias de Testes Caixa PretaCaixa Preta Caixa BrancaCaixa Branca Caixa CinzaCaixa Cinza Metodologias de Desenvolvimento e Testes Metodologias de Desenvolvimento e Testes ÁgilÁgil CascataCascata Modelo VModelo V Tipos de TesteTipos de Teste FuncionalFuncional Não FuncionaisNão Funcionais Ferramentas de Gerenciamento de Testes Ferramentas de Gerenciamento de Testes qTestqTest Test RailTest Rail ZephyrZephyr Ferramentas de Rastreio de Defeitos Ferramentas de Rastreio de Defeitos AssemblaAssembla TrelloTrello JiraJira YouTrackYouTrack As estratégias podem e devem ser usadas para garantir o fluxo de trabalho adequado para um produto. Testes Manuais x Automação Uma empresa recebeu um orçamento de R$ 50.000 do testador de software por seu serviço em um aplicativo multimilionário que ninguém na empresa conseguiu reproduzir o erro. A empresa ficou atordoada com a conta exorbitante por um período de serviço tão curto e exigiu um detalhamento dos encargos envolvidos. O testador de software respondeu com a especificação: Relatório de bug: R$ 1 Saber onde procurar: R$ 49.999 A solução de problemas é uma habilidade que você precisa desenvolver, aumentar e prestar mais atenção. Conhecer a causa exata do problema resolverá vários problemas, além de economizar o tempo da equipe de desenvolvimento, que é o ativo mais valioso que eles possuem. Qual uma profundidade técnica? Muitas responsabilidades em diferentes no ciclo de vida dos testes. A automação é a maneira mais recente e moderna de se livrar da carga de trabalho duplicado. “It’s automation, not automagic.” — Jim Hazen Em que fase os testes devem ser inseridos? Processo de Teste de Software Geração de teste Geração de teste Execução de teste Execução de teste Gerenciamento e manutenção Gerenciamento e manutenção Geração de teste Envolve análise da especificação e determinação de que funcionalidade será testada; Determinação de como será executado o teste; Especificação de scripts de teste Execução de teste Desenvolvimento de um ambiente de teste em que o script pode ser executado; Execução do script de teste; Análise dos resultados. Gerenciamento e manutenção Objetivo de possibilitar aplicação de testes durante a existência do sistema; Manter scripts, controle de versões de especificações de testes, ferramentas para teste. Princípios do Processo de Teste Testar é um exercício de gerência de risco; 01 Treinamento em teste reduz custos em longo prazo; 02 As estimativas de teste devem ser baseadas no risco do negócio; 03 A estratégia de teste deve ser elaborada através de um trabalho conjunto entre as áreas envolvidas; 04 É melhor encontrar um defeito nas primeiras fases do que em produção. 05 Metas do Processo de Teste Demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos (deve haver pelo menos um teste para cada requisito contido nos documentos de usuário e de sistema); Descobrir falhas ou defeitos no software que apresenta comportamento incorreto, não desejável ou em não conformidade com sua especificação (o teste de defeitos está relacionado à remoção de todos os tipos de comportamentos indesejáveis de sistema, como travamentos, interações indesejáveis com outros sistemas, cálculos incorretos e dados corrompidos). Processo de Testes Planejar testes Projetar testes Executar testes Analisar Resultados Gerenciar defeitos Planejar • Definir a Estratégia; • Criar o plano de teste; • Adaptar o processo de testes para o projeto; • Configurar ambiente de testes; • Verificar testabilidade dos casos de uso; • Detalhar planejamento das atividades de teste; • Identificar riscos do projeto de teste; Projetar • Refinar a estimativa de Teste; • Identificar os cenários de Teste; • Elaborar Casos de Teste; • Estruturar scripts de teste; • Implementar Teste (manual e automático); • Preparar massa de teste (dados); • Elaborar plano de teste de aceite; Executar • Executar casos de teste; • Executar scripts de teste; • Gerar resultados (logs) de teste; • Acompanhar defeitos; • Executar teste de Sistema; • Executar Re-teste; • Executar testes especiais; Gerenciar Defeitos • Workflow do defeito; • Ferramentas para auxiliar; Analisar Resultados • Gerar resultados dos testes; • Gerar medição; • Gerar relatório de conclusão do teste; Os testes devem seguir os requisitos (necessidades) do cliente; Os testes devem ser planejados antes da sua execução; O programador não deve testar o seu programa; Os resultados de cada teste devem ser profundamente inspecionados; Metade do teste deve verificar se o software faz o que deveria e a outra metade deve verificar se o software faz o que não deveria; A documentação de testes é um fator que merece atenção; Quando terminar os testes? • É possível garantir que o software está completamente livre de defeitos? Papéis e responsabilidades de Teste de Software Gerente de Teste • Tem função é garantir a qualidade dos testes, planejar e gerenciar os recursos e resolver os problemas que representam obstáculos ao esforço de teste. • Tarefas: • Acompanhar as métricas de teste geradas; • Planejar e acompanhar os testes; • Inspecionar os Planos e Casos de Teste; • Coordenar a equipe de Teste. Engenheiro de Testes • A função do Engenheiro de Teste é criar estratégias de teste que serão utilizadas em um produto em desenvolvimento podendo desenvolver Casos de Teste manuais ou automáticos, de acordo com a abordagem dos testes. • Tarefas: • Execução de Testes “especiais” (Performance, Carga, Stress, Segurança, etc.); • Cria os Casos de Teste; • Automatiza Casos de Teste em ferramenta apropriada; • Cria a arquitetura e ambiente para a execução dos testes. Analista de Teste • Tem como função elaborar e modelar os casos e roteiros de testes. Deve focar seu trabalho nas técnicas de teste adequadas à fase de teste trabalhada. • Tarefas: • Identificar os Itens de Teste-alvo a serem avaliados pelo esforço de teste; • Definir os testes apropriados necessários e quaisquer Dados de Teste associados; • Coletar e gerenciar os Dados de Teste; • Avaliar o resultado de cada ciclo de teste. Testador • É responsável pela execução dos testes, o mesmo deve observar as condições de teste e respectivos passos de teste documentados pelo analista de teste e evidenciar os resultados de execução. • Tarefas: • Identificar a abordagem de implementação mais apropriada para um dado teste; • Implementar testes individuais; • Configurar e executar os testes; • Registrar os resultados e verificar a execução dos testes; • Analisar erros de execução e recuperar-se deles. Testes deSoftware Fábio Castro
Compartilhar