SlideShare uma empresa Scribd logo
INTRODUÇÃO AOS
TESTES NO FRONT-END
O que vai ser falado nessa Tech Talk?
O que são testes?
Qual a importância dos testes?
Custo para corrigir bugs em produção
Pirâmide de testes
Troféu de testes
Quais as principais técnicas usadas nos testes de software?
O que são testes?
O teste de software é um método para checar se a aplicação desenvolvida atende aos
requisitos esperados e para garantir que o programa não tenha nenhum defeito.
O teste de software é uma maneira de avaliar a qualidade da aplicação e reduzir o
risco de falha em operação.
Qual a importância dos testes?
Custo-benefício
Segurança
Qualidade do produto
Satisfação do cliente
Qual a importância dos testes?
Custo-benefício: é uma das vantagens importantes dos testes de software. Testar
qualquer projeto de TI a tempo ajuda a economizar dinheiro a longo prazo.
Segurança: é o benefício mais vulnerável e sensível dos testes de software, já que as
pessoas procuram por produtos confiáveis no mercado. Por isso, realizar o teste de
software ajuda a remover riscos e problemas mais cedo.
Qual a importância dos testes?
Qualidade do produto: é um requisito essencial de qualquer produto de software e,
com os testes, a equipe de desenvolvimento garante que um produto de qualidade
seja entregue aos clientes.
Satisfação do cliente: o principal objetivo de qualquer produto é a satisfação do
cliente. Nesse sentido, os testes de UI/UX garantem a melhor experiência das pessoas
usuárias.
Custo para corrigir bugs em produção
O gráfico Capers Jones abaixo mostra a porcentagem de defeitos introduzidos
durante cada fase do ciclo de vida de desenvolvimento. Mais importante, ele
demonstra como o custo para reparar o referido defeito passa de 1x na codificação
para mais de 640x na produção.
Capers Jones é um especialista americano em metodologias de engenharia de software, possui diversos livros sobre metodologias, padrões e boas praticas na engenharia de software.
Pirâmide de testes
A pirâmide de teste foi mencionada pela primeira vez no livro de Mike Cohn,
Succeeding with Agile (Sucesso com Ágil.)
Ele recomenda que os aplicativos sejam cobertos por muitos testes de unidade que
são a base de nossos testes. Em seguida, escrevemos testes de integração e o pico é
feito a partir de testes E2E (UI).
Mike Cohn é um dos contribuidores do método de desenvolvimento de software Scrum. Ele é um dos fundadores da Scrum Alliance. (Wikipedia)
Testam a menor unidade do sistema.
Exemplo: Testar apenas um botão.
Texto do botão
Cor
Outras propriedades específicas de um determinado botão.
Testes unitários
Print de um botão da tela de login do App BanQi*
Características:
São baratos
São fáceis, comparado aos outros testes.
São precisos.
Garante que cada pequena peça do sistema está funcionando.
Fogem do caso de uso do usuário.
Ferramentas para testes no ecossistema do React:
Jest (Js)
Testing Library/React
Testing Library/React Native
Enzyme
Testes unitários
Testam unidades de forma integrada.
Exemplo: Teste na tela de login.
Na tela de login, deve aparecer determinado texto,
determinado botão.
Quando um botão for clicado deve realizar tal navegação,
aparecer um modal, etc.
Testes de integração
Print da tela de login do App BanQi*
Características:
São um pouco mais difíceis que os testes unitários.
São menos precisos.
Entregam mais valor
Se aproximam mais do caso de uso
Ferramentas para testes no ecossistema do React:
Jest (Js)
Testing Library/React
Testing Library/React Native
Enzyme
Testes de integração
Um teste E2E, ou End-to-End, é um método de teste utilizado
para testar um fluxo da aplicação desde o começo até o fim. Seu
intuito é replicar cenários reais feitos pelos usuários com a
intenção de validar que o sistema esteja funcionando como o
esperado.
Podem ser chamados também como:
Testes de aceitação
Teste de Ponta Ponta
UI Test
Testes E2E
Características:
São muito caros
São mais demorados.(Tanto na criação como na execução)
Entregam mais valor
São mais complexos
São muito próximos do caso de uso do usuário.
Geralmente é feito por QA Tester.
Ferramentas para testes no ecossistema do React:
Selenium(React JS - Web)
Cypress(React JS - Web)
Detox(React Native - Mobile)
Testes E2E
Teste E2E feito com Detox em uma aplicação React Native
O troféu de teste
O Troféu de teste foi apresentado por Kent C. Dodds em 2018.
Traz um novo "teste", os testes estáticos.
Os testes estáticos, ele quer dizer linters e formatadores de código e também
verificadores de tipo como Flux e Typescript. Eles detectam erros de digitação à
medida que você escreve e modifica o código.
Tem como objetivo analisar o código sem precisar executá-lo.
Kent C. Dodds é muito conhecimento na comunidade React, ele atua na construção de diversas bibliotecas/frameworks .
Possui diversos artigos sobre boas praticas em escrever testes e sobre assuntos na comunidade Front-End no geral.
Apresentou pela primeira vez o "O troféu de teste" em um tweet feito em 2018.
Tem como objetivo analisar o código sem precisar executá-lo,
verificando se as boas práticas adotadas foram efetuadas. O
principal objetivo dessa técnica é identificar erros de
programação, tais como:
Práticas ruins
Falhas de segurança
Testes Estáticos
Eslint/Prettier
Typescript
As Técnicas de Teste de Software podem ser definidas como as diferentes maneiras
e métodos de testar os programas e instruções, dessa forma garantimos que estejam
funcionando bem e realizando as tarefas especificadas para as quais foram
projetados.
Algumas técnicas de teste de software:
Teste de Regressão
Teste de caixa preta
Teste de caixa branca
Teste de caixa cinza
Teste de Fumaça(Smoke testing)
Teste de carga
Teste de estresse
Testes de usuabilidade
Quais as principais técnicas usadas nos testes de
software?
Teste de Regressão
Alterações e atualizações são feitas no software continuamente. Por isso, o teste
de regressão garante que novas versões ou atualizações não tenham criado
problemas para outras áreas que funcionavam bem. O teste é realizado usando
casos de teste anteriores e os novos resultados comparados com os resultados
anteriores.
Teste de caixa preta
Esse é o teste feito em todo o sistema por pessoas que não têm nenhuma idéia
sobre o design, estrutura e implementação do software. Ele é testado para erros
na interface, desempenho, comportamento, estruturas de dados, funções, etc.
Quais as principais técnicas usadas nos testes de
software?
Teste de caixa branca
Semelhante ao teste de caixa preta, exceto que o design, a estrutura e a
implementação do software são conhecidos pela pessoa testadora.
Teste de caixa cinza
Um teste que compreende os dois ideais do teste da caixa preta e da caixa
branca: algumas partes do design, estrutura e implementação do item são
conhecidas da pessoa testadora e outras não.
Quais as principais técnicas usadas nos testes de
software?
Teste de fumaça
Smoke testing ou teste de fumaça são testes básicos que verificam as funcionalidade
básicas da aplicação, é um processo que deve ser executado de forma rápida para
determinar se o build ou a compilação da aplicação realizada está estável ou não. É uma
confirmação para a equipe decidir se avança ou não para novos testes. Consiste em um
conjunto mínimo de testes para validar as principais funcionalidades.
Teste de carga
O teste de carga é a prática de simular o uso do mundo real, ou carregar, em qualquer
software, site, aplicativo web, API ou sistema para analisar e identificar fatores como
capacidade de resposta, degradação e escalabilidade.
Testar o comportamento em um cenário com muitos usuários.
Quais as principais técnicas usadas nos testes de
software?
Teste de estresse
É realizado para submeter o software a situações extremas. Basicamente, o teste de
estresse baseia-se em testar os limites do software e avaliar seu comportamento. Assim,
avalia-se até quando o software pode ser exigido e quais as falhas (se existirem)
decorrentes do teste.
Testa a aplicação até o seu limite.
Teste de usuabilidade
O foco do teste de usabilidade é verificar a interface do usuário, como o texto do site, as
mensagens que aparecem no site, as fontes e as cores usadas no site, etc.
O conteúdo exibido para os usuários no aplicativo está gramaticalmente correto.
As mensagens de erro têm uma linguagem uniforme e gramaticalmente correta.
Os botões e campos têm nomes uniformes e significativos.
Os campos desabilitados e obrigatórios são exibidos da maneira esperada.
Os campos têm dicas de ferramentas e marcadores adequados e fáceis de entender.
etc
Quais as principais técnicas usadas nos testes de
software?
FIM!
E aí, você!
Bora testar!!!!!?
Teste de software: o que é, importância e como fazer? [O GUIA]
https://blog.betrybe.com/tecnologia/teste-software-guia/
Tweet: O Troféu de teste
https://twitter.com/kentcdodds/status/960723172591992832
Why the test pyramid is a bullsh*t — guide to testing towards modern frontend and backend
apps
https://medium.com/@mateuszroth/why-the-test-pyramid-is-a-bullshit-guide-to-testing-towards-modern-frontend-and-backend-apps-4246e89b87bd
Teste de Estresse
http://qualidade-de-software.blogspot.com/2010/01/teste-de-
estresse.html#:~:text=%C3%89%20realizado%20para%20submeter%20o,se%20existirem)%20decorrentes%20do%20teste.
Teste E2E com Detox
https://github.com/wix/Detox
Kubernetes DevOps Tip #7: Cost of Repair in Development vs. Production
https://steinkorsveien.wordpress.com/2021/01/25/the-business%E2%80%8B-value-of-continuous-testing/
The Testing Trophy and Testing Classifications(Kent C. Dodds)
https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications
Capers Jones
https://en.wikipedia.org/wiki/Capers_Jones
Mike Cohn
https://en.wikipedia.org/wiki/Mike_Cohn

