how test java applications tips with sample test cases
Neste tutorial, aprenderemos os componentes envolvidos em um aplicativo Java e os vários tipos de testes que precisam ser realizados para garantir um aplicativo de alta qualidade e livre de erros.
Isto é um série de três partes sobre o teste de aplicativos JAVA.
- Neste artigo, aprenderemos os componentes J2EE e a abordagem de teste manual para um aplicativo J2EE.
- No segundo, revisaremos o Teste automatizado abordagem para testar aplicativos J2EE, e
- No terceiro, revisaremos uma lista abrangente de ferramentas que estão disponíveis para testar aplicativos J2EE.
O que você aprenderá:
- Vamos começar com uma visão geral dos aplicativos J2EE
- Testando aplicativo JAVA / J2EE
- Teste manual de aplicativos Java:
- Conclusão
- Leitura recomendada
Vamos começar com uma visão geral dos aplicativos J2EE
PARA Java A aplicação web consiste em vários componentes, cada um servindo a um propósito importante. MVC , que significa Model View Controller, é o padrão de projeto arquitetônico mais popular e usado com frequência.
Antes de aprender a testar, vamos examinar rapidamente o vários componentes de um aplicativo J2EE.

- Cliente / Navegador pede um endereço da web com um URL.
- JSP (Java Server Pages) - JSP é uma tecnologia do lado do servidor destinada a apresentar dados ao usuário. Ele suporta a exibição de conteúdo dinâmico com a ajuda de tags especiais chamadas tags JSP, que ajudam a inserir o código Java nas páginas HTML. (HTML estático sempre exibe o mesmo conteúdo). No tempo de execução, um JSP é convertido em um Servlet. A lógica de negócios normalmente não é escrita aqui.
- JSF (Java Server Faces) - JSF é uma estrutura de componente de visualização para o design eficaz da Interface do usuário.
- Javascript / Jquery - são linguagens de script usadas para validação do lado do cliente da visualização / tela.
- Servlet - Um Servlet valida os dados recebidos da entrada, seleciona o código de lógica de negócios apropriado e passa os valores para o código Bean.
- Enterprise Java Bean (EJB) - É aqui que toda a lógica de negócios é normalmente escrita e tratada. O bean então chama o código para ler, gravar ou atualizar o banco de dados. Depois que as operações do banco de dados são concluídas, a resposta é transferida de volta para o Servlet, que por sua vez seleciona o JSP apropriado para exibir os resultados.
- Serviços web - Webservices são componentes de um aplicativo que é executado em um servidor separado e se comunica por meio do protocolo HTTP.
- Base de dados - armazena todos os dados do aplicativo.
Observe que nem todos os aplicativos da web seguem o JSP -> Servlet -> EJB -> Modelo de banco de dados . A maioria dos aplicativos J2EE é atualmente escrita com uma estrutura como Struts, Spring ou Hibernate. O design dos aplicativos varia para cada requisito com base no tamanho do aplicativo, custo, tempo de desenvolvimento, recursos e tamanho da equipe.
Testando aplicativo JAVA / J2EE
Vamos agora passar para o teste de um aplicativo J2EE inteiro. Isso é feito em várias etapas.Por exemplo, considere que temos três telas:
- Uma tela de login
- Uma tela de exibição de funcionários, que lista todos os funcionários da organização
- Uma tela de modificação / adição / remoção de funcionários.
A UI (User Interface) para essas três telas é desenvolvida em JSP / HTML e as validações são realizadas em JavaScript. Por ser um aplicativo de amostra, a lógica está no Servlet e no DAO (Data Access Object). DAO é uma classe para se conectar ao banco de dados.
Abaixo estão os exemplos de telas:



Teste manual de aplicativos Java:
Durante o teste JAVA manual, um testador prepara os casos de teste a partir do documento de design detalhado e tenta cobrir todos os cenários e fragmentos de código possíveis.
# 1) TESTE DA UNIDADE JAVA
O teste de unidade é um tipo de teste em que um usuário precisa testar o menor dos trechos de código para precisão, correção e atendimento aos requisitos.
Vamos pegar oexemplo da tela de login. A tela de login possui dois campos de texto: nome de usuário e senha, e dois botões: enviar e cancelar.
Os casos de teste devem cobrir todos os loops e instruções condicionais. Os casos de teste devem exibir os resultados esperados e os dados de teste. Abaixo estão alguns dos casos de teste gerais que um usuário pode executar manualmente em uma tela de login. Os resultados são anotados no documento do caso de teste.
Abaixo está um exemplo de formato de caso de teste para a tela de login.
| S.No. | Caso de teste | resultado esperado | Resultado atual | Aprovado / Reprovado |
|---|---|---|---|---|
| 4 | O usuário insere um nome de usuário com mais de 10 caracteres | Mensagem de erro “O nome de usuário não deve ter mais de 10 caracteres” deve ser exibido | A mensagem de erro não é exibida | FALHOU |
| 1 | O usuário verifica a aparência dos rótulos Nome de usuário, Senha | Os rótulos devem ser escritos corretamente e exibidos em fonte de tamanho normal | O nome de usuário e senha do rótulo são exibidos corretamente | PASSAR |
| dois | O usuário verifica a aparência do botão Enviar e cancelar | Os botões devem ser exibidos com o nome correto | Os botões Enviar e Cancelar são exibidos corretamente | PASSAR |
| 3 | O usuário verifica a cor de fundo da tela | O formulário de login deve estar dentro de uma mesa branca e a tela deve ter um fundo cinza | A aparência da tela não atende aos requisitos. | FALHOU |
| 4 | O usuário deixa a caixa de texto do nome de usuário em branco | A mensagem de erro “O nome de usuário não pode estar vazio” deve ser exibida | A mensagem de erro “O nome de usuário não pode estar vazio” é exibida | PASSAR |
| 5 | O usuário insere algum valor na caixa de texto do nome de usuário e deixa a caixa de texto da senha em branco | A mensagem de erro “A senha não pode estar vazia” deve ser exibida | A mensagem de erro “A senha não pode estar vazia” é exibida | PASSAR |
| 6 | O usuário insere o nome de usuário como “abcd” e a senha como “xxxx” | Mensagem de erro “Combinação de nome de usuário e senha inválida” deve ser exibido | Mensagem de erro “Combinação de nome de usuário e senha inválida” é exibido | PASSAR |
| 5 | O usuário digita o nome de usuário como “usuário de teste” e a senha como “senha” e clica no botão Enviar | O usuário deve ser capaz de ver a “tela de detalhes do funcionário” | A tela de detalhes do funcionário é exibida | PASSAR |
Enquanto a tabela lista alguns dos casos de teste, abaixo está a lista completa:
- Verifique se há alguma exceção, incluindo exceção de ponteiro NULL
- Verifique se NULLS não são permitidos para nome de usuário e senha
- Verifique se o nome de usuário / senha está no formato correto
- Verifique se os números não são permitidos para o nome de usuário
- Verifique se caracteres especiais não são permitidos no nome de usuário
- Verifique se a combinação correta de nome de usuário e senha foram inseridos, então o aplicativo leva você para a próxima tela, ou seja, tela de informações do funcionário
- Verifique se o nome de usuário inserido tem o comprimento correto
- Verifique se o campo de texto do nome de usuário permite apenas o número máximo de caracteres especificados para esse campo
- Verifique se o campo de senha, se especificado nos requisitos, está visível como * ao inserir
- Verifique se as senhas diferenciam maiúsculas de minúsculas
- Verifique se o nome de usuário não diferencia maiúsculas de minúsculas
- Verifique se a página de login não lembra o nome de usuário ou a senha, mesmo depois de sair
- Verifique se os botões Enviar e Cancelar funcionam de acordo com o requisito
- Se estiver usando o aplicativo pela primeira vez, verifique se o nome de usuário tem permissão para entrar no aplicativo
- Exclua uma combinação de nome de usuário / senha do banco de dados e verifique se a combinação não consegue fazer o login novamente
- Para todos os casos acima, verifique se as mensagens de erro de validação apropriadas são mostradas
- Verifique se os rótulos e botões estão no lugar certo na tela e se exibem o texto corretamente
- Verifique se as aparências da tela estão de acordo com os requisitos
- Verifique se as exceções são tratadas
- Verifique se o registro é executado para as ações necessárias
Depois de passar pelos casos de teste, você pode perceber que está lidando principalmente com o teste de campos, botões, funcionalidade e validações de uma tela específica. Isso é preciso, já que o Teste de Unidade lida de maneira muito aguda com o teste de cada pequeno fragmento de código e componente. O mesmo tipo de teste deve ser executado para todas as telas.
Observe que os itens acima são apenas exemplos e os casos de teste são preparados com base em um documento de design detalhado e específico do projeto.
Leia também=> Amostra de casos de teste prontos para uso e cenários de teste para teste de aplicativos da web.
# 2) TESTE DE INTEGRAÇÃO
No teste de integração, os módulos individuais são integrados e testados juntos para correção.
como fazer uma cópia profunda de um array java
Deixe que cada uma das três telas do exemplo acima seja desenvolvida por três membros de equipe diferentes. Agora que eles concluíram os testes de unidade, é hora de reunir todo o código e verificar se eles funcionam bem juntos. O teste de integração é executado para garantir que os dados ou controle sejam transferidos corretamente de uma tela para outra.
Aqui estão alguns casos de teste de integração de amostra para o exemplo de aplicativo do funcionário:
- Verifique se o usuário logado e a sessão são os mesmos em todas as outras novas telas integradas
- Verifique se os outros módulos não estão atualizando / excluindo / inserindo algum registro no banco de dados desnecessário
- Deixe haver um campo de status do funcionário, que diz 'Novo' na adição, 'Atualizado' na modificação e 'Excluído' na exclusão. Embora duas ou três telas possam usar o mesmo campo de status, é importante garantir que o campo não esteja sendo atualizado incorretamente.
- Verifique se o cabeçalho, rodapé, tamanho da tela e aparência atendem aos requisitos após a integração
- Verifique se ao clicar nos botões Enviar, o controle é transferido para a próxima tela
- Verifique se ao clicar no botão Cancelar, a ação realizada é cancelada
Além disso, os casos de teste de integração geral para um aplicativo J2EE podem ser:
- Verifique o fluxo de dados, seja Objeto, XML ou Sessão de ponta a ponta. Verifique a exatidão.
- Verifique se a sessão é gerenciada corretamente por cada um dos módulos
- Se aplicativos externos (serviços da web) estiverem envolvidos, verifique se seu aplicativo é capaz de fazer chamadas e recuperar dados do aplicativo
# 3) TESTE DE SISTEMA
No teste do sistema, todo o aplicativo é testado quanto à funcionalidade e integridade em relação aos requisitos. Provavelmente seria mais fácil perguntar quando o teste de unidade de cada componente é executado e os componentes de código também são combinados e testados durante o teste de integração, o que poderia ser diferente no teste do sistema? Não é impreciso dizer que a ideia no Teste de Sistema é quebrar o aplicativo :)
Cenário 1: Você desenvolve um novo aplicativo para funcionários com uma estrutura;por exemplo, Struts. Existem também vários outros aplicativos em execução em servidores diferentes em sua organização. No entanto, todos eles chamam o mesmo serviço da web existente para buscar o endereço e o número de telefone de qualquer pessoa em particular.
Durante o teste de integração, você teria testado se seu aplicativo é capaz de fazer uma chamada para o serviço da web e se você pode obter a resposta. Mas e se houver um problema no próprio serviço da web? Ou o serviço da web não responde a algumas entradas raras? O serviço web, em nosso caso, só pode ter um número de funcionário de no máximo 6 caracteres. Ou o serviço da web lança exceções para determinados formatos de endereço ao retornar. Isso é externo, mas também faz parte do teste do sistema.
Cenário # 2 : Sua inscrição de funcionário está completa. Você adiciona um funcionário e isso gera um número de funcionário # 1001. Você modifica, exclui, atualiza, adiciona, modifica, exclui, adiciona, adiciona, adiciona, modifica, exclui e finalmente adiciona outro. E se o número do novo funcionário for novamente # 1001?
Cenário # 3 : Vamos supor que dois usuários estejam usando o aplicativo ao mesmo tempo. Ambos começam a trabalhar no mesmo funcionário, um exclui. E se o outro usuário puder prosseguir com a modificação dos mesmos funcionários, uma vez que está armazenado na sessão?
Abaixo estão alguns aspectos importantes dos testes do sistema:
- Certifique-se de que o fluxo de dados e controle está correto de de ponta a ponta
- Garanta a segurança dos dados da transação
- Certifique-se de que o aplicativo segue todas as funcionalidades de negócios
- Verifique se o aplicativo funciona bem como um produto final - verifique links quebrados, gerenciamento de sessão, cookies, registro, tratamento de erros, tratamento de exceções, validação e fluxo de transação.
# 4) TESTE DE DESEMPENHO
Este tipo de teste é realizado quando haveria um grande número de usuários usando o aplicativo ou uma grande quantidade de dados no banco de dados, ou ambos. Abaixo estão alguns dos casos:
- Se vários usuários fizerem login ao mesmo tempo, verifique se os aplicativos não param / travam
- Se uma grande quantidade de dados estiver disponível no banco de dados - verifique se as grades da tela de pesquisa não demoram muito para executar as consultas antes do tempo limite da sessão
- Em um ambiente multi-threaded, verifique se o aplicativo é capaz de lidar bem com todos os threads
- Em aplicativos onde um grande número de objetos é criado, verifique se memória suficiente está alocada, a coleta de lixo é tratada e se não há exceções de falta de memória
Conclusão
Neste artigo, cobrimos uma visão geral de um aplicativo J2EE. Também vimos como realizar manualmente os testes de Unidade, Integração, Funcional e Sistema para cada um dos componentes do aplicativo com um exemplo.
No próximo artigo , veremos como o teste de automação pode ser benéfico para grandes aplicativos J2EE.
Sobre o autor: Este é um artigo convidado de Padmavaty S. Com mais de 7 anos de experiência em testes de software, ela tem ampla experiência em testes de estruturas Java, J2EE, MVC e Struts.
Informe-nos se você está testando aplicativos JAVA. Compartilhe sua experiência e dúvidas nos comentários abaixo.
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Exemplos de exemplos de perguntas para a certificação do teste ISTQB com respostas
- Como realizar testes de automação de aplicativos JAVA / J2EE (parte 2)
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- As 20 principais dicas práticas de teste de software que você deve ler antes de testar qualquer aplicativo
- Testando aplicativos de saúde - dicas e cenários de teste importantes (parte 2)
- Como encontrar um bug no aplicativo? Dicas e truques
- Teste de banco de dados com JMeter
- Java Virtual Machine: como a JVM ajuda na execução de aplicativos Java