Quer ficar por dentro das novidades da HostGator? Inscreva-se e receba tudo em primeira mão!

A confirmação da sua inscrição foi enviada para o seu e-mail

Agradecemos sua inscrição e esperamos que você aproveite nossos conteúdos!

TDD: o que é Test-Driven Development e como aplicar na prática

Compartilhe:

Descubra o que é TDD (Test-Driven Development), entenda seu ciclo Red-Green-Refactor, veja benefícios, boas práticas e exemplos práticos. 

O desenvolvimento de software vem evoluindo cada vez mais visando aumentar a confiabilidade, reduzir falhas e acelerar entregas nas mais diferentes companhias. Entre as metodologias mais discutidas nos últimos anos está o TDD (Test-Driven Development), uma prática que inverte a lógica tradicional: antes de escrever o código, o desenvolvedor cria os testes.

Isso garante que cada funcionalidade seja validada desde o início, aumentando a confiança no sistema e reduzindo retrabalho. Dessa forma, o TDD é muito valorizado em ambientes ágeis e DevOps, nos quais ciclos rápidos de entrega exigem código robusto e bem testado.

Dessa forma, em vez de descobrir bugs apenas em fases posteriores de testes, o TDD permite identificá-los ainda na construção da funcionalidade. Esse método, defendido por especialistas como Kent Beck e Martin Fowler, tem se consolidado em times que buscam qualidade e eficiência.

Se você já se perguntou como escrever software com menos erros e mais manutenibilidade, o TDD pode ser uma das respostas mais eficazes. Confira esse artigo até o final e aprenda tudo sobre como utilizar esse método, em um passo a passo ilustrado com imagens, tenha uma boa leitura.

O que é TDD?

Antes de aprofundar nos benefícios e na aplicação prática do TDD, é importante compreender a sua essência. O Test-Driven Development não é apenas uma técnica de testes, mas sim uma mudança de mentalidade no desenvolvimento de software.

Ele propõe uma inversão no processo tradicional: em vez de escrever o código e depois testá-lo, o desenvolvedor cria os primeiros testes primeiro. Esse modelo gera uma série de impactos diretos no design do software, na forma como pensamos os requisitos e até na colaboração dentro do time.

Nos próximos tópicos, vamos explorar a sua definição e origem, entendendo os objetivos que deram vida a essa prática.

Definição de Test-Driven Development

O Test-Driven Development (TDD) é uma técnica de desenvolvimento que coloca os testes automatizados no centro do processo. Diferente da prática tradicional, em que o código é escrito primeiro e os testes depois, o TDD propõe que os testes sejam criados antes de qualquer implementação.

Assim, cada requisito funcional do sistema é traduzido em um teste automatizado, garantindo que o código escrito atenda exatamente ao que foi definido.

Na prática, o TDD não substitui outras formas de teste, como testes de integração ou testes de aceitação, mas fortalece a base de qualidade do software.

Ele funciona como uma rede de segurança: qualquer alteração futura no código pode ser validada rapidamente pelos testes já existentes, reduzindo riscos.

Origem e propósitos

O conceito de TDD foi popularizado no início dos anos 2000 por Kent Beck, no contexto da metodologia Extreme Programming (XP). O propósito principal era reduzir a quantidade de bugs em sistemas complexos e promover maior confiança no código.

Além da redução de falhas, o TDD tem outros objetivos claros, são eles:

  1. Orientar o design do software – escrever testes antes ajuda a criar funções menores, mais modulares e coesas.
  2. Fornecer feedback rápido – qualquer alteração pode ser validada em segundos.
  3. Melhorar a documentação viva – os testes passam a servir como especificação funcional, descrevendo como o sistema deve se comportar.

Em resumo, o TDD não é apenas sobre testes, mas também sobre melhorar a qualidade do design e dar segurança para evoluir o software.

Ciclo básico do TDD

O TDD é construído sobre um ciclo repetitivo e simples, mas extremamente poderoso: Red, Green e Refactor. Esse ciclo estabelece uma cadência de trabalho que ajuda o desenvolvedor a manter foco, reduzir erros e melhorar continuamente o design do código.

Mais do que uma técnica, trata-se de um guia que organiza o fluxo de pensamento do programador, estimulando disciplina e clareza. 

Essa estrutura também cria checkpoints constantes de validação, garantindo que cada passo avance com segurança. Para entender a importância desse ciclo, vamos detalhar cada uma de suas três etapas, mostrando como funcionam na prática e por que são indispensáveis.