Mais conteúdo relacionado

Mais procurados

01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)
Siddireddy Balu
 
ISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİ
PEM Proje Eğitim Merkezi
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
Raymond Adrian (Rad) Butalid
 
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
SangIn Choung
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
Yogindernath Gupta
 
Testen mit, durch und in Scrum
Testen mit, durch und in ScrumTesten mit, durch und in Scrum
Testen mit, durch und in Scrum
Frank Düsterbeck
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
didev
 
Top 50 Software Testing Interview Questions & Answers | Edureka
Top 50 Software Testing Interview Questions & Answers | EdurekaTop 50 Software Testing Interview Questions & Answers | Edureka
Top 50 Software Testing Interview Questions & Answers | Edureka
Edureka!
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Frederico Augusto Do Carmo Moreira
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
Hai Tran Son
 
Software Quality
Software QualitySoftware Quality
Software Quality
Ronald Harmsen
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
Christophe Rochefolle
 
Introduction & Manual Testing
Introduction & Manual TestingIntroduction & Manual Testing
Introduction & Manual Testing
VenkateswaraRao Siddabathula
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Md. Enamul Haque Chowdhury
 
Importance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileImportance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and Agile
Chandan Mishra
 
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFLINTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
Rahul R Pandya
 
How to report bugs
How to report bugsHow to report bugs
How to report bugs
Mahmoud Asadi
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
Alan Carlos
 
