Tipos de teste de software

Neste artigo, você pode encontrar muitas informações úteis sobre tipos e ferramentas de teste de software, que são usadas durante suas implementações.

O que é um tipo de teste de software?

Atualmente, não há uma definição geralmente aceita do “tipo de teste de software”. Não é incomum quando métodos, níveis ou até mesmo técnicas de projeto de teste são definidos como o tipo de teste. Por exemplo, às vezes, o teste de caixa branca, o teste de integração ou até mesmo o teste de limite são considerados como tipos de teste.

É necessário referir-se a fontes oficiais para evitar interpretações ambíguas. O International Software Testing Qualifications Board (ISTQB) é a organização internacional respeitável que oferece certificações em testes de software, reconhecidos em todo o mundo.

De acordo com a definição do ISTQB, os tipos de teste são “Significa definir claramente o objetivo de um determinado nível para um programa ou projeto” . O testador se concentra em um objetivo de teste específico durante a execução do caso de teste. Dependendo de seus objetivos, existem quatro tipos de teste de software:

  • Teste funcional
  • Teste não funcional
  • Teste estrutural
  • Alterar testes relacionados

Claro, existem muitos subtipos de testes. Você pode vê-los na figura abaixo:

tipos de testes de software
Então, vamos saber mais sobre todos os tipos de testes.

Teste funcional

O teste funcional verifica se cada função do aplicativo de software opera em conformidade com a especificação do requisito. Teste funcional mostra “O que o sistema faz”.  O objetivo deste teste é verificar se o sistema é funcionalmente perfeito.

Cinco etapas precisam ser lembradas no teste funcional:

  • Preparação de dados de teste com base nas especificações de funções
  • Requisitos de negócios são as entradas para testes funcionais
  • Descobrir a saída das funções com base em especificações funcionais;
  • A execução de casos de teste
  • Observe as saídas reais e esperadas.

Existem duas perspectivas em que a funcionalidade de teste pode ser feita a partir de testes baseados em requisitos e

Testes baseados em processos de negócios.

Teste baseado em requisitos  é realizado em estrita conformidade com os requisitos definidos.

Testes baseados em processos de negócios  é realizado de acordo com o conhecimento baseado no uso comercial diário do sistema.

Vantagens de testes funcionais:

  • O teste funcional simula o uso real do sistema.
  • Ele é executado nas condições próximas às do cliente.
  • Nenhuma suposição de estrutura do sistema é feita ao fornecer testes funcionais.
  • É fácil fazer testes manuais.

Limitações do teste funcional:

  • Existe a grande possibilidade de testes redundantes.
  • Erros lógicos no software podem ser perdidos ao fornecer testes funcionais.

É fácil encontrar e usar ferramentas para testes funcionais. Os mais conhecidos são: Selênio  (aplicativo da web e de desktop), Robótica (App Android), Projeto de teste do Linux , JUnit, Sprinter pela Hewlett Packard Entreprise (teste manual), Browserstack  (testes automatizados e manuais), Usersnap  (teste manual).

Tipos de testes não funcionais

Tipos de testes não funcionais estão preocupados com os requisitos não funcionais. O teste não funcional ajuda a estimar a prontidão de um sistema de acordo com os diferentes critérios que não são cobertos pelo teste funcional. Ao contrário do teste funcional, mostra “Como é bom o sistema funciona”.
Vamos considerar a variedade de subtipos em abundância de testes não funcionais.

Teste de Interface do Usuário (UI)  destina-se a garantir que a interface gráfica do usuário atenda às especificações. Isso ajuda a avaliar elementos de design, como layout, cores, fontes, tamanhos de fonte, rótulos, caixas de texto, formatação de texto, legendas, botões, listas, ícones, links e conteúdo.

Abordagens para testes de interface do usuário: o manual baseado, registro e resposta, baseado em modelo.

As ferramentas e estruturas especiais mais populares para testes de interface do usuário: FitNesse , iMacros, UI codificada, Jubula, LoadUI .
Teste de experiência do usuário (UX) visa verificar a interação do cliente com os produtos e serviços da empresa. Na verdade, o UX é muito mais do que a interface visual do seu produto. Contém:

  • As impressões que o cliente tira da interação com o produto ou serviço.
  • O cliente processado deve descobrir o produto ou serviço da empresa.
  • A sequência de ações que o cliente faz quando interage com a interface.

As ferramentas e estruturas especiais para testes UX: Usabilla , Omnigraffle , Visual Web Optimizer , UXPin , Ovo maluco .
Teste de armazenamento  verifica o aplicativo em teste, armazena os dados relevantes nos diretórios corretos e possui espaço suficiente para impedir a finalização inesperada devido ao espaço insuficiente em disco. Isso ajuda a determinar se o aplicativo usa ou não mais memória do que o estimado, já que preencher o espaço em disco pode causar um tempo de inatividade significativo.

As ferramentas são frequentemente usadas para testes de armazenamento: HCIbench , Iometer , Utilitário Diskspd .
Teste operacional  visa avaliar um sistema ou componente em seu ambiente operacional. Ao usá-lo, podemos garantir a conformidade do sistema e dos componentes no ambiente operacional padrão do aplicativo.

O teste operacional está relacionado ao comportamento de implementação do sistema. Esse teste se concentra principalmente na prontidão operacional do sistema, que supostamente imita o ambiente de produção.

Testes de segurança  destina-se a garantir que o sistema de informação protege os dados e mantém a funcionalidade como pretendido. Teste de penetração e teste de vulnerabilidade  são as espécies de tipos de teste de segurança.

Teste de penetração  é a simulação de ataque a fontes maliciosas, que permite avaliar a segurança de um sistema ou rede de computadores.

Teste de vulnerabilidade  tem como objetivo avaliar o quantum de riscos envolvidos no sistema, a fim de reduzir a probabilidade do evento. Ajuda a evitar problemas que possam afetar a integridade e a estabilidade do aplicativo.

As ferramentas como Comunidade Retina CS , OWASP Zed Attack Proxy , Veracode, Google Nogotofail, e mapa do SQL  são frequentemente usados para testes de segurança.

Teste de configuração  realizada para verificar o sistema com cada uma das configurações de software e hardware suportadas:

  • Configuração do sistema operacional – Win 7 32 bits / 64 bits, Win 8 32 bits / 64 bits, Win 7 32 bits / 64 bits, Win 8 32 bits / 64 bits.
  • Configuração do Banco de Dados – Oracle, DB2, MySQL, MSSQL Server, Sybase.
  • Configuração do navegador – IE 10, IE 11, Mozilla Firefox, Google Chrome.

Existem diferentes tipos de testes de configuração, como Testes de conversão, testes entre navegadores, testes de portabilidade binária e Teste de plataforma cruzada .

Teste de conversão  garante a conversão correta de dados de sistemas existentes para uso em sistemas de substituição.

Testes entre navegadores  realizada para verificar o trabalho correto do aplicativo ou sistema em diferentes configurações de navegador: Mozilla Firefox, Google Chrome, Internet Explorer e Opera etc.

Ao contrário dos testes entre navegadores, Teste de plataforma cruzada  destina-se a avaliar o trabalho de aplicação em diferentes sistemas operacionais: Windows, iOS / Mac OS, Linux, Android e BlackBerry etc.

Teste de portabilidade binária  ajuda a avaliar a portabilidade do software, executando o software em diferentes plataformas e ambiente. Ele é usado para confirmação de uma especificação de interface binária de aplicativo (ABI).

As principais ferramentas que são frequentemente usadas para todos os tipos de testes de configuração: BrowserStack, CrossBrowserTesting por Smart Bear , Tornassol , Browsera , Rational Clearcase pela IBM ,   Ghostlab .
Teste de localização  realizada para adaptar um aplicativo globalizado a uma cultura / localidade específica. Esse processo envolve a tradução de todas as strings de idioma nativo para o idioma de destino e a customização da GUI para que seja apropriada para o mercado de destino. Teste de globalização  e Testes de internacionalização  são de seus tipos.

Teste de globalização  verifica a funcionalidade adequada do produto com qualquer uma das configurações de cultura / localidade usando todo tipo de entrada internacional possível.

Testes de internacionalização  verifica a externalização de conteúdo correta em diferentes idiomas e locais.

A localização geralmente é feita usando uma combinação de recursos internos, contratados independentes e serviços de escopo total de uma empresa de localização. Aqui estão algumas ferramentas para fornecer testes de localização – Berinjela , Babylon.NET por Redpin , e smartCAT.
Teste de performance  pretende determinar como um sistema funciona em termos de capacidade de resposta e estabilidade sob uma determinada carga. Os tipos de teste de desempenho : Teste de estresse, teste de carga, teste de estabilidade, teste de volume, teste de concorrência, teste de escalabilidade, testes de resistência, etc.
Estimativas de teste de estresse  o comportamento de um sistema em ou além dos limites de sua carga de trabalho antecipada.

Teste de carga realizada para avaliar o comportamento de um sistema no aumento da carga de trabalho.

Teste de estabilidade  destina-se a verificar se o aplicativo pode executar continuamente bem dentro ou logo acima do período aceitável.

Teste de volume  permite analisar o desempenho do sistema, aumentando o volume de dados no banco de dados. Ele verifica se qualquer valor pode se tornar grande ao longo do tempo (como contagens acumuladas, logs e arquivos de dados), pode ser acomodado pelo programa e não fará com que o programa pare de funcionar ou diminua sua operação.

Teste de concorrência  realizada para identificar os defeitos em um aplicativo quando vários usuários fazem login no aplicativo. Ao usá-lo, temos a capacidade de identificar e medir os problemas nos parâmetros do sistema, como tempo de resposta, taxa de transferência, bloqueios / deadlocks ou quaisquer outros problemas associados à simultaneidade.

Testes de escalabilidade  avalia a capacidade do sistema de crescer, aumentando os diferentes indicadores, como a carga de trabalho por usuário ou o número de usuários simultâneos ou o tamanho de um banco de dados.

Testes de resistência  define problemas que podem ocorrer com a execução prolongada. Avalia o comportamento de um sistema quando uma carga de trabalho significativa é fornecida continuamente.

Teste de rampa  é o tipo de teste de resistência, que consiste em elevar um sinal de entrada continuamente até que o sistema se quebre.

Apache JMeter , HP LoadRunner , Artista de Seda da Micro Focus , WebLOAD , e Gatling são frequentemente usados para executar diferentes tipos de testes de desempenho.

Teste de recuperação  destina-se a avaliar a capacidade do sistema de recuperar de falhas, falhas de hardware ou outros problemas catastróficos. É realizado pelas equipes de teste.

TestDisk , Recuva por Piriform , Recuperação de dados sábia por WiseCleaner  e Restauração por Softonic  são as principais ferramentas especiais para o teste de recuperação.

Teste de compatibilidade  verifica a compatibilidade do aplicativo em diferentes ambientes: hardware, software, sistema operacional, ambiente de rede. Existem dois tipos desse tipo de teste: Compatibilidade com versões anteriores, compatibilidade de encaminhamento  teste.

Compatibilidade com versões anteriores  O teste garante uma nova versão do produto para continuar a trabalhar com o produto mais antigo.

Compatibilidade Direta  testing fornece a conexão com a versão futura do produto.

Browsershots e  MultiBrowser pode ser usado gratuitamente para testes de compatibilidade.

Testando usabilidade  realizada para avaliar um produto ou serviço, testando-o com usuários representativos. Ajuda a definir a capacidade do usuário de aprender a operar, preparar entradas e interpretar saídas de um sistema ou componente.

Testes de acessibilidade  é o tipo de teste de usabilidade que determina o nível de um produto fácil de usar para as pessoas com deficiências (surdos, cegos, deficientes mentais).

As ferramentas populares para testes de usabilidade: Zoom do usuário , Refletor, Loop11 .

Teste estrutural

Teste estrutural  verifica a implementação do programa ou código através de testes da estrutura do sistema de software ou seus componentes. O testador concentra-se no trabalho do software durante o teste estrutural. Pode ser usado em todos os níveis de teste.

Os principais objectivos dos ensaios estruturais :

  • Identificação de inadequações óbvias
  • Complementação de testes funcionais
  • Para entender se algo está faltando em nossa suíte de testes

Técnicas de testes estruturais :

  • Cobertura de declaração verifica se cada instrução em um programa é executada pelo menos uma vez durante o teste do programa.
  • A Cobertura de Caminho destina-se a satisfazer os critérios de cobertura para cada caminho lógico através do programa.
  • Cobertura de filial verifica se cada condição de ramificação do programa tem valores verdadeiros ou falsos.
  • Cobertura de Condição é semelhante à Cobertura de Filial. A principal diferença é nos testes de Cobertura de Condições para ramos condicionais e não condicionais.

Vantagens do teste estrutural :

  • Eliminação de código morto
  • Há uma capacidade de descobrir bugs em um estágio inicial.
  • Isso garante um teste de software mais completo.
  • O teste estrutural não é o processo que consome tempo.

Desvantagens do teste estrutural :

  • O teste estrutural é caro.
  • Requer conhecimento do código.
  • Requer o forte conhecimento da ferramenta usada para testes.

As ferramentas especiais para testes estruturais: JBehave , Pepino ,   JUnit , Cfix .

Alterar testes relacionados

Alterar testes relacionados  é fornecido para garantir que os erros anteriormente erradicados foram corrigidos e para capturar erros que podem ter sido acidentalmente aparecidos em uma nova versão. De acordo com essas metas, há dois subtipos de testes relacionados a alterações: Teste de confirmação (novo teste)  e Teste de regressão.
Eles geralmente confundem o teste de confirmação com o teste de regressão. Como regra geral, eles precisam ser realizados um após o outro. Vamos esclarecer a diferença entre esses subtipos de testes relacionados a alterações.

Em primeiro lugar você deve executar Teste de confirmação  para garantir que o bug tenha sido removido com sucesso. Simplificando, o caso de teste que detectou originalmente o bug é executado novamente e, desta vez, ele deve passar sem problemas.

Testes de regressão  consiste não apenas nos casos de teste de bug detectados. Ele é executado não apenas para verificar a correção de bugs, mas também para garantir que novos defeitos não sejam descobertos ou descobertos após as alterações.

Espero que a imagem abaixo ajude você a entender melhor o processo de teste relacionado à mudança.

Alterar tipos de testes relacionados
As ferramentas para testes relacionados a mudanças: Selênio , HP Quick Test Professional, TestComplete , TestDrive , SoapUI .
Agora, você tem uma ideia sobre muitos tipos de testes. Alguns deles usam-se diariamente por um enorme número de especialistas, o outro usa-se muito raramente. De qualquer forma a vida toda não é suficiente para aprender fundamentalmente cada um dos tipos de testes. Mas a prática é a melhor maneira de fazer isso. Espero que as informações apresentadas aqui o ajudem em sua atividade futura no controle de qualidade. Seria ótimo saber suas opiniões sobre os tipos de teste nos comentários.