SlideShare uma empresa Scribd logo
1 de 118
Noções em Testes de Software 
e Introdução ao Selenium 
Webdriver
– É proibida a cópia e reprodução de 
qualquer parte do conteúdo desta 
apresentação incluindo, mas não limitado 
a, textos, imagens, gráficos e tabelas. Esta 
apresentação é protegida pelas leis de 
Copyright e são propriedade do Salto na 
Computação. 
– Quando houver permissão de uso deste 
material, é obrigatória a referência 
bibliográfica conforme as normas vigentes. 
Salto 
– Não é permitido modificar, copiar, 
guardar em banco de dados público, 
alugar, vender ou republicar qualquer 
parte desta apresentação, sem prévia 
permissão explícita do autor. 
na Computação
Salto 
na Computação 
Sandy Maciel 
@_sandymaciel 
br.linkedin.com/in/sandymaciel/ 
sandy@saltonacomputacao.com 
www.saltonacomputação.com 
Quem sou
Salto 
na Computação Agenda 
Noções Básicas em Teste de Software 
Princípios e Conceitos de Teste de Software 
Visão Geral do Processo de Teste 
Processo de Testes 
Introdução ao Selenium WebDriver 
Introdução 
> O que é Automação de Testes? 
> Ferramentas 
> Selenium 
Preparando o ambiente 
Conceitos básicos 
Exercícios
Salto 
Princípios e Conceitos Básicos 
na Computação
Salto 
Origem da expressão “bug” 
na Computação 
Em 1947, os cientistas estavam testando o computador Mark II, aquele que ocupava 
uma sala imensa e operava com centenas de válvulas enormes, quando a máquina 
de repente parou de funcionar. Foram pesquisar a causa e encontraram um inseto 
impedindo que um dos contatos funcionasse. Este foi o primeiro bug encontrado.
Salto 
Erro, Falha ou Defeito? 
na Computação 
Erro – Engano cometido por seres humanos 
Falha – Resultado ou manifestação de um ou mais 
defeitos 
Defeito – Resultado de um erro encontrado num código 
ou num documento (bug)
Salto 
Quando um bug ocorre? na Computação
Salto 
Teste de Software? 
na Computação 
Teste de software é o processo formal de avaliar 
um sistema ou componente de um sistema por 
meios manuais ou automáticos para verificar se ele 
satisfaz os requisitos especificados [IEEE 729, 
1983].
Salto 
. Por que definir um procensasCoo mdpeut taeçãsotes? 
A execução dos testes e a documentação são padronizadas, 
permitindo planejamento e comparação de eficácia entre projetos. 
Os papéis e responsabilidades são definidos de forma clara. 
Os testes alcançam a eficácia e o resultado esperado.
Salto 
. Qual o objetivo do ntaeCsomtapudtaoçãro? 
Investigar o software, conforme o processo de teste utilizado, a 
fim de garantir que a qualidade do software e os requisitos 
implementados estão de acordo com o solicitado pelo cliente. 
Técnico responsável pela execução dos casos e scripts de teste
Salto 
. Papéis em Teste de Software na Computação 
Testador 
Arquiteto de Teste 
Analista de Teste 
Auditor da QA 
Automatizador de 
Gerente de Teste 
Teste 
Líder de Teste 
Engenheiro de Teste
Salto 
. Ciclo de vida de desennavCoomlvpuimtaçeãonto 
O processo usado para criar um software, desde a sua concepção inicial até a sua entrega 
final, é chamado de ciclo de vida. 
Modelos de Ciclo de Vida de desenvolvimento de software: 
•Big-bang (cria e conserta) 
•Cascata 
•Espiral 
•Incremental e iterativo 
•RUP
Salto 
Ciclo de vida de desenvolvimento 
na Computação 
Big-Bang
Salto 
Ciclo de vida de desennavCoomlvpuimtaçeãonto 
Modelo Cascata
Salto 
Ciclo de vida de desennavCoomlvpuimtaçeãonto 
Modelo em Espiral
Salto 
Ciclo de vida de desennavCoomlvpuimtaçeãonto 
Modelo Incremental e Iterativo
Salto 
Ciclo de vida de desennavCoomlvpuimtaçeãonto 
RUP
Salto 
Ciclo de vida de desennavCoomlvpuimtaçeãonto 
O profissional de teste deve se adaptar ao 
modelo adotado pela empresa e, daí, aplicar, da 
melhor maneira as técnicas de teste de software.
Salto 
Processo de Teste – Uma visão geral 
na Computação
Salto 
na Computação Processo de Teste 
Testes podem ser considerados como m projeto? 
“ Um empreendimento temporário, planejado, 
executado e controlado, com objetivo de criar um 
produto ou serviço único.” PMBOK , 2000 - PMI
Salto 
na Computação Processo de Teste 
 Testar é um exercício de gerência de risco 
 Treinamento em teste reduz custos a longo prazo 
 As estimativas de teste devem ser baseadas no risco do negócio 
 A estratégia de teste deve ser elaborada através de um trabalho conjunto entre as 
áreas envolvidas 
 É melhor e mais barato encontrar um defeito nas primeiras fases do que em produção
Salto 
na Computação Regra 10 de Myers
Salto 
na Computação Processo de Teste 
Um software é considerado com qualidade quando atende as 
categorias da qualidade - ISO/IEC 9126-1
Salto 
na Computação Planejar 
 Adaptar processo de teste para o Projeto 
 Planejar testes para o Projeto 
 Definir a estratégia de teste 
 Plano de Teste 
Ambiente de Teste 
 Identificar Riscos do Projeto de Teste 