ISTQB - What's testing
ISTQB - What's testingISTQB - What's testing
ISTQB - What's testing
HoangThiHien1
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
guest5639fa9
 

Mais procurados (20)

01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)
 
ISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİ
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 
Testen mit, durch und in Scrum
Testen mit, durch und in ScrumTesten mit, durch und in Scrum
Testen mit, durch und in Scrum
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
Top 50 Software Testing Interview Questions & Answers | Edureka
Top 50 Software Testing Interview Questions & Answers | EdurekaTop 50 Software Testing Interview Questions & Answers | Edureka
Top 50 Software Testing Interview Questions & Answers | Edureka
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
 
Software Quality
Software QualitySoftware Quality
Software Quality
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Introduction & Manual Testing
Introduction & Manual TestingIntroduction & Manual Testing
Introduction & Manual Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Importance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileImportance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and Agile
 
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFLINTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
 
How to report bugs
How to report bugsHow to report bugs
How to report bugs
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
ISTQB - What's testing
ISTQB - What's testingISTQB - What's testing
ISTQB - What's testing
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 

Semelhante a INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf

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
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
GustavoRondini
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
UFPA
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
testedesoftwarepe
 
Teste de software
Teste de software Teste de software
Teste de software
Allan Almeida de Araújo
 
Teste de software
Teste de softwareTeste de software
Teste de software
Rodrigo Cardoso Alves Fonte
 
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 à 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
 