Red – escrever um teste que falha

O primeiro passo do TDD é escrever um teste que não pode ser aprovado inicialmente, já que o código ainda não foi implementado. Esse teste expressa o comportamento esperado para uma nova funcionalidade ou correção.

Exemplo em Python:

def test_soma():

    assert soma(2, 3) == 5

Nesse momento, a função soma() ainda não existe. O objetivo é ver o teste falhar para garantir que ele realmente valide o que esperamos.

Essa etapa é chamada de Red justamente porque o teste falha (fica vermelho) no relatório de execução.

Green – implementar o mínimo para passar

Em seguida, o desenvolvedor cria a implementação mínima para que o teste passe. No exemplo anterior:

def soma(a, b):

    return a + b

Agora, ao rodar os testes, o resultado esperado é obtido, e o status passa para verde. Essa prática incentiva escrever apenas o código necessário, evitando implementações desnecessárias.

Refactor – melhorar o código mantendo testes

Com os testes aprovados, o próximo passo é refatorar. Isso significa melhorar o design, remover duplicações ou simplificar funções, sem alterar o comportamento e o resultado do teste.

Como os testes já existem, qualquer erro introduzido na refatoração será detectado imediatamente. Esse ciclo Red, Green, Refactor se repete continuamente durante o desenvolvimento do software.

Benefícios de usar TDD

Adotar o TDD em um projeto vai além de adicionar testes ao processo. O impacto real está em como ele transforma a qualidade do código, a segurança nas entregas e a confiança da equipe em relação ao software produzido. Entre os maiores ganhos estão:

  • Redução de falhas;
  • Maior capacidade de refatorar sem medo;
  • Diminuição do gasto na construção do software;
  • Design mais limpo e escalável. 

No entanto, esses benefícios só aparecem quando a prática é aplicada de forma consistente, com entendimento de seus limites. Nesta seção, vamos detalhar os principais pontos fortes que fazem do TDD um diferencial competitivo em equipes ágeis e modernas.

Redução de bugs e aumento da confiabilidade

O maior benefício do TDD é a detecção precoce de falhas. Como cada funcionalidade nasce com um teste, fica mais difícil um bug passar despercebido, dessa forma:

  • As funcionalidades já nascem acompanhadas de um teste, o que reduz o risco de falhas passarem despercebidas;
  • Bugs são detectados logo no início, ainda na fase de desenvolvimento, o que evita custos altos de correção em fases avançadas do projeto;
  • A equipe ganha confiança no software, pois as funcionalidades são validadas continuamente.

Isso reduz custos, já que corrigir um problema em fases posteriores é muito mais caro.

Facilita refatorações seguras

Muitos times evitam refatorar código por medo de quebrar funcionalidades já existentes. Com TDD, essa barreira é eliminada. 

  • Com uma base sólida de testes, refatorar o código deixa de ser uma fonte de risco.
  • O time pode melhorar a estrutura do código, otimizar algoritmos e aplicar boas práticas de design sem medo de comprometer funcionalidades já existentes.
  • Isso favorece evoluções incrementais do software, mantendo-o atualizado e robusto.

Os testes garantem que, ao alterar o código, o comportamento anterior será preservado.

Código mais limpo e modular

Como o TDD incentiva escrever pequenas funções testáveis, o resultado é um software mais organizado, modular e fácil de dar manutenção. 

  • O TDD incentiva a criação de funções pequenas, testáveis e com responsabilidades bem definidas;
  • Essa abordagem naturalmente conduz a um design modular, facilitando a manutenção e integração de novas funcionalidades;
  • Além disso, o código se torna mais legível e menos propenso a acoplamentos desnecessários, o que contribui para a escalabilidade do sistema, essa prática também ajuda na escalabilidade dos projetos.

Confira abaixo um resumo de todos os benefícios que a aplicação do TDD pode proporcionar para o seu projeto:

BenefícioDescriçãoImpacto no projeto
Redução de bugs e aumento da confiabilidadeCada funcionalidade nasce com um teste, o que facilita detectar falhas logo no desenvolvimento.Menos bugs em produção, menor custo de correção, maior confiança da equipe e stakeholders.
Facilita refatorações segurasBase de testes garante que mudanças não quebrem funcionalidades já existentes.Equipe pode melhorar código sem medo, aplicando boas práticas e mantendo o sistema robusto.
Código mais limpo e modularTDD incentiva funções pequenas, testáveis e com responsabilidades claras.Design mais organizado, fácil manutenção e escalabilidade do sistema.

