Boas Práticas de Casos de Teste

시작하기. 무료입니다
또는 회원 가입 e메일 주소
Boas Práticas de Casos de Teste 저자: Mind Map: Boas Práticas de Casos de Teste

1. Entendimento do caso de teste

1.1. Simplicidade e clareza

1.1.1. Deve ser simples e fácil de entender, para que possa ser concluído por outras pessoas, quando necessário. (Rohit Yadav, GURU99, Bala Murugan, Blog PractiTest e Site Software Testing Class)

1.1.2. Deve ser claro e conciso o suficiente, com instruções bem claras que descrevam o que é esperado que os testadores façam e seja compreendido por diversas pessoas. (Site softwaretestinghelp, Site Global App Testing e Kuldeep Rana)

1.1.3. Utilize uma breve descrição que seja fácil de entender e que consiga descrever seu objetivo. (Janvi B Bhuva)

1.1.4. Deve ter etapas simples, transparentes e fáceis de entender, evitando frases compostas ao escrever as etapas de execução. (Priyal Mangla e Site Software Testing Class)

1.1.5. Deve ser autoexplicativo, ou seja, que possa ser testado por outras pessoas. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira, Priyal Mangla e Site Software Testing Class )

1.1.6. Deve ser escrito de forma que seja válido, breve e curto. (Site Software Testing Class)

1.1.7. Deve ter uma finalidade e o objetivo. (Livro "Engenharia de Software" - Roger S. Press,am e Bruce R. Maxim)

1.1.8. Empregue a especificação funcional para tornar a documentação mais clara. ("Software Testing Best Practices" - Ram Chillarege)

1.2. Precisão

1.2.1. Mantenha a precisão dos seus casos de teste. (Rohit Yadav)

1.2.2. Evite ambiguidade no escopo do caso de teste. (Kuldeep Rana)