Eng de testes
Eng de testesEng de testes
Eng de testes
GrupoAlves - professor
 
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
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
MichaelArrais1
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
Mário Pravato Junior
 
XP Programming
XP ProgrammingXP Programming
XP Programming
CJR, UnB
 
Teste de software
Teste de softwareTeste de software
Teste de software
Claudio Eckert
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
Fernando Palma
 
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
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
Mauricio Cesar Santos da Purificação
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
Sandy Maciel
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
AnaKlyssia1
 
Teste de software
Teste de softwareTeste de software
Teste de software
Daniel Paulo de Assis
 

Semelhante a INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf (20)

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
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Teste de software
Teste de software Teste de software
Teste de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
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 à 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
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
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
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
 
Teste de software
Teste de softwareTeste de software
Teste de software
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
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
 
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
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
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
 
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
 

Último (7)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
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
 
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
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.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
 
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...
 

INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf

  • 2. O que vai ser falado nessa Tech Talk? O que são testes? Qual a importância dos testes? Custo para corrigir bugs em produção Pirâmide de testes Troféu de testes Quais as principais técnicas usadas nos testes de software?
  • 3. O que são testes? O teste de software é um método para checar se a aplicação desenvolvida atende aos requisitos esperados e para garantir que o programa não tenha nenhum defeito. O teste de software é uma maneira de avaliar a qualidade da aplicação e reduzir o risco de falha em operação.
  • 4. Qual a importância dos testes? Custo-benefício Segurança Qualidade do produto Satisfação do cliente
  • 5. Qual a importância dos testes? Custo-benefício: é uma das vantagens importantes dos testes de software. Testar qualquer projeto de TI a tempo ajuda a economizar dinheiro a longo prazo. Segurança: é o benefício mais vulnerável e sensível dos testes de software, já que as pessoas procuram por produtos confiáveis no mercado. Por isso, realizar o teste de software ajuda a remover riscos e problemas mais cedo.
  • 6. Qual a importância dos testes? Qualidade do produto: é um requisito essencial de qualquer produto de software e, com os testes, a equipe de desenvolvimento garante que um produto de qualidade seja entregue aos clientes. Satisfação do cliente: o principal objetivo de qualquer produto é a satisfação do cliente. Nesse sentido, os testes de UI/UX garantem a melhor experiência das pessoas usuárias.
  • 7. Custo para corrigir bugs em produção O gráfico Capers Jones abaixo mostra a porcentagem de defeitos introduzidos durante cada fase do ciclo de vida de desenvolvimento. Mais importante, ele demonstra como o custo para reparar o referido defeito passa de 1x na codificação para mais de 640x na produção.
  • 8. Capers Jones é um especialista americano em metodologias de engenharia de software, possui diversos livros sobre metodologias, padrões e boas praticas na engenharia de software.
  • 9. Pirâmide de testes A pirâmide de teste foi mencionada pela primeira vez no livro de Mike Cohn, Succeeding with Agile (Sucesso com Ágil.) Ele recomenda que os aplicativos sejam cobertos por muitos testes de unidade que são a base de nossos testes. Em seguida, escrevemos testes de integração e o pico é feito a partir de testes E2E (UI).
  • 10. Mike Cohn é um dos contribuidores do método de desenvolvimento de software Scrum. Ele é um dos fundadores da Scrum Alliance. (Wikipedia)
  • 11. Testam a menor unidade do sistema. Exemplo: Testar apenas um botão. Texto do botão Cor Outras propriedades específicas de um determinado botão. Testes unitários Print de um botão da tela de login do App BanQi*
  • 12. Características: São baratos São fáceis, comparado aos outros testes. São precisos. Garante que cada pequena peça do sistema está funcionando. Fogem do caso de uso do usuário. Ferramentas para testes no ecossistema do React: Jest (Js) Testing Library/React Testing Library/React Native Enzyme Testes unitários
  • 13. Testam unidades de forma integrada. Exemplo: Teste na tela de login. Na tela de login, deve aparecer determinado texto, determinado botão. Quando um botão for clicado deve realizar tal navegação, aparecer um modal, etc. Testes de integração Print da tela de login do App BanQi*
  • 14. Características: São um pouco mais difíceis que os testes unitários. São menos precisos. Entregam mais valor Se aproximam mais do caso de uso Ferramentas para testes no ecossistema do React: Jest (Js) Testing Library/React Testing Library/React Native Enzyme Testes de integração
  • 15. Um teste E2E, ou End-to-End, é um método de teste utilizado para testar um fluxo da aplicação desde o começo até o fim. Seu intuito é replicar cenários reais feitos pelos usuários com a intenção de validar que o sistema esteja funcionando como o esperado. Podem ser chamados também como: Testes de aceitação Teste de Ponta Ponta UI Test Testes E2E
  • 16. Características: São muito caros São mais demorados.(Tanto na criação como na execução) Entregam mais valor São mais complexos São muito próximos do caso de uso do usuário. Geralmente é feito por QA Tester. Ferramentas para testes no ecossistema do React: Selenium(React JS - Web) Cypress(React JS - Web) Detox(React Native - Mobile) Testes E2E
  • 17. Teste E2E feito com Detox em uma aplicação React Native
  • 18. O troféu de teste O Troféu de teste foi apresentado por Kent C. Dodds em 2018. Traz um novo "teste", os testes estáticos. Os testes estáticos, ele quer dizer linters e formatadores de código e também verificadores de tipo como Flux e Typescript. Eles detectam erros de digitação à medida que você escreve e modifica o código. Tem como objetivo analisar o código sem precisar executá-lo.
  • 19. Kent C. Dodds é muito conhecimento na comunidade React, ele atua na construção de diversas bibliotecas/frameworks . Possui diversos artigos sobre boas praticas em escrever testes e sobre assuntos na comunidade Front-End no geral. Apresentou pela primeira vez o "O troféu de teste" em um tweet feito em 2018.
  • 20. Tem como objetivo analisar o código sem precisar executá-lo, verificando se as boas práticas adotadas foram efetuadas. O principal objetivo dessa técnica é identificar erros de programação, tais como: Práticas ruins Falhas de segurança Testes Estáticos
  • 22. As Técnicas de Teste de Software podem ser definidas como as diferentes maneiras e métodos de testar os programas e instruções, dessa forma garantimos que estejam funcionando bem e realizando as tarefas especificadas para as quais foram projetados. Algumas técnicas de teste de software: Teste de Regressão Teste de caixa preta Teste de caixa branca Teste de caixa cinza Teste de Fumaça(Smoke testing) Teste de carga Teste de estresse Testes de usuabilidade Quais as principais técnicas usadas nos testes de software?
  • 23. Teste de Regressão Alterações e atualizações são feitas no software continuamente. Por isso, o teste de regressão garante que novas versões ou atualizações não tenham criado problemas para outras áreas que funcionavam bem. O teste é realizado usando casos de teste anteriores e os novos resultados comparados com os resultados anteriores. Teste de caixa preta Esse é o teste feito em todo o sistema por pessoas que não têm nenhuma idéia sobre o design, estrutura e implementação do software. Ele é testado para erros na interface, desempenho, comportamento, estruturas de dados, funções, etc. Quais as principais técnicas usadas nos testes de software?
  • 24. Teste de caixa branca Semelhante ao teste de caixa preta, exceto que o design, a estrutura e a implementação do software são conhecidos pela pessoa testadora. Teste de caixa cinza Um teste que compreende os dois ideais do teste da caixa preta e da caixa branca: algumas partes do design, estrutura e implementação do item são conhecidas da pessoa testadora e outras não. Quais as principais técnicas usadas nos testes de software?
  • 25. Teste de fumaça Smoke testing ou teste de fumaça são testes básicos que verificam as funcionalidade básicas da aplicação, é um processo que deve ser executado de forma rápida para determinar se o build ou a compilação da aplicação realizada está estável ou não. É uma confirmação para a equipe decidir se avança ou não para novos testes. Consiste em um conjunto mínimo de testes para validar as principais funcionalidades. Teste de carga O teste de carga é a prática de simular o uso do mundo real, ou carregar, em qualquer software, site, aplicativo web, API ou sistema para analisar e identificar fatores como capacidade de resposta, degradação e escalabilidade. Testar o comportamento em um cenário com muitos usuários. Quais as principais técnicas usadas nos testes de software?
  • 26. Teste de estresse É realizado para submeter o software a situações extremas. Basicamente, o teste de estresse baseia-se em testar os limites do software e avaliar seu comportamento. Assim, avalia-se até quando o software pode ser exigido e quais as falhas (se existirem) decorrentes do teste. Testa a aplicação até o seu limite. Teste de usuabilidade O foco do teste de usabilidade é verificar a interface do usuário, como o texto do site, as mensagens que aparecem no site, as fontes e as cores usadas no site, etc. O conteúdo exibido para os usuários no aplicativo está gramaticalmente correto. As mensagens de erro têm uma linguagem uniforme e gramaticalmente correta. Os botões e campos têm nomes uniformes e significativos. Os campos desabilitados e obrigatórios são exibidos da maneira esperada. Os campos têm dicas de ferramentas e marcadores adequados e fáceis de entender. etc Quais as principais técnicas usadas nos testes de software?
  • 27. FIM!
  • 28. E aí, você! Bora testar!!!!!?
  • 29. Teste de software: o que é, importância e como fazer? [O GUIA] https://blog.betrybe.com/tecnologia/teste-software-guia/ Tweet: O Troféu de teste https://twitter.com/kentcdodds/status/960723172591992832 Why the test pyramid is a bullsh*t — guide to testing towards modern frontend and backend apps https://medium.com/@mateuszroth/why-the-test-pyramid-is-a-bullshit-guide-to-testing-towards-modern-frontend-and-backend-apps-4246e89b87bd Teste de Estresse http://qualidade-de-software.blogspot.com/2010/01/teste-de- estresse.html#:~:text=%C3%89%20realizado%20para%20submeter%20o,se%20existirem)%20decorrentes%20do%20teste. Teste E2E com Detox https://github.com/wix/Detox Kubernetes DevOps Tip #7: Cost of Repair in Development vs. Production https://steinkorsveien.wordpress.com/2021/01/25/the-business%E2%80%8B-value-of-continuous-testing/ The Testing Trophy and Testing Classifications(Kent C. Dodds) https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications Capers Jones https://en.wikipedia.org/wiki/Capers_Jones Mike Cohn https://en.wikipedia.org/wiki/Mike_Cohn