Planejar 
Testes
Salto 
na Computação Esforço
Salto 
na Computação Por que planejar? 
Para planejarmos os testes temos que 
conhecer os requisitos do projeto a ser 
desenvolvido
Salto 
na Computação Planejar 
REQUISITO 
Definição de 
uma característica, atributo, habilidade ou 
qualidade que um sistema (ou qualquer um de 
seus módulos e subrotinas) deve 
necessariamente prover para atender aos 
seus usuários
Salto 
na Computação Para elaborar o teste, devemos saber: 
O que vamos testar? 
Quando vamos testar? 
Como iremos testar?
Salto 
na Computação Estratégia de Teste 
Nos fornece um roteiro em que descreve os passos a 
serem conduzidos como parte do teste 
Objetivos: Determinar o que, quando e como iremos testar. 
O que define: Ferramentas, técnicas e critérios de conclusão.
Salto 
Fatores de Qualidade 
na Computação 
Correção 
Confiabilidade 
Eficiência 
Integridade 
Usabilidade 
Manutenabilidade 
Testabilidade 
Flexibilidade 
Reusabilidade 
Interoperabilidade 
Portabilidade
Salto 
Fatores de Qualidade x nIaSOCo/mIpEuCta-ç9ã1o26 
Não confunda com a norma 
ISO-9126 que especifica as 
características de qualidade 
que todo software deve ter.
Salto 
na Computação ISO/IEC 9126-1
Salto 
Categorias de Qualidade segundo o Modelo FURPS + 
na Computação
Salto 
Dimensões do TesntaeCo(mIpEuEtaEçã)o
Salto 
Estágios ou Níveis na Computação 
de Teste 
• Teste de Unidade: Estágio mais baixo da escala de teste, sendo aplicado nos menores 
componentes de código criados, visando garantir que estes atendem às especificações 
funcionais e de arquitetura. Normalmente feito pelo programador. 
• Teste de Iteração ou Integração: Teste de sistema ao término de cada iteração, dentro de um 
ambiente operacional controlado, para validar a exatidão e perfeição na execução de suas 
funções, referentes aos casos de uso da iteração. Normalmente feito pelo analista de sistemas 
para um módulo ou conjunto de programas. 
• Teste de Sistema: Execução do sistema como um todo, dentro de um ambiente operacional 
controlado, para validar a exatidão e perfeição na execução de suas funções, acompanhando 
cenários sistêmicos elaborados pelo profissional de requisitos do projeto. Normalmente feito 
pelo analista de testes (caso de testes) em ambiente de testes. 
• Teste de Aceitação :É a última ação de teste antes da implantação do software, sendo de 
responsabilidade do cliente. O objetivo deste teste é verificar se o software está pronto e pode 
ser usado por usuários finais para executar as funções e tarefas para as quais foi construído. 
Normalmente feito pelo usuário em ambiente de homologação.
Salto 
Dimensões do TesntaeCo(mIpEuEtaEçã)o
Salto 
na Computação Tipos de Teste - Usabilidade 
Teste Interface: Verifica se a navegabilidade e os objetivos da tela funcionam como 
especificados e se atendem da melhor forma ao usuário. 
Teste de Usabilidade: Tem por objetivo verificar a facilidade que a aplicação possui de 
ser claramente compreendido e manipulado pelo usuário.
Salto 
Tipos de Teste - ConfianabCiloimdpaudtaeção 
Teste Integridade: Testes destinados a avaliar a robustez do objetivo do teste (resistência a 
falhas) e a compatibilidade técnica em relação a linguagem, sintaxe e utilização de recursos 
Teste de Estrutura: Testes destinados a avaliar a adequação do objetivo do teste em relação 
a seu design e sua formação. 
Teste de Estresse: Tipo de teste de confiabilidade destinado a avaliar como o sistema 
responde em condições anormais. 
Smoke Test: Exercita o sistema em uma única passagem, normalmente utilizando script de 
execução automática, não devendo ser exaustivo, mas capaz de expor os maiores 
problemas. O Smoke Test é executado após a construção de cada nova versão (.
Salto 
Tipos de Teste - Confiabilidade 
na Computação 
Teste de avaliação de desempenho ou Benchmark: Tipo de teste que compara o 
desempenho de um objetivo do teste (novo ou desconhecido) a um sistema e uma 
carga de trabalho de referência conhecidos. 
Teste de contenção: Testes destinados a verificar se os objetivos do teste podem lidar 
de forma aceitável com as demandas de vários atores no mesmo recurso (registros de 
dados, memória, etc.). 
Teste de carga: Tipo de teste usado para validar e avaliar a aceitabilidade dos limites 
operacionais de um sistema de acordo com cargas de trabalho variáveis, enquanto o 
sistema em teste permanece constante. Geralmente, as medições são tomadas com 
base na taxa de transferência de dados da carga de trabalho e no tempo de resposta 
da transação alinhado
Salto 
Tipos de Teste - SuponartCaombpiultiadçaãode 
Teste de configuração: Teste destinado a garantir que o objetivo do teste funcione 
conforme o esperado em diferentes configurações de hardware e/ou software. Esse 
teste também pode ser implementado como um teste de desempenho do sistema. 
Teste de instalação: Teste destinado a garantir que o objetivo do teste seja instalado 
conforme o esperado em diferentes configurações de hardware e/ou software e sob 
diferentes condições (como no caso de espaço insuficiente em disco ou interrupção de 
energia). Esse teste é implementado e executado em aplicativos e sistemas.
Salto 
na Computação Dimensões do Teste (IEEE)
Salto 
na Computação Técnicas de Teste 
Estrutural 
Funcional 
Assegurar a cobertura de toda a 
estrutura implementada 
Assegurar que os requisitos foram 
atendido
Salto 
na Computação Processo de Teste – Plano de Teste 
O Plano de Teste descreve todos os testes requeridos, os 
recursos e prazos necessários. Deve estar alinhado com a 
Estratégia de Teste
Salto 
Processo de Teste – Plano de Teste 
na Computação 
Padrão IEEE 829 para elaboração de Planos de Testes: 
1.Identificador do Plano de Testes 
2.Introdução 
3.Itens de teste 
4.Módulos ou features do software a serem testados 
5.Módulos que não serão testados 
6.Abordagem do teste (métricas, metodologias, ferramentas, etc.) 
7.Critério de identificação dos 
8.Critérios de interrupção ou finalização dos testes 
9.Documentação de teste 
10. Identificação de quais testes serão necessários e como serão executados (stress, 
performance, ...) 
11. Necessidades de equipamentos e softwares 
12. Responsabilidades da equipe envolvida 
13. Definição da equipe de teste e das suas necessidades 
14. Cronograma (ver roteiro de testes) 
15. Riscos e contingências (ver Estratégia de testes) 
16. Critérios de aprovação dos testes pelas áreas envolvidas
Salto 
na Computação Ambiente de Teste 
“Não é apenas uma configuração de hardware, mas toda estrutura onde o teste será 
executado” Fonte: Base de Conhecimento em Teste de Software
Salto 
na Computação Risco no projeto de teste 
Risco é algum evento no futuro cuja ocorrência poderá causar 
algum tipo de problema, no caso, ao projeto de teste de software. 
Um risco pode ser dividido da seguinte forma: 
•Sintoma 
•Fonte 
•Consequência
Salto 
Risco no projetonadCoem ptuteaçsãtoe 
Devido a uma <fonte>, o <sintoma> está ocorrendo, 
podendo causar <consequências>. 
Sintoma: o que pode indicar o problema 
Fonte: o que está causando o sintoma 
Consequência: resultado dos sintomas
Salto 
na Computação Projetar 
Versionameto 
Estimativas de Teste 
Cenários de Teste 
Dados de Teste 
Elaborar Casos de Teste 
Acompanhar Risco do Projeto 
Projetar 
Testes
Salto 
Gerência de ConfigurançaãCoom(pGutCaçSã)o 
Controle de Versionamento 
–Registro e controle das diversas versões geradas 
–Garantir que o que foi testado é o que de fato será entregue 
Controle de Mudanças 
–Definição de prioridades baseadas na severidade do problema encontrado, no esforço 
para corrigi-lo, no impacto no cronograma e no esforço para retestar 
Auditoria das Configurações 
- Quem fez a mudança e como podemos reproduzir a mudança?
Salto 
Gerência de Configuração (GCS) 
na Computação 
Controle de Versão – Algumas Ferramentas
Salto 
na Computação 
O que? Onde? 
Quando? Como? 
Processo de Teste - Projetar 
Elaborar Casos de Testes 
Configurações 
Iteração 
Caso de Teste como 
motivador do teste 
Requisitos 
Implementação
Salto 
na Computação 
Algumas definições 
•Casos de Testes são derivados de uma especificação formal que 
define os requisitos 
•Caso de Teste é uma especificação detalhada do teste, composta 
por conj. de entradas, condições de execução e resultados 
esperados 
•Cenário de Teste é uma história hipotética usada para ajudar as 
pessoas a solucionar um problema complexo, recriando ou 
visualizando um caminho a seguir. 
•Dentro de um cenário de testes podemos ter um ou mais casos de 
teste
Salto 
Métodos de Elaboração de Casos de Teste 
na Computação 
Step-by-Step – Identificar um caso de teste para cada requisito e considerar 
entradas e saídas, entradas especiais, entradas inválidas, etc. 
Causa-efeito – Faz-se uma tabela de causa e efeito. Nela são decididos as 
combinações mais relevantes a serem testadas. 
PairWise – Cada par de parâmetros seja coberto por um caso de teste. 
Classes de equivalência – É construída de modo agrupar os casos de teste para 
os quais o comportamento do sistema seja o mesmo; 
Análise de valores limítrofes – Testar valores limites do domínio de entrada;
Salto 
Desafios para um bom Caso de Teste 
na Computação 
•Mudança de Requisito 
•Mudança de Cronograma 
•Rotatividade da Equipe
Salto 
na Computação Executar 
Executar Casos de Teste 
Gerar Resultado de Teste (log) 
Acompanhar Defeitos 
Executar Re-teste 
Executar Testes “especiais” 
Executar 
Testes
Salto 
na Computação 
“A execução poderá consumir 40% ou menos do tempo total do 
esforço de teste” Martin Pol 
Frequentemente os testes são executados o mais rápido possível 
Processo de Teste - Executar 
Executar
Salto 
na Computação Executar 
Fluxo de Execução 
“A etapa de execução dos testes, dentro do ciclo de vida dos testes, 
para que seja bem sucedida vai depender de tudo o que foi feito 
anteriormente e que servirá de base para o cumprimento desta 
etapa” 
Fonte: Base de Conhecimento em Teste de Software.
Salto 
na Computação 
Fluxo de Execução
Salto 
na Computação 
Mas… Quando os testes 
terminam? 
Como saber o momento adequado para finalizar os teste?
Salto 
na Computação
Salto 
Gerência dnea CDomepuftaeçãiotos
Salto 
Gerência de na Computação 
Defeitos 
Ferramentas 
 Jira 
Bugzilla 
Mantis 
Rational ClearQuest 
TestDirector 
TrackRecord 
e-Manager Enterprise
Salto 
na Computação Custo do Bug
Salto 
na Computação
Salto 
na Computação
Salto 
na Computação 
Importância do Defeito ($)
Salto 
na Computação 
Custo da correção de um defeito após 
encontrá-lo
Salto 
na Computação 
Identificação do Defeito
Salto 
na Computação 
Reportar Defeito
Salto 
na Computação 
Reportar Defeito
Salto 
na Computação 
Severidade X Prioridade
Salto 
na Computação 
Reportar Defeito 
Graus altos de severidade 
correspondem também a graus 
altos de prioridade?
Salto 
na Computação
Salto 
Analisar RenasCuomltpautdaçoão
Salto 
na Computação
Salto 
Introdução à automação 
na Computação
Salto 
O que são testes autonma Caotmizpautdaçoãso? 
São programas ou scripts que exercitam determinadas funcionalidades do 
software e fazem verificações automáticas nos resultados obtidos. 
Ou seja, é um teste, que é executado automaticamente, onde se é conhecido 
todo o cenário, ações que devem ser realizadas e os resultados esperados. 
Algumas das principais vantagens dos testes automatizados são: capacidade de 
reprodutibilidade e velocidade na execução. 
A automação de testes é uma área em franca expansão, no 
entanto, é uma área ainda muito imatura. Muitos dos sucessos nos 
projetos de automação de testes são decorrentes de processos 
empíricos de tentativa e erro.
Salto 
AUTOMATIZADOnSa Computação 
Ajudam na documentação 
Cobrem muitos casos 
Segurança na manutenção 
Rodam rápido
Salto 
Automatizando testes vonacêCocmopuntasçeãgoue: 
Simular grandes quantidades de dados ou usuários. 
Medir o tempo de execução de certas partes do programa. 
Encontrar gargalos.
Salto 
na Computação ATENÇÃO
Salto 
O que é automanatiCzoamrpu?tação 
Testes automatizados são, em geral, utilizados para 
testes de regressão. 
Ou seja, testes que devem ser 
frequentemente executados e/ou demandam muito 
tempo para execução devem ser automatizados.
Salto 
Melhores práticas na AutomnaaCçoãmop udteaç Tãeoste 
 Automação não é um processo de teste! 
 Automatize os testes críticos primeiro 
 Incorpore testabilidade ao aplicativos 
 As ferramentas de automação de testes 
também têm defeito!
Salto 
Como desenvolver um testenaauCotmomputaatçizãaodo? 
1. O primeiro passo para se desenvolver um teste automatizado é selecionar o 
requisito ou funcionalidade alvo e, com base nas especificações, pensar e/ou 
documentar os possíveis cenários de testes. 
2. A seguir, deve-se selecionar um dos cenários e elaborar o caso de testes, onde 
será especificado o passo-a-passo para a execução do teste. 
3. O ideal é que para cada teste automatizado, tenha-se um caso de teste como 
base. 
4. Após a especificação do caso de testes, é hora de criar os scripts de testes. Para 
isso, precisamos utilizar uma ferramenta de automação de testes.
Salto 
Que ferramentas utilizar? 
na Computação
Salto 
na Computação
Salto 
Selenium WebDriver 
na Computação
Salto 
Selenium??na Computação 
• O Selenium reúne um conjunto de ferramentas usadas para a criação de scripts de 
automação de testes de regressão/funcionais para aplicações Web. 
• Os testes podem ser executados em qualquer navegador, desde que suporte 
Javascript.
Salto 
Selenium??na Computação 
O Selenium possui 4 módulos: 
– Selenium IDE : Ambiente de desenvolvimento integrado para 
scripts selenium 
– Selenium RC : Teste web em qualquer linguagem de 
programação 
– Selenium WebDriver : Sucessor do RC, a grande diferença é que 
ele não necessita de um servidor 
– Selenium Grid : É o selenium server (via terminal)
Salto 
WebDriver?n?a Computação 
1. API 
2. Pode ser desenvolvido em várias liguagens 
3. Roda em vários browsers 
4. Simula um usuário
Salto 
Preparando o Ambiente 
na Computação
Salto 
Preparando o AmnbaiCeonmtpeutação 
Usaremos a API em Java e o Eclipse como IDE 
1 – Baixe o Eclipse IDE:
Salto 
Preparando o AmnbaiCeonmtpeutação 
2 – Baixe o jar do Selenium Server
Salto 
na Computação Preparando o Ambiente 
3 – Baixe a API em Java
Salto 
na Computação Preparando o Ambiente 
4 – Coloque os jars baixado em uma única pasta dentro de C:
Salto 
na Computação Preparando o Ambiente 
5 – Abra o eclipse e clique em File > New > Java Project
Salto 
na Computação Preparando o Ambiente 
6 – Nomear projeto
Salto 
Primeiros Passos - Automação 
na Computação
Salto 
na Computação 
Quais conhecimentos mínimos precisamos ter para 
automatizar uma página web? 
Abrir Navegador 
Ler URL 
Guardar textos da página 
Clicar em links 
Clicar em botões 
Preencher Campos
Salto 
na Computação 
Essas ações são divididas como: 
Sincronização 
Navegação 
Interrogação 
Manipulação
Salto 
Primeiros Passos - Junit 
na Computação
Salto 
na Computação 
1. Usaremos o Junit, que é um framework de testes java, ele irá nos auxilixar 
nos testes pois apartir da notação @Test 
2. Sempre devemos identicar um método público com o @Test
Salto 
na Computação 
O Junit também nos ajuda na utilização de Assertions ( assegurar informações). 
•assertTrue 
•assertEquals 
asserTrue ( condição) 
asserTrue ( mensagem,condição) 
assertEquals(esperado, obtido) 
assertEquals(mensagem, 
esperado, obtido)
Salto 
Primeiros Passos – Selenium WebDriver 
na Computação
Salto 
na Computação 
• Sempre devemos passar o browser que utilizaremos, no nosso caso usaremos o 
Firefox ( nativo ) 
• Usaremos a classe WebDriver como ponto de partida 
1. Instanciar o browser
Salto 
na Computação 
Métodos de Navegação 
get ---- abre a página 
to(url) --- para uma url 
refresh() --- atualiza a página 
forward() --- avança 
back() --- volta
Salto 
na Computação 
Métodos de Interrogação 
Utilizando o objeto driver 
getTitle() 
getCurrentURL() 
getPageSource() 
findElement() 
findElements() 
http://www.w3.org/community/webed/wiki/HTML/Elements
Salto 
na Computação 
Algumas estratégias utilizadas para interrogar 
elementos: 
ID 
CSSSELECTOR 
NAME 
XPATH 
LINKNAME 
CLASSNAME 
… 
driver.findElement(By.cssSelector(“.class”));
Salto 
na Computação 
driver.findElement(By.id(“id”));" 
O que eu quero fazer 
Como eu quero fazer 
elemento 
Selenium WebDriver - ID
Salto 
Selenium WebDriver – CnSaSC Somelpeucttaoçãro 
Localiza o elemento utilizando seu estilo 
elemento 
#id 
.classe 
elemento[atributo='valor’] 
elemento > elemento 
driver.findElement(By.cssSelector(“.class”));"
Salto 
Selenium WebDrivern–a CXopmaptuhtação 
driver.findElement(By.xpath(//*[@id="div_pass_background"]
Salto 
na Computação Selenium WebDriver – Manipulação 
click() 
• clear() 
• sendKeys(String) 
• submit() 
driver.findElement(By.xpath(//*[@id="div_pass_background"]
Certificações 
•CBTS/ALATS http://www.alats.org.br/portal 
•CTFL/ISTQB - http://www.bstqb.org.br/
Referências 
•Myers, Glenford J. The Art of Software Testing. Ed. Wiley, 2004. 
•Whittaker, J.A. “What Is Software Testing? And Why Is It So 
Hard? ”. IEEE Software, Jan/Fev 2000, p. 70-79. 
•Sembugs.com 
•www.saltonacomputacao.com 
•Base de conhecimento em testes de software
Referências 
•Myers, Glenford J. The Art of Software Testing. Ed. Wiley, 2004. 
•Whittaker, J.A. “What Is Software Testing? And Why Is It So 
Hard? ”. IEEE Software, Jan/Fev 2000, p. 70-79. 
•Sembugs.com 
•www.saltonacomputacao.com 
•Base de conhecimento em testes de software 
•http://www.w3schools.com/cssref/css_selectors.asp 
•http://net.tutsplus.com/tutorials/html-css-techniques/the-30- 
css-selectors-you-must-memorize/ 
•Eliasnogueira.com 
•http://www.devmedia.com.br/artigo-engenharia-de-software-5- 
melhores-praticas-na-automacao-de-testes/10249
Salto 
na Computação
Salto 
na Computação 
Contatos 
@_sandymaciel 
br.linkedin.com/in/sandymaciel/ 
sandy@saltonacomputacao.com 
www.saltonacomputação.com
Salto 
na Computação 
OBRIGADA 

Mais conteúdo relacionado

Mais procurados

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
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
elliando dias
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
Ronney Moreira de Castro
 

Mais procurados (20)

Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
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
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
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
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 

Destaque

Destaque (15)

Ic aula 1_v3
Ic aula 1_v3Ic aula 1_v3
Ic aula 1_v3
 
Informática para Internet - Informática Aplicada - Aula 01
Informática para Internet - Informática Aplicada - Aula 01Informática para Internet - Informática Aplicada - Aula 01
Informática para Internet - Informática Aplicada - Aula 01
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
 
Fábrica de Testes: Por onde começar?
Fábrica de Testes: Por onde começar?Fábrica de Testes: Por onde começar?
Fábrica de Testes: Por onde começar?
 
Testes Ágeis
Testes ÁgeisTestes Ágeis
Testes Ágeis
 
Jogos Mobile 2d + Corona SDK + Love2D
Jogos Mobile 2d + Corona SDK + Love2DJogos Mobile 2d + Corona SDK + Love2D
Jogos Mobile 2d + Corona SDK + Love2D
 
Clojure
ClojureClojure
Clojure
 
Gamificação na Computação - Campus Party Brasil 2017
Gamificação na Computação - Campus Party Brasil 2017Gamificação na Computação - Campus Party Brasil 2017
Gamificação na Computação - Campus Party Brasil 2017
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
User Experience - UX
User Experience - UXUser Experience - UX
User Experience - UX
 
Testes de Desempenho
Testes de DesempenhoTestes de Desempenho
Testes de Desempenho
 
Trello - Uma visão geral
Trello - Uma visão geralTrello - Uma visão geral
Trello - Uma visão geral
 
android
androidandroid
android
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 

Semelhante a Noções em teste de software e introdução a automação

Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
UFPA
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
Aline Zanin
 
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
 

Semelhante a Noções em teste de software e introdução a automação (20)

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?
 
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
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
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
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
ybr789try
ybr789tryybr789try
ybr789try
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
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
 
Guday2015 - GUTS-RS
Guday2015 - GUTS-RSGuday2015 - GUTS-RS
Guday2015 - GUTS-RS
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
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
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 

Mais de Sandy Maciel

Mais de Sandy Maciel (8)

QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
Protagonismo feminino nos jogos
Protagonismo feminino nos jogosProtagonismo feminino nos jogos
Protagonismo feminino nos jogos
 
Trabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopTrabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF Plop
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
Telegram Bot
Telegram BotTelegram Bot
Telegram Bot
 
Gamification
GamificationGamification
Gamification
 
Mercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarMercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficar
 
Jogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKJogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDK
 

Último

Último (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 

Noções em teste de software e introdução a automação

  • 1. Noções em Testes de Software e Introdução ao Selenium Webdriver
  • 2. – É proibida a cópia e reprodução de qualquer parte do conteúdo desta apresentação incluindo, mas não limitado a, textos, imagens, gráficos e tabelas. Esta apresentação é protegida pelas leis de Copyright e são propriedade do Salto na Computação. – Quando houver permissão de uso deste material, é obrigatória a referência bibliográfica conforme as normas vigentes. Salto – Não é permitido modificar, copiar, guardar em banco de dados público, alugar, vender ou republicar qualquer parte desta apresentação, sem prévia permissão explícita do autor. na Computação
  • 3. Salto na Computação Sandy Maciel @_sandymaciel br.linkedin.com/in/sandymaciel/ sandy@saltonacomputacao.com www.saltonacomputação.com Quem sou
  • 4. Salto na Computação Agenda Noções Básicas em Teste de Software Princípios e Conceitos de Teste de Software Visão Geral do Processo de Teste Processo de Testes Introdução ao Selenium WebDriver Introdução > O que é Automação de Testes? > Ferramentas > Selenium Preparando o ambiente Conceitos básicos Exercícios
  • 5. Salto Princípios e Conceitos Básicos na Computação
  • 6. Salto Origem da expressão “bug” na Computação Em 1947, os cientistas estavam testando o computador Mark II, aquele que ocupava uma sala imensa e operava com centenas de válvulas enormes, quando a máquina de repente parou de funcionar. Foram pesquisar a causa e encontraram um inseto impedindo que um dos contatos funcionasse. Este foi o primeiro bug encontrado.
  • 7. Salto Erro, Falha ou Defeito? na Computação Erro – Engano cometido por seres humanos Falha – Resultado ou manifestação de um ou mais defeitos Defeito – Resultado de um erro encontrado num código ou num documento (bug)
  • 8. Salto Quando um bug ocorre? na Computação
  • 9. Salto Teste de Software? na Computação Teste de software é o processo formal de avaliar um sistema ou componente de um sistema por meios manuais ou automáticos para verificar se ele satisfaz os requisitos especificados [IEEE 729, 1983].
  • 10. Salto . Por que definir um procensasCoo mdpeut taeçãsotes? A execução dos testes e a documentação são padronizadas, permitindo planejamento e comparação de eficácia entre projetos. Os papéis e responsabilidades são definidos de forma clara. Os testes alcançam a eficácia e o resultado esperado.
  • 11. Salto . Qual o objetivo do ntaeCsomtapudtaoçãro? Investigar o software, conforme o processo de teste utilizado, a fim de garantir que a qualidade do software e os requisitos implementados estão de acordo com o solicitado pelo cliente. Técnico responsável pela execução dos casos e scripts de teste
  • 12. Salto . Papéis em Teste de Software na Computação Testador Arquiteto de Teste Analista de Teste Auditor da QA Automatizador de Gerente de Teste Teste Líder de Teste Engenheiro de Teste
  • 13. Salto . Ciclo de vida de desennavCoomlvpuimtaçeãonto O processo usado para criar um software, desde a sua concepção inicial até a sua entrega final, é chamado de ciclo de vida. Modelos de Ciclo de Vida de desenvolvimento de software: •Big-bang (cria e conserta) •Cascata •Espiral •Incremental e iterativo •RUP
  • 14. Salto Ciclo de vida de desenvolvimento na Computação Big-Bang
  • 15. Salto Ciclo de vida de desennavCoomlvpuimtaçeãonto Modelo Cascata
  • 16. Salto Ciclo de vida de desennavCoomlvpuimtaçeãonto Modelo em Espiral
  • 17. Salto Ciclo de vida de desennavCoomlvpuimtaçeãonto Modelo Incremental e Iterativo
  • 18. Salto Ciclo de vida de desennavCoomlvpuimtaçeãonto RUP
  • 19. Salto Ciclo de vida de desennavCoomlvpuimtaçeãonto O profissional de teste deve se adaptar ao modelo adotado pela empresa e, daí, aplicar, da melhor maneira as técnicas de teste de software.
  • 20. Salto Processo de Teste – Uma visão geral na Computação
  • 21. Salto na Computação Processo de Teste Testes podem ser considerados como m projeto? “ Um empreendimento temporário, planejado, executado e controlado, com objetivo de criar um produto ou serviço único.” PMBOK , 2000 - PMI
  • 22. Salto na Computação Processo de Teste  Testar é um exercício de gerência de risco  Treinamento em teste reduz custos a longo prazo  As estimativas de teste devem ser baseadas no risco do negócio  A estratégia de teste deve ser elaborada através de um trabalho conjunto entre as áreas envolvidas  É melhor e mais barato encontrar um defeito nas primeiras fases do que em produção
  • 23. Salto na Computação Regra 10 de Myers
  • 24. Salto na Computação Processo de Teste Um software é considerado com qualidade quando atende as categorias da qualidade - ISO/IEC 9126-1
  • 25. Salto na Computação Planejar  Adaptar processo de teste para o Projeto  Planejar testes para o Projeto  Definir a estratégia de teste  Plano de Teste Ambiente de Teste  Identificar Riscos do Projeto de Teste Planejar Testes
  • 27. Salto na Computação Por que planejar? Para planejarmos os testes temos que conhecer os requisitos do projeto a ser desenvolvido
  • 28. Salto na Computação Planejar REQUISITO Definição de uma característica, atributo, habilidade ou qualidade que um sistema (ou qualquer um de seus módulos e subrotinas) deve necessariamente prover para atender aos seus usuários
  • 29. Salto na Computação Para elaborar o teste, devemos saber: O que vamos testar? Quando vamos testar? Como iremos testar?
  • 30. Salto na Computação Estratégia de Teste Nos fornece um roteiro em que descreve os passos a serem conduzidos como parte do teste Objetivos: Determinar o que, quando e como iremos testar. O que define: Ferramentas, técnicas e critérios de conclusão.
  • 31. Salto Fatores de Qualidade na Computação Correção Confiabilidade Eficiência Integridade Usabilidade Manutenabilidade Testabilidade Flexibilidade Reusabilidade Interoperabilidade Portabilidade
  • 32. Salto Fatores de Qualidade x nIaSOCo/mIpEuCta-ç9ã1o26 Não confunda com a norma ISO-9126 que especifica as características de qualidade que todo software deve ter.
  • 33. Salto na Computação ISO/IEC 9126-1
  • 34. Salto Categorias de Qualidade segundo o Modelo FURPS + na Computação
  • 35. Salto Dimensões do TesntaeCo(mIpEuEtaEçã)o
  • 36. Salto Estágios ou Níveis na Computação de Teste • Teste de Unidade: Estágio mais baixo da escala de teste, sendo aplicado nos menores componentes de código criados, visando garantir que estes atendem às especificações funcionais e de arquitetura. Normalmente feito pelo programador. • Teste de Iteração ou Integração: Teste de sistema ao término de cada iteração, dentro de um ambiente operacional controlado, para validar a exatidão e perfeição na execução de suas funções, referentes aos casos de uso da iteração. Normalmente feito pelo analista de sistemas para um módulo ou conjunto de programas. • Teste de Sistema: Execução do sistema como um todo, dentro de um ambiente operacional controlado, para validar a exatidão e perfeição na execução de suas funções, acompanhando cenários sistêmicos elaborados pelo profissional de requisitos do projeto. Normalmente feito pelo analista de testes (caso de testes) em ambiente de testes. • Teste de Aceitação :É a última ação de teste antes da implantação do software, sendo de responsabilidade do cliente. O objetivo deste teste é verificar se o software está pronto e pode ser usado por usuários finais para executar as funções e tarefas para as quais foi construído. Normalmente feito pelo usuário em ambiente de homologação.
  • 37. Salto Dimensões do TesntaeCo(mIpEuEtaEçã)o
  • 38. Salto na Computação Tipos de Teste - Usabilidade Teste Interface: Verifica se a navegabilidade e os objetivos da tela funcionam como especificados e se atendem da melhor forma ao usuário. Teste de Usabilidade: Tem por objetivo verificar a facilidade que a aplicação possui de ser claramente compreendido e manipulado pelo usuário.
  • 39. Salto Tipos de Teste - ConfianabCiloimdpaudtaeção Teste Integridade: Testes destinados a avaliar a robustez do objetivo do teste (resistência a falhas) e a compatibilidade técnica em relação a linguagem, sintaxe e utilização de recursos Teste de Estrutura: Testes destinados a avaliar a adequação do objetivo do teste em relação a seu design e sua formação. Teste de Estresse: Tipo de teste de confiabilidade destinado a avaliar como o sistema responde em condições anormais. Smoke Test: Exercita o sistema em uma única passagem, normalmente utilizando script de execução automática, não devendo ser exaustivo, mas capaz de expor os maiores problemas. O Smoke Test é executado após a construção de cada nova versão (.
  • 40. Salto Tipos de Teste - Confiabilidade na Computação Teste de avaliação de desempenho ou Benchmark: Tipo de teste que compara o desempenho de um objetivo do teste (novo ou desconhecido) a um sistema e uma carga de trabalho de referência conhecidos. Teste de contenção: Testes destinados a verificar se os objetivos do teste podem lidar de forma aceitável com as demandas de vários atores no mesmo recurso (registros de dados, memória, etc.). Teste de carga: Tipo de teste usado para validar e avaliar a aceitabilidade dos limites operacionais de um sistema de acordo com cargas de trabalho variáveis, enquanto o sistema em teste permanece constante. Geralmente, as medições são tomadas com base na taxa de transferência de dados da carga de trabalho e no tempo de resposta da transação alinhado
  • 41. Salto Tipos de Teste - SuponartCaombpiultiadçaãode Teste de configuração: Teste destinado a garantir que o objetivo do teste funcione conforme o esperado em diferentes configurações de hardware e/ou software. Esse teste também pode ser implementado como um teste de desempenho do sistema. Teste de instalação: Teste destinado a garantir que o objetivo do teste seja instalado conforme o esperado em diferentes configurações de hardware e/ou software e sob diferentes condições (como no caso de espaço insuficiente em disco ou interrupção de energia). Esse teste é implementado e executado em aplicativos e sistemas.
  • 42. Salto na Computação Dimensões do Teste (IEEE)
  • 43. Salto na Computação Técnicas de Teste Estrutural Funcional Assegurar a cobertura de toda a estrutura implementada Assegurar que os requisitos foram atendido
  • 44. Salto na Computação Processo de Teste – Plano de Teste O Plano de Teste descreve todos os testes requeridos, os recursos e prazos necessários. Deve estar alinhado com a Estratégia de Teste
  • 45. Salto Processo de Teste – Plano de Teste na Computação Padrão IEEE 829 para elaboração de Planos de Testes: 1.Identificador do Plano de Testes 2.Introdução 3.Itens de teste 4.Módulos ou features do software a serem testados 5.Módulos que não serão testados 6.Abordagem do teste (métricas, metodologias, ferramentas, etc.) 7.Critério de identificação dos 8.Critérios de interrupção ou finalização dos testes 9.Documentação de teste 10. Identificação de quais testes serão necessários e como serão executados (stress, performance, ...) 11. Necessidades de equipamentos e softwares 12. Responsabilidades da equipe envolvida 13. Definição da equipe de teste e das suas necessidades 14. Cronograma (ver roteiro de testes) 15. Riscos e contingências (ver Estratégia de testes) 16. Critérios de aprovação dos testes pelas áreas envolvidas
  • 46. Salto na Computação Ambiente de Teste “Não é apenas uma configuração de hardware, mas toda estrutura onde o teste será executado” Fonte: Base de Conhecimento em Teste de Software
  • 47. Salto na Computação Risco no projeto de teste Risco é algum evento no futuro cuja ocorrência poderá causar algum tipo de problema, no caso, ao projeto de teste de software. Um risco pode ser dividido da seguinte forma: •Sintoma •Fonte •Consequência
  • 48. Salto Risco no projetonadCoem ptuteaçsãtoe Devido a uma <fonte>, o <sintoma> está ocorrendo, podendo causar <consequências>. Sintoma: o que pode indicar o problema Fonte: o que está causando o sintoma Consequência: resultado dos sintomas
  • 49. Salto na Computação Projetar Versionameto Estimativas de Teste Cenários de Teste Dados de Teste Elaborar Casos de Teste Acompanhar Risco do Projeto Projetar Testes
  • 50. Salto Gerência de ConfigurançaãCoom(pGutCaçSã)o Controle de Versionamento –Registro e controle das diversas versões geradas –Garantir que o que foi testado é o que de fato será entregue Controle de Mudanças –Definição de prioridades baseadas na severidade do problema encontrado, no esforço para corrigi-lo, no impacto no cronograma e no esforço para retestar Auditoria das Configurações - Quem fez a mudança e como podemos reproduzir a mudança?
  • 51. Salto Gerência de Configuração (GCS) na Computação Controle de Versão – Algumas Ferramentas
  • 52. Salto na Computação O que? Onde? Quando? Como? Processo de Teste - Projetar Elaborar Casos de Testes Configurações Iteração Caso de Teste como motivador do teste Requisitos Implementação
  • 53. Salto na Computação Algumas definições •Casos de Testes são derivados de uma especificação formal que define os requisitos •Caso de Teste é uma especificação detalhada do teste, composta por conj. de entradas, condições de execução e resultados esperados •Cenário de Teste é uma história hipotética usada para ajudar as pessoas a solucionar um problema complexo, recriando ou visualizando um caminho a seguir. •Dentro de um cenário de testes podemos ter um ou mais casos de teste
  • 54. Salto Métodos de Elaboração de Casos de Teste na Computação Step-by-Step – Identificar um caso de teste para cada requisito e considerar entradas e saídas, entradas especiais, entradas inválidas, etc. Causa-efeito – Faz-se uma tabela de causa e efeito. Nela são decididos as combinações mais relevantes a serem testadas. PairWise – Cada par de parâmetros seja coberto por um caso de teste. Classes de equivalência – É construída de modo agrupar os casos de teste para os quais o comportamento do sistema seja o mesmo; Análise de valores limítrofes – Testar valores limites do domínio de entrada;
  • 55. Salto Desafios para um bom Caso de Teste na Computação •Mudança de Requisito •Mudança de Cronograma •Rotatividade da Equipe
  • 56. Salto na Computação Executar Executar Casos de Teste Gerar Resultado de Teste (log) Acompanhar Defeitos Executar Re-teste Executar Testes “especiais” Executar Testes
  • 57. Salto na Computação “A execução poderá consumir 40% ou menos do tempo total do esforço de teste” Martin Pol Frequentemente os testes são executados o mais rápido possível Processo de Teste - Executar Executar
  • 58. Salto na Computação Executar Fluxo de Execução “A etapa de execução dos testes, dentro do ciclo de vida dos testes, para que seja bem sucedida vai depender de tudo o que foi feito anteriormente e que servirá de base para o cumprimento desta etapa” Fonte: Base de Conhecimento em Teste de Software.
  • 59. Salto na Computação Fluxo de Execução
  • 60. Salto na Computação Mas… Quando os testes terminam? Como saber o momento adequado para finalizar os teste?
  • 62. Salto Gerência dnea CDomepuftaeçãiotos
  • 63. Salto Gerência de na Computação Defeitos Ferramentas  Jira Bugzilla Mantis Rational ClearQuest TestDirector TrackRecord e-Manager Enterprise
  • 64. Salto na Computação Custo do Bug
  • 67. Salto na Computação Importância do Defeito ($)
  • 68. Salto na Computação Custo da correção de um defeito após encontrá-lo
  • 69. Salto na Computação Identificação do Defeito
  • 70. Salto na Computação Reportar Defeito
  • 71. Salto na Computação Reportar Defeito
  • 72. Salto na Computação Severidade X Prioridade
  • 73. Salto na Computação Reportar Defeito Graus altos de severidade correspondem também a graus altos de prioridade?
  • 77. Salto Introdução à automação na Computação
  • 78. Salto O que são testes autonma Caotmizpautdaçoãso? São programas ou scripts que exercitam determinadas funcionalidades do software e fazem verificações automáticas nos resultados obtidos. Ou seja, é um teste, que é executado automaticamente, onde se é conhecido todo o cenário, ações que devem ser realizadas e os resultados esperados. Algumas das principais vantagens dos testes automatizados são: capacidade de reprodutibilidade e velocidade na execução. A automação de testes é uma área em franca expansão, no entanto, é uma área ainda muito imatura. Muitos dos sucessos nos projetos de automação de testes são decorrentes de processos empíricos de tentativa e erro.
  • 79. Salto AUTOMATIZADOnSa Computação Ajudam na documentação Cobrem muitos casos Segurança na manutenção Rodam rápido
  • 80. Salto Automatizando testes vonacêCocmopuntasçeãgoue: Simular grandes quantidades de dados ou usuários. Medir o tempo de execução de certas partes do programa. Encontrar gargalos.
  • 82. Salto O que é automanatiCzoamrpu?tação Testes automatizados são, em geral, utilizados para testes de regressão. Ou seja, testes que devem ser frequentemente executados e/ou demandam muito tempo para execução devem ser automatizados.
  • 83. Salto Melhores práticas na AutomnaaCçoãmop udteaç Tãeoste  Automação não é um processo de teste!  Automatize os testes críticos primeiro  Incorpore testabilidade ao aplicativos  As ferramentas de automação de testes também têm defeito!
  • 84. Salto Como desenvolver um testenaauCotmomputaatçizãaodo? 1. O primeiro passo para se desenvolver um teste automatizado é selecionar o requisito ou funcionalidade alvo e, com base nas especificações, pensar e/ou documentar os possíveis cenários de testes. 2. A seguir, deve-se selecionar um dos cenários e elaborar o caso de testes, onde será especificado o passo-a-passo para a execução do teste. 3. O ideal é que para cada teste automatizado, tenha-se um caso de teste como base. 4. Após a especificação do caso de testes, é hora de criar os scripts de testes. Para isso, precisamos utilizar uma ferramenta de automação de testes.
  • 85. Salto Que ferramentas utilizar? na Computação
  • 87. Salto Selenium WebDriver na Computação
  • 88. Salto Selenium??na Computação • O Selenium reúne um conjunto de ferramentas usadas para a criação de scripts de automação de testes de regressão/funcionais para aplicações Web. • Os testes podem ser executados em qualquer navegador, desde que suporte Javascript.
  • 89. Salto Selenium??na Computação O Selenium possui 4 módulos: – Selenium IDE : Ambiente de desenvolvimento integrado para scripts selenium – Selenium RC : Teste web em qualquer linguagem de programação – Selenium WebDriver : Sucessor do RC, a grande diferença é que ele não necessita de um servidor – Selenium Grid : É o selenium server (via terminal)
  • 90. Salto WebDriver?n?a Computação 1. API 2. Pode ser desenvolvido em várias liguagens 3. Roda em vários browsers 4. Simula um usuário
  • 91. Salto Preparando o Ambiente na Computação
  • 92. Salto Preparando o AmnbaiCeonmtpeutação Usaremos a API em Java e o Eclipse como IDE 1 – Baixe o Eclipse IDE:
  • 93. Salto Preparando o AmnbaiCeonmtpeutação 2 – Baixe o jar do Selenium Server
  • 94. Salto na Computação Preparando o Ambiente 3 – Baixe a API em Java
  • 95. Salto na Computação Preparando o Ambiente 4 – Coloque os jars baixado em uma única pasta dentro de C:
  • 96. Salto na Computação Preparando o Ambiente 5 – Abra o eclipse e clique em File > New > Java Project
  • 97. Salto na Computação Preparando o Ambiente 6 – Nomear projeto
  • 98. Salto Primeiros Passos - Automação na Computação
  • 99. Salto na Computação Quais conhecimentos mínimos precisamos ter para automatizar uma página web? Abrir Navegador Ler URL Guardar textos da página Clicar em links Clicar em botões Preencher Campos
  • 100. Salto na Computação Essas ações são divididas como: Sincronização Navegação Interrogação Manipulação
  • 101. Salto Primeiros Passos - Junit na Computação
  • 102. Salto na Computação 1. Usaremos o Junit, que é um framework de testes java, ele irá nos auxilixar nos testes pois apartir da notação @Test 2. Sempre devemos identicar um método público com o @Test
  • 103. Salto na Computação O Junit também nos ajuda na utilização de Assertions ( assegurar informações). •assertTrue •assertEquals asserTrue ( condição) asserTrue ( mensagem,condição) assertEquals(esperado, obtido) assertEquals(mensagem, esperado, obtido)
  • 104. Salto Primeiros Passos – Selenium WebDriver na Computação
  • 105. Salto na Computação • Sempre devemos passar o browser que utilizaremos, no nosso caso usaremos o Firefox ( nativo ) • Usaremos a classe WebDriver como ponto de partida 1. Instanciar o browser
  • 106. Salto na Computação Métodos de Navegação get ---- abre a página to(url) --- para uma url refresh() --- atualiza a página forward() --- avança back() --- volta
  • 107. Salto na Computação Métodos de Interrogação Utilizando o objeto driver getTitle() getCurrentURL() getPageSource() findElement() findElements() http://www.w3.org/community/webed/wiki/HTML/Elements
  • 108. Salto na Computação Algumas estratégias utilizadas para interrogar elementos: ID CSSSELECTOR NAME XPATH LINKNAME CLASSNAME … driver.findElement(By.cssSelector(“.class”));
  • 109. Salto na Computação driver.findElement(By.id(“id”));" O que eu quero fazer Como eu quero fazer elemento Selenium WebDriver - ID
  • 110. Salto Selenium WebDriver – CnSaSC Somelpeucttaoçãro Localiza o elemento utilizando seu estilo elemento #id .classe elemento[atributo='valor’] elemento > elemento driver.findElement(By.cssSelector(“.class”));"
  • 111. Salto Selenium WebDrivern–a CXopmaptuhtação driver.findElement(By.xpath(//*[@id="div_pass_background"]
  • 112. Salto na Computação Selenium WebDriver – Manipulação click() • clear() • sendKeys(String) • submit() driver.findElement(By.xpath(//*[@id="div_pass_background"]
  • 113. Certificações •CBTS/ALATS http://www.alats.org.br/portal •CTFL/ISTQB - http://www.bstqb.org.br/
  • 114. Referências •Myers, Glenford J. The Art of Software Testing. Ed. Wiley, 2004. •Whittaker, J.A. “What Is Software Testing? And Why Is It So Hard? ”. IEEE Software, Jan/Fev 2000, p. 70-79. •Sembugs.com •www.saltonacomputacao.com •Base de conhecimento em testes de software
  • 115. Referências •Myers, Glenford J. The Art of Software Testing. Ed. Wiley, 2004. •Whittaker, J.A. “What Is Software Testing? And Why Is It So Hard? ”. IEEE Software, Jan/Fev 2000, p. 70-79. •Sembugs.com •www.saltonacomputacao.com •Base de conhecimento em testes de software •http://www.w3schools.com/cssref/css_selectors.asp •http://net.tutsplus.com/tutorials/html-css-techniques/the-30- css-selectors-you-must-memorize/ •Eliasnogueira.com •http://www.devmedia.com.br/artigo-engenharia-de-software-5- melhores-praticas-na-automacao-de-testes/10249
  • 117. Salto na Computação Contatos @_sandymaciel br.linkedin.com/in/sandymaciel/ sandy@saltonacomputacao.com www.saltonacomputação.com
  • 118. Salto na Computação OBRIGADA 