Como começar com o TDD no seu projeto

Para muitos desenvolvedores, o maior desafio não é entender o conceito do TDD, mas sim aplicá-lo na prática. A transição para essa forma de trabalhar exige adaptação, escolha de ferramentas adequadas e principalmente disciplina.

Por isso, é comum haver dúvidas sobre por onde começar, como estruturar os testes iniciais e como integrar essa metodologia em fluxos já existentes.

Felizmente, o processo pode ser implementado gradualmente, com ganhos perceptíveis mesmo em pequenas aplicações. Nos próximos tópicos, veremos como escolher frameworks, escrever os primeiros testes e integrar o TDD em pipelines de CI/CD.

Escolha do framework de testes

Cada linguagem de programação possui frameworks que facilitam a escrita e execução de testes:

  • O JUnit é o framework de testes mais popular no ecossistema Java e um dos pioneiros no conceito de TDD. Ele fornece uma estrutura simples para criar e executar testes unitários, permitindo validar métodos e classes de forma automatizada. 
  • O Pytest é o framework de testes mais utilizado no universo Python, conhecido por sua simplicidade e poder de extensão. Ele permite escrever testes com pouca verbosidade, usando funções comuns em vez de classes obrigatórias.
  • O Pytest é o framework de testes mais utilizado no universo Python, conhecido por sua simplicidade e poder de extensão. Ele permite escrever testes com pouca verbosidade, usando funções comuns em vez de classes obrigatórias.
  • O Jest, desenvolvido pelo Facebook, é um dos frameworks mais usados para testes em JavaScript e TypeScript, principalmente em projetos que utilizam React, Vue.js ou Node.js. Ele se destaca pela configuração mínima necessária e pela velocidade de execução dos testes, oferecendo também funcionalidades como mocks, spies e testes assíncronos simplificados.


Lembrando que a escolha do framework vai depender do stack tecnológico utilizado no projeto.

Escrevendo os primeiros testes

Ao começar com TDD, a melhor estratégia é iniciar de forma simples. Em vez de tentar cobrir todo o sistema de uma só vez, escolha uma função ou módulo pequeno que possua uma lógica clara e previsível. Isso permite compreender a dinâmica do ciclo Red-Green-Refactor

Esses testes iniciais funcionam como uma base de confiança. À medida que o desenvolvedor ganha familiaridade com a escrita e execução dos testes, é possível evoluir para cenários mais elaborados, cobrindo casos de borda e validando interações entre componentes.

Outro ponto importante é manter os testes independentes e legíveis, para que qualquer pessoa da equipe consiga entender rapidamente o que está sendo verificado.

Além disso, os primeiros testes ajudam a definir um padrão de qualidade e organização que será seguido em todo o projeto.

Quando a prática se torna rotina, a equipe passa a contar com uma suíte de testes robusta que não apenas previne erros, mas também apoia a evolução e a refatoração segura do código.

Automatizando testes no CI/CD

Integrar TDD em pipelines de CI/CD (Continuous Integration/Continuous Delivery) garante que cada alteração no repositório seja automaticamente validada. Plataformas como GitHub Actions, GitLab CI e Bitbucket Pipelines oferecem integrações fáceis com frameworks de teste.

Boas práticas e armadilhas comuns

Embora o TDD ofereça inúmeros benefícios, a sua aplicação prática também pode trazer armadilhas. Muitos desenvolvedores iniciantes acabam escrevendo testes redundantes ou complexos demais, o que compromete a eficiência do método.

Além disso, em alguns contextos, como protótipos de curta duração, o esforço de TDD pode não compensar. 

Para que essa abordagem atinja o valor esperado, é fundamental adotar boas práticas que equilibrem disciplina e pragmatismo. Nesta parte, vamos analisar erros comuns e estratégias para evitá-los, garantindo que o TDD seja um aliado e não um peso no processo de desenvolvimento.

Escrever testes pequenos e focados

Uma das premissas mais importantes do TDD é manter os testes simples, pequenos e voltados para validar apenas uma funcionalidade de cada vez. Isso garante clareza e torna mais fácil identificar a origem de uma falha.

Quando um teste cobre muitas funcionalidades ao mesmo tempo, o risco é que um erro em uma parte do código acaba mascarando problemas em outra, dificultando o diagnóstico. 

