what is system testing ultimate beginner s guide
O que é teste de sistema em teste de software?
Teste do sistema significa testar o sistema como um todo. Todos os módulos / componentes são integrados de forma a verificar se o sistema funciona como esperado ou não.
O teste do sistema é feito após o teste de integração. Isso desempenha um papel importante na entrega de um produto de alta qualidade.
Lista de tutoriais:
O processo de teste de um sistema integrado de hardware e software para verificar se o sistema atende aos requisitos especificados.
Verificação : Confirmação por exame e provisão de evidências objetivas de que os requisitos especificados foram atendidos.
Se um aplicativo tiver três módulos A, B e C, o teste feito pela combinação dos módulos A e B ou módulo B e C ou módulo A e C é conhecido como teste de integração. Integrar todos os três módulos e testá-lo como um sistema completo é denominado como teste do sistema.
O que você aprenderá:
- Minha experiência
- Aproximação
- Por que testar o sistema?
- Este é um teste de caixa-branca ou caixa-preta?
- Como realizar o teste do sistema?
- Vantagens
- Critérios de entrada / saída
- Plano de Teste do Sistema
- Procedimento para escrever casos de teste de sistema
- Casos de teste do sistema
- Tipos de teste de sistema
- O que é teste de integração de sistema?
- Diferença entre teste de sistema e aceitação
- Dicas para realizar o teste do sistema
- Conclusão
- Leitura recomendada
Minha experiência
Então ... você realmente acha que vai demorar tanto tempo para testar, o que você chama Teste de Sistema , mesmo depois de investir muito esforço no Teste de Integração?
O cliente que abordamos recentemente para o projeto não estava convencido sobre a estimativa que fornecemos para cada esforço de teste.
Tive de dar um exemplo:
Mike, gostaria de explicar nossos esforços e a importância dos testes de sistema com um exemplo.
Atire, ele respondeu.
Exemplo de teste de sistema
Um fabricante de automóveis não produz o carro como um carro completo. Cada componente do carro é fabricado separadamente, como assentos, direção, espelho, freio, cabo, motor, estrutura do carro, rodas etc.
Depois de fabricar cada item, ele é testado independentemente se está funcionando da maneira que deveria funcionar e isso é chamado de teste de unidade.
como remover o elemento do array em java
Agora, quando cada peça é montada com outra peça, essa combinação montada é verificada se a montagem não produziu nenhum efeito colateral na funcionalidade de cada componente e se ambos os componentes estão trabalhando juntos conforme o esperado e isso é chamado de teste de integração.
Depois que todas as peças estão montadas e o carro está pronto, ele não está realmente pronto.
Todo o carro precisa ser verificado quanto a diferentes aspectos de acordo com os requisitos definidos, como se o carro pode ser dirigido sem problemas, freios, marchas e outras funcionalidades funcionando corretamente, o carro não mostra nenhum sinal de cansaço após ser dirigido por 2500 milhas continuamente, cor de carro é geralmente aceito e apreciado, o carro pode ser dirigido em qualquer tipo de estrada, como lisa e áspera, desleixada e reta, etc. e todo esse esforço de teste é chamado de Teste de Sistema e não tem nada a ver com teste de integração.
O exemplo funcionou da maneira esperada e o cliente ficou convencido sobre os esforços necessários para o teste do sistema.
Eu narrei o exemplo aqui para encorajar a importância desse teste.
Aproximação
É executado quando o teste de integração é concluído.
É principalmente um teste de tipo caixa preta. Este teste avalia o funcionamento do sistema do ponto de vista do usuário, com a ajuda de um documento de especificação. Não requer nenhum conhecimento interno de sistemas, como o design ou a estrutura do código.
Ele contém áreas funcionais e não funcionais de aplicativo / produto.
Critérios de foco:
Ele se concentra principalmente no seguinte:
- Interfaces externas
- Multiprograma e funcionalidades complexas
- Segurança
- Recuperação
- atuação
- Interação suave do operador e do usuário com o sistema
- Instalabilidade
- Documentação
- Usabilidade
- Carga / Estresse
Por que testar o sistema?
# 1) É muito importante completar um ciclo de teste completo e ST é a fase em que isso é feito.
#dois) O ST é realizado em um ambiente semelhante ao ambiente de produção e, portanto, as partes interessadas podem ter uma boa ideia da reação do usuário.
# 3) Ajuda a minimizar a solução de problemas após a implantação e as chamadas de suporte.
# 4 ) Neste estágio de STLC, os requisitos de Arquitetura de Aplicativo e Negócios, ambos são testados.
Este teste é muito importante e desempenha um papel significativo na entrega de um produto de qualidade ao cliente.
Vamos ver a importância desse teste por meio dos exemplos abaixo, que incluem nossas tarefas do dia a dia:
- E se uma transação online falhar após a confirmação?
- E se um item colocado no carrinho de um site online não permitir a realização de um pedido?
- E se em uma conta do Gmail a criação de um novo rótulo der um erro ao clicar na guia criar?
- E se o sistema travar quando uma carga for aumentada no sistema?
- E se o sistema travar e não for capaz de recuperar os dados conforme desejado?
- E se a instalação de software no sistema demorar muito mais tempo do que o esperado e, no final, resultar em erro?
- E se o tempo de resposta de um site aumentar muito mais do que o esperado após o aprimoramento?
- E se um site ficar muito lento e o usuário não conseguir reservar sua passagem?
Acima estão apenas alguns exemplos para mostrar como o Teste do Sistema afetaria se não fosse feito de maneira adequada.
Todos os exemplos acima são apenas o resultado de um teste de sistema não executado ou feito de maneira inadequada. Todos os módulos integrados devem ser testados para garantir que o produto funcione de acordo com os requisitos.
Este é um teste de caixa-branca ou caixa-preta?
O teste de sistema pode ser considerado uma técnica de teste de caixa preta.
Teste de caixa preta A técnica não requer conhecimento interno do código, enquanto a técnica da caixa branca requer conhecimento interno do código.
Durante a execução do teste do sistema funcional e não funcional, a segurança, o desempenho e muitos outros tipos de teste são cobertos e são testados usando uma técnica de caixa preta em que a entrada é fornecida ao sistema e a saída é verificada. Não é necessário conhecimento interno do sistema.
Técnica da caixa preta:
Como realizar o teste do sistema?
É basicamente uma parte do teste de software e o Plano de Teste deve sempre conter espaço específico para este teste.
Para testar o sistema como um todo, os requisitos e expectativas devem ser claros e o testador também precisa entender o uso do aplicativo em tempo real.
Além disso, as ferramentas de terceiros mais usadas, versões de sistemas operacionais, sabores e arquitetura de sistemas operacionais podem afetar a funcionalidade, desempenho, segurança, capacidade de recuperação ou instalação do sistema.
Portanto, ao testar o sistema, uma imagem clara de como o aplicativo será usado e que tipo de problemas ele pode enfrentar em tempo real pode ser útil. Além disso, um documento de requisitos é tão importante quanto entender a aplicação.
Um documento de requisitos claro e atualizado pode salvar o testador de uma série de mal-entendidos, suposições e perguntas.
Resumindo, um documento de requisitos pontual e nítido com as atualizações mais recentes, juntamente com uma compreensão do uso de aplicativos em tempo real, pode tornar o ST mais produtivo.
Esse teste é feito de maneira planejada e sistemática.
A seguir, estão as várias etapas envolvidas durante a realização deste teste:
- A primeira etapa é criar um plano de teste.
- Crie casos de teste de sistema e scripts de teste.
- Prepare os dados de teste necessários para este teste.
- Execute os casos de teste e o script do sistema.
- Relate os bugs. Testando novamente os bugs uma vez corrigidos.
- Teste de regressão para verificar o impacto da mudança no código.
- Repetição do ciclo de teste até que o sistema esteja pronto para ser implantado.
- Assine a licença da equipe de teste.
O que testar?
Os pontos declarados abaixo são cobertos neste teste:
- Teste de ponta a ponta o que inclui verificar a interação entre todos os componentes e junto com os periféricos externos para garantir que o sistema funcione bem em qualquer um dos cenários é abordado neste teste.
- Ele verifica se a entrada fornecida ao sistema fornece o resultado esperado.
- Ele verifica se todos os requisitos funcionais e não funcionais foram testados e se eles funcionam conforme o esperado ou não.
- Para isso e o teste exploratório pode ser executado neste teste após a conclusão do teste de script. Teste exploratório e o teste ad-hoc ajuda a revelar os bugs que não podem ser encontrados nos testes com script, pois dá liberdade aos testadores para testar, pois seu desejo é baseado em sua experiência e intuição.
Vantagens
Existem várias vantagens:
- Este teste inclui cenários de ponta a ponta para testar o sistema.
- Esse teste é feito no mesmo ambiente do ambiente de Produção, o que ajuda a entender a perspectiva do usuário e evita os problemas que podem ocorrer quando o sistema entra em operação.
- Se esse teste for feito de maneira sistemática e adequada, isso ajudará a atenuar os problemas de pós-produção.
- Este teste testa a arquitetura do aplicativo e os requisitos de negócios.
Critérios de entrada / saída
Vamos dar uma olhada detalhada nos critérios de entrada / saída para teste do sistema.
Critério de entrada:
- O sistema deve ter passado nos critérios de saída do teste de integração, ou seja, todos os casos de teste devem ter sido executados e não deve haver P1 crítico ou de Prioridade, um bug P2 em estado aberto.
- Plano de teste para este teste deve ser aprovado e assinado.
- Os casos / cenários de teste devem estar prontos para serem executados.
- Os scripts de teste devem estar prontos para serem executados.
- Todos os requisitos não funcionais devem estar disponíveis e casos de teste para os mesmos devem ter sido criados.
- O ambiente de teste deve estar pronto.
Critério de saída:
- Todos os casos de teste devem ser executados.
- Nenhum bug crítico, de prioridade ou relacionado à segurança deve estar aberto.
- Se algum bug de média ou baixa prioridade estiver em estado aberto, ele deve ser implementado com a aceitação do cliente.
- O relatório de saída deve ser enviado.
Plano de Teste do Sistema
Plano de Teste é um documento usado para descrever a finalidade, objetivo e escopo de um produto a ser desenvolvido. O que deve ser testado e o que não deve ser testado, estratégias de teste, ferramentas a serem usadas, ambiente necessário e todos os outros detalhes são documentados para prosseguir com o teste.
O Plano de Teste ajuda a prosseguir com o teste de uma maneira muito sistemática e estratégica e ajuda a evitar quaisquer riscos ou problemas durante a realização do teste.
O Plano de Teste do Sistema cobre os seguintes pontos:
- Propósito e objetivo são definidos para este teste.
- Escopo (Recursos a serem testados, Recursos a não serem testados são listados).
- Critérios de aceitação do teste (critérios nos quais o sistema será aceito, ou seja, os pontos mencionados nos critérios de aceitação devem estar no estado aprovado).
- Critérios de entrada / saída (define os critérios de quando o teste do sistema deve começar e quando deve ser considerado concluído).
- Cronograma de teste (estimativa de teste a ser concluído em um momento específico).
- Estratégia de Teste (Inclui técnicas de teste).
- Recursos (número de recursos necessários para o teste, suas funções, disponibilidade de recursos, etc).
- Ambiente de teste (sistema operacional, navegador, plataforma).
- Casos de teste (Lista de casos de teste a serem executados).
- Premissas (se houver premissas, elas devem ser incluídas no Plano de Teste).
Procedimento para escrever casos de teste de sistema
Os casos de teste do sistema cobrem todos os cenários e casos de uso e também cobrem casos de teste funcionais, não funcionais, de interface do usuário e relacionados à segurança. Os casos de teste são escritos da mesma maneira que foram escritos para o teste funcional.
Os casos de teste do sistema incluem os campos abaixo no modelo:
- ID de caso de teste
- Nome do conjunto de testes
- Descrição - descreve o caso de teste a ser executado.
- Etapas - procedimento passo a passo para descrever como realizar o teste.
- Dados de teste - dados fictícios são preparados para testar o aplicativo.
- Resultado esperado - o resultado esperado de acordo com o documento de requisito é fornecido nesta coluna.
- Resultado real - o resultado após a execução do caso de teste é fornecido nesta coluna.
- Aprovado / Reprovado - A comparação no resultado real e esperado define os critérios de Aprovado / Reprovado.
- Observações
Casos de teste do sistema
Aqui estão alguns exemplos de cenários de teste para um site de comércio eletrônico:
- Se o site iniciar corretamente com todas as páginas, recursos e logotipo relevantes
- Se o usuário pode se registrar / fazer login no site
- Se o usuário puder ver os produtos disponíveis, ele pode adicionar produtos ao seu carrinho pode fazer o pagamento e pode obter a confirmação via e-mail ou SMS ou chamada.
- Se a principal funcionalidade, como pesquisa, filtragem, classificação, adição, alteração, lista de desejos, etc. funcionar conforme o esperado
- Se o número de usuários (definido como no documento de requisito) pode acessar o site simultaneamente
- Se o site iniciar corretamente em todos os principais navegadores e suas versões mais recentes
- Se as transações estão sendo feitas no site por meio de um usuário específico, são seguras o suficiente
- Se o site iniciar corretamente em todas as plataformas suportadas, como Windows, Linux, Mobile, etc.
- Se a política de devolução do manual / guia do usuário, a política de privacidade e os termos de uso do site estiverem disponíveis como um documento separado e úteis para qualquer novato ou usuário iniciante.
- Se o conteúdo das páginas está devidamente alinhado, bem gerido e sem erros ortográficos.
- Se o tempo limite da sessão estiver implementado e funcionando conforme o esperado
- Se um usuário fica satisfeito depois de usar o site ou, em outras palavras, o usuário não acha difícil usar o site.
Tipos de teste de sistema
ST é chamado de superconjunto de todos os tipos de teste, pois todos os principais tipos de teste são cobertos por ele. Embora o foco nos tipos de teste possa variar com base no produto, nos processos da organização, no cronograma e nos requisitos.
O geral pode ser definido como abaixo:
Teste de funcionalidade: Para certificar-se de que a funcionalidade do produto está funcionando de acordo com os requisitos definidos, dentro das capacidades do sistema.
Teste de Recuperabilidade: Para ter certeza de quão bem o sistema se recupera de vários erros de entrada e outras situações de falha.
Teste de interoperabilidade: Para se certificar de que o sistema pode funcionar bem com produtos de terceiros ou não.
Teste de performance: Para garantir o desempenho do sistema nas várias condições, em termos de características de desempenho.
Teste de escalabilidade: Para garantir a capacidade de dimensionamento do sistema em vários termos, como dimensionamento do usuário, dimensionamento geográfico e dimensionamento de recursos.
Teste de confiabilidade: Para garantir que o sistema pode ser operado por um período mais longo sem desenvolver falhas.
Teste de regressão: Para garantir a estabilidade do sistema conforme ele passa por uma integração de diferentes subsistemas e tarefas de manutenção.
Teste de documentação: Para se certificar de que o guia do usuário do sistema e outros documentos de tópicos de ajuda estão corretos e utilizáveis.
Teste de segurança: Para se certificar de que o sistema não permite o acesso não autorizado a dados e recursos.
Testando usabilidade : Para ter certeza de que o sistema é fácil de usar, aprender e operar.
Mais tipos de teste de sistema
# 1) Teste de interface gráfica do usuário (GUI):
O teste de GUI é feito para verificar se a GUI de um sistema funciona conforme o esperado ou não. A GUI é basicamente o que é visível para o usuário enquanto ele usa o aplicativo. O teste de GUI envolve o teste de botões, ícones, caixas de seleção, caixa de listagem, caixa de texto, menus, barras de ferramentas, caixas de diálogo, etc.
# 2) Teste de compatibilidade:
Teste de compatibilidade é feito para garantir que o produto desenvolvido seja compatível com diferentes navegadores, plataformas de hardware, sistema operacional e bancos de dados de acordo com o documento de requisitos.
# 3) Tratamento de exceções:
O teste de tratamento de exceções é executado para verificar se, mesmo se ocorrer um erro inesperado no produto, ele deve mostrar a mensagem de erro correta e não permitir que o aplicativo seja interrompido. Ele trata a exceção de forma que o erro seja mostrado enquanto o produto se recupera e permite que o sistema processe a transação incorreta.
# 4) Teste de volume:
O Teste de Volume é um tipo de teste não funcional em que o teste é feito usando uma grande quantidade de dados. Por exemplo, o Volume de dados é aumentado no banco de dados para verificar o desempenho do sistema.
# 5) Teste de estresse:
O teste de estresse é feito aumentando o número de usuários (ao mesmo tempo) em um aplicativo a ponto de o aplicativo quebrar. Isso é feito para verificar o ponto em que o aplicativo será interrompido.
# 6) Teste de Sanidade:
Teste de Sanidade é executado quando a construção é lançada com uma mudança no código ou funcionalidade ou se algum bug foi corrigido. Ele verifica se as alterações feitas não afetaram o código e nenhum outro problema ocorreu por causa disso e o sistema funciona como antes.
Caso ocorra algum problema, o build não será aceito para testes adicionais.
Basicamente, o teste completo não é feito para a construção para economizar tempo e custo, pois rejeita a construção para um problema encontrado. O teste de sanidade é feito para a mudança feita ou para o problema corrigido e não para o sistema completo.
# 7) Teste de fumaça:
Teste de Fumaça é um teste executado no build para verificar se o build pode ser testado ou não. Ele verifica se a compilação está estável para teste e se todas as funcionalidades críticas estão funcionando bem. O teste de fumaça é feito para o sistema completo, ou seja, o teste de ponta a ponta é feito.
# 8) Teste Exploratório:
Teste Exploratório como o próprio nome sugere, trata-se de explorar o aplicativo. Nenhum teste com script é executado no teste exploratório. Os casos de teste são escritos junto com o teste. Ele se concentra mais na execução do que no planejamento.
O testador tem a liberdade de testar por conta própria, usando sua intuição, experiência e intelecto. Um testador pode escolher qualquer recurso para testar primeiro, ou seja, ele pode escolher aleatoriamente o recurso para testar, ao contrário das outras técnicas em que a forma estrutural é usada para realizar o teste.
# 9) Teste Adhoc:
Teste Adhoc é um teste informal em que nenhuma documentação ou planejamento é feito para testar o aplicativo. O testador testa o aplicativo sem nenhum caso de teste. O objetivo de um testador é quebrar o aplicativo. O testador usa sua experiência, suposição e intuição para encontrar os problemas críticos do aplicativo.
# 10) Teste de instalação:
Teste de Instalação é verificar se o software foi instalado sem problemas.
Esta é a parte mais importante do teste, pois a instalação do software é a primeira interação entre o usuário e o produto. O tipo de teste de instalação depende de vários fatores como sistema operacional, plataforma, distribuição de software, etc.
Casos de teste que podem ser incluídos se a instalação for feita via internet:
- Velocidade de rede ruim e conexão interrompida.
- Firewall e relacionado à segurança.
- O tamanho e o tempo aproximado são obtidos.
- Instalação / downloads simultâneos.
- Memória insuficiente
- Espaço insuficiente
- Instalação abortada
# 11) Teste de manutenção:
Assim que o produto entrar no ar, o problema pode ocorrer em um ambiente ativo ou pode ser necessário algum aprimoramento no produto.
O produto precisa de manutenção depois de entrar em operação e isso é cuidado pela equipe de manutenção. O teste feito para quaisquer problemas ou melhorias ou migração para o hardware cai sob teste de manutenção.
O que é teste de integração de sistema?
É um tipo de teste no qual a capacidade do sistema de manter a integridade e operação dos dados em coordenação com outros sistemas no mesmo ambiente está sendo verificada.
Exemplo de teste de integração de sistema:
Vejamos o exemplo de um conhecido site de reserva de passagens online - http://irctc.co.in.
Esta é uma facilidade de reserva de bilhetes; um centro de compras online interage com o PayPal. No geral, você pode considerá-lo como A * B * C = R.
Agora, no nível do sistema, a facilidade de reserva de passagens online, a facilidade de compra online e a facilidade de opção de pagamento online podem ser testadas de forma independente, seguidas de testes de integração para cada um deles. E então todo o sistema precisa ser testado sistematicamente.
Então, onde o teste de integração de sistema entra em cena?
O portal da web http://Irctc.co.in é uma combinação de sistemas. Você pode realizar testes no mesmo nível (sistema único, o sistema de sistemas), mas em cada nível, você pode querer se concentrar em riscos diferentes (problemas de integração, funcionalidade independente).
- Ao testar o recurso de reserva de bilhetes online, você pode verificar se é capaz de reservar bilhetes online. Você também pode considerar problemas de integração Por exemplo, A facilidade de reserva de ingressos integra back-end com front-end (UI). Por exemplo, como o front-end se comporta quando o servidor de banco de dados demora para responder?
- Teste da facilidade de reserva de bilhetes online com facilidade de compra online. Você pode verificar se o recurso de compras online está disponível para os usuários logados no sistema para reservar ingressos online. Você também pode considerar a verificação da integração na facilidade de compras online. Por exemplo, se o usuário puder selecionar e comprar um produto sem complicações.
- Teste de integração do recurso de reserva de passagens online com o PayPal. Você pode verificar se, depois de reservar os bilhetes, o dinheiro foi transferido de sua conta do PayPal para a conta de reserva de bilhetes online. Você também pode considerar a verificação de integração no PayPal. Por exemplo, e se o sistema colocar duas entradas em um banco de dados depois de debitar dinheiro apenas uma vez?
Diferençaentre Teste de Sistema e Teste de Integração de Sistema:
A principal diferença é:
- O Teste de Sistema cuida da integridade de um único sistema com ambiente relevante
- O Teste de Integração de Sistema cuida da integridade de vários sistemas entre si, estando no mesmo ambiente.
Assim, o teste do sistema é o início do teste real, onde você testa um produto como um todo e não um módulo / recurso.
Diferença entre teste de sistema e aceitação
A seguir estão as principais diferenças:
Teste de Sistema | Teste de aceitação | |
---|---|---|
1 | O teste de sistema é o teste de um sistema como um todo. O teste ponta a ponta é executado para verificar se todos os cenários estão funcionando conforme o esperado. | O teste de aceitação é feito para verificar se o produto atende aos requisitos do cliente. |
dois | O teste do sistema inclui testes funcionais e não funcionais e é realizado pelos testadores. | O teste de aceitação é um teste funcional e é realizado por testadores e também por um cliente. |
3 | O teste é executado usando dados de teste criados pelos testadores. | Os dados reais / de produção são usados durante o teste de aceitação. |
4 | Um sistema como um todo é testado para verificar a funcionalidade e desempenho do produto. | O teste de aceitação é feito para verificar o requisito do negócio, ou seja, ele resolve o propósito que o cliente está procurando. |
5 | Os defeitos encontrados no teste podem ser corrigidos. | Qualquer defeito encontrado durante o teste de aceitação é considerado uma falha do Produto. |
6 | Os testes de sistema e integração de sistema são tipos de teste de sistema. | Os testes Alfa e Beta estão sob teste de aceitação. |
Dicas para realizar o teste do sistema
- Replique cenários em tempo real em vez de fazer o teste ideal, pois o sistema será usado por um usuário final e não pelo testador treinado.
- Verifique a resposta do sistema em vários termos, pois o ser humano não gosta de esperar ou de ver os dados errados.
- Instale e configure o sistema de acordo com a documentação porque é isso que o usuário final fará.
- Envolver pessoas de diferentes áreas, como analistas de negócios, desenvolvedores, testadores e clientes, pode enviar um sistema melhor.
- O teste regular é a única maneira de garantir que a menor alteração no código para corrigir o bug não tenha inserido outro bug crítico no sistema.
Conclusão
O teste do sistema é muito importante e, se não for feito corretamente, problemas críticos podem ser enfrentados no ambiente ao vivo.
Um sistema como um todo tem características diferentes a serem verificadas. Um exemplo simples seria qualquer site. Se não for testado como um todo, o usuário pode achar que o site é muito lento ou pode travar assim que um grande número de usuários fizer login ao mesmo tempo.
E essas características não podem ser testadas até que o site seja testado como um todo.
Espero que este tutorial tenha sido muito útil para entender o conceito de Teste de Sistema.
Leitura recomendada
- Tipos de teste de software: diferentes tipos de teste com detalhes
- Teste Alfa e Teste Beta (um guia completo)
- O que é Teste de Integração de Sistema (SIT): Aprenda com Exemplos
- Teste Funcional Vs Teste Não Funcional
- Processo de Integração Contínua: Como Melhorar a Qualidade do Software e Reduzir Riscos
- Dez principais ferramentas de teste de integração para escrever testes de integração
- O que é teste de integração (tutorial com exemplo de teste de integração)
- O que é Endurance Testing in Software Testing (exemplos)