1.2.3. Deve ser descrito de forma direta e mais detalhada possível para cada campo ou item de forma individual do caso de teste. (Livro Teste de Software – Rios, Emerson, Moreira, Trayahú e (Priyal Mangla)

1.3. Domínio

1.3.1. Tenha o conhecimento de domínio detalhado do sistema. (Bala Murugan)

1.3.2. Deve-se ter coesão em seu conjunto de casos de teste e precisa ser adaptado à escala do seu projeto. (Site Global App Testing)

1.3.3. Deve ser exclusivo para o cenário para o qual você está escrevendo. E também ser específico para uma função e pontos específicos. (Janvi B Bhuva)

1.3.4. Defina as partes do software a serem testadas. ("Elaboração de um processo de teste com base em um estudo de caso real" - Kamilla Gomes Camargo)

1.4. Nomenclatura e identificação

1.4.1. Utilize convenções de nomenclaturas corretas e uniformes. (Rohit Yadav, Bala Murugan e Kuldeep Rana)

1.4.2. Deve-se identificar os casos de teste com IDs. (GURU99)

1.5. Requisitos de softwares relacionados

1.5.1. Identifique a especificação de cada caso de teste. (Rohit Yadav)

1.5.2. Mantenha os requisitos do cliente ao escrever os cenários de teste. (Priyal Mangla e Shreya Bose - Site BrowserStack)

1.5.3. Inclua os requisitos não funcionais nos casos de teste. (Site Software Testing Class)

1.5.4. Liste as integrações dos casos de teste com outros módulos do sistema, se houver. (Site Software Testing Class)

1.5.5. Escreva os casos de teste com base documento de especificação de requisitos e verifique se a implementação está conforme o documento de requisitos. (Site Software Testing Class, (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú, Shreya Bose - Site BrowserStack ,"Helping Students Appreciate Test-Driven Development (TDD)" - Jaime Spacco e William Pugh, "Software Testing Best Practices" - Ram Chillarege, "Ensino Integrado de Fundamentos de Programação e Teste de Software" - Camila Kozlowski Della Corte e "Geração Automática de casos de teste CSP Orientada por Propósitos" - Sidney de Carvalho Nogueira)

1.5.6. Derive os casos de testes a partir dos requisitos do sistema. ("Jogo para o Apoio ao Ensino do Teste de Caixa-Preta" - Lucio L. Diniz, Rudimar L. S. Dazzi)

1.5.7. Identifique as condições de teste a partir dos requisitos do sistema. ("Elaboração de um processo de teste com base em um estudo de caso real" - Kamilla Gomes Camargo e Livro "Documentação em Projetos de Teste de Software" - Emerson Rios)

1.5.8. Crie os casos de teste com base no modelo de requisitos funcionais. (Livro "Introdução ao Teste do Software" - Márcio Eduardo Delamaro, José Carlos Maldonado, Mario Jino)

1.5.9. Execute o caso de teste para verificar se o que foi especificado está devidamente implementado. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira)

1.5.10. Crie um procedimento de teste. Ele define os casos de teste específicos destinados a garantir que todos os requisitos funcionais sejam satisfeitos. (Livro "Engenharia de Software" - Roger S. Press,am e Bruce R. Maxim)

1.5.11. Desenvolva os casos de teste baseados na estrutura lógica interna do software. ("Arte ou prática em teste de software?" - Marcelo Becker Franzen e Carlo Gabriel Porto Bellini)

1.5.12. Inclua um número máximo de requisitos de teste, que são estabelecidos a partir da especificação do software. ("Uma ferramenta baseada em aspectos para o teste funcional de programas Java" - Adenilso da Silva Simão, Paulo Masiero e José Carlos Maldonado)

1.5.13. Deve-se relacionar o caso de teste a um requisito de conformidade que fora associado aos propósitos de teste. ("COFI: Uma abordagem combinando teste de conformidade e injeção de falhas para validação de software em aplicações espaciais" - Ana Maria Ambrosi)

1.5.14. Verifique a conformidade entre uma especificação e uma implementação. ("Geração Automática de Casos de Teste para Sistemas Baseados em Agentes Móveis" - André Luiz Lima de Figueiredo)

1.6. Usuário Final

1.6.1. Crie os casos de teste com o usuário final em mente. (GURU99, Site Software Testing Class e Rohit Yadav)

1.6.2. Coloque o nome do cliente ou do usuário final. (Priyal Mangla)

1.6.3. Crie os casos de teste de acordo com as necessidades do cliente. (Shreya Bose - Site BrowserStack)

1.6.4. Escreva casos de teste que abordem diversas funções de usuário. (Shreya Bose - Site BrowserStack)

1.6.5. Use cenários de usuários (User Scenarios). Uma vantagem é a redução da complexidade da escrita do documento de caso de teste. ("Software Testing Best Practices" - Ram Chillarege)

1.7. Suposição

1.7.1. Evite a suposição na escrita dos casos de teste. (GURU99, Kuldeep Rana e Priyal Mangla)

1.7.2. Fuja das suposições nos casos de teste. Deve-se levar em consideração a documentação de requisitos. (Bala Murugan)

1.7.3. Liste as suposições, caso existam. (Site Software Testing Class)

2. Classificação do caso de teste

2.1. Prioridade

2.1.1. Priorize os seus casos de teste. (Site softwaretestinghelp, Rohit Yadav e Priyal Mangla )

2.1.2. Defina a prioridade. Revise a ordem de elaboração dos casos de teste, de modo a garantir que os cenários de maior risco fiquem prontos primeiro. Também aplique a regra 80/20. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira e Blog PractiTest)

2.2. Relevância

2.2.1. Execute os casos de teste regurlamente para manter a sua relevância. (Blog PractiTest)

2.2.2. Atenda aos requisitos do cliente e escreva em seus casos de teste. (Bala Murugan)

2.2.3. Devem ser relevantes. (Priyal Mangla)

2.3. Listagem e classificação

2.3.1. Crie uma lista dos seus testes e organize o seu trabalho antes de começar a escrita . (Blog PractiTest e Bala Murugan)

2.3.2. Faça a classificação com base em cenários de negócios e funcionalidade. (Blog PractiTest)

2.3.3. Faça uma lista de sequência dos casos de teste. (Site softwaretestinghelp)

2.3.4. Organize os casos de teste por agrupamento e lote. (Site softwaretestinghelp)

2.3.5. Realize a divisão de casos de testes em uma série de etapas concisas que irão indicar se um recurso funciona ou não. (Site Global App Testing)

2.3.6. Agrupe os casos de teste com entradas e configurações comuns em suítes de teste. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira)

2.3.7. Classifique a complexidade, utilizando critérios de quantidade de processamentos e a quantidade de verificações a se fazer. ("Proposta metodológica para a elaboração orçamentária de testes de software" - Luciana Vago Matielia e Fernando Oliveira de Araujo)

3. Resultado da execução do caso de teste

3.1. Descrição dos resultados

3.1.1. Mantenha duas planilhas separadas: uma para bugs e uma para resumo dos casos de teste. (Site softwaretestinghelp)