Testes unitários bem estruturados funcionam quase como documentação viva: além de validar o comportamento, explicam a intenção original do desenvolvedor.

Assim, em equipes grandes ou em projetos de longa duração, a manutenção do código se torna mais intuitiva e menos sujeita a falhas.

Evitar sobre-teste ou redundâncias

Outro erro comum é cair na armadilha do sobre-teste. Escrever testes duplicados ou excessivos pode gerar um volume desnecessário de verificações, tornando a execução lenta e a manutenção trabalhosa.

O objetivo não é testar tudo a qualquer custo, mas sim aquilo que é realmente crítico para a lógica do sistema. 

Uma boa prática é aplicar a regra do valor: antes de escrever um teste, pergunte-se “esse teste trará algum ganho real de confiança no código?”. Se a resposta for negativa, provavelmente trata-se de uma redundância que pode ser evitada.

Manter feedback rápido

O sucesso do TDD está intimamente ligado à velocidade de execução dos testes. Se o ciclo de feedback for lento, os desenvolvedores acabam perdendo disciplina e ignorando a execução frequente. É por isso que testes precisam ser automatizados e rápidos. 

Ferramentas modernas de integração contínua (CI) e execução paralela ajudam a manter esse ritmo sem prejudicar a produtividade. Em geral, a execução de um conjunto de testes deve levar segundos, não minutos.

Quando não usar TDD

Apesar de seus benefícios, o TDD não é uma solução universal. Projetos com prazos extremamente curtos, protótipos exploratórios ou provas de conceito dificilmente se beneficiam de uma cobertura extensa de testes. 

Situação / CenárioPor que evitar TDDAlternativa indicada
Projetos com prazos extremamente curtosO tempo gasto criando testes antes do código pode atrasar entregas urgentes.Implementar primeiro as funções principais e testar manualmente; automatizar depois.
Protótipos exploratóriosO foco é validar ideias rapidamente, não garantir robustez ou manutenção.Criar apenas o essencial e descartar ou reescrever se a ideia for aprovada.
Provas de conceito (PoC)O objetivo é demonstrar viabilidade, não construir uma base sólida de código.Testar de forma pontual apenas as partes críticas.
Projetos em fase inicial de descobertaAs mudanças frequentes de requisitos tornam os testes obsoletos rapidamente.Usar uma estratégia híbrida, testando apenas os módulos mais estáveis ou críticos.

Nesses cenários, a prioridade não é a robustez do código, mas sim validar ideias rapidamente. Investir tempo em testes pode atrasar entregas iniciais e reduzir a flexibilidade necessária.

Nesses casos, uma estratégia híbrida  com testes apenas em partes críticas costuma ser mais adequada.

TDD vs outras abordagens de teste

O TDD não é a única metodologia de testes existente, mas se destaca por sua filosofia de inverter a ordem do desenvolvimento.

Compará-lo com outras abordagens, como o BDD ou o modelo tradicional de testes pós-desenvolvimento, ajuda a entender melhor os seus pontos fortes e limitações. 

Essas comparações são fundamentais para times que precisam decidir quando aplicar TDD ou quando optar por outro modelo.

A seguir, vamos analisar de forma crítica como o TDD se diferencia, destacando cenários em que ele é mais eficiente e contextos onde pode não ser a escolha ideal.

TDD vs BDD

O Behavior-Driven Development (BDD) é semelhante ao TDD, mas foca mais no comportamento do sistema do ponto de vista do usuário. Enquanto o TDD escreve testes técnicos, o BDD escreve cenários em linguagem natural (ex.: Cucumber).

AspectoTDDBDD
FocoCódigoComportamento do usuário
LinguagemTécnica (ex.: assert)Natural (ex.: Given, When, Then)
FerramentasJUnit, Pytest, JestCucumber, Behave

Essa abordagem permite que todos compreendam os objetivos do software de forma clara antes mesmo de iniciar o desenvolvimento, promovendo alinhamento entre as áreas técnicas e de negócio.

TDD vs testes pós-desenvolvimento

A principal diferença entre TDD e os testes tradicionais está no momento em que eles acontecem.

No modelo convencional, o código é escrito primeiro e só depois validado por testes, o que muitas vezes gera retrabalho, já que bugs e falhas de lógica são identificados tardiamente. Esse atraso aumenta o custo de correção e pode comprometer prazos do projeto.

No TDD, o processo é invertido: os testes são criados antes do código, funcionando como uma espécie de guia para o desenvolvimento. Isso garante que cada funcionalidade só é implementada quando existe um teste que valide o seu comportamento.

