Identifying and Correcting Errors · Identificação e Correção de Erros
| English | Português |
|---|---|
| bug/bʌɡ/ | bug |
| debugging/ˈdiːbʌɡɪŋ/ | depuração |
| syntax error/ˈsɪntæks ˈerə/ | erro de sintaxe |
| logic error/ˈlɒdʒɪk ˈerə/ | erro de lógica |
| runtime error/ˈrʌntaɪm ˈerə/ | erro de tempo de execução |
| overflow error/ˌəʊvəˈfləʊ ˈerə/ | erro de transbordamento |
| edge case/edʒ keɪs/ | caso limite |
| expected output/ekˈspektɪd ˈaʊtpʊt/ | saída esperada |
Every program has bugs
- No matter how careful the team is, programs contain mistakes.
- A mistake in a program is a bug 缺陷.
- Finding and fixing bugs is called debugging 调试.
- Skilled debugging is one of the most valuable abilities a programmer can build.
Todo programa tem bugs
- Não importa quão cuidadosa seja a equipe, programas contêm erros.
- Um erro em um programa é um bug.
- Encontrar e corrigir bugs é chamado de debugging.
- Debugging habilidoso é uma das habilidades mais valiosas que um programador pode desenvolver.
Which kind of error? · Que tipo de erro?
A syntax error stops the program running; a logic error runs but gives the wrong answer; a runtime error crashes it partway; an overflow error exceeds storage. · Um erro de sintaxe impede o programa de rodar; um erro lógico roda, mas dá a resposta errada; um erro de tempo de execução o fecha no meio; um erro de transbordamento excede o armazenamento.
The work of finding and fixing mistakes in a program is called ______. · O trabalho de encontrar e corrigir erros em um programa é chamado ______.
A mistake is a bug; fixing bugs is debugging. · Um erro é um bug; corrigir bugs é depurar (debugging).
A missing bracket that stops the program from running is a: · Um colchete faltante que impede o programa de rodar é um:
Breaking the language's rules is a syntax error. · Quebrar as regras da linguagem é um erro de sintaxe.
Why are logic errors often the hardest to find? · Por que erros lógicos são frequentemente os mais difíceis de encontrar?
Nothing obviously breaks, so you must compare output to what you expected. · Nada quebrar visivelmente, então você deve comparar a saída com o que era esperado.
The main kinds of error
- A syntax error 语法错误 breaks the language's rules (a missing bracket) — the program refuses to run.
- A logic error 逻辑错误 runs but gives the wrong result, because the instructions do not match the plan.
- A runtime error 运行时错误 crashes the program while it runs — like dividing by zero.
- An overflow error 溢出错误 happens when a value grows too large for its storage space.
Os principais tipos de erro
- Um erro de sintaxe quebra as regras da linguagem (um colchete faltando) — o programa se recusa a rodar.
- Um erro de lógica roda, mas dá o resultado errado, porque as instruções não correspondem ao plano.
- Um erro de execução causa crash no programa enquanto ele roda — como divisão por zero.
- Um erro de overflow acontece quando um valor cresce demais para seu espaço de armazenamento.
Testing with edge cases (empty input, very large numbers) helps find hidden bugs. · Testar com casos limites (entrada vazia, números muito grandes) ajuda a encontrar bugs escondidos.
Bugs often hide at the limits of what a program expects. · Bugs costumam se esconder nos limites do que um programa espera.
To spot a bug in a test, you compare the actual output with the: · Para identificar um bug em um teste, compare a saída real com a:
A difference between actual and expected output points to a bug. · Uma diferença entre a saída real e a esperada aponta para um bug.
How to find them
- Test with many inputs, including unusual ones — a very large number, empty input, or an edge case 边界情况 at the limit.
- Compare the actual output with the expected output 预期输出; a difference points to a bug.
- Add temporary print statements to see internal values, so you find where it first goes wrong.
- Divide and check: confirm one part is correct, then narrow down the rest.
Como encontrá-los
- Teste com muitas entradas, incluindo incomuns — um número muito grande, entrada vazia ou um edge case no limite.
- Compare a saída real com a saída esperada; uma diferença aponta para um bug.
- Adicione impressões temporárias para ver valores internos, assim você encontra onde ele falha primeiro.
- Divida e verifique: confirme que uma parte está correta, depois reduza o resto.
You should re-test the whole program after fixing a bug, since a fix can create a new bug. · Você deve retestar todo o programa após corrigir um bug, pois uma correção pode criar um novo bug.
Careful re-testing is what makes software trustworthy. · A cuidadosa retestagem é o que torna o software confiável.
Fix, then re-test
- Logic errors are the hardest — nothing obviously "breaks," the answer is just wrong.
- Fixing one bug can create another.
- So after every correction, re-test the whole program.
- Careful, repeated testing turns a rough prototype into software people can trust.
"It ran" is not "it's correct." A logic error runs with no crash and no message — the program looks fine but the answer is wrong. The only way to catch it is to compare the output with what you expected, not just check that it ran.
Corrija, depois teste novamente
- Erros de lógica são os mais difíceis — nada obviamente "quebra", a resposta está apenas errada.
- Corrigir um bug pode criar outro.
- Então, após cada correção, teste todo o programa novamente.
- Testes cuidadosos e repetidos transformam um protótipo rudo em software confiável.
"It ran" não é "está correto." Um erro de lógica executa sem travar e sem mostrar mensagem — o programa parece estar bem, mas a resposta está errada. A única forma de detectá-lo é comparar a saída com o que você esperava, e não apenas verificar se ele executou.
A bug is a mistake; fixing bugs is debugging. A syntax error stops the program running, a logic error runs but gives the wrong answer, a runtime error crashes it partway, and an overflow error exceeds storage. Find bugs by testing many inputs (especially edge cases) against the expected output, and always re-test after a fix.
Um bug é um erro; corrigir bugs é debugging. Um erro de sintaxe impede o programa de rodar, um erro de lógica roda, mas dá a resposta errada, um erro de tempo de execução causa uma falha parcial, e um erro de overflow excede o armazenamento. Encontre bugs testando muitas entradas (especialmente casos limite) contra a saída esperada, e sempre re-teste após uma correção.