Slide 1

Slide 1 text

E AI, Terminei, só falta... Testar?! Testes de Software com Inteligência Artificial Monica Craveiro de Menezes

Slide 2

Slide 2 text

Quem sou? Monica Craveiro de Menezes Carioca, Bacharel em Sistemas de Informação e Matemática, Desenvolvedora na Sensedia, Voluntária e Host do Canal do YouTube da NodeBR, ex-aluna do [des]programe, {reprograma} e DigitalHouse>. Professora de Programação, além de Participante e Palestrante em diversas comunidades de TI. @mocraveirodev

Slide 3

Slide 3 text

Testes são importantes? “O que começa o pleito parece justo, até que vem o outro e o examina.” Provébios 18:17 Pense Validação se os requisitos foram atendidos.

Slide 4

Slide 4 text

POR QUE TESTAR? https://www.instagram.com/p/CxbEgllr-sd/

Slide 5

Slide 5 text

POR QUE TESTAR? ● Requisitos Funcionais ● Requisitos não Funcionais ○ Usabilidade ○ Desempenho ○ Performance ○ Capacidade ○ Segurança Será que é só isso? Tem que mostrar que o sistema funciona e não tem falhas!

Slide 6

Slide 6 text

This content is restricted 1 Teste mostra a presença de defeitos mas não a ausência deles. 3 Testes iniciais economizam tempo e dinheiro. 7 Princípios do Teste de Software 4 Agrupamento de defeitos 2 Se não dá pra testar todas as possibilidades de entrada e saída, então o teste exaustivo é impossível. 5 Paradoxo do Pesticida 6 Teste depende do contexto. 7 Ilusão da ausência de defeitos.

Slide 7

Slide 7 text

Pirâmide de Testes ● Criado em 2009 ● Popularizado em 2012 por Martin Fowler ● Segue modelo em V de desenvolvimento

Slide 8

Slide 8 text

Modelo em V de Desenvolvimento

Slide 9

Slide 9 text

This content is restricted ● Precisamos testar tudo? ● Como escrever Casos de Teste? ○ Entrada ○ O que vai acontecer ○ Saída Casos de Teste

Slide 10

Slide 10 text

Técnicas de Teste de Software Recursos utilizados para escrever Bons Casos de Testes Criar testes antes do código de cada funcionalidade. TDD Test Driven Development

Slide 11

Slide 11 text

Técnicas de Teste de Software Recursos utilizados para escrever Bons Casos de Testes Reunir profissionais de diferentes expertises para definir melhor o que deve ser feito. Three Amigos BDD Behavior Driven Development Testes com foco no comportamento do Sistema. Como/Eu quero/Para >>> Dado/Quando/Então

Slide 12

Slide 12 text

Técnicas de Teste de Software Recursos utilizados para escrever Bons Casos de Testes Teste de Caixa Branca • Parte Estrutural do código • Analisa código-fonte Teste de Caixa Preta • Parte Funcional do código • Baseado no comportamento do Sistema

Slide 13

Slide 13 text

Técnicas de Teste de Software Recursos utilizados para escrever Bons Casos de Testes Verifica se os requisitos funcionais foram atendidos. Teste de Aceitação Verifica se não quebrou nada ao desenvolver novas funcionalidades. Teste de Regressão

Slide 14

Slide 14 text

Técnicas de Teste de Software Recursos utilizados para escrever Bons Casos de Testes Teste Exploratório Error Guessing Teste baseado em Experiência

Slide 15

Slide 15 text

Técnicas de Teste de Software Recursos utilizados para escrever Bons Casos de Testes Teste ocorre internamente. Teste Alpha Teste feito por clientes externos em um ambiente controlado. Teste Beta Teste em Produção mas apenas para uma parte do público. Teste Canary

Slide 16

Slide 16 text

Tipos de Teste de Software Testa as menores partes do sistema (métodos, funções ou classes), independente das suas integrações. Testa integração do sistema. Teste a integração interna e externa do sistema. Altera operadores do sistema forçando a quebra dos testes unitários. Unitários Integração E2E Mutação

Slide 17

Slide 17 text

https://twitter.com/EngineerRabbit/status/1696621524311023867

Slide 18

Slide 18 text

Tipos de Teste de Software Testa as menores partes do sistema (métodos, funções ou classes), independente das suas integrações. Testa integração do sistema. Teste a integração interna e externa do sistema. Altera operadores do sistema forçando a quebra dos testes unitários. Unitários Integração E2E Mutação

Slide 19

Slide 19 text

TESTES AUTOMATIZADOS VALE A PENA UTILIZAR? QUANDO UTILIZAR? QUAIS SÃO?

Slide 20

Slide 20 text

Inteligência Artificial em Testes Automatizados

Slide 21

