Como bons casos de teste são projetados?

Neste artigo, falamos principalmente sobre a habilidade mais comum e fundamental de um engenheiro de teste, a capacidade de projetar casos de teste.

caso de teste

Um caso de teste é um documento projetado para focar em como produzir resultados específicos usando a tecnologia de teste determinada no plano de teste para refinar e refinar passo a passo as condições de teste determinadas.

Em termos leigos, é transformar as ações que você deseja testar em quais circunstâncias, quais ações fazer, quais métodos de dados usar e que tipo de resultados você deseja obter no final em um caso de teste. Portanto, cada caso de teste deve ter suas pré-condições, seus eventos e parâmetros correspondentes e, por fim, os resultados esperados. Este é um caso de teste qualificado.

Por exemplo, a função de login, agora basicamente todos os sites, aplicativos etc. botão de login e consulte Você fez login com sucesso. Esta é a operação mais simples e constitui nosso primeiro e mais normal caso de teste. Também inclui vários elementos mencionados acima:

Pré-condição : um usuário existente

Ações  e parâmetros: Insira o nome de usuário e a senha corretos e clique em Login

·  Resultado esperado: login bem-sucedido

Este é obviamente um caso de teste completo, mas obviamente não é suficiente para um módulo de login, este é apenas um dos casos de teste qualificados neste módulo. Então, como escrever mais casos de teste? Agora é hora de olhar para o nosso verbo: design. O design na verdade corresponde a um conjunto de métodos, somente com o método correto podemos projetar casos de teste qualificados.

projeto de caso de uso

Métodos de design de caso de teste mais comuns

·  Método de divisão de classes de equivalência

·  Método de valor limite

·  Método de design de diagrama de causa e efeito

·  Método de design da tabela de decisão

·  Método experimental ortogonal

·  Erro de cálculo

·  Método de cena

Quanto aos princípios, princípios e como usar, há muita informação na Internet, então não vou falar sobre isso aqui. Existem tantos métodos, então como escolher ao projetar. Aqui está uma piada que está circulando na Internet

Escolha a equivalência para classificação de entrada, adicione limites para um determinado intervalo, combine condições para determinar causa e efeito, determine se as condições são isoladas, use ortogonalidade para exaustão infinita, use método de cenário de negócios complexo, confie na experiência para adivinhação de erros e cubra totalmente o teste.

Todos esses métodos podem ser usados? A resposta é não.No meu teste de cognição, os métodos mais usados ​​são valor de fronteira, classe de equivalência, método de cenário e suposição de erro. Então, para resumir, nossas ideias de design no trabalho real são provavelmente:

·  Use o método de divisão de classe de equivalência para dividir a maioria dos casos de teste de design de cenário

Em qualquer caso, o método de análise de valor limite deve ser usado. A experiência mostra que os casos de teste projetados com esse método têm a capacidade mais forte de encontrar erros  de programa

·  A complexidade de negócios do programa é relativamente alta, então use o método de cenário para complementar parte dos casos de teste

·  Se você estiver muito familiarizado com o negócio, você pode adicionar alguns casos de teste com base em sua experiência onde erros são propensos a ocorrer

Com base nesse método de design, que ainda é a interface de login original, podemos projetar aproximadamente os seguintes casos de teste:

1. Para um usuário existente, insira o nome de usuário e a senha corretos, clique em Login e verifique se o login foi bem-sucedido;

2. Não insira nenhum conteúdo, clique em Login diretamente, verifique se o login falha e se as informações do prompt estão corretas;

3. Para um usuário existente, insira o nome de usuário correto e a senha incorreta, clique em Login, verifique se o login falha e se as informações do prompt estão corretas;

4. Usuários A e B existentes, insira o nome de usuário de A e a senha de B, clique em Login, verifique se o login falhou e as informações do prompt estão corretas; insira um nome de usuário não existente e qualquer senha, clique em Login, verifique se o login falha, e informações imediatas corretas;

5. Para usuários que já existem, mas têm status anormal (como desativado, congelado, bloqueado), insira o nome de usuário e a senha corretos, clique em Login, verifique se o login falha e se as informações do prompt estão corretas;

