4. Autodestruição ativada
O primeiro lançamento do foguete Ariane 5 falhou 37
segundos após sair do solo causando sua destruição.
Motivo: mau funcionamento no software de controle.
O valor de ponto flutuante era muito grande para
ser representado por um inteiro de 16 bits.
Fonte:
en.wikipedia.org/wiki/Ariane_5
5. Pareceu malware, mas não era
Em 2009, foi adicionada uma barra invertida em todas as URLs que eram
direcionadas para o buscador da empresa.
Resultado: o site foi sinalizado como malware no mundo todo por cerca de 1 hora
Gerou prejuízo total de quase US$ 3 milhões
6. ➔ Tempo
➔ Planejamento
➔ Hábito
➔ Trabalhoso
➔ Conflito com a área de negócios
Por que deixamos os testes para depois/nunca ?
7. ➔ Retrabalho
➔ Virar a noite codando
➔ Alterar código antes da review
➔ Encontrar bug minutos antes do deploy
➔ Cobrir apenas o happy path
Impactos
9. Tipos de Testes
➔ Funcional
Tem o objetivo de validar as
funcionalidades descritas na
documentação.
➔ Interface
Testa se objetos de tela e a
navegabilidade funcionam
conforme o especificado.
➔ Regressão
Ocorre quando é feita alguma alteração na aplicação, por
exemplo, uma nova funcionalidade. Neste caso a recomendação
é executar todos os testes novamente.
Existem diversos tipos de testes de software. Os mais comuns são:
11. Testes Unitários
➔ Testar a menor unidade de
código possível, podendo ser
uma classe ou um método.
➔ Mostrar que cada unidade
atende corretamente sua
especificação.
12. Testes Unitários
➔ A implementação é de responsabilidade do
desenvolvedor, por se tratar de um teste com foco
direto no código.
➔ Devem ser formulados para garantir que todos os
pontos do fluxo a ser testado sejam verificados ao
menos uma vez durante o teste.
13. Frameworks
Existem hoje no mercado vários frameworks de teste para a plataforma .NET.
Podemos citar alguns:
➔ MsTest: É a biblioteca de testes padrão do .NET integrada ao Visual Studio.
➔ NUnit: Projeto open source derivado do JUnit, que é um framework de
testes para Java.
➔ xUnit.net: É biblioteca de testes também open source que surgiu como
uma evolução do NUnit para testar linguagens da plataforma .NET (C#,
VB.NET, F# e outras).
14.
15. Programação Orientada a Testes
TDD (Test-Driven Development)
➔ Escreva testes antes mesmo de escrever o código de
produção
➔ Assegurar que boa parte do seu sistema tenha um teste
que garanta o seu funcionamento
16. Como funciona?
➔ Escreva um teste que falha,
faça-o passar da maneira mais
simples possível e, por fim,
refatore o código.
➔ Esse ciclo é conhecido como
Ciclo Vermelho-Verde-Refatora.
17. O que eu ganho?
➔ Agilidade nos testes automatizados (mais rápido que testes manuais);
➔ Menor quantidade de bugs;
➔ Redução de custos com manutenção;
➔ Segurança ao desenvolvedor na hora de mudanças;
➔ Auxilia na documentação do sistema, pois o teste indica qual deve ser
o comportamento esperado para a unidade a ser testada;
➔ Código de produção de qualidade;
Se está difícil escrever um teste automatizado,
é porque provavelmente o código de produção está complicado !
24. Desafio
Ano Bissexto
Um ano é bissexto se ele for divisível por 400
ou se ele for divisível por 4 e não por 100.
Exemplos de anos Bissexto:
1980, 1984, 1988, 1992, 1996 e 2000.