Como consequência, o time reduz o acúmulo de erros, evita funcionalidades mal especificadas e mantém um ciclo de feedback constante.

Essa abordagem não elimina a necessidade de testes posteriores, mas assegura qualidade desde o início, tornando o desenvolvimento mais eficiente, seguro e previsível.

Exemplo prático de aplicação de TDD

Nada ilustra melhor o valor do TDD do que um exemplo aplicado. Com ele, conseguimos visualizar como o ciclo Red-Green-Refactor acontece na prática e como pequenos passos evoluem para soluções robustas. 

Esse tipo de demonstração prática também ajuda a desmistificar a ideia de que TDD é complexo ou inviável em projetos reais.

Pelo contrário, mesmo em casos simples, é possível perceber ganhos imediatos em clareza, segurança e qualidade do código. A seguir, vamos construir um exemplo passo a passo para consolidar o aprendizado.

Projeto simples passo a passo

Agora iremos ver um projeto prático no qual o objetivo é comprovar que a função soma está correta e permanecerá correta mesmo após futuras mudanças no código, além de demonstrar na prática como aplicar TDD.

1) RED – escrever o teste e ver ele falhar

  1. Crie o arquivo de teste src/App.test.js com este conteúdo da imagem:
  1. Execute os testes (npm test ou yarn test).
  2. Saída esperada nesta fase (imagem com ReferenceError: sum is not defined): o teste falhará porque a função sum ainda não foi exportada/definida corretamente, isso confirma que o teste está verificando algo real (fase Red).

Por que é importante: ver o teste falhar prova que o teste é válido e que estamos cobrindo comportamento que ainda não existe.

2) GREEN –  implementar o mínimo para o teste passar

  1. Abra/Crie src/App.js e adicione a implementação mínima:

export const sum = (a, b) => a + b;

ou versão com return:

export function sum(a, b) {

  return a + b;

}

  1. Salve e rode npm test novamente.
  2. Salve e rode npm test novamente.

3) BLUE –  melhorar o código mantendo os testes verdes

Depois do Green, faça pequenas melhorias no código sem alterar o comportamento, aplicando as melhores práticas de desenvolvimento, como verá abaixo:

  • Remover comentários desnecessários;
  • Transformar para uma versão mais legível (ou compacta);
  • Consolidar testes repetidos em fixtures.

Aqui foi possível praticar o ciclo TDD com um teste que falha (Red), implementar o código mínimo para que ele passe (Green) e, por fim, refatorar com segurança mantendo o comportamento esperado (Blue).

Embora pareça básico, esse ciclo garante que cada funcionalidade seja validada desde o início, reduzindo erros e aumentando a confiança no código.

O objetivo final não é apenas validar a soma, mas mostrar como o TDD cria uma base sólida para projetos maiores, nos quais qualidade, manutenção e evolução do software são cruciais para o sucesso desses projetos.

Demonstração do ciclo completo

Vamos passar por um exemplo prático utilizando TDD (Test Driven Development) com JavaScript, utilizando Node.js como ambiente e o Jest como biblioteca de testes.

O foco será criar uma função que realiza a soma de dois números, mas seguindo os princípios do desenvolvimento orientado a testes.

1. Configurando o ambiente

Para começar, crie um novo diretório para o seu projeto e inicialize o Node.js com o seguinte comando:

npm init -y

Esse comando vai gerar um arquivo package.json com a configuração básica do projeto.

Em seguida, instale o Jest como uma dependência de desenvolvimento:

npm install   --save-date  jet

Após a instalação, seu projeto terá agora uma pasta node_modules e o arquivo package-lock.json.


Para facilitar a execução dos testes, abra o package.json e adicione um script personalizado, como verá abaixo:

"scripts": {
    "test": "jest",
    "test:unit": "jest --coverage --runInBand"
  }

Dessa forma, sempre que rodarmos npm test ou npm run test, o Jest será executado.

2. Criando o primeiro teste

Antes de escrevermos qualquer funcionalidade, vamos definir o que esperamos que ela faça. A ideia aqui é validar que a soma de dois valores simples retorne o resultado correto.

Crie um arquivo chamado index.test.js e insira o seguinte teste:

test( espera que a soma de 1+2 seja 3´, () => { // descrição do teste
      const a = 1 // primeiro valor
      const b= 2 // segundo valor
      const soma= 0 // soma dos dois valores

       expect(soma) . toBe(3)  // espera que a soma seja 3
});