6. Para um usuário existente, o nome de usuário está em minúsculas, digite o nome de usuário em maiúsculas e a senha correta, clique em Login e verifique se o login falha;

7. Para um usuário existente, a senha está em minúsculas, insira o nome de usuário correto e a senha em maiúsculas, clique em Login e verifique se o login falha;

8. Se a senha é automaticamente criptografada e exibida ou contém funções ocultas/exibidas e verifique se ela pode ser usada normalmente;

9. Se os direitos do usuário são diferenciados e se o administrador e o usuário comum fazem login com sucesso e saltam corretamente;

10. Se a caixa de entrada de nome de usuário e senha tem um limite de tamanho e se é consistente com o requisito de tamanho durante o registro;

11. Se o código de verificação será exibido automaticamente se a falha de login atingir um determinado número de vezes;

12. Se houver um código de verificação, digite o nome de usuário e senha corretos e o código de verificação correto para verificar se o login foi bem-sucedido;

13. Se houver um código de verificação, digite o nome de usuário e senha corretos e o código de verificação errado para verificar se o login falhou;

14. Quando houver um código de verificação, clique na imagem do código de verificação (ou altere um botão) para alterar o código de verificação e se o código de verificação substituído está disponível;

15. Se houver um código de verificação, clique na imagem do código de verificação (ou altere um botão) para substituir o código de verificação, faça o login com o código de verificação antes da substituição e verifique se o login falha;

16. Se o código de verificação da página de atualização segue a atualização;

17. Se o código de verificação expirou, digite o código de verificação atual para verificar se o login falhou;

18. Após o login falhar, se o nome de usuário é salvo e a senha está vazia;

19. Se existe uma função de lembrar o nome de usuário e lembrar a senha e se está disponível;

20. Se a tecla de atalho está disponível e se a senha não pode ser colada;

21. Se TAB e ENTER podem pular automaticamente para o controle e enviar automaticamente;

22. Se suporta login de terceiros (WeChat, Alipay, QQ, Weibo, etc.) e se a verificação do login está correta;

23. Se ele suporta login com código de verificação de telefone celular, se o telefone celular pode receber mensagens de texto e se o login pode ser bem-sucedido;

24. O código de verificação no celular expirou. Se você usar o código de verificação expirado para fazer login, você pode fazer login com sucesso?

25. Se deve redirecionar para a página de login após o término da sessão do usuário;

26. Após o logout do usuário, se a operação pode ser continuada através do botão Voltar;

27. Se tem a função de esquecer a senha e se está disponível.

OK, apenas listei alguns, mas se eu fosse avaliar este conjunto de casos de uso neste momento, eu o classificaria como 80. Deve haver amigos que querem me xingar pelo nome real, já tão abrangente, o que mais você precisa? Por que apenas 80 pontos? Isso envolve a terceira dimensão do tema que estamos discutindo hoje, o adjetivo "excelente".
 

Fale sobre excelentes casos de teste

Para um conjunto de casos de teste, apenas casos de teste completos, repetíveis, verificáveis ​​e abrangentes são os melhores casos de teste.

teste de registro de dados

O chamado teste de registro de dados inclui principalmente itens de teste que não podemos ver no front-end, na página ou no APP. Deixe-me dar alguns exemplos:

·  Se o campo de senha do banco de dados está criptografado ou não

Se o número de falhas de login é registrado no banco de dados e no cache e se a lógica está correta

·  Se o status do banco de dados é modificado corretamente em cenários como falha de login e congelamento

Se  o log de erros está completo e fácil de solucionar

Se o objeto é fácil de  localizar e fácil de automatizar

Se  há um aumento de pontos ocultos para análise de comportamento do usuário

Teste de interface do usuário

Para testes diários, o teste da interface e da experiência do usuário também é muito necessário. O uso de TAB e ENTER é na verdade um tipo de experiência do usuário, portanto, se você deseja testar de forma mais abrangente, também deve considerar o teste de interface.

Se  o layout é razoável e alinhado

Se o design da interface é consistente com os requisitos e documentos  de design da interface do usuário