3.1.2. Adicione o resultado do teste (Aprovado / Reprovado). (Janvi B Bhuva)

3.1.3. Examine os resultados obtidos e os resultados esperados. (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú)

3.2. Mensurável

3.2.1. Mensure os casos de teste, para que, no final da execução do teste, possa dizer se o teste foi aprovado ou não. (Janvi B Bhuva)

4. Manutenibilidade do caso de teste

4.1. Rastreabilidade

4.1.1. Mantenha a rastreabilidade de cada caso de teste. (Kuldeep Rana e Livro "Engenharia de Software" - Roger S. Press,am e Bruce R. Maxim)

4.1.2. Deve ser fácil de rastrear e estar de acordo com os requisitos. (Rohit Yadav, Site Software Testing Class, Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira e "Elaboração de um processo de teste com base em um estudo de caso real" - Kamilla Gomes Camargo)

4.1.3. Adicione data, hora e o nome do testador nos comentários do documento. (Site softwaretestinghelp)

4.1.4. Assuma as responsabilidades dos casos de teste. Cada testador de software deve ser responsável apenas pelos casos de teste atribuídos a ele. (Priyal Mangla)

4.1.5. Forneça o ID do requisito relacionado ao caso de teste. (Site Software Testing Class)

4.1.6. Tenha uma associação entre as funcionalidades listadas. Esse cuidado facilitará a montagem da matriz de rastreabilidade do projeto. (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú)

4.1.7. Defina a rastreabilidade entre os casos de teste e as condições de teste. (Livro "Documentação em Projetos de Teste de Software" - Emerson Rios)

4.2. Manutenção/atualização

4.2.1. Realize a manutenção e atualização após a finalização dos casos de teste. (Bala Murugan e "Elaboração de um processo de teste com base em um estudo de caso real" - Kamilla Gomes Camargo)

4.2.2. Esteja atento às atualizações do produto a fim de manter a atualização do caso de teste. (Priyal Mangla)

4.2.3. Deve ser escrito de forma que seja fácil de se manter. (Site Software Testing Class)

4.2.4. Tenha procedimentos de alterações do documento e histórico de alterações. (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú)

4.2.5. Aumente a manutenibilidade, configurabilidade e reusabilidade dos casos de teste, para maximizar o retorno do esforço investido na escrita. ("Geração automática de casos de teste CSP orientada por propósitos" - Sidney de Carvalho Nogueira)

4.3. Unicidade

4.3.1. Evite a repetição; o caso de teste tem que ser independente. (GURU99, Rohit Yadav, Bala Murugan, Kuldeep Rana e Site Software Testing Class)

4.3.2. Deve-se evitar as repetições, as duplicidades e irrelevância. (GURU99, Priyal Mangla)

4.3.3. Evite a redundância. (Kuldeep Rana)

4.4. Tamanho

4.4.1. Limite a extensão da escrita dos casos de teste. Ela não precisa nem ser muito longa e nem muito curta. (Blog PractiTest)

4.4.2. Divida os casos de teste longos em menores. (Bala Murugan)

4.5. Interdependência

4.5.1. Deve-se ter etapas de teste atômico e tendência a interdependência. Além de ser pequeno e isolado. (Site softwaretestinghelp e (Site Software Testing Class)

4.5.2. Elabore os cenários atualizados, inclusive a sequência de execução dos diversos casos de testes e a interdependência que os mesmos mantém entre si. (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú)

4.6. Reutilização e Independência

4.6.1. Torne o caso de teste o mais reutilizável possível. (Rohit Yadav, Bala Murugan)

4.6.2. Evite o quanto possível os casos de teste dependentes. (Shreya Bose - Site BrowserStack e Priyal Mangla)

4.6.3. Deve-se testar apenas uma única unidade da funcionalidade, sem fundir ou sobrepor várias partes testáveis. (Kuldeep Rana)

4.6.4. Deve ser independente no sentido de que deve ser possível executar individualmente e para o melhor entendimento. Precisa ser abstrato, pois o caso de teste independe da implementação. ("COFI: Uma abordagem combinando teste de conformidade e injeção de falhas para validação de software em aplicações espaciais" - Ana Maria Ambrosi, Janvi B Bhuva e Site Software Testing Class)

5. Planejamento do Caso de Teste

5.1. Planejamento

5.1.1. Planeje todo o processo de teste para que o mesmo fique mais eficiente. (Rohit Yadav)

5.1.2. Elabore de forma dinâmica os casos de teste durante o decorrer do projeto. (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú)

5.1.3. Registre todo o planejamento dos testes dos requisitos estabelecidos durante o ciclo de desenvolvimento do software. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira)

