SlideShare uma empresa Scribd logo
software
de
Teste
Help  About me...
• André Phillip Bertoletti
• Desenvolvedor de software
autônomo, professor, consultor e
agitador de comunidades
• Entusiasta das Boas Práticas e
Métodos Ágeis
• Curto também: violão, políticas
públicas, café, espiritualidade, etc...
apbertoletti@gmail.com
@apbertoletti
/apbertoletti
/apbertoletti
Test infection
Ahá!
moments
compartilho alguns...
Qualidade de Software
O que é
qualidade
mesmo?
Mas...
Qual dos carros abaixo tem mais
qualidade?
Ahá! moment #1
Qualidade tem a ver
com a perspectiva do
cliente sobre o
produto
Como está a qualidade na indústria
de software
Fonte: Stanish Group Chaos Report 2020
Em busca de mais qualidade...
Paradigmas de
programação
Métodos
ágeis
Padrões
De projeto
Frameworks
Boas
práticas
Teste de
Sotware
Open Source
Lean
Software
Ferramentas
Mais robustas
Maturidade dos
Profissionais
Comunidades
Tipos de testes (zoom in)
Testes
exploratórios
Testes de
integração
Testes manuais
Testes de
aceitação
Testes
unitário
BDD
Testes de
mutação
Testes de
usabilidade
Testes de
carga/stress
Testes de UI TDD
Pirâmide de testes
Custo de correção de um bug no ciclo
de vida de um software
Conceitos básicos
O que é
testar
mesmo?
Mas...
Um processo feito de forma
responsável precisa ser
testado sempre, a fim de
garantir que o resultado
obtido confere com o
resultado esperado
Processo: “Pendurar quadro na parede”
Qual seria o teste deste processo?
Passou no Teste - OK!!!
Resultado esperado =
quadro na parede
Ahá! moment #2
Um teste de qualidade
precisa ter clareza do(s)
seu(s) resultado(s)
esperado(s)!
Aqui entra o teste unitário
Teste unitário é a verificação da
menor unidade de um processo (ou
das unidades mais importantes),
afim de validar se os resultados de
entrada/saída conferem com o
esperado.
Qualquer processo manual
que também possua um
resultado
esperado
é passível
de
testes unitários
(automatizado
ou manual)
Software: é aqui que entramos...
Construir um Software significa
automatizar um processo que
antes era feito manualmente
Dados de
Entrada
Processamento
Automático
Dados de
Saída
Testes manuais
Como acontece um teste manual
NECESSIDADE:
Desenvolver um software que
calcule as quatro operações
aritméticas básicas entre dois
valores e mostre o resultado na
tela.
RESULTADO ESPERADO:
(operação de adição)
• Valor1 = 100
• Valor2 = 200
• Resultado = 300
Vamos a demo!
Ahá! moment #3
Um teste de qualidade
precisa ter definidos
bons cenários de testes
Somente os
testes
manuais
bastam?
Mas...
O problema é que estes testes
não são automáticos
... e tarefas complexas
feitas de forma manual
cansativas e chatas... e, uma
hora ou outra, nós deixaremos de
fazê-las.
e repetitiva tornam-se
Além disso, outros fatores que
dificultam o teste manual...
Testes automatizados
Testes como nossa
Rede de proteção
Pensando além
do F5 (RUN)...
se nós já
automatizamos o
processo, será que
não conseguimos
também
automatizar
o seu
teste???
Um outro software
testando...
Portanto, o Teste Unitário
Automatizado nada mais é que...
...o seu software
Quando rodamos um teste
automatizado, fica sob
responsabilidade dele nos informar
quais testes passaram ou não
Frameworks de Teste Automatizado
• C#
– MSTest (http://msdn.microsoft.com/en-us/library/ms243147.aspx)
– xUnit (https://xunit.net)
• Java
– JUnit (http://junit.org)
• JavaScript
– Unit.JS (http://unitjs.com)
• Delphi
– DUnit (http://dunit.sourceforge.net)
• Objetive-C
– OCUnit (http://www.sente.ch/software/ocunit)
• Demais linguagens
– http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks
Vamos a demo!
TDD – Test Driven Development
Escutar o
que teste
está
dizendo
Test Driven
Develoment
Ahá! moment #4
TDD te ajuda a escrever
o menor e o melhor
código para resolver um
problema
1
2
3
Vamos a demo!
Exercício para TDD
Desenvolver uma rotina que calcule o salário
líquido do funcionário (com descontos), levando em
consideração o salário atual e o cargo
do funcionário.
As regras de negocio são as seguintes:
• Desenvolvedores possuem 20% de desconto caso
seu salario seja maior do que R$ 3000,0. Caso
contrario, o desconto e de 10%.
• DBAs e testadores possuem desconto de 25% se
seus salários forem maiores do que R$ 2500,0.
15%, em caso contrario.
Resolução: https://github.com/DevRioClaro/TesteDeSoftware_05-07-2014/tree/master/TDD
Ahá! moment #5
Participar de
Coding Dojos me ajudou
muito a compreender e
praticar o TDD
Isso tudo
funciona no
mundo real?
Mas...
Benefícios
• Desenvolver testes encoraja o programador a
fazer um bom design do seu código,
afim de facilitar o seu teste automatizado.
• Exemplo: separação dos métodos de regras de
negócio, da camada apresentação.
Benefícios
• Encoraja o programador a desenvolver
código limpo. Pois, se o método estiver
coberto com testes automatizados, é
garantida a sua refatoração. E isso é feito de
forma segura, garantindo que o mesmo
continuará funcionando.
• Exemplo: (mostrar no código)
Benefícios
• Independente do programador (iniciante ou
experiente) que esteja mexendo no código, o
produto final continuará funcionando
como era esperado. Por isso, o teste unitário
automatizado, pode ser considerado um
“Ativo Fixo” de uma empresa de software;
Benefícios
• Em sistemas complexos como um ERP,
onde há métodos reutilizáveis e com alto grau
de dependência entre eles, os testes
automatizados garantem que uma simples
manutenção não “quebre” aquilo que já
estava funcionando.
• Exemplo: Implementação da última Nota
Técnica da NFe.
Nem tudo são flores...
• Mais código para escrever, pois além do
próprio método original, haverá também o(s)
método(s) de testes que irá cobri-lo.
• Exemplo:
Nem tudo são flores...
• Mais código para manter, pois caso haja
alguma alteração nos resultados esperados
dos métodos já cobertos, os seus respectivos
testes também deverão ser reajustados.
• Exemplo:
– Mudou a assinatura do método testado (novo
parâmetro, novo nome, etc).
Nem tudo são flores...
• Como toda mudança, o primeiro passo é
sairmos da zona de conforto
Lembretes importantes
• NÃO existe software sem Bug! A
ideia do teste unitário é
MINIMIZAR AO MÁXIMO a
existência deles.
Lembretes importantes
• Métodos de testes também são
software! Portanto cuidado:
testes mal escritos podem
retornar falsos positivos ou
falsos negativos!
Lembretes importantes
• O alto número de testes unitários
pode trazer uma falsa sensação
de segurança. Pois a garantia de
qualidade exige também a
prática de outros testes, como
integração, stress, aceitação, etc.
Continuando os estudos...
Playlist sobre Testes
Deep Testing – Automated tests beyond the basics
Como explicar TDD para o seu chefe
http://tdd.caelum.com.br
Princípios SOLID: teoria e prática
https://www.eduardopires.net.br/2015/01/solid-teoria-e-
pratica/
Dúvidas?!

Mais conteúdo relacionado

Mais procurados

Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
Fernando Palma
 
As aula 1 - introdução a análise de sistemas
As   aula 1 - introdução a análise de sistemasAs   aula 1 - introdução a análise de sistemas
As aula 1 - introdução a análise de sistemas
tontotsilva
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
Tiago Antônio da Silva
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
Alex Camargo
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Marcelo Yamaguti
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
Elton Minetto
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
Juliana Maria Lopes
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
Carlos Henrique Martins da Silva
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
Fabrício Campos
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
Camilo Almendra
 
Usabilidade IHC
Usabilidade IHCUsabilidade IHC
Usabilidade IHC
Wellington Oliveira
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
Nécio de Lima Veras
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
Norton Guimarães
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
Instituto Federal de Educação Ciencia e Tecnologia
 
Teste de software
Teste de softwareTeste de software
Teste de software
COTIC-PROEG (UFPA)
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
Leandro Rodrigues
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Cloves da Rocha
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
Camilo de Melo
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
Nécio de Lima Veras
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
AlexandreBartie
 

Mais procurados (20)

Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
 
As aula 1 - introdução a análise de sistemas
As   aula 1 - introdução a análise de sistemasAs   aula 1 - introdução a análise de sistemas
As aula 1 - introdução a análise de sistemas
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Usabilidade IHC
Usabilidade IHCUsabilidade IHC
Usabilidade IHC
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 

Semelhante a Teste de software - Conhecendo e Aplicando

Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedor
André Phillip Bertoletti
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
André Phillip Bertoletti
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
André Phillip Bertoletti
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
testedesoftwarepe
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
Joyce Bastos
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
Alini Rebonatto
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
Felipe Bugov
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
Leonardo Molinari
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
Taís Dall'Oca
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
Thiago Ghisi
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes
GUTS-RS
 
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust   t-curso de ferramentas para automação de teste de softwareT@rget trust   t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de software
Targettrust
 
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust   t-curso de ferramentas para automação de teste de softwareT@rget trust   t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de software
Targettrust
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
Bruno Zolotareff dos Santos
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
Cloves da Rocha
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
Camilo Ribeiro
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
Roberto Nunes
 
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
Rafael Kanaoka
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
Isaac de Souza
 

Semelhante a Teste de software - Conhecendo e Aplicando (20)

Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedor
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes
 
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust   t-curso de ferramentas para automação de teste de softwareT@rget trust   t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de software
 
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust   t-curso de ferramentas para automação de teste de softwareT@rget trust   t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de software
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 

Mais de André Phillip Bertoletti

Comunidade Locais de TI
Comunidade Locais de TIComunidade Locais de TI
Comunidade Locais de TI
André Phillip Bertoletti
 
The clean coder
The clean coder The clean coder
The clean coder
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 12
Banco de Dados II - Unimep/Pronatec - Aula 12Banco de Dados II - Unimep/Pronatec - Aula 12
Banco de Dados II - Unimep/Pronatec - Aula 12
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 11
Banco de Dados II - Unimep/Pronatec - Aula 11Banco de Dados II - Unimep/Pronatec - Aula 11
Banco de Dados II - Unimep/Pronatec - Aula 11
André Phillip Bertoletti
 
Política nas mídias sociais
Política nas mídias sociaisPolítica nas mídias sociais
Política nas mídias sociais
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 9
Banco de Dados II - Unimep/Pronatec - Aula 9Banco de Dados II - Unimep/Pronatec - Aula 9
Banco de Dados II - Unimep/Pronatec - Aula 9
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 6
Banco de Dados II - Unimep/Pronatec - Aula 6Banco de Dados II - Unimep/Pronatec - Aula 6
Banco de Dados II - Unimep/Pronatec - Aula 6
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 5
Banco de Dados II - Unimep/Pronatec - Aula 5Banco de Dados II - Unimep/Pronatec - Aula 5
Banco de Dados II - Unimep/Pronatec - Aula 5
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 4
Banco de Dados II - Unimep/Pronatec - Aula 4Banco de Dados II - Unimep/Pronatec - Aula 4
Banco de Dados II - Unimep/Pronatec - Aula 4
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 3
Banco de Dados II - Unimep/Pronatec - Aula 3Banco de Dados II - Unimep/Pronatec - Aula 3
Banco de Dados II - Unimep/Pronatec - Aula 3
André Phillip Bertoletti
 
Banco de Dados II - Unimep/Pronatec - Aula 2
Banco de Dados II - Unimep/Pronatec - Aula 2Banco de Dados II - Unimep/Pronatec - Aula 2
Banco de Dados II - Unimep/Pronatec - Aula 2
André Phillip Bertoletti
 
Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1
André Phillip Bertoletti
 

Mais de André Phillip Bertoletti (20)

Comunidade Locais de TI
Comunidade Locais de TIComunidade Locais de TI
Comunidade Locais de TI
 
The clean coder
The clean coder The clean coder
The clean coder
 
Banco de Dados II - Unimep/Pronatec - Aula 12
Banco de Dados II - Unimep/Pronatec - Aula 12Banco de Dados II - Unimep/Pronatec - Aula 12
Banco de Dados II - Unimep/Pronatec - Aula 12
 
Banco de Dados II - Unimep/Pronatec - Aula 11
Banco de Dados II - Unimep/Pronatec - Aula 11Banco de Dados II - Unimep/Pronatec - Aula 11
Banco de Dados II - Unimep/Pronatec - Aula 11
 
Política nas mídias sociais
Política nas mídias sociaisPolítica nas mídias sociais
Política nas mídias sociais
 
Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10
 
Banco de Dados II - Unimep/Pronatec - Aula 9
Banco de Dados II - Unimep/Pronatec - Aula 9Banco de Dados II - Unimep/Pronatec - Aula 9
Banco de Dados II - Unimep/Pronatec - Aula 9
 
Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8
 
Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9
 
Banco de Dados II - Unimep/Pronatec - Aula 6
Banco de Dados II - Unimep/Pronatec - Aula 6Banco de Dados II - Unimep/Pronatec - Aula 6
Banco de Dados II - Unimep/Pronatec - Aula 6
 
Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7
 
Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6
 
Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4
 
Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3
 
Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2
 
Banco de Dados II - Unimep/Pronatec - Aula 5
Banco de Dados II - Unimep/Pronatec - Aula 5Banco de Dados II - Unimep/Pronatec - Aula 5
Banco de Dados II - Unimep/Pronatec - Aula 5
 
Banco de Dados II - Unimep/Pronatec - Aula 4
Banco de Dados II - Unimep/Pronatec - Aula 4Banco de Dados II - Unimep/Pronatec - Aula 4
Banco de Dados II - Unimep/Pronatec - Aula 4
 
Banco de Dados II - Unimep/Pronatec - Aula 3
Banco de Dados II - Unimep/Pronatec - Aula 3Banco de Dados II - Unimep/Pronatec - Aula 3
Banco de Dados II - Unimep/Pronatec - Aula 3
 
Banco de Dados II - Unimep/Pronatec - Aula 2
Banco de Dados II - Unimep/Pronatec - Aula 2Banco de Dados II - Unimep/Pronatec - Aula 2
Banco de Dados II - Unimep/Pronatec - Aula 2
 
Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (8)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Teste de software - Conhecendo e Aplicando

  • 2. Help  About me... • André Phillip Bertoletti • Desenvolvedor de software autônomo, professor, consultor e agitador de comunidades • Entusiasta das Boas Práticas e Métodos Ágeis • Curto também: violão, políticas públicas, café, espiritualidade, etc... apbertoletti@gmail.com @apbertoletti /apbertoletti /apbertoletti
  • 5.
  • 6.
  • 9. Qual dos carros abaixo tem mais qualidade?
  • 10. Ahá! moment #1 Qualidade tem a ver com a perspectiva do cliente sobre o produto
  • 11. Como está a qualidade na indústria de software Fonte: Stanish Group Chaos Report 2020
  • 12. Em busca de mais qualidade... Paradigmas de programação Métodos ágeis Padrões De projeto Frameworks Boas práticas Teste de Sotware Open Source Lean Software Ferramentas Mais robustas Maturidade dos Profissionais Comunidades
  • 13. Tipos de testes (zoom in) Testes exploratórios Testes de integração Testes manuais Testes de aceitação Testes unitário BDD Testes de mutação Testes de usabilidade Testes de carga/stress Testes de UI TDD
  • 15. Custo de correção de um bug no ciclo de vida de um software
  • 18. Um processo feito de forma responsável precisa ser testado sempre, a fim de garantir que o resultado obtido confere com o resultado esperado
  • 19. Processo: “Pendurar quadro na parede” Qual seria o teste deste processo?
  • 20. Passou no Teste - OK!!! Resultado esperado = quadro na parede
  • 21. Ahá! moment #2 Um teste de qualidade precisa ter clareza do(s) seu(s) resultado(s) esperado(s)!
  • 22. Aqui entra o teste unitário Teste unitário é a verificação da menor unidade de um processo (ou das unidades mais importantes), afim de validar se os resultados de entrada/saída conferem com o esperado.
  • 23. Qualquer processo manual que também possua um resultado esperado é passível de testes unitários (automatizado ou manual)
  • 24. Software: é aqui que entramos...
  • 25. Construir um Software significa automatizar um processo que antes era feito manualmente Dados de Entrada Processamento Automático Dados de Saída
  • 27. Como acontece um teste manual NECESSIDADE: Desenvolver um software que calcule as quatro operações aritméticas básicas entre dois valores e mostre o resultado na tela. RESULTADO ESPERADO: (operação de adição) • Valor1 = 100 • Valor2 = 200 • Resultado = 300
  • 29. Ahá! moment #3 Um teste de qualidade precisa ter definidos bons cenários de testes
  • 31. O problema é que estes testes não são automáticos ... e tarefas complexas feitas de forma manual cansativas e chatas... e, uma hora ou outra, nós deixaremos de fazê-las. e repetitiva tornam-se
  • 32. Além disso, outros fatores que dificultam o teste manual...
  • 34. Testes como nossa Rede de proteção
  • 35. Pensando além do F5 (RUN)... se nós já automatizamos o processo, será que não conseguimos também automatizar o seu teste???
  • 36. Um outro software testando... Portanto, o Teste Unitário Automatizado nada mais é que... ...o seu software
  • 37. Quando rodamos um teste automatizado, fica sob responsabilidade dele nos informar quais testes passaram ou não
  • 38. Frameworks de Teste Automatizado • C# – MSTest (http://msdn.microsoft.com/en-us/library/ms243147.aspx) – xUnit (https://xunit.net) • Java – JUnit (http://junit.org) • JavaScript – Unit.JS (http://unitjs.com) • Delphi – DUnit (http://dunit.sourceforge.net) • Objetive-C – OCUnit (http://www.sente.ch/software/ocunit) • Demais linguagens – http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks
  • 40. TDD – Test Driven Development
  • 41.
  • 42.
  • 43.
  • 46. Ahá! moment #4 TDD te ajuda a escrever o menor e o melhor código para resolver um problema
  • 47. 1 2 3
  • 49. Exercício para TDD Desenvolver uma rotina que calcule o salário líquido do funcionário (com descontos), levando em consideração o salário atual e o cargo do funcionário. As regras de negocio são as seguintes: • Desenvolvedores possuem 20% de desconto caso seu salario seja maior do que R$ 3000,0. Caso contrario, o desconto e de 10%. • DBAs e testadores possuem desconto de 25% se seus salários forem maiores do que R$ 2500,0. 15%, em caso contrario. Resolução: https://github.com/DevRioClaro/TesteDeSoftware_05-07-2014/tree/master/TDD
  • 50. Ahá! moment #5 Participar de Coding Dojos me ajudou muito a compreender e praticar o TDD
  • 52.
  • 53. Benefícios • Desenvolver testes encoraja o programador a fazer um bom design do seu código, afim de facilitar o seu teste automatizado. • Exemplo: separação dos métodos de regras de negócio, da camada apresentação.
  • 54. Benefícios • Encoraja o programador a desenvolver código limpo. Pois, se o método estiver coberto com testes automatizados, é garantida a sua refatoração. E isso é feito de forma segura, garantindo que o mesmo continuará funcionando. • Exemplo: (mostrar no código)
  • 55. Benefícios • Independente do programador (iniciante ou experiente) que esteja mexendo no código, o produto final continuará funcionando como era esperado. Por isso, o teste unitário automatizado, pode ser considerado um “Ativo Fixo” de uma empresa de software;
  • 56. Benefícios • Em sistemas complexos como um ERP, onde há métodos reutilizáveis e com alto grau de dependência entre eles, os testes automatizados garantem que uma simples manutenção não “quebre” aquilo que já estava funcionando. • Exemplo: Implementação da última Nota Técnica da NFe.
  • 57. Nem tudo são flores... • Mais código para escrever, pois além do próprio método original, haverá também o(s) método(s) de testes que irá cobri-lo. • Exemplo:
  • 58. Nem tudo são flores... • Mais código para manter, pois caso haja alguma alteração nos resultados esperados dos métodos já cobertos, os seus respectivos testes também deverão ser reajustados. • Exemplo: – Mudou a assinatura do método testado (novo parâmetro, novo nome, etc).
  • 59. Nem tudo são flores... • Como toda mudança, o primeiro passo é sairmos da zona de conforto
  • 60. Lembretes importantes • NÃO existe software sem Bug! A ideia do teste unitário é MINIMIZAR AO MÁXIMO a existência deles.
  • 61. Lembretes importantes • Métodos de testes também são software! Portanto cuidado: testes mal escritos podem retornar falsos positivos ou falsos negativos!
  • 62. Lembretes importantes • O alto número de testes unitários pode trazer uma falsa sensação de segurança. Pois a garantia de qualidade exige também a prática de outros testes, como integração, stress, aceitação, etc.
  • 63. Continuando os estudos... Playlist sobre Testes Deep Testing – Automated tests beyond the basics Como explicar TDD para o seu chefe http://tdd.caelum.com.br Princípios SOLID: teoria e prática https://www.eduardopires.net.br/2015/01/solid-teoria-e- pratica/

Notas do Editor

  1. Não podemos confundir qualidade com atributos. Qualidade precisa atender as especificações esperadas.
  2. Isso é até natural, pois a industria de software é muito nova (década de 70) Enquanto outras industrias como engenharia civil existe a milhares de anos, desde a construções da piramides.
  3. Se usarmos todas estas técnicas de engenharia, nosso softwares serão perfeitos?
  4. Se usarmos todas estas técnicas de engenharia, nosso softwares serão perfeitos?
  5. Abrir o projeto “E:\Dados\André\Documentos\Profissional\DevRioClaro\9° Encontro - Teste de software\Demos\Calculadora\Calculadora\Calculadora” Fazer um teste manual, sem documentação alguma Em seguida, iniciar um teste manual documentado, seguindo um roteiro de testes. Explicar que com roteiro, qualquer pessoa poderia testar e devolver os resultados (tester, cliente, etc.) Abrir o roteiro modelo em “E:\Dados\André\Documentos\Profissional\DevRioClaro\9° Encontro - Teste de software\Demos\Calculadora\Calculadora\TestesManuais\PlanoTestes_Demo01.doc” Explicar um pouco o conceito deste roteiro e criar um primeiro cenário de testes. Excutá-lo e explicar a necessidade de se criar outros cenários de teste (classes de equivalencia) Digitar mais um ou dois cenários pro pessoal entender, em seguida, abrir o documento com todos os cenários completos. Testar todos os cenários e quando chegar no cenário 4.6 (ultimo cenário, onde vai dar problema). Logar o falha e explicar como o ciclo onde o Dev seria informado de qual foi cenario com erro. PERGUNTA: mesmo o Dev corrigindo este cenario, o Tester deverá retestar os cenários que já haviam passado? SIM. Justificar esta resposta fazendo implementação bem simplista (E:\Dados\André\Documentos\Profissional\DevRioClaro\9° Encontro - Teste de software\Demos\Txts\Classe Calculos com correção bugada do cenário 4.6.txt)