·  Se há erros de digitação ou pontuação

·  A correspondência de cores da página é apropriada?

·  Se o texto do erro é claro e fácil de entender

Se  o efeito visual da interface é apropriado e se a exibição da animação da interface é suave

teste de compatibilidade

Se é  compatível com diferentes sistemas operacionais (Windows, MAC OS, LINUX)

· Sob diferentes versões do mesmo sistema operacional, se pode ser exibido normalmente e a função está correta

Se é compatível com diferentes navegadores (Chrome, IE, FireFox, etc.)

Se  diferentes versões do mesmo navegador são compatíveis

·  Se o terminal móvel é compatível

Se  é compatível para exibir ao aumentar e diminuir o zoom da interface

Se a exibição da interface  está correta em diferentes idiomas

Se  possui um modo de leitura de alto contraste (preparado para pessoas com deficiência visual)

Teste de performance

Os testes de desempenho podem ser divididos em desempenho do lado do servidor e desempenho de front-end, que também precisam ser considerados de forma abrangente. Ao mesmo tempo, os indicadores e cenários de desempenho também variam de acordo com diferentes módulos, diferentes empresas e diferentes necessidades. Darei brevemente algumas comparações aqui. Exemplo genérico:

·  Interface de login de usuário simultâneo máximo (tempo de resposta dentro de 3s)

·  Métricas de desempenho para servidores em testes de carga específicos

Indicadores de estabilidade e desempenho dos  serviços durante testes de estresse

·  Lógica de processamento distribuído de serviço, lógica de balanceamento de carga, uso de cache e fila

·  A simultaneidade máxima da interface que pode ser suportada

Processamento de GC  , se há estouro de memória, etc.

Se o banco de dados tem [url=]SQL[/url] lento e impasse sob alta simultaneidade 

·  Velocidade de carregamento da página

·  Tamanho do recurso da página, se deve aplicar Sprite

·  Análise YSLOW, desempenho estático

teste de segurança

Por último, mas não menos importante, está o nosso teste de segurança mais negligenciado. Em muitos casos, tendemos a ignorar as ameaças trazidas pela segurança, mas na verdade, uma vez que ocorre um problema de segurança, a perda será muito maior do que o impacto de um determinado bug. Vamos primeiro apresentar brevemente as medidas de teste de segurança que devem ser tomadas na interface de login e, em seguida, falaremos sobre todos os aspectos do teste de segurança em detalhes.

Verifique  se os dados críticos são transmitidos por HTTP ou HTTPS

Se deve  incluir senhas fracas

Se  é fácil ser quebrado pela força bruta

Se  deve usar a autenticação multifator

Se deve  usar a autenticação de exclusão mútua para login

·  Força do token de sessão gerado (sessionID)

Se  há um vazamento de token de sessão na transmissão

·  Se contém brechas não autorizadas

·  Se você pode fazer login com sucesso usando a senha universal

Se  é possível executar injeção cega de SQL

·  Segurança de criptografia de armazenamento de senha

Se  tem defesa contra ataques XSS (cross-site scripting)

Se  contém vulnerabilidade de ataque CSRF

·  Evite ataques man-in-the-middle durante a transmissão de token ou senha

Escrito no final, a execução dos casos de teste também deve estar ligada à urgência do projeto real. Obviamente, o projeto é muito urgente e precisa ser lançado. É possível executar todos os casos de uso acima? Então nada pode ser alcançado, portanto, a prioridade dos casos de teste deve ser clara. Execute casos de uso prioritários relativamente apropriados no momento apropriado para garantir a qualidade do produto.

Por fim, gostaria de agradecer a todos que leram meu artigo com atenção. A reciprocidade é sempre necessária. Embora não seja uma coisa muito valiosa, você pode retirá-la se precisar:

Esses materiais devem ser o armazém de preparação mais abrangente e completo para amigos [de teste de software]. Este armazém também acompanhou dezenas de milhares de engenheiros de teste na jornada mais difícil e espero que possa ajudá-lo! 

Acho que você gosta

Origin blog.csdn.net/OKCRoss/article/details/131327433
Recomendado
Clasificación