Nesse momento, deliberadamente deixamos a lógica errada (resultado é 0), pois ainda não escrevemos a função real. Isso nos ajudará a ver o teste falhar  um passo fundamental no ciclo do TDD, a etapa Red, para isso execute o comando:

npm run test

Assim, o teste falhará, como esperado, pois 0 !== 3.

3. Implementando a função

Agora que já temos o teste definido, é hora de criar a funcionalidade que será testada.

Crie um arquivo chamado index.js com a função somar, da seguinte forma:

function somar (a,b) {
            return 0
}

module. exports = {
      somar, // exporta a funcionalidade
}

Depois, atualize o arquivo de teste para realmente chamar a função que criamos:

const {somar} =  require (´ . /index)  // importamos a nossa funcionalidade

test (´espera que a soma de 1+ 2 seja 3`, () = > {  // descrição do testeconst a  =   1   // primeiro valor
const b  =   2  // segundo valor
const soma = somar (a, b) //  soma dos dois valores
expect (soma) . toBe (3)  const {somar} =  require (´ . /index)  // importamos a nossa funcionalidade

test (´espera que a soma de 1+ 2 seja 3`, () = > {  // descrição do testeconst a  =   1   // primeiro valor
const b  =   2  // segundo valor
const soma = somar (a, b) //  soma dos dois valores
expect (soma) . toBe (3)  // espera que a soma seja 3
 });

Rode novamente os testes com npm test. Como a função ainda retorna 0, o teste seguirá falhando. Dessa forma, isso confirma que nosso teste está validando corretamente o comportamento.

4. Corrigindo a implementação

Com a estrutura de testes funcionando, agora podemos ajustar a função para retornar o valor correto:

function somar (a,b) {  // parâmetros da soma
const soma = a+b //  realiza a soma dos dois valores
return soma // retorna o valor da soma
}
module. exports = {
somar, // exporta a funcionalidade
}

Ao rodar o teste novamente, veremos que ele agora passa com sucesso, indicando que a função atende ao requisito definido inicialmente.

Conclusão

O Test-Driven Development (TDD) não é apenas uma técnica de testes, mas uma forma de desenvolver software com mais confiança, qualidade e sustentabilidade.

Embora exija disciplina no início, seus benefícios em termos de redução de falhas, facilidade de refatoração e clareza no design são indiscutíveis.

Se você gostou deste conteúdo, confira outros posts relacionados aqui, no Blog da HostGator.

Conteúdos relacionados

Navegue por tópicos

  • O que é TDD?

    • Definição de Test-Driven Development

    • Origem e propósitos

  • Ciclo básico do TDD

    • Red – escrever um teste que falha

    • Green – implementar o mínimo para passar

    • Refactor – melhorar o código mantendo testes

  • Benefícios de usar TDD

    • Redução de bugs e aumento da confiabilidade

    • Facilita refatorações seguras

    • Código mais limpo e modular

  • Como começar com o TDD no seu projeto

    • Escolha do framework de testes

    • Escrevendo os primeiros testes

    • Automatizando testes no CI/CD

  • Boas práticas e armadilhas comuns

    • Escrever testes pequenos e focados

    • Evitar sobre-teste ou redundâncias

    • Manter feedback rápido

    • Quando não usar TDD

  • TDD vs outras abordagens de teste

    • TDD vs BDD

    • TDD vs testes pós-desenvolvimento

  • Exemplo prático de aplicação de TDD

    • Projeto simples passo a passo

    • Demonstração do ciclo completo

    • 1. Configurando o ambiente

    • 2. Criando o primeiro teste

    • 3. Implementando a função

    • 4. Corrigindo a implementação

  • Conclusão

  • Conteúdos relacionados

Tags:

  • Hospedagem de Sites

Alexandre Nogueira

Alexandre Nogueira é jornalista, Redator SEO, Copywriter e especialista em tecnologia. Possui ainda pós-graduação em Jornalismo Esportivo e especialização em marketing digital. Já trabalhou em grandes agências, como a Rock Content e a SharpSpring. Escreve sobre Tecnologia, Marketing digital, SEO, Cultura e Esportes. Ama jornalismo, games, tecnologia, pets, cinema, viajar, escrever, o futebol e o Santos, não necessariamente nessa ordem.

Mais artigos do autor

Garanta sua presença online

Encontre o nome perfeito para seu site

www.