Slide 21 text

Mas antes… O que é Inteligência Artificial? “É o ramo da Ciência da Computação que se ocupa do comportamento inteligente” Luger George F, 2004

Slide 22

Slide 22 text

USO DA INTELIGÊNCIA ARTIFICIAL DA TI PROCESSAMENTO DE LINGUAGEM NATURAL RECONHECIMENTO DE VOZ E IMAGEM ROBÓTICA ANÁLISE DE DADOS ASSISTENTES PESSOAIS AUTOMATIZAR TAREFAS ROTINEIRAS

Slide 23

Slide 23 text

SETORES IMPACTADOS PELA INTELIGÊNCIA ARTIFICIAL SAÚDE FINANÇAS AGRICULTURA EDUCAÇÃO TRANSPORTE MONITORAMENTO AMBIENTAL PREVENÇÃO DE FRAUDES

Slide 24

Slide 24 text

Voltando aos Testes de Software…

Slide 25

Slide 25 text

AUXÍLIO DAS IAs NOS TESTES DE SOFTWARE AUTOMAÇÃO DE TESTES OTIMIZAÇÃO DE SUÍTE DE TESTES LOCALIZAÇÃO DE FALHAS PREDIÇÃO DE DEFEITOS GERAÇÃO DE ORÁCULOS DE TESTES TESTES DE REGRESSÃO TESTES DE SEGURANÇA TESTES DE USABILIDADE CLASSIFICAÇÃO DE FALHAS PRIORIZAÇÃO/ ORDENAÇÃO DE TESTES TESTES DE PERFORMANCE CRIAÇÃO DE CENÁRIOS DE TESTE

Slide 26

Slide 26 text

FERRAMENTAS DE TESTE

Slide 27

Slide 27 text

FERRAMENTAS DE TESTE

Slide 28

Slide 28 text

FERRAMENTAS DE TESTE

Slide 29

Slide 29 text

FERRAMENTAS DE TESTE

Slide 30

Slide 30 text

Criar cenários de testes Script Cucumber com Rspec

Slide 31

Slide 31 text

Criar cenários de testes Fluxo de Pedido na Casa Bahia

Slide 32

Slide 32 text

Criar cenários de testes Dar entradas de acordo com requisitos, usando partição de equivalência para gerar combinação de testes

Slide 33

Slide 33 text

Criar cenários de testes Dar entradas de acordo com requisitos, usando partição de equivalência para gerar combinação de testes

Slide 34

Slide 34 text

Criar cenários de testes Dar entradas de acordo com requisitos, usando partição de equivalência para gerar combinação de testes

Slide 35

Slide 35 text

Criar cenários de testes Dar entradas de acordo com requisitos, usando partição de equivalência para gerar combinação de testes

Slide 36

Slide 36 text

Criar cenários de testes Dar entradas de acordo com requisitos, usando partição de equivalência para gerar combinação de testes

Slide 37

Slide 37 text

QUAIS BENEFÍCIOS REAIS QUE PODEMOS TIRAR DAS IAs? IDENTIFICAR SE A RESPOSTA É VÁLIDA CAPACIDADE DE COMPREENSÃO BOAS E MÁS PRÁTICAS OTIMIZAR ESFORÇO IDENTIFICAR PRÓS E CONTRAS PENSAMENTO CRÍTICO ESTRUTURAR PERGUNTAS

Slide 38

Slide 38 text

DESAFIOS DA IA EM TESTE DE SOFTWARE GRANDE VOLUME DE DADOS TRATAMENTO DE DADOS INFRAESTRUTURA PARA IA MANUTENÇÃO DA IA ESCALABILIDADE PROFISSIONAIS CAPACITADOS

Slide 39

Slide 39 text

Inteligência Artificial pode substituir os QAs/Testers? NÃO!

Slide 40

Slide 40 text

Inteligência Artificial vai acabar com a carreira dos QAs/Testers? NÃO!

Slide 41

Slide 41 text

Inteligência Artificial ainda depende de dados

Slide 42

Slide 42 text

NÃO POSSUI CAPACIDADE DE ENTENDIMENTO NÃO TEM EMPATIA LIMITAÇÃO DA COMPREENSÃO DE CONTEXTO ACESSO A INFORMAÇÕES PÚBLICAS TOMADA DE DECISÕES HISTÓRICO DE INTERAÇÕES NÃO DIGITAIS NÃO TEM EXPERIÊNCIA COM VIVÊNCIAS QUAIS AS LIMITAÇÕES DA IAs EM RELAÇÃO AOS QAs/TESTERS

Slide 43

Slide 43 text

MONICA CRAVEIRO DE MENEZES Estão preparados para fazer testes mais efetivos? Até mais e obrigada pelos peixes! @mocraveirodev