Pular para conteúdo

Aula 14 - Testes e Qualidade 🐞


🔍 Por que testar?

Erros custam caro.

  • Perda de usuários.
  • Má fama na loja (1 estrela).
  • Prejuízo financeiro.

"Testar é o ato de provar que seu código faz o que você diz que ele faz."


📝 O Logcat Profissional

Pare de usar println. Use etiquetas!

  • Log.d: Debug (lógica).
  • Log.i: Informação (eventos).
  • Log.w: Aviso (algo estranho).
  • Log.e: Erro grave.

🛠️ O Modo Debug (Besouro)

Seu superpoder de investigação.

  • Breakpoint: "Congele" o tempo naquela linha.
  • Variables Panel: Veja o que tem dentro de cada objeto.
  • Evaluate Expression: Execute código no meio da pausa! 🎩

🏔️ A Pirâmide de Testes

Não teste tudo da mesma forma.

  1. Unitários (70%): Lógica pura, rápidos.
  2. Integração (20%): Peças conversando.
  3. UI / Espresso (10%): O robô clica na tela.

Teste Unitário (JUnit) 🧪

@Test
fun login_comSenhaVazia_deveRetornarErro() {
    val result = validador.verificar("", "123")
    assertFalse(result)
}
  • Roda no seu PC (JVM).
  • Leva milissegundos.

Teste de UI (Espresso) ☕

O robô que simula o usuário.

onView(withId(R.id.btnEnter)).perform(click())
onView(withId(R.id.txtWelcome)).check(matches(isDisplayed()))
  • Roda no Emulador/Celular.
  • Lento, mas testa a experiência real.

🛡️ Tratamento de Exceções

Previna o "O App parou".

try {
    fazerAlgoPerigoso()
} catch (e: Exception) {
    Log.e("BUM", "Deu ruim", e)
    showErrorDialog()
}

🆚 Android vs iOS (Qualidade)

Ferramenta Android iOS
Unit Testing JUnit / Mockito XCTest
UI Testing Espresso / Barista XCUITest
Logs Logcat Console (os_log)
Profiler Android Profiler Xcode Instruments

🏃 CI/CD: Automação

Nunca envie código quebrado para o GitHub.

  • GitHub Actions: Roda seus testes a cada "Push".
  • Lint: Analisa se o seu código está limpo e segue padrões.

🛠️ Prática: Meu Primeiro Teste

  1. Vá na pasta src/test/java.
  2. Crie uma função que soma dois números.
  3. Escreva um @Test que use assertEquals.
  4. Clique no "Play" verde ao lado da função.

🏁 Conclusão

  • Programador bom é o que testa.
  • Use logs com sabedoria.
  • Aprenda a ler o Stack Trace (o relatório de erros).

❓ Perguntas sobre Qualidade?


Próxima Aula: Publicação na Google Play! 🚀👋