5.1.4. Escreva os casos de teste no início do ciclo de desenvolvimento. ("Helping Students Appreciate Test-Driven Development (TDD)" - Jaime Spacco e William Pugh, "Ensino integrado de fundamentos de programação e teste de software - Camila Kozlowski Della Corte")

5.1.5. Crie os casos de teste nas diferentes fases do ciclo de vida para testar os produtos da própria fase e para serem usados na implementação do código. ("Sistema de gerenciamento de testes funcionais de software" - Everton Luiz Kolm)

5.1.6. Utilize teste funcional para que seus casos de teste sejam planejados exclusivamente pelas especificações dos componentes de implementação. ("Especificação de uma Técnica para Estimativa de Elaboração e Execução de Testes Funcionais" - Helena Monici Cabrini)

5.1.7. Planeje as atividades de teste. ("Jogo educacional para apoiar o ensino de técnicas para a elaboração de testes de unidade" - Antônio Carlos Silva)

5.1.8. Use uma série de técnicas, critérios e métodos para escrever os casos de teste. ("Jogo educacional para apoiar o ensino de técnicas para a elaboração de testes de unidade" - Antônio Carlos Silva)

5.2. Revisão

5.2.1. Realize a revisão por pares dos casos de teste. (GURU99 e Site Software Testing Class)

5.2.2. Faça revisões e atualizações regulares. (Site softwaretestinghelp e Priyal Mangla)

5.2.3. Revise a escrita, completando o que for necessário. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira)

5.2.4. Utilize critérios de teste para avaliar os casos de teste. ("Ensino integrado de fundamentos de programação e teste de software" - Camila Kozlowski Della Corte)

5.3. Especificação de Caso de Teste

5.3.1. Utilize a especificação funcional para realizar a escrita de caso de teste. (Software Testing Best Practices - Ram Chillarege)

5.3.2. Deve-se escrever no caso de teste somente ações necessárias para atingir o propósito do teste. ("COFI: Uma abordagem combinando teste de conformidade e injeção de falhas para validação de software em aplicações espaciais" - Ana Maria Ambrosi)

5.3.3. Use a Especificação de Caso de Teste, que inclui dados de entrada, resultados esperados, ações e condições gerais para a execução do teste. ("Especificação de uma Técnica para Estimativa de Elaboração e Execução de Testes Funcionais" - Helena Monici Cabrini)

5.4. Cobertura

5.4.1. Garanta 100% de cobertura. (GURU99, Bala Murugan, Priyal Mangla)

5.4.2. Mantenha a cobertura dos casos de teste como “bom o suficiente”.(Blog PractiTest)

5.4.3. Estabeleça uma meta de cobertura de teste. (Bala Murugan, "Ensino integrado de fundamentos de programação e teste de software" - Camila Kozlowski Della Corte)

5.4.4. Crie os casos de teste negativos. (Site softwaretestinghelp)

5.4.5. Realize os testes para garantir a cobertura máxima. (Tarang Vyas)

5.4.6. Use uma matriz de rastreabilidade para garantir 100% de cobertura nos casos de teste. (Kuldeep Rana)

5.4.7. Cubra as funcionalidades, compatibilidades, interface de IU, tolerância a falhas e desempenhos nos seus casos de teste. (Site Software Testing Class)

5.4.8. Realize a cobertura dos casos de teste não funcional e de usabilidade. (Site Software Testing Class)

5.4.9. Planeje os casos de teste para realizar a cobertura de 100% de cada componente, recurso e função descritos no documento de requisitos. (Shreya Bose - Site BrowserStack)

5.4.10. Tenha o nível de cobertura esperado dos testes nos casos de teste. (Livro "Teste de Software" – Rios, Emerson, Moreira, Trayahú)

5.4.11. Utilize a especificação que identifica a cobertura definida para o teste e os casos de teste derivados dessa cobertura. (Livro "Documentação em Projetos de Teste de Software" - Emerson Rios, "Geração Automática de casos de teste CSP orientada por propósitos" - Sidney de Carvalho Nogueira)

5.4.12. Apresente a cobertura, seja escrito ou em código. ("Helping Students Appreciate Test-Driven Development (TDD)" - Jaime Spacco e William Pugh)

5.4.13. Escreva os testes funcionais com entradas diferentes, assim é possível garantir uma cobertura adequada. ("Software Testing Best Practices" - Ram Chillarege)

