---
title: "Capítulo 9. O teste como função de recompensa"
url: "https://www.mikefluff.com/pt/read/nobody-writes-code/ch09"
locale: "pt"
author: "Mikhail Savchenko (Mike Fluff)"
updated: "2026-10-10T17:48:25.825Z"
book: "https://www.mikefluff.com/pt/books/nobody-writes-code"
access: "lead-in"
purchase: "https://www.mikefluff.com/pt/books/nobody-writes-code"
alternates:
  - locale: "ru"
    url: "https://www.mikefluff.com/ru/read/nobody-writes-code/ch09"
    markdown: "https://www.mikefluff.com/ru/read/nobody-writes-code/ch09.md"
  - locale: "en"
    url: "https://www.mikefluff.com/en/read/nobody-writes-code/ch09"
    markdown: "https://www.mikefluff.com/en/read/nobody-writes-code/ch09.md"
  - locale: "pt"
    url: "https://www.mikefluff.com/pt/read/nobody-writes-code/ch09"
    markdown: "https://www.mikefluff.com/pt/read/nobody-writes-code/ch09.md"
---

# Capítulo 9. O teste como função de recompensa

*[Ninguém Mais Escreve Código](https://www.mikefluff.com/pt/books/nobody-writes-code)*

Um teste automatizado, em programação, é uma coisa muito simples. É um programinha que roda um pedaço de um programa maior com dados conhecidos de antemão e verifica se sai o resultado conhecido de antemão. Se a manicure custa mil e quinhentos e a cliente tem dez por cento de desconto, o programa de cálculo tem de devolver mil trezentos e cinquenta, e o teste verifica isso: chama o cálculo, compara a resposta com o número e informa “passou” ou “não passou”. Um bom projeto vai acumulando milhares de verificações assim, e elas rodam a cada mudança.

Para as pessoas, os testes foram durante décadas uma espécie de seguro. O programador escrevia o código e depois, se tivesse tempo e consciência, escrevia testes que confirmavam que ele não tinha errado e continuavam confirmando isso a cada edição seguinte. Quase ninguém gostava de escrevê-los, porque o teste não acrescenta ao programa nada que se possa mostrar ao cliente, e quando os prazos apertavam, os testes eram deixados para depois, e o depois nunca chegava. Em 2002 o programador americano Kent Beck lançou um livro sobre desenvolvimento guiado por testes em que propunha fazer o contrário: primeiro escrever um teste que descreve o que você quer do código, confirmar que ele falha, e depois escrever o código até o teste passar. O método ficou famoso, foi ensinado em cursos e elogiado em conferências, e a maioria dos programadores, pelo que sei, nunca chegou a usá-lo.

Com a chegada dos agentes, os testes ganharam um novo sentido, e hoje, na minha opinião, ele é mais importante que o antigo.

* * *

Para explicá-lo, vamos ter de dar uma olhada rápida em como se treinam as máquinas. Um dos métodos principais se chama aprendizado por reforço, e funciona mais ou menos como o adestramento de um cachorro. O cachorro faz alguma coisa e, se é o que o adestrador queria, ganha um petisco. Com o tempo ele passa a fazer mais o que rende petisco e menos o que não rende. Nas máquinas, o petisco é substituído por um número chamado recompensa, e a regra pela qual esse número é calculado se chama função de recompensa. O modelo tenta, recebe um número, muda de modo que na próxima vez o número seja maior, e tenta de novo.

---

O resto deste capítulo está no livro completo. Comprar o livro completo (R$ 49): https://www.mikefluff.com/pt/books/nobody-writes-code
