Principais técnicas de testes estruturais \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 11 Horas 

 51 Min 

 44 Seg 

   Tempo restante da oferta: 11 51 44 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Principais técnicas de testes estruturais  [ Testes e Projetos ](https://www.treinaweb.com.br/blog/categoria/testes-e-projetos) 

# Principais técnicas de testes estruturais

 O teste estrutural pode ser considerado um dos mais importantes tipos de validação de software, tendo como resultado a diminuição no número de erros no sistema e, portanto, contribuindo com uma maior qualidade e confiabilidade.

 [ João Paulo Soares ](https://www.treinaweb.com.br/blog/autor/joao-paulo-soares) 6 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/10/TESTE-CAIXA-BRANCA.png)  

Os testes estruturais, também conhecidos como testes de caixa-branca, é a validação do código-fonte da aplicação, bem como dos diferentes algoritmos e estruturas de dados. Em suma, o tester seleciona diferentes valores de entrada, para examinar cada um dos possíveis fluxos de execução do programa e verificar se os valores de saída estão retornando corretamente.

Por meio de testes estruturais é possível:

- Assegurar que todos os caminhos independentes de cada módulo, programa ou método sejam executados pelo menos uma vez;
- Verificar todas as decisões lógicas de verdadeiro e falso;
- Executar todos os loops em seus limites operacionais;
- Executar as estruturas de dados internas para garantir a validade.

Caso ocorra alguma alteração antes da etapa de implementação, os testes normalmente terão que ser refeitos. Assim sendo, o teste de caixa-branca pode ser considerado um dos mais importantes tipos de testes que se aplicam ao software, tendo como resultado a [diminuição no número de erros no sistema](https://www.treinaweb.com.br/blog/importancia-dos-testes-de-software-na-qualidade-do-sistema/ "diminuição no número de erros no sistema") e, portanto, contribuindo com uma maior qualidade e confiabilidade.

## Técnicas de Testes Estruturais

Existem várias técnicas que podem ser aplicadas aos testes estruturais. A seguir vamos comentar brevemente sobre algumas delas:

### Teste do Caminho Básico

O teste do caminho básico é uma técnica proposta por Thomas J. McCabe, em 1976, que permite ter uma noção da complexidade lógica de um projeto e, posteriormente, usar essa medida como um guia para a definição de um conjunto básico de caminhos de execução. A ideia é realizar casos de testes a partir de um determinado conjunto de caminhos independentes. Para obter este conjunto, é construído um fluxograma e sua complexidade ciclomática é calculada.

As etapas para aplicar esta técnica são:

- O fluxograma é desenhado a partir do código-fonte;
- A complexidade ciclomática do gráfico é calculada;
- O conjunto básico de caminhos independentes é determinado;
- São preparados os casos de teste, que requerem a execução de cada um dos caminhos.

### Notação de fluxograma

Para aplicar a técnica de caminho básico, deve ser usado uma notação simples para a representação do fluxo de controle. O fluxograma costuma ser composto por 3 componentes fundamentais, que ajudam a preparar, entender e fornecer informações, para assegurar que o trabalho está sendo executado corretamente.

Os componentes são:

- **Nós:** Representam uma sequência de processos ou uma declaração de decisão;
- **Setas:** Representam o fluxo de controle. Uma seta deve sempre terminar em um nó, mesmo que este não passe nenhuma instrução do procedimento;
- **Regiões:** São as áreas delimitadas por setas e nós. A área externa do gráfico também é incluída, contando como mais uma região.

### Complexidade ciclomática

Também desenvolvida por Thomas J. McCabe, em 1976, a complexidade ciclomática é uma métrica de software extremamente útil, pois fornece uma medida quantitativa da complexidade lógica de um programa. Esta métrica mede a quantidade de diferentes fluxos de execução que o código pode ter, ou seja, quantos *ifs-then-else, while, for, switch*, entre outros, há no código-fonte. Quanto maior a complexidade ciclomática, mais complicado o código será de ler, entender, modificar, manter e, consequentemente, será mais caro.

### Conjunto de caminhos independentes

Um caminho independente é qualquer rota no programa que introduz pelo menos um novo conjunto de instruções de processo, ou uma condição, em relação aos caminhos existentes. Em termos de diagrama de fluxo, consiste em pelo menos uma seta que não foi percorrida antes da definição do caminho. Ao identificar os diferentes caminhos de um programa a ser testado, deve-se levar em consideração que cada nova rota deve ter novas condições em relação às já existentes.

[  ![Tester Pleno](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/teste-software.svg)   Formação Tester Pleno Conhecer a formação ](https://www.treinaweb.com.br/formacao/tester-pleno)

### Casos de teste

Após preparar os casos de teste, cada um deles é executado e os resultados são comparados com o que era previsto. Assim que todos os casos de teste forem concluídos, o tester deverá ter a certeza de que todas as instruções do programa foram executadas pelo menos uma vez. É importante observar que alguns caminhos não podem ser testados isoladamente. Em suma, a combinação de dados necessária para percorrer o caminho não pode ser obtida com o fluxo normal do programa.

## Considerações finais

Os testes estruturais, ou testes de caixa-branca, se concentram nos detalhes processuais do software e na análise do código fonte. Embora esta validação seja aplicável a vários níveis, como unidade, integração e sistema, eles geralmente são realizados nas unidades de software. Seu objetivo é verificar os fluxos de execução dentro de funções, classes, módulos, entre outros, bem como pode ser aplicado para validar os fluxos entre as unidades durante a integração e/ou entre subsistemas.

- [ #testes ](https://www.treinaweb.com.br/blog/tag/testes)
- [ #Caixa-Branca ](https://www.treinaweb.com.br/blog/tag/caixa-branca)
- [ #Testes Estruturais ](https://www.treinaweb.com.br/blog/tag/testes-estruturais)

Autor

 ![João Paulo Soares](//secure.gravatar.com/avatar/4d84f1c245ccf1005dbc221c3b28547d?d=mm)

## João Paulo Soares

 Possui MBA em Arquitetura e Engenharia de Software e bacharelado em Jornalismo pela Universidade Municipal de São Caetano do Sul - USCS. Realizou intercâmbio acadêmico em Jornalismo pela Facultad de Letras y Comunicación da Universidad de Colima, no México. Atuou como redator de entretenimento e tecnologia na rádio Metropolitana FM e atualmente trabalha como Analista de Qualidade de Software. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/joao-paulo-soares)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/10/principais-tecnicas-de-testes-funcionais-400x280.png)  [ Testes e Projetos ](https://www.treinaweb.com.br/blog/categoria/testes-e-projetos) 

     6 anos atrás

    ##  [ Principais técnicas de testes funcionais ](https://www.treinaweb.com.br/blog/principais-tecnicas-de-testes-funcionais) 

     Existem vários métodos que podem ser aplicados na hora de optar pelo teste funcional. Neste artigo vamos comentar brevemente sobre as principais técnicas de testes funcionais.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/06/ANGULAR-400x280.png)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     7 anos atrás

    ##  [ O que é o Angular e para que serve? ](https://www.treinaweb.com.br/blog/o-que-e-o-angular-e-para-que-serve) 

     Frameworks SPA atualmente são um padrão de mercado quando falamos sobre desenvolvimento front-end. Neste artigo, vamos abordar o Angular, um dos mais populares.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/10/o-que-e-e-como-comecar-com-golang-400x280.jpg)  [ Guias ](https://www.treinaweb.com.br/blog/categoria/guias) 

     3 anos atrás

    ##  [ Guia da linguagem Go ](https://www.treinaweb.com.br/blog/guia-da-linguagem-go) 

     Nesse guia de Go você aprenderá o necessário para criar os seus primeiros softwares com a linguagem de programação Go. Acesse agora mesmo!

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/background-post-400x280.jpg)  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

     10 anos atrás

    ##  [ Complexidade ciclomática, análise estática e refatoração ](https://www.treinaweb.com.br/blog/complexidade-ciclomatica-analise-estatica-e-refatoracao) 

     Veremos nesse artigo como se dá a mensuração da complexidade ciclomática; como os analisadores estáticos podem nos auxiliar e a importância da refatoração.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/08/COMO-SE-PREPARAR-PARA-ENTREVISTA-TECNICA-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     4 anos atrás

    ##  [ Como se preparar para entrevistas técnicas ](https://www.treinaweb.com.br/blog/como-se-preparar-para-entrevistas-tecnicas) 

     Geralmente, quando participamos de um processo seletivo para uma vaga relacionada a desenvolvimento, há uma etapa técnica, onde os entrevistadores irão avaliar suas competências técnicas, sua linha de raciocínio lógico e a maneira como você emprega ferramentas e tecnologias para a resolução de problemas. Neste artigo, separamos algumas dicas para que você possa se sair bem nesta etapa.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/01/12140601/carreira-de-desenvolvedor-de-aplicativos-como-comecar-400x280.png)  [ Desenvolvimento Mobile ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-mobile) 

     9 anos atrás

    ##  [ Carreira de desenvolvedor de aplicativos: como começar ](https://www.treinaweb.com.br/blog/carreira-de-desenvolvedor-de-aplicativos-como-comecar) 

     Saiba como se tornar um desenvolvedor de aplicativos reconhecido pelo mercado.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/10/o-que-e-e-como-comecar-com-golang-400x280.jpg)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Trabalhando com funções na Golang ](https://www.treinaweb.com.br/blog/trabalhando-com-funcoes-na-golang) 

     Neste artigo vamos aprender sobre as funções na Golang. Veremos o que são, qual a sua importância em nossos programas e como utilizá-las.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/09/ux-research-e-360-view-o-que-e-e-como-pode-ser-aplicado-400x280.png)  [ Acessibilidade e User Experience (UX) ](https://www.treinaweb.com.br/blog/categoria/acessibilidade-e-user-experience-ux) 

     6 anos atrás

    ##  [ UX Research e 360 View – O que é e como pode ser aplicado? ](https://www.treinaweb.com.br/blog/ux-research-e-360-view-o-que-e-e-como-pode-ser-aplicado) 

     Entenda o que é e como aplicar o UX Research e 360 View, técnicas importantes na hora de pensar em uma melhor experiência do usuário.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/04204421/capa-alm--400x280.png)  [ Governança ](https://www.treinaweb.com.br/blog/categoria/governanca) 

     8 anos atrás

    ##  [ Você sabe o que é ALM? ](https://www.treinaweb.com.br/blog/voce-sabe-o-que-e-alm) 

     Veja neste artigo o que vem a ser o ALM (Application Lifecycle Management).

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/caminhos-certifica--o-400x280.jpg)  [ Certificações ](https://www.treinaweb.com.br/blog/categoria/certificacoes) 

     10 anos atrás

    ##  [ Os caminhos das certificações Microsoft (parte 1) ](https://www.treinaweb.com.br/blog/os-caminhos-das-certificacoes-microsoft-parte-1) 

     Veja como funcionam as trilhas e sub-trilhas de certificação da Microsoft para desenvolvedores.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/PROFISSIONAL-USABILIDADE-400x280.png)  [ Acessibilidade e User Experience (UX) ](https://www.treinaweb.com.br/blog/categoria/acessibilidade-e-user-experience-ux) 

     6 anos atrás

    ##  [ Como é o dia a dia de um profissional de Usabilidade? ](https://www.treinaweb.com.br/blog/como-e-o-dia-a-dia-de-um-profissional-de-usabilidade) 

     O profissional de usabilidade possui habilidades que mesclam aspectos técnicos e estratégicos. Ele é o responsável por analisar, medir e melhorar o nível de satisfação do usuário ao utilizar um site ou aplicativo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/02/04201917/RUP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     7 anos atrás

    ##  [ O que é RUP - Rational Unified Process? ](https://www.treinaweb.com.br/blog/o-que-e-rup-rational-unified-process) 

     Confira neste artigo o que vem a ser o RUP - Rational Unified Process.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **11h 51min 44s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