5.4.14. Analise os resultados obtidos, pode revelar a cobertura dos seus casos de teste. ("Elaboração de um processo de teste com base em um estudo de caso real" - Kamilla Gomes Camargo)

5.4.15. Realize a elaboração dos testes, com técnicas que visam de maneira geral, uma melhor cobertura com um conjunto reduzido de casos de teste. ("Jogo educacional para apoiar o ensino de técnicas para a elaboração de testes de unidade" - Antonio Carlos Silva)

5.4.16. Use métricas de cobertura com relação às especificações. ("Geração Automática de Casos de Teste para Sistemas Baseados em Agentes Móveis" - André Luiz Lima de Figueiredo)

5.5. Técnicas e processos de teste

5.5.1. Considere técnicas de teste nas elaborações de casos de teste. (GURU99)

5.5.2. Defina os processos de teste, métodos, ferramentas, matriz RACI e comunicações no documento de caso de teste. (Tarang Vyas)

5.5.3. Aplique técnicas de design de teste. (Kuldeep Rana, Site Software Testing Class)

5.5.4. Realize a execução utilizando as técnicas de classe de equivalência e análise de valor-limite. ("Jogo para o Apoio ao Ensino do Teste de Caixa-Preta" - Lucio L. Diniz, Rudimar L. S. Dazzi)

5.6. Seleção de casos de testes

5.6.1. Crie diretrizes de testes para auxiliar nas escolhas de casos de testes. Essas diretrizes encapsulam o conhecimento de quais tipos são eficazes para a descoberta de erros. (Livro "Engenharia de Software" - Ian Sommerville)

5.6.2. Selecione os casos de teste com base nos cenários e nas variações de determinado requisito de software. Cada cenário será representado por um caso de teste. (Livro "Base de conhecimento em Teste de Software" - Aderson Bastos, Emerson Rios, Ricardo Cristalli, Trayahú Moreira)

5.6.3. Identifique estratégias que levam a identificação e que tenham maiores chances de revelar falhas e incidentes. ("Geração automática de casos de teste CSP orientada por propósitos" - Sidney de Carvalho Nogueira)

6. Ambientação de teste

6.1. Ambiente

6.1.1. Retorne o ambiente de teste ao estado de pré-teste. (GURU99)

6.1.2. Inclua detalhes do ambiente de teste. (Site softwaretestinghelp)

6.1.3. Personalize e execute os casos de teste em um ambiente diferente daquele usado para desenvolvimento. (Site Global App Testing)

6.1.4. Configure ambientes para a execução automática dos testes. ("Software Testing Best Practices" - Ram Chillarege)

6.2. Ferramenta de Teste

6.2.1. Use uma boa ferramenta de gerenciamento de caso de teste. (Priyal Mangla, Site Software Testing Class, Shreya Bose - Site BrowserStack)

6.2.2. Escreva os casos de teste na planilha do Excel (Site Software Testing Class)

6.2.3. Arquive os seus casos de teste com marcação e catalogação sistemática, de uma maneira que permita que um sistema de gerenciamento de teste consiga acessar a qualquer momento. (Shreya Bose - Site BrowserStack)

6.2.4. Utilize ferramentas de apoio ao teste estrututal, pois possibilitam a análise de cobertura. (Livro "Introdução ao Teste do Software" - Márcio Eduardo Delamaro, José Carlos Maldonado, Mario Jino)

6.2.5. Use ferramentas de integração de teste manual, pois ajudam a desenvolver e gerenciar os casos de teste produzidos manualmente. (Livro "Engenharia de Software" - Roger S. Press,am e Bruce R. Maxim)

6.2.6. Utilize ferramentas que podem auxiliar tanto na criação quanto no gerenciamento. ("Elaboração de um processo de teste com base em um estudo de caso real" - Kamilla Gomes Camargo)

6.3. Teste Automatizado

6.3.1. Use 30% da tarefa de teste automatizado para a escrita de casos de teste. ("Software Testing Best Practices" - Ram Chillarege)

7. Outros

7.1. Estruturação do Teste

7.1.1. Elabore um State Task Diagram (Diagrama de Tarefa de Estado). Que permite a criação de casos de testes automaticamente. ("Software Testing Best Practices" - Ram Chillarege)

7.1.2. Use notações formais como sistemas rotulados por transição e máquinas de estado finitas nos casos de testes. ("Geração automática de casos de teste CSP orientada por propósitos" - Sidney de Carvalho Nogueira)