Prévia do material em texto
February 7, 2018 Testes de Software Sullivan Tanaka February 7, 2018 2 Instrutor – Sullivan Tanaka Bach. Ciências da Computação USP São Carlos, 2002 BSTQB CTFL 2001-2005: Desenvolvedor (PHP/ASP/MySQL/SQL Server), Suporte técnico, coordenador 2006-2011: Analista de testes atuando com escrita/execução de casos de teste e gerenciamento de defeitos, em projetos nacionais e internacionais. 2011-atualmente: Gerente de Testes atuando em planejamento, acompanhamento e controle de projetos de teste nacionais e internacionais Áreas de negócio: manufatura, financeiro, linhas aéreas, migração de sistemas Áreas de interesse: testes funcionais, gerenciamento de testes, automação de testes, computação na nuvem, treinamento e recrutamento Contato: sullivan.tanaka@dxc.com / Skype: sullivan.tanaka February 7, 2018 3 Instrutor – Gregório Pagani Formação Fatec 1997 ISO, ISTQB, MBA e PMP Atuação em testes 2006-2009: Analista de testes atuando preparação e execução de casos de teste manuais e gerenciamento de defeitos, em projetos nacionais e internacionais. 2009-atualmente: Analista de Métrica para projetos internacionais e Gerente de Testes para projetos nacionais e internacionais. Áreas de negócio: manufatura, financeiro, linhas aéreas, Telecom. Áreas de interesse: testes funcionais, gerenciamento de testes/projetos e finanças. Contato: gregorio.pagani@dxc.com / Skype: gregorio.pagani February 7, 2018 4 Agenda Dia 1 • Conceitos básicos • Importância da Qualidade do Software • Erro, Defeito e Falha • Abordagem do Teste • Tipo, Nível e Fase Dia 2 • Atividades do Teste • Técnicas de Modelagem Dia 3 (Avaliação) • Desenvolvendo Casos de teste Dia 4 (Avaliação) • Executando Casos de Teste • Carreira de Analista de Testes • Encerramento February 7, 2018 5 Conceitos Básicos “O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.” “O teste é um processo realizado pelo analista de sistemas, que permeia outros processos da engenharia de software e que envolvem ações que vão desde o levantamento de requisitos até a execução do teste propriamente dito.” February 7, 2018 6 Importância da Qualidade do Software Por que testar ? Softwares estão presentes em praticamente todos os locais, como bancos, indústrias, lojas, escolas, celulares e até mesmo em carros e geladeiras; Atualmente, a natureza do software é complexa, já que os sistemas estão altamente integrados, fazendo com que a complexidade aumente não linearmente, mas exponencialmente. February 7, 2018 7 Importância da Qualidade do Software Por que testar ? Softwares defeituosos podem causar sérios problemas: Prejuízos financeiros (roubo de números de cartões); Perda da confiança de fornecedores e clientes (erros em sistema de pedidos de peças/suprimentos); Perda da reputação no mercado (suporte/atendimento ineficiente); Perda da qualidade (lentidão em operações); Riscos à integridade física das pessoas (erros de leitura de um sistema médico); Desastres (software de controle de vôo defeituoso). February 7, 2018 8 Importância da Qualidade do Software Realizar atividades com qualidade = custo menor do produto final Redução drástica do retrabalho Redução dos custos de manutenção e suporte do software Redução da probabilidade de incidentes e processos jurídicos Software bem estruturado facilita a criação de novos projetos February 7, 2018 9 Erro, Defeito e Falha Erro: ação humana que produz um resultado incorreto. Pode ser cometido em qualquer fase do processo de desenvolvimento do software; Defeito: um erro no software. Também conhecido como “bug”; ▪ Se executado, o erro pode causar uma falha ▪ É o resultado do erro cometido Falha: diferença indesejável entre o observado e o esperado → Defeito encontrado!! February 7, 2018 10 Erro, Defeito e Falha Desta forma.... “Um software pode conter defeitos, mas mesmo assim nunca falhar”. Uma pessoa comete um erro... Que introduz um bug (defeito) no software... Que pode gerar uma falha na execução February 7, 2018 11 Erro, Defeito e Falha Quanto menos defeitos encontrados, melhor será a qualidade do software? February 7, 2018 12 Erro, Defeito e Falha Não se pode afirmar que, quanto menos defeitos encontrados, melhor é o software, pois não sabemos se: O software é realmente bom ou O teste é ruim ou Ambos teste e software são ruins!! February 7, 2018 13 Abordagem do Teste Para se alcançar o nível de qualidade desejado, como devo testar o software? Através de uma abordagem adequada! February 7, 2018 14 Abordagem do Teste Teste exaustivo Abordagem na qual o conjunto de testes engloba todas as combinações de valores e pré-condições de entrada de uma determinada funcionalidade. Teste exaustivo = impraticável Custos elevados Toma muito tempo Requer muitos recursos (pessoas, máquinas, etc) February 7, 2018 15 Abordagem do Teste Teste exaustivo • Sistema com 20 telas • Possui 4 menus • Cada menu possui 3 opções • Cada tela possui 10 campos • 2 tipos de entrada por campo • 100 valores possíveis 20 x 4 x 3 x 10 x 2 x 100 = 480.000 testes 1s por teste = 17.7 dias 10s por teste = 34 semanas 1 min por teste = 4 anos 10 min por teste = 40 anos February 7, 2018 16 Abordagem do Teste Quanto testar ? Deve-se analisar o nível de risco do projeto Deve-se priorizar os testes, através de atividades de análise, apontando quais funcionalidades devem ou não ser exaustivamente testadas Se acontecer uma falha, quais as consequências? ▪ Processos legais ▪ Perda de vida ou riscos à saúde ▪ Perda de credibilidade e reputação ▪ Software não liberado a tempo (ex. concorrência, campanhas publicitárias, Black Friday, Natal) February 7, 2018 17 Abordagem do teste Abordagem tradicional: “O objetivo da atividade de testes é mostrar que o sistema: Faz o que deveria fazer Não faz o que não deveria fazer” META: Mostrar que o sistema funciona Critério de sucesso: Sistema tem funcionamento correto February 7, 2018 18 Abordagem do teste Abordagem atual: “O objetivo da atividade de testes é mostrar que o sistema: Faz o que não deveria fazer Não faz o que deveria fazer” META: encontrar defeitos Critério de sucesso: Sistema tem falhas February 7, 2018 19 Abordagem do Teste Abordagem antiga Software desenvolvido e testado parcialmente por programadores Cliente realizava os testes funcionais, algumas vezes já em produção Abordagem atual Equipe independente executa criteriosamente os testes Software desenvolvido e testado parcialmente por programadores Cliente executa cenários de negócio em ambiente controlado Teste Unitário Teste de Integração de Componentes Teste de Sistema Teste de Integração de Sistemas Teste de Aceitação February 7, 2018 20 Teste de Software February 7, 2018 21 Tipo, Nível e Fase •Tipos de Teste •Funcional •Não-Funcional •Estrutural •Regressão •Níveis de Teste •Unitário •Integração •Sistema •Aceitação •Performance •Segurança •Fases de Teste •Revisão de Requisitos •Planejamento •Desenvolvimento •Config. Ambiente •Execução •Entrega February 7, 2018 22 Tipo, Nível e Fase - Tipos de Teste Conceito: Um grupo de atividades de teste pode ser direcionado para verificar o sistema (ou uma parte do sistema) com base em um motivo ou alvo específico. Cada tipo de teste tem foco em um objetivo particular, que pode ser testar: • uma funcionalidade a ser realizada (Teste Funcional) • uma característica tal como a confiabilidadeou usabilidade (Teste Não-Funcional) • a estrutura ou arquitetura do software ou sistema (Teste Estrutural); • alterações/melhoria em um sistema já existente (Teste de Regressão). February 7, 2018 23 Tipo, Nível e Fase - Tipos de Teste Teste Funcional O Teste Funcional avalia o comportamento externo do componente de software, sem considerar o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Como detalhes de implementação não são considerados, os casos de teste são derivados da especificação. O Teste Funcional utiliza as técnicas de caixa-preta. February 7, 2018 24 Tipo, Nível e Fase - Tipos de Teste Teste Não-Funcional Testes não-funcionais podem ser realizados em todos os níveis de teste. O termo “teste não funcional” descreve que o teste é executado para medir as características que podem ser quantificadas em uma escala variável, como, por exemplo, o tempo de resposta em um teste de performance. É o teste de “como” o sistema funciona. Também é utilizado para verificar aspectos como adequação a restrições de negócio, adequações a normas ou restrições tecnológicas. Testes não-funcionais incluem, mas não se limitam a: • teste de performance; • teste de usabilidade; • teste de segurança; • teste de confiabilidade. February 7, 2018 25 Tipo, Nível e Fase - Tipos de Teste Teste Estrutural Teste estrutural pode ser feito em todos os níveis de testes. Recomenda-se utilizar as técnicas estruturais após as técnicas baseadas em especificação, já que ela auxilia a medição da eficiência do teste através da avaliação da cobertura* de um tipo de estrutura. *Cobertura é a extensão que uma estrutura foi exercitada por um conjunto de testes, expresso como uma porcentagem de itens cobertos. Exemplos de técnicas de cobertura: cobertura de sentença e cobertura de decisão. Neste caso, utilizam-se as técnicas de caixa-branca. February 7, 2018 26 Tipo, Nível e Fase - Tipos de Teste Teste de Regressão Teste de regressão é o teste repetido de um programa que já foi testado, após sua modificação, para descobrir a existência de algum defeito introduzido ou não descoberto originalmente. A quantidade de testes de regressão é baseada no risco de se encontrar defeitos no software que estava funcionando previamente. Porém, dependendo da natureza do software e do processo de negócio, a regressão total é realizada. Ex. sistemas aéreos, sistemas médicos e sistemas com alto grau de integração com componentes externos. February 7, 2018 27 Tipo, Nível e Fase - Tipos de Teste Teste de Regressão Tabela de Risco (exemplo): 1 – Baixo 9 – Alto Exemplo: “executaremos apenas os testes com Risco >= 10” Caso de Teste Impacto Probabilidade Risco CT001 2 3 6 CT002 8 4 32 CT003 9 2 18 February 7, 2018 28 Tipo, Nível e Fase - Tipos de Teste Teste de Regressão com Automação de Testes • Ideal para projetos com várias releases •Diminui o custo global do projeto ao longo do tempo •Redução no tempo de execução dos ciclos de regressão •Necessita de menos recursos que o teste manual •Necessita planejamento adequado pois o custo inicial é alto, não é possível automatizar 100% dos testes, mudança constante no sistema pode inviabilizar a automação, tipo de tecnologia utilizada, etc •Linguagens/ferramentas populares: Selenium, Appium, UFT February 7, 2018 29 Tipo, Nível e Fase - Níveis de Teste Conceito: O conceito “níveis de teste” está relacionado com o modelo V, que representa quando as atividades de teste acontecem em decorrência do ciclo de vida do software. No entanto, esse conceito também pode ser aplicado ao desenvolvimento iterativo. Os níveis de teste fornecem a indicação sobre o foco do teste e os tipos de problemas a serem encontrados (por exemplo, problemas no código-fonte ou problemas de ambiente). February 7, 2018 30 Tipo, Nível e Fase - Níveis de Teste • Teste Unitário • Teste de Integração • Teste de Sistema • Teste de Aceitação • Teste de Performance • Teste de Segurança February 7, 2018 31 Tipo, Nível e Fase - Níveis de Teste Teste Unitário Teste Unitário: Teste realizado em cada componente isolado; • Componente: A menor parte do software que pode ser testada individualmente. Ex: Classe, Programa, Função, Procedure; • Os casos de testes são escritos baseados na especificação técnica do componente (parâmetros de E/S, parâmetros de comunicação, fluxos lógicos, exceções, etc); • Realizados pelo desenvolvedor; • Técnicas de caixa-branca. February 7, 2018 32 Tipo, Nível e Fase - Níveis de Teste Teste de Integração Objetivo: testar as interfaces entre os componentes, interações de diferentes partes de um sistema, como o sistema operacional, arquivos, hardware ou interfaces com outros sistemas. Existem 2 tipos de teste de integração: • Teste de integração de componente: testa interações entre componentes do sistema. Por ex: validar a chamada de uma função/procedure a partir de uma combinação específica de entradas em um código-fonte. Realizado pelo desenvolvedor. • Teste de integração de sistemas (SIT): testa interação entre diferentes sistemas e pode ser realizado após o teste de sistema. Por ex: validar a interface de troca de mensagens entre um sistema bancário e o mainframe do Banco Central. Realizado pelo testador (às vezes com auxílio do desenvolvedor). February 7, 2018 33 Tipo, Nível e Fase - Níveis de Teste Teste de Integração February 7, 2018 34 Tipo, Nível e Fase - Níveis de Teste Teste de Sistema Definição: Processo de testar um sistema para verificar se atinge os requisitos especificados; Finalidade: validar as regras de negócio de forma detalhada; São concentrados no funcionamento do sistema como um todo, não no funcionamento dos componentes individuais; Realizado pelo testador; Técnicas de caixa-preta. February 7, 2018 35 Tipo, Nível e Fase - Níveis de Teste Teste de Aceitação Definição: Teste formal onde o usuário especialista no negócio confronta os requisitos e os processos de negócio com o sistema para determinar se satisfaz ou não suas necessidades; Usuário pode apontar aspectos de usabilidade e performance, propondo melhorias e até gerando novas releases. Testes Alpha e Beta: ▪ Alpha Testing: Teste realizado pelo usuário/cliente no ambiente do desenvolvedor, simulando situações do dia-a-dia, acompanhado pela equipe de desenvolvimento. ▪ Beta Testing: Teste realizado pelo usuário no seu ambiente, limitado a um grupo específico, com objetivos específicos. Por exemplo, um grupo de usuários da área financeira testa um módulo de um sistema enquanto outro grupo de usuários de callcenter testa um módulo de atendimento de reclamações. February 7, 2018 36 Tipo, Nível e Fase - Níveis de Teste Teste de Performance (ou Teste de Desempenho) Objetivo – Medir o nível de desempenho de um Sistema, através da realização de testes como: – Carga (Load Balancing Testing) Verificar qual o volume de transações, acessos simultâneos ou usuários que um servidor/software/sistema suporta – Stress (Stress Testing) Medir os limites de um software/servidor/site/hardware, determinando a partir de que ponto ele não consegue mais funcionar corretamente, apresentando erros – Resistência (Endurance or Soaking Testing) – Examinar se o sistema pode suportar uma carga enorme por um longo período de tempo e, assim, medir os parâmetros de reação do sistema – Pico (Spike Testing) – Verificar a estabilidade de um Sistema durante “rajadas” de atividade intense e concorrente de usuários/serviços – Configuração (Configuration Testing) – Processo de testar um Sistema com cada configuração de hardware e software suportadosO teste é realizado através de scripts que conectam ao sistema e executam tarefas automatizadas que geram dados para relatórios detalhados levando-se em conta os requisitos acima. February 7, 2018 37 Tipo, Nível e Fase - Níveis de Teste Teste de Segurança Objetivo: avaliar as vulnerabilidades em aplicações e serviços frente a diferentes tipos de ataques, como ataques de negação de serviço (DoS) e SQL injection, e descobrir novas vulnerabilidades antes que sejam exploradas por atacantes. February 7, 2018 38 Tipo, Nível e Fase - Níveis de Teste Teste Unitário Teste de Integração Teste de Sistema Teste de Aceitação Desenvolvedor Desenvolvedor e Testador Testador Cliente Níveis de teste em um Projeto típico: February 7, 2018 39 Tipo, Nível e Fase - Fases de Teste Conceito: As Fases de Teste, também conhecidas como Ciclo de Vida do Teste de Software, definem as etapas ao se testar um software. Não importando o tipo ou o nível de teste definido, deve-se obedecer a uma sequência de fases para se efetuar corretamente o teste. February 7, 2018 40 Tipo, Nível e Fase - Fases de Teste C on tro le e M on ito ra m en to February 7, 2018 41 Relação entre Tipos, Níveis e Fases •Tipos de Teste •Funcional •Não-Funcional •Estrutural •Regressão •Níveis de Teste •Unitário •Integração •Sistema •Aceitação •Performance •Segurança •Fases de Teste •Revisão de Requisitos •Planejamento •Desenvolvimento •Config. Ambiente •Execução •Entrega February 7, 2018 42 Relação entre Tipos, Níveis e Fases •Tipos de Teste •Funcional •Não-Funcional •Estrutural •Regressão •Níveis de Teste •Unitário •Integração •Sistema •Aceitação •Performance •Segurança •Fases de Teste •Revisão de Requisitos •Planejamento •Desenvolvimento •Config. Ambiente •Execução •Entrega February 7, 2018 43 Relação entre Tipos, Níveis e Fases •Tipos de Teste •Funcional •Não-Funcional •Estrutural •Regressão •Níveis de Teste •Unitário •Integração •Sistema •Aceitação •Performance •Segurança •Fases de Teste •Revisão de Requisitos •Planejamento •Desenvolvimento •Config. Ambiente •Execução •Entrega February 7, 2018 44 Relação entre Tipos, Níveis e Fases •Tipos de Teste •Funcional •Não-Funcional •Estrutural •Regressão •Níveis de Teste •Unitário •Integração •Sistema •Aceitação •Performance •Segurança •Fases de Teste •Revisão de Requisitos •Planejamento •Desenvolvimento* •Config. Ambiente •Execução •Entrega Automação February 7, 2018 45 Projeto com Tipos, Níveis e Fases de Teste • Projeto • Funcional • Integração • Rev. Requisitos •Planejamento •Desenvolvimento •Execução •Entrega • Sistema • Rev. Requisitos • Planejamento • Desenvolvimento • Execução • Entrega • Aceitação • Rev. Requisitos • Planejamento • Desenvolvimento • Execução • Entrega • Não-Funcional • Performance • Rev. Requisitos •Planejamento •Desenvolvimento •Execução •Entrega • Segurança • Rev. Requisitos •Planejamento •Desenvolvimento •Execução •Entrega February 7, 2018 46 Teste de Software February 7, 2018 47 Learning Check 1. Verdadeiro ou Falso: ( ) Erro é a manifestação de um defeito no sistema. ( ) Falha é a diferença indesejável entre o esperado e o observado ( ) Defeito e “bug” são a mesma coisa ( ) Erros podem acontecer em qualquer etapa do desenvolvimento do software February 7, 2018 48 Learning Check 2. Em relação a “Qualidade”, podemos afirmar que: ( ) É o grau até o qual um componente, sistema ou processo atende aos requisitos especificados e/ou às necessidades e expectativas do usuário ou consumidor. ( ) O teste aumenta a qualidade do software. ( ) Quanto menos defeitos encontrados, melhor é a qualidade do software. February 7, 2018 49 Learning Check 3. Por que dizemos que o teste exaustivo é impraticável? February 7, 2018 50 Learning Check 4. Complete a tabela abaixo, relacionando os níveis de teste com as pessoas envolvidas no teste de um sistema: Desenvolvedor Testador Cliente Testes unitários Testes de integração de componentes Testes de sistema Testes de integração de sistemas Testes de aceitação February 7, 2018 51 Learning Check 1. Verdadeiro ou Falso: ( F ) Erro é a manifestação de um defeito no sistema. ( V ) Falha é a diferença indesejável entre o esperado e o observado ( V ) Defeito e “bug” são a mesma coisa ( V ) Erros podem acontecer em qualquer etapa do desenvolvimento do software Uma pessoa comete um erro... Que cria um bug (defeito) no software... Que pode gerar uma falha na execução February 7, 2018 52 Learning Check 2. Em relação a “Qualidade”, podemos afirmar que: ( V ) É o grau até o qual um componente, sistema ou processo atende aos requisitos especificados e/ou às necessidades e expectativas do usuário ou consumidor. ( F ) O teste aumenta a qualidade do software. ( F ) Quanto menos defeitos encontrados, melhor é a qualidade do software. February 7, 2018 53 Learning Check 3. Por que dizemos que o teste exaustivo é impraticável? R: O Teste Exaustivo se torna impraticável pois ele testa todas as combinações de valores e pré-condições. Com isso, aumenta-se muito o custo, toma-se muito tempo e requer muitos recursos. February 7, 2018 54 Learning Check 4. Complete a tabela abaixo, relacionando os níveis de teste com as pessoas envolvidas no teste de um sistema: Desenvolvedor Testador Cliente Testes unitários X Testes de integração de componentes X Testes de sistema X Testes de integração de sistemas X Testes de aceitação X February 7, 2018 55 Atividades do Teste Visão geral das atividades de um projeto de testes de software Plan eja men to Anál ise Mod elag em (Esc rita) Exe cuç ão Aval iaçã o dos Crit ério s de saíd a Rel atóri os Ativi dad es de enc erra men to Foco do nosso curso February 7, 2018 56 Ti m e de T es te s •Gerente de Projeto •Gerente de Testes •Analistas •Testadores A Atividades do Teste February 7, 2018 57 Atividades do Teste Fase de Planejamento (Gerente de Projeto e Gerente de Testes) • Entender metas e objetivos do projeto • Definir escopo • Elaborar o Plano de Teste (“Test Plan”) a. Estratégia (teste manual, automatizado, etc) b. Recursos c. Cronograma d. Critérios de entrada e saída February 7, 2018 58 Atividades do Teste Análise (Analista de Teste/Gerente de Testes): • Definir o que será testado • Analisar requisitos, em busca de erros, ambiguidades, etc. • Avaliar requisitos funcionais e não funcionais • Mapear requisitos x casos de teste (matriz de rastreabilidade - RTM) February 7, 2018 59 Atividades do Teste Modelagem/escrita (Analista e Testador): • Desevolver casos de teste de acordo com o que foi definido na fase de análise • Revisar casos de teste • Avaliar as condições de teste e configurar o ambiente de testes (acessos, dados, equipamentos, etc) • Configurar ferramenta de testes (Ex.:Bugzilla, ALM, Testlink, Excel, etc) February 7, 2018 60 Atividades do Teste Execução (Testador, Analista, Gerente de testes): • Priorizar casos de teste • Executar casos de teste (CTs): a. Seguir os passos descritos no documento de CT b. Registrar as evidências (screenshots, logs, etc) c. Checar os resultados d. Reportar defeitos, caso encontrados e. Retrabalhar os CTs (se necessário) • Coordenar atividades de execução, correção de defeitos, realocação de recursos, prazos, etc. February 7, 2018 61 Atividades do Teste Critérios de Saída (Gerente de Projeto e Gerente deTestes): • Definir “quando parar de testar” • Checar e validar que as metas e objetivos definidos no Test Plan foram satisfeitos • Exemplos de critérios de saída: a. Qtde de testes executados b. Qtde de testes que passaram, falharam, etc c. Qtde de defeitos encontrados, remanescentes, etc d. Cobertura atingida (ex. Pelo menos 70% dos testes de cada funcionalidade foram executados com sucesso) February 7, 2018 62 Atividades do Teste Relatórios e atividades de Encerramento (Gerente de Testes): • Relatórios detalhados sobre a execução dos testes • Relatórios detalhados sobre defeitos, incidentes e quaisquer acontecimentos encontrados durante a fase de execução • Entrega dos documentos de evidências juntamente com os casos de teste • “Lessons-learned”, documento com “lições aprendidas”, para melhorar o processo de teste para futuras versões do software February 7, 2018 63 Técnicas de Modelagem Teste Unitário (Caixa Branca) com Cobertura de Decisão Teste de Sistema (Caixa Preta) – Casos de Uso – Partição de Equivalência – Análise do Valor Limite February 7, 2018 64 Técnicas de Modelagem – Teste Unitário Examine o código abaixo: Através da técnica de cobertura de decisão, qual é o número mínimo de testes necessários para cobrir 100% das decisões ? a) 1 b) 2 c) 3 d) 4 February 7, 2018 65 Técnicas de Modelagem – Teste Unitário February 7, 2018 66 Técnicas de Modelagem – Teste Unitário Examine o código abaixo: X Y 3 2 3 0 0 2 0 0 February 7, 2018 67 Técnicas de Modelagem – Teste Unitário Examine o código abaixo: Resposta: c) 3 X Y 3 2 3 0 0 * 0 0 February 7, 2018 68 Técnicas de Modelagem – Teste Unitário Teste Unitário – Cobertura de Decisão Métodos: tomarDecisão() casarComAlguem() comprarBicicleta() Parâmetros: estaGordo querEmagrecer querEngordar queroCasar queroBike February 7, 2018 69 Técnicas de Modelagem – Teste Unitário February 7, 2018 70 Técnicas de Modelagem – Teste Unitário February 7, 2018 71 Técnicas de Modelagem – Teste Unitário February 7, 2018 72 Teste de Software February 7, 2018 73 Técnicas de Modelagem – Teste de Sistema Teste de Sistema – Casos de Uso February 7, 2018 74 Técnicas de Modelagem – Teste de Sistema February 7, 2018 75 Técnicas de Modelagem – Teste de Sistema Campo Formato Tamanho Obrigatório Login Somente letras 30 Sim Senha Alfanumérico 20 Sim Data Reserva Date (dd/mm/aaaa) 8 Sim February 7, 2018 76 Técnicas de Modelagem – Teste de Sistema Teste de Login Teste 1 Teste 2 Teste 3 Teste 4 Login Válido Válido Inválido Inválido Senha Válido Inválido Válido Inválido Resultado Fluxo Básico Fluxo Alternativo February 7, 2018 77 Testes de Sistema - Casos de Uso Teste de Login Teste 1 Teste 2 Teste 3 Teste 4 Login Válido Válido Inválido Inválido Senha Válido Inválido Válido Inválido Resultado Login OK Login NOK Login NOK Login NOK Categoria Fluxo Básico Fluxo Alternativo Teste de Login Teste 1 Teste 2 Teste 3 Teste 4 Login Válido Válido Inválido Inválido Senha Válido Inválido Não utilizado! Inválido Resultado Login OK Login NOK Login NOK Login NOK Categoria Fluxo Básico Fluxo Alternativo February 7, 2018 78 Técnicas de Modelagem – Teste de Sistema Teste de Login Teste 1 Teste 2 Teste 3 Teste 4 CPF (Login) Válido Válido Inválido Inválido Senha Válido Inválido Não utilizado! Inválido Resultado Login OK Login NOK Login NOK Login NOK Categoria Fluxo Básico Fluxo Alternativo Teste de Reserva Teste 4 Teste 5 Teste 6 Data Reserva Válido 1 Válido 2 Inválido Resultado Reserva Disp. ”Reserva Indisp.” “Res. Indisp” ou Erro Categoria Fluxo Básico Fluxo Alternativo February 7, 2018 79 Técnicas de Modelagem – Teste de Sistema Partição de Equivalência 1. Dividir/particionar as entradas em grupos que tenham comportamento similar, podendo ser tratados da mesma forma 2. É necessário testar apenas uma condição de cada partição 3. Partições válidas e inválidas são consideradas February 7, 2018 80 Técnicas de Modelagem – Teste de Sistema Partição de Equivalência Exemplo - Um programa valida um campo numérico inteiro da seguinte maneira: Valores inferiores ou iguais a 0 são rejeitados; Valores entre 1 e 130 são aceitos; Valores maiores ou iguais a 131 são rejeitados. Qual alternativa contém os valores de entrada que cobre todas as partições de equivalência? a) -1, 50, 120 b) 0, 1, 131 c) -131, 65, 130 d) 10, 130, 200 February 7, 2018 81 Técnicas de Modelagem – Teste de Sistema Partição de Equivalência Exemplo - Um programa valida um campo numérico inteiro da seguinte maneira: Valores inferiores ou iguais a 0 são rejeitados; Valores entre 1 e 130 são aceitos; Valores maiores ou iguais a 131 são rejeitados. Qual alternativa contém os valores de entrada que cobre todas as partições de equivalência? a) -1, 50, 120 b) 0, 1, 131 c) -131, 65, 130 d) 10, 130, 200 0-1 130-131 February 7, 2018 82 Técnicas de Modelagem – Teste de Sistema Partição de Equivalência Exemplo - Um programa valida um campo numérico inteiro da seguinte maneira: Valores inferiores ou iguais a 0 são rejeitados; Valores entre 1 e 130 são aceitos; Valores maiores ou iguais a 131 são rejeitados. Qual alternativa contém os valores de entrada que cobre todas as partições de equivalência? a) -1, 50, 120 b) 0, 1, 131 c) -131, 65, 130 d) 10, 130, 200 0-1 130-131 February 7, 2018 83 Técnicas de Modelagem – Teste de Sistema Análise do Valor Limite 1. Limites são áreas onde os testes estão mais propensos a indicar defeitos 2. Os valores-limites de uma partição são seu mínimo e máximo February 7, 2018 84 Técnicas de Modelagem – Teste de Sistema Análise do Valor Limite Um campo referente ao ano de registro aceita valores entre 1860 e 2860. Utilizando a técnica do valor limite, o teste usaria quais valores? a) 0, 1860, 2860, 3000 b) 1860,2860 c) 1859,1861, 1900, 2859, 2860, 2861 d) 1859, 1860, 2860, 2861 1859 = Valor limite mínimo inválido 1860 = Valor limite mínimo válido 2860 = Valor limite máximo válido 2861 = Valor limite máximo inválido 1859-1860 2860-2861 February 7, 2018 85 Técnicas de Modelagem – Teste de Sistema Análise do Valor Limite Um campo referente ao ano de registro aceita valores entre 1860 e 2860. Utilizando a técnica do valor limite, o teste usaria quais valores? a) 0, 1860, 2860, 3000 b) 1860,2860 c) 1859,1861, 1900, 2859, 2860, 2861 d) 1859, 1860, 2860, 2861 1859 = Valor limite mínimo inválido 1860 = Valor limite mínimo válido 2860 = Valor limite máximo válido 2861 = Valor limite máximo inválido 1859-1860 2860-2861 February 7, 2018 86 Técnicas de Modelagem – Teste de Sistema Partição de Equivalência x Análise do Valor Limite Qual das técnicas utilizar ? DEPENDE!! - Regras de negócio - Probabilidade de erros - Tipo de tecnologia, interface (UI x UX) - Tipo de dados (text, alpha, date, etc) - Indústria (Sistema de e-commerce x Sistema aéreo) February 7, 2018 87 Técnicas de Modelagem – Teste de Sistema Exercício Um campo de entrada (input field) referente ao ano de nascimento aceita valores de 1900 até 2004. Utilizando a análise do valor limite o teste usaria quais valores? a) 0, 1900, 2004, 2005; b) 1900, 2004; c) 1899,1900, 2004, 2005; d) 1899, 1900, 1901, 2003 ,2004, 2005. February 7, 2018 88 Técnicas de Modelagem – Teste de Sistema Exercício Um campo de entrada (input field) referente ao ano de nascimento aceita valores de 1900 até 2004. Utilizando a análise do valor limite o teste usaria quais valores? a) 0, 1900, 2004, 2005; b) 1900, 2004; c) 1899,1900, 2004, 2005; d) 1899, 1900, 1901, 2003 ,2004, 2005. February 7, 2018 89Teste de Software February 7, 2018 90 Escrevendo Casos de Testes 1. Sempre validar: ▪ IDs e títulos ▪ Modelos (templates) ▪ Linguagem a ser utilizada (“Clicar” ou “Clique”) ▪ Ferramentas 2. Descrição do Caso de Teste ▪ Objetivo: deve conter o que vai ser testado e como será validado ▪ Pré-requisitos (executar “test_001”, existir uma venda, etc) ▪ Dados necessários (CPF de comprador, CNPJ de vendedor, etc) ▪ Permissões especiais (usuário administrador, etc) ▪ Ambiente (ambiente de teste com servidor de email funcional, etc) ▪ Ferramentas externas (gerador de CPFs, editor SQL) 3. Passo-a-passo Os passos devem cobrir o requisito a ser validado, através de pontos de verificação (i.e., deve ser possível “comprovar”) Escrever os passos “ordenando” ao usuário: “Selecione” ou “Preencha” February 7, 2018 91 Escrevendo Casos de Testes 4. Resultado esperado Os passos devem descrever com clareza o resultado esperado, além de ser facilmente verificável 5. Organizar testes por funcionalidade/tipo Ex: fluxo básico, fluxo alternativo, validação de campos/erros, etc 6. Linguagem direta e objetiva ▪ “Direto ao ponto” (“3 W’s”: What, When, Where) ▪ Evitar ambiguidade: “se”, “quando”, “talvez”, “caso” etc ▪ minimizar o número de verificações por passo (evitar passos longos) 7. Reusabilidade/Manutenção ▪ Escrever os testes de forma que sua estrutura possa ser reutilizada em outros módulos, funcionalidades ▪ Testes escritos de forma a facilitar a revisão e retrabalho. Ex: evitar longos parágrafos, organizar o texto dentro da caixa de texto. February 7, 2018 92 Exemplos de Casos de Teste February 7, 2018 93 Exercício prático – parte 1 ESCREVER casos de teste de sistema para a aplicação “Formulário de Contato” observando os requisitos: • Todos os campos são obrigatórios • Os campos de datas possuem validação de formato dd/mm/aaaa • O campo Nome deve conter no máximo 50 caracteres • O campo Email deve conter no máximo 40 caracteres • Data Inicio do curso não pode ser posterior a Data Fim do curso • O formulário deve ter o mesmo comportamento em todos os navegadores • É permitido apenas um cadastro por usuário Em DUPLAS, elaborar os casos de teste em planilha Excel com as colunas: ID, Nome do CT, Ação, Resultado Esperado URL da aplicação: https://goo.gl/forms/YJhnAzmlF3hmFfxo1 February 7, 2018 94 Exercício prático – parte 1 Iremos agora inserir os CTs no TestLink No painel esquerdo “Especificar Testes” clicar no link “Especificar Casos de Testes” Clique no grupo de acordo com o seu usuário (Ex.: diurno5 / Grupo5) em seguida, clique na engrenagem e depois no ícone + em Operações do Caso de Teste: Na tela seguinte, preencha os dados do caso de teste seguindo orientações do instrutor. URL: http://52.33.6.170/testlink Usuário: diurno1, diurno2, noturno5, etc Senha: diurno1, diurno2, noturno5, etc February 7, 2018 95 Executando Casos de Testes • Ler e entender o Caso de Teste antes de iniciar sua execução • Seguir à risca os passos descritos no Caso de Teste • Evidenciar todos os passos em um documento ou ferramenta de controle de execução (Testlink, MTM, etc), através de captura de tela ou o que for determinado pelo projeto • Se necessário, retrabalhar o caso de teste e atualizar na ferramenta • Caso o resultado observado seja diferente do esperado, investigar proativamente com o time/líder/arquiteto para determinar se um defeito deve ser registrado • Em caso de defeito, descrever com clareza e objetividade, fornecendo anexos com prints/vídeos de telas, dados utilizados e se necessário, logs February 7, 2018 96 Exercício prático – parte 2 EXECUTAR os casos de teste desenvolvidos na etapa de modelagem utilizando o Testlink: • Cada grupo deve executar somente os CTs da sua pasta. Respeite os colegas! • Para cada passo, registrar o seu resultado (Pass/Fail). Em caso de falha, registrar a falha ocorrida no campo de anotações do passo e forneça uma evidência (print) do defeito, anexando-o ao passo. • No final do caso de teste, não esqueça de registrar o tempo de execução do teste e registrar o status (Pass/Fail) através dos ícones. • Se você julgar necessário executar algum passo adicional ou se algum passo estiver incorreto, registre a alteração no campo “Notas/Descrição”. NÃO alterar os testes diretamente! • Fornecer descrições completas do(s) defeito(s) encontrado(s), lembre-se que quanto mais completa for a descrição, mais rápida será a correção do problema! URL do Testlink: http://52.33.6.170/testlink URL da aplicação: https://goo.gl/forms/YJhnAzmlF3hmFfxo1 February 7, 2018 97 Profissional da área de Testes ▪ Ter boas habilidades de comunicação ▪ Saber lidar com pessoas (conflito “desenvolvedor x testador x cliente”) ▪ Ser curioso, paciente e detalhista ▪ Ser criativo e inovador, capaz de criar processos e metodologias para identificar prováveis pontos de falha ▪ Ter alguma experiência com programação e banco de dados ▪ Experiências em várias indústrias (financeiro, telecom, logística, etc) ▪ Estar disposto a aprender constantemente novas tecnologias e ferramentas February 7, 2018 98 Profissional da área de Testes ▪ Área relativamente nova e em grande expansão ▪ Grandes empresas de TI procuram profissionais qualificados, projetos demandam níveis cada vez maiores de qualidade ▪ Escassez de profissionais qualificados na área ▪ Várias oportunidades em projetos internacionais ▪ Curva de aprendizagem rápida ▪ Certificações ISTQB/BSTQB, ITIL, Scrum Master, etc ▪ Pode tornar-se um profissional destacado com poucos anos de carreira February 7, 2018 99 Mesa Redonda Thank you.