Bancária (BB, CEF e Bancos Estaduais)

Estratégias de Testes de Software para o Concurso da Caixa (TI)

Testes de software são uma parte essencial do ciclo de desenvolvimento de software. Eles são realizados para garantir que o software atenda aos requisitos, funcione corretamente e seja de alta qualidade. Existem diversas estratégias e técnicas de teste que podem ser aplicadas em diferentes estágios do processo de desenvolvimento. 

Neste artigo, exploraremos algumas das estratégias e técnicas mais comuns de teste de software, desde testes de unidade até testes de sistema, incluindo uma análise das visões interna e externa do teste. É importante ressaltar que esse conhecimento é fundamental para candidatos que buscam aprovação no concurso da Caixa Econômica Federal, área Tecnologia da Informação, cuja banca examinadora é a CESGRANRIO, uma vez que esse tema consta no respectivo edital.

Veremos os seguintes tópicos:

  • Estratégias de Teste de Software
  • Teste de Unidade
  • Teste de Integração
  • Teste de Validação/Aceitação
  • Teste de Sistema
  • Visão interna e externa do teste
  • Mapa mental
  • Conclusão

Estratégias de Testes de Software

A estratégia de teste de software pode ser visualizada através do conceito da espiral. Começando no centro da espiral, o teste de unidade focaliza em cada unidade do software, como componentes ou classes. Em seguida, movendo-se para fora da espiral, o teste de integração concentra-se na arquitetura do software. Continuando na mesma direção, o teste de validação valida os requisitos em relação ao software. Por fim, o teste do sistema avalia o software como um todo. Cada fase é representada por uma volta da espiral, indicando o escopo do teste em expansão.

A seguir veremos cada uma dessas estratégias de teste e suas principais técnicas.

Teste de Unidade

O teste de unidade é a primeira camada de testes no processo de desenvolvimento de software e é realizado nas unidades individuais do código-fonte. Este tipo de teste concentra o esforço de verificação na menor unidade de projeto do software, que é o componente de software.

Vejamos agora algumas técnicas de teste de unidade.

Teste Seletivo de Caminhos de Execução

Esta técnica visa testar todas as possíveis execuções dentro de uma unidade de código. Os casos de teste são projetados para percorrer diferentes caminhos de execução, garantindo que todas as instruções sejam executadas pelo menos uma vez.

Teste de Fronteira

O teste de fronteira é focado nos limites de entrada e saída de uma unidade de código. Os casos de teste são criados para testar os limites das condições de entrada, identificando possíveis erros de arredondamento, truncamento ou estouro.

Teste de Integração

O teste de integração é realizado para testar a interação entre diferentes módulos ou componentes de software, sendo uma abordagem sistemática para desenvolver a arquitetura de software, enquanto também são realizados testes para identificar erros nas interfaces. O objetivo é construir uma estrutura de programa definida pelo projeto a partir de componentes que foram previamente testados individualmente.

Existem várias técnicas de teste de integração, vejamos algumas delas.

Integração Descendente (Top-Down)

Nesta abordagem, os testes são realizados do nível mais alto para o nível mais baixo da hierarquia do sistema. Os módulos principais são testados primeiro.

Integração Ascendente (Bottom-Up)

Nesta abordagem, os testes são realizados do nível mais baixo para o nível mais alto da hierarquia do sistema. Os módulos dependentes são testados primeiro.

Teste de Regressão

Cada adição de um novo módulo durante o teste de integração modifica o software, criando novos caminhos de fluxo de dados, entradas e saídas, e lógica de controle. Essas mudanças podem afetar negativamente funções anteriormente operacionais. O teste de regressão, dentro da estratégia de teste de integração, reexecuta um subconjunto de testes já realizados para garantir que as alterações não causem efeitos colaterais indesejados. Ele ajuda a assegurar que as alterações feitas no código não tenham introduzido novos defeitos ou afetado o comportamento existente do sistema.

Teste de Fumaça

O teste de fumaça é uma verificação inicial e superficial realizada após compilar uma nova versão do software. Ele visa garantir que a aplicação possa ser iniciada sem falhas óbvias. Os testes se concentram nos componentes principais do sistema e nas funcionalidades essenciais, sem realizar uma análise profunda. Se o teste de fumaça falhar, indica a presença de problemas graves que precisam ser corrigidos antes de proceder com testes mais detalhados. Se for bem-sucedido, fornece uma base para testes adicionais.

Teste de Validação (ou Aceitação)

O teste de validação é realizado para garantir que o software atenda aos requisitos do usuário e esteja pronto para ser entregue. 

Vejamos algumas técnicas mais comuns de teste de validação.

Testes Alfa

O teste alfa é conduzido pelo desenvolvedor em seu próprio ambiente, com a participação de um grupo representativo de usuários finais. Durante o teste, o software é utilizado em condições naturais, enquanto o desenvolvedor observa e registra os erros e problemas de uso. Este tipo de teste ocorre em um ambiente controlado.

Testes Beta

O teste beta ocorre nas instalações de um ou mais usuários finais, onde o desenvolvedor geralmente não está presente. Diferentemente do teste alfa, o ambiente de teste beta não é controlado pelo desenvolvedor. Os usuários finais utilizam o software em condições “ao vivo” e registram todos os problemas encontrados, que são reportados ao desenvolvedor em intervalos regulares. Com base nos problemas relatados durante o teste beta, os engenheiros de software fazem ajustes e preparam o software para lançamento para todos os clientes.

Teste de Sistema

O teste de sistema é realizado para validar todo o sistema em relação aos requisitos funcionais e não funcionais. 

Alguns tipos de teste de sistema incluem:

Teste de Recuperação

O teste de recuperação avalia a capacidade do sistema de se recuperar de falhas ou interrupções, garantindo a integridade e disponibilidade dos dados.

Teste de Segurança

O teste de segurança avalia a robustez do sistema em relação a ameaças externas, como ataques de hackers ou vazamentos de dados.

Teste por Esforço

O teste por esforço avalia a capacidade do sistema de lidar com cargas de trabalho extremas, garantindo que ele seja escalável e mantenha o desempenho sob pressão.

O teste por esforço envolve utilizar o sistema de maneira que demande recursos em quantidades, frequências ou volumes anormais. Isso pode incluir gerar um número maior de interrupções, aumentar a taxa de entrada de dados, executar casos de teste que exigem o máximo de memória ou outros recursos, ou criar casos de teste que causem uma procura excessiva por dados no disco. O objetivo é sobrecarregar o sistema para identificar possíveis falhas ou limitações.

Teste de Desempenho

O teste de desempenho avalia o desempenho do sistema em condições normais e de pico, identificando gargalos de desempenho e otimizando o código, se necessário.

Teste de Disponibilização

O teste de disponibilização verifica se o sistema pode ser implantado com sucesso em diferentes ambientes, como ambientes de desenvolvimento, teste e produção.

Visão Interna e Externa do Teste

A distinção entre visão interna e externa no contexto dos testes de software é crucial para entender duas abordagens fundamentais: teste caixa-branca e teste caixa-preta.

A visão interna foca na compreensão do funcionamento interno do software, como o código-fonte e a lógica de programação. Isso é central no teste caixa-branca.

Já a visão externa concentra-se no comportamento observável do software através de suas interfaces, sem considerar sua implementação interna. Essa é a base do teste caixa-preta.

Teste Caixa-Branca

O teste caixa-branca envolve examinar a estrutura interna do código-fonte de um software. Os testes são projetados com base na lógica do programa, com o objetivo de cobrir todas as possíveis trajetórias de execução do código. Este método é usado para garantir que todas as partes do código sejam testadas, incluindo as condições de decisão e os caminhos de execução. Algumas técnicas comuns de teste caixa-branca incluem:

  • Teste do Caminho Básico: O teste do caminho básico é uma técnica de teste estrutural que visa testar todos os caminhos independentes através do programa.
  • Teste de Condição: O teste de condição é uma técnica de teste que visa testar todas as condições de decisão em um programa.
  • Teste de Ciclo: O teste de ciclo é uma técnica de teste que visa testar todos os loops em um programa.

Teste Caixa-Preta

No teste caixa-preta, o testador não tem acesso ao código-fonte do software. Em vez disso, os testes são baseados nos requisitos funcionais e de usuário. O foco está na entrada e saída do sistema, sem considerar sua implementação interna. O objetivo é avaliar se o software atende aos requisitos especificados e se produz os resultados esperados.  Algumas técnicas comuns de teste caixa-preta incluem:

  • Testes Baseados em Grafos: Os testes baseados em grafos são uma técnica de teste que modela o sistema como um grafo, identificando os caminhos de teste ideais através do sistema.
    • Teste de Matriz Ortogonal: O teste de matriz ortogonal é uma técnica de teste que utiliza uma matriz para identificar combinações eficientes de entradas que cobrem efetivamente diferentes cenários de teste.
  • Teste Baseado em Modelos: O teste baseado em modelos é uma técnica de teste que utiliza modelos formais para representar o comportamento do sistema e gerar casos de teste automaticamente.

Mapa Mental

Abaixo está um mapa mental organizando as estratégias e técnicas de teste que vimos neste artigo:

Conclusão

Bom pessoal! Terminamos por aqui. Espero que o conteúdo apresentado aqui seja de grande utilidade para sua jornada rumo à aprovação. Bons estudos!

Quer saber quais serão os próximos concursos?

Confira nossos artigos!

Concursos abertos

Concursos 2024

Antoniel da Silva Rego

Posts recentes

Carta aos Assinantes do Estratégia Concursos – 195

Confira, em nossa centésima nonagésima quinta carta aos assinantes, a nossa programação semanal, as novidades do…

49 minutos atrás

Concurso Santarém Saúde: são 248 vagas. Inscreva-se!

Foi divulgada uma nova retificação no cronograma de atividades do concurso Santarém Saúde, prefeitura localizada…

5 minutos atrás

Concurso CONSURGE MG: 488 vagas. Gabaritos divulgados!

Foram divulgados os gabaritos preliminares das provas objetivas do concurso CONSURGE (Consórcio Intermunicipal de Saúde…

26 minutos atrás

Concurso Politec PE: são 213 vagas. Confira os gabaritos!

Foi disponibilizada a consulta individual ao gabarito preliminar das provas objetivas do concurso Politec PE…

34 minutos atrás

Concurso São João do Ivaí PR: inscrições são reabertas!

Aqueles que haviam perdido o prazo para se inscrever no concurso público da Prefeitura de…

39 minutos atrás

Concurso Politec PE tem gabaritos preliminares divulgados

Com provas aplicadas no último domingo, 21, foram divulgados os gabaritos preliminares da respectiva etapa…

41 minutos atrás