SlideShare uma empresa Scribd logo
1 de 37
 
Camilo Falcão Ribeiro ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Defeitos estão por toda parte! . . .
Custo do Defeito Custo relativo para corrigir um defeito. Adaptado de (BOEHM, 1981). Distribuição do retrabalho pelas atividades de desenvolvimento de software. Adaptado de (WHEELER et al., 1996).
Soluções para cada tipo de Defeito! Teste Exploratório Teste Manual Inspeção Auditoria de  Qualidade Teste de Unidade Análise Estática -Não tem relação com o Slide sobre os tipos de defeitos (joaninhas) Teste de Regressão . . .
Teste de Software “ Teste de software é o processo de executar um determinado software com a intenção de encontrar defeitos.” Glenford J. Myers, The Art of Software Testing, 1979 “ 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 ou identificar diferenças entre os resultados esperados e obtidos.” [IEEE729 1983][NOGUEIRA2009] “ Processo que consiste em todas as atividades do ciclo de vida, tanto estáticas quanto dinâmicas, voltadas para o planejamento, preparação e avaliação de produtos de software e produtos de trabalho relacionados a fim de determinar se eles satisfazem os requisitos especificados e demonstrar que estão aptos para sua finalidade e para a detecção de defeitos.  “ Testing”, [Glossário ISTQB, v. 1.3br, 01 de jul. 2007]
Teste de Software Teste de Software
Níveis, Tipos e Técnicas Créditos:  Ricardo Antunes Técnica Nível Dimensões da Qualidade Funcionalidade Confiabilidade Usabilidade Desempenho Suportabilidade Tipos de Teste (alguns exemplos) Caixa Branca Teste de Unidade Teste de Integração Segurança Integridade Carga Configuração Caixa Cinza Teste de Sistema Funcional Regressão Usabilidade Caixa Preta Teste de Aceitação Volume Maturidade Estresse Instalação Como Testar Quando Testar O que Testar
Transparência do Teste Requisitos / Negócios (Abstração) Teste de caixa branca Teste baseado na análise da estrutura interna de um componente ou sistema. (Glossário ISTQB) Teste de caixa preta Teste, funcional ou não funcional, sem referência à estrutura interna do componente ou do sistema. (Glossário ISTQB)
Testar é muito mais que automatizar Necessidades Características / Requisitos Casos de Uso Cenários de Teste Casos de Teste (Incluindo Dados) Scripts de Teste [ZIELCZYNSKI 2006]
Teste de Aceite Teste de Sistema Teste de Integração Teste de Unidade Modelos “V” De Desenvolvimento Requisitos Análise Desenho Implementação
Teste de Aceite Teste de Sistema Teste de Integração Teste de Unidade Diferentes níveis, diferentes abordagens Para cada momento do ciclo de vida de um determinado produto de software, devemos ter diferentes abordagens, o que inclui as técnicas, as ferramentas e as pessoas certas.
Teste de Unidade Teste de unidade (unit test) é o processo que inclui o planejamento, a execução, a aquisição de dados de teste e as medições de cobertura em relação aos requisitos, usando de dados mais simples para exercitar as unidades de forma a realizar comparações entre o comportamento real (software sob teste) e o comportamento esperado (requisitos definidos). [IEEE Standards Board]
Teste de Unidade Mesma  Classe ou Unidade
Teste de Unidade com JUnit Requisito Classe de Teste Bibliotecas (Junit) Implementa Especifica Dados (DB, XML) Gera e Testa Classe Java Acessa Acessa Cobertura de Código Defeitos Estimativas Exemplo:  Uma Introdução a TDD com JUnit
Teste de Integração Teste de integração  (Integration testing) Teste realizado com a finalidade de expor defeitos nas interfaces e nas interações entre componentes ou sistemas integrados. (ISQTQB Glossário)
Teste de Integração Classes ou Unidades  Diferentes .
Modelos de Teste de Integração Teste big-bang  (Big-bang test) Tipo de teste de integração no qual os elementos de um software ou de um hardware, ou ainda de ambos, são combinados todos de uma vez, ao invés de em estágios, em um componente ou sistema geral.  (IEEE610) (ISQTQB Glossário ) Teste bottom-up  (Bottom-up testing) Abordagem incremental do teste de integração, na qual os componentes de nível mais baixo são testados em primeiro lugar, e, então utilizados para facilitar o teste de componentes de nível mais alto. Este processo é repetido até que o componente no topo da hierarquia seja testado. (ISQTQB Glossário ) Teste top-down  (Top-down testing) Abordagem incremental do teste de integração na qual o componente na parte superior da hierarquia de componentes é testado primeiro, e os componentes nos níveis mais baixos são simulados por simuladores (stubs). Os componentes testados são então utilizados para testar componentes de níveis mais baixos. Este processo é repetido até que os componentes de níveis mais baixos tenham sido testados.  (ISQTQB Glossário ) Unidade Testada Software Completo Unidade Software Completo Software Completo
Teste de Sistema Teste de sistema  (System testing)  Testa um sistema integrado para verificar se ele atende aos requisitos especificados.  [Hetzel]  Teste de Sistema é o teste realizado em um sistema completo e integrado (software ou hardware) para avaliar a sua conformidade com os requisitos especificados. No escopo do Teste do Sistema são inseridos os testes de caixa preta, e como tal, não deve exigir nenhum conhecimento de projeto interior do código ou lógica. IEEE Standard Computer Dictionary
Caso de Teste CT  SIS65 ID - Nome Pré condições Procedimentos Entradas e Saídas Resultados esperados Pós Condições
Teste de Sistema CT01 CT02 CT03 CT04 CT05 CT06 CT07 Automatizado Manual Leitura dos casos de teste Registro manual dos resultados Programação dos casos de teste em ferramenta de automação e Record and replay
Teste de Sistema Programador Implementa Código Testador encontra muitos problemas recorrentes Release gerada Defeitos abertos Gasto excessivos de tempo; Pessoas desmotivadas (trabalho repetitivo); Maior custo com salários e horas extras; Probabilidade de erros passarem após vários ciclos de teste; Vício do testador na ferramenta (perda de eficiência).
Teste de Sistema Programador conta com ferramentas de suporte e processo automatizado. Release gerada * Desenvolver  testes automatizados leva cerca de 3 a 10 vezes mais tempo que  executá-los  manualmente. O ganho está na redução do tempo de execução.( CBT-TST110 ) Testador incansável Testa, retesta e testa de novo! Log de Erros Testador motivado mantém os scripts e tem mais tempo para analisar resultados e planejar testes.
Teste de Sistema Scripts de Teste Teste de Sistema automatizado Call Scripts Ponto de verificação Ponto de verificação Ponto de verificação BD (Datapool)
Teste de Aceite Teste de aceite  (Acceptance testing)  Teste formal relacionado às necessidades dos usuários e aos requisitos e processos de negócios. Este teste é realizado para estabelecer se um determinado sistema satisfaz ou não os critérios de aceite e para possibilitar aos usuários, aos clientes e às outras entidades autorizadas decidir aceitar ou não determinado sistema.  (IEEE 610) (ISQTQB Glossário)
Testes de Aceite Cenário de Teste Caso de Teste de Negócio Caso de Teste Caso de Teste de Aceite . . . Abstração
Testes de Aceite Os testes de aceite são os testes executados pelo cliente, baseados nos requisitos para que ele possa aprovar o sistema e avaliar se é exatamente o que ele precisava. Logo, podemos supor que não é viável automatizar testes funcionais de aceite. Relembrando: Testes funcionais são aqueles que visam encontrar defeitos funcionais ou verificar se uma determinada funcionalidade do sistema atende corretamente aos seus requisitos.
Testes de Requisitos Não Funcionais Os requisitos não funcionais são medidas baseadas em comportamentos do sistema durante a execução das funcionalidades. Os testes desses requisitos são normalmente executados com ajuda de ferramentas especializadas, com grande planejamento, avaliação arquitetural, aplicando técnicas avançadas. O papel que executa essas atividades é normalmente conhecido como  arquiteto  ou  engenheiro  de Teste
Eficiência Recursos  Algoritmo Arquitetura e Rede Outros Requisitos  Não Funcionais Pesquisa Requisitos  Funcionais Acessos / Usuários
Eficiência Sumário com as médias de resposta Registradores por página Medidores por servidor Número máximo de usuários 100 Requisições por segundo 12.2 Requisições não completadas 0 Porcentagem de requisições em cachê 43.4 Tempo médio de resposta de requisições (segundos) 0.57 Avg. Content Length (bytes) 14,410 Testes por segundo 0.091 Testes com falha 0 Tempo médio de duração de cada teste (segundo) 105 Tempo médio de transações por segundo 0 Tempo médio de resposta por página (segundos) 1.50 Nome do servidor % Processamento Memória disponível (Mb) Aplic01 34.7 1,034 Aplic02 21.3 747 Banco De dados 0.25 1,332 Apresentação 69.1 627 URL (Link to More Details) Avg. Page Time (sec) Count /Pacote1/VisualizarItem.aspx 2.30 40 /Pacote2/ExibeFornecedor.aspx 1.94 250 /Default.aspx 1.33 10 /Pacote1/ConsultarItem.aspx 1.30 30 /Portal.aspx 0.77 40 / Pacote3 /pac/8/banner.swf 0.32 20
Arquitetura de Automação - Praxis Casos de teste.properties Arquivo com os casos de teste usados pela aplicação. Os mesmos casos de teste podem ser usados pelos testes de unidade e de sistema. Entidades de teste.properties  Arquivo com as entidades utilizadas como entrada para os testes de unidade e sistema. Mensagens.properties Arquivo com as mensagens do sistema, normalmente usado para informar o resultado esperado dos casos de teste. [WILSON2009, MERCI2010] http://homepages.dcc.ufmg.br/~wilson
Macro Arquitetura de Automação RSDP * *RSDP – Rational Software Development Platform
Testadores Técnicos Automatizador de Teste   O automatizador é um profissional com conhecimentos intermediários em programação e conhecimento básico de arquitetura de software. Normalmente conhece bem alguma linguagem de programação, domina Orientação a Objetos e algumas ferramentas e técnicas de programação. O automatizador de testes é o profissional responsável por escrever os testes predefinidos pelo engenheiro de testes ou arquiteto de testes.  Engenheiro de Teste   O engenheiro de testes é um profissional que procura se qualificar de forma a atender projetos de forma analítica e sistemática, sempre ponderando as decisões técnicas e tecnologias usadas para melhor desempenho durante todas as atividades de teste no projeto. A escolha das ferramentas de automação, a análise dos requisitos não funcionais, o conhecimento das limitações das linguagens, frameworks e bancos dados também são pontos que um bom engenheiro de testes deve observar.  Arquiteto de Teste O arquiteto de Teste de Software é o profissional responsável pelo planejamento estratégico dos testes na organização. Esse planejamento vai desde aquisição de novas ferramentas, inclusão de novas atividades nos processos, arquitetura dos casos de teste, arquiteturas de reuso de testes (funcionais e não funcionais), frameworks de teste e etc.
Esse material foi inspecionado! Obrigado: •  Fabíola Lara •  Marlon Lima •  Vanessa Vaz E ainda deve ter alguns bugs . . .  
Dúvidas?
Bibliografia • Myers, Glenford J. (1979). The Art of Software Testing. John Wiley and Sons. ISBN 0-471-04328-1. • BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall. • WHEELER, D.A., BRYKEZYNSKI, B., MEESON, R.N., 1996, Software Inspections: An Industry Best Practice, IEEE Computer Society. •   PRESSMAN, R.S., 2001, Software Engineering: A Practitioner´s Approach, Fifth Edition, McGraw Hill. • [ISO9126] ISO/IEC 9126-1:2001, Software Engineering – Software Product Quality • ISQTQB Glossário de termos usados no Teste de Software Versão 1.0 •   Foundation Level ISTQB Syllabus, ISTQB • PÁDUA FILHO (2003), Wilson.  Engenharia de Software   – Fundamentos , Métodos e Padrões. 3ª Edição. LTC Editora, 2009. • RIOS, E., MOREIRA, T., SOUZA, A., CRISTALLI, R . Base de Conhecimento em Teste de Software 2ª Edição. Martins, 2007. • IEEE Standards Board, "IEEE Standard for Software Unit Testing: An American National Standard, ANSI/IEEE Std 1008-1987" in IEEE Standards: Software Engineering, Volume Two • IEEE Std 829-2008. • IEEE Std 610- •  Hetzel, Bill,  The Complete Guide to Software Testing, 1993, Ed.2 • CBT-TST110,  Computer Based Training TST110 Principals of Software Testing for Testers; • IEEE729-1983 • NOGUEIRA, Elias.  Automação de Teste - Mitos e Verdades, 4° Encontro Mensal ALATS,  http://www.slideshare.net/elias.nogueira ,  2009 •  IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries; IEEE; New York, NY.; 1990 •MERCI2010, Praxis 3.0 – Wilson de Pádua.  http://homepages.dcc.ufmg.br/~wilson/praxis/  2010 • ZIELCZYNSKI, Peter,  Traceability from Use Cases to Test Cases,  http://www.ibm.com/developerworks/rational/library/04/r-3217/  IBM Rational Technical library, 2006
Muito Obrigado!

Mais conteúdo relacionado

Mais procurados

Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareLucas Amaral
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Prototipagem
PrototipagemPrototipagem
Prototipagemjwainer
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1Carlos Eugenio Torres
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 

Mais procurados (20)

Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de Software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 

Destaque

Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Monitoramento da Infraestrutura de Segurança 3
Monitoramento da Infraestrutura de Segurança 3Monitoramento da Infraestrutura de Segurança 3
Monitoramento da Infraestrutura de Segurança 3ISH Tecnologia
 
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 POAAline Zanin
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014alexandre freire
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e JenkinsCriando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e JenkinsCamilo Ribeiro
 
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryDo push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryCamilo Ribeiro
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficienteCamilo Ribeiro
 
Boas práticas de Automação de Testes
Boas práticas de Automação de TestesBoas práticas de Automação de Testes
Boas práticas de Automação de TestesCamilo Ribeiro
 
Apresentação Central de Monitoramento
Apresentação Central de MonitoramentoApresentação Central de Monitoramento
Apresentação Central de MonitoramentoIvonei Hilgemberg
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsCamilo Ribeiro
 

Destaque (14)

Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Monitoramento da Infraestrutura de Segurança 3
Monitoramento da Infraestrutura de Segurança 3Monitoramento da Infraestrutura de Segurança 3
Monitoramento da Infraestrutura de Segurança 3
 
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
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e JenkinsCriando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
 
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryDo push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficiente
 
Boas práticas de Automação de Testes
Boas práticas de Automação de TestesBoas práticas de Automação de Testes
Boas práticas de Automação de Testes
 
Apresentação Central de Monitoramento
Apresentação Central de MonitoramentoApresentação Central de Monitoramento
Apresentação Central de Monitoramento
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and Jenkins
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 

Semelhante a Introdução a Automação de Teste de Software

Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
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.pptxRoberto Nunes
 
ybr789try
ybr789tryybr789try
ybr789tryteste
 
Testes de software
Testes de softwareTestes de software
Testes de softwareteste
 
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 SoftwareCloves da Rocha
 
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çãoSandy Maciel
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 
Testes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareTestes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareSilas Gonçalves
 
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çãoJoeldson Costa Damasceno
 
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 Geralpaulo peres
 
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 ManagerAlan Carlos
 
Introdução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e DocumentaçãoIntrodução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e DocumentaçãoGTS-CE
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 

Semelhante a Introdução a Automação de Teste de Software (20)

Teste de software
Teste de softwareTeste de software
Teste de software
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia 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
 
ybr789try
ybr789tryybr789try
ybr789try
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
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
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é 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
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Testes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareTestes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de Software
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
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
 
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
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
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
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Introdução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e DocumentaçãoIntrodução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e Documentação
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 

Introdução a Automação de Teste de Software

  • 1.  
  • 2.
  • 3. Defeitos estão por toda parte! . . .
  • 4. Custo do Defeito Custo relativo para corrigir um defeito. Adaptado de (BOEHM, 1981). Distribuição do retrabalho pelas atividades de desenvolvimento de software. Adaptado de (WHEELER et al., 1996).
  • 5. Soluções para cada tipo de Defeito! Teste Exploratório Teste Manual Inspeção Auditoria de Qualidade Teste de Unidade Análise Estática -Não tem relação com o Slide sobre os tipos de defeitos (joaninhas) Teste de Regressão . . .
  • 6. Teste de Software “ Teste de software é o processo de executar um determinado software com a intenção de encontrar defeitos.” Glenford J. Myers, The Art of Software Testing, 1979 “ 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 ou identificar diferenças entre os resultados esperados e obtidos.” [IEEE729 1983][NOGUEIRA2009] “ Processo que consiste em todas as atividades do ciclo de vida, tanto estáticas quanto dinâmicas, voltadas para o planejamento, preparação e avaliação de produtos de software e produtos de trabalho relacionados a fim de determinar se eles satisfazem os requisitos especificados e demonstrar que estão aptos para sua finalidade e para a detecção de defeitos. “ Testing”, [Glossário ISTQB, v. 1.3br, 01 de jul. 2007]
  • 7. Teste de Software Teste de Software
  • 8. Níveis, Tipos e Técnicas Créditos: Ricardo Antunes Técnica Nível Dimensões da Qualidade Funcionalidade Confiabilidade Usabilidade Desempenho Suportabilidade Tipos de Teste (alguns exemplos) Caixa Branca Teste de Unidade Teste de Integração Segurança Integridade Carga Configuração Caixa Cinza Teste de Sistema Funcional Regressão Usabilidade Caixa Preta Teste de Aceitação Volume Maturidade Estresse Instalação Como Testar Quando Testar O que Testar
  • 9. Transparência do Teste Requisitos / Negócios (Abstração) Teste de caixa branca Teste baseado na análise da estrutura interna de um componente ou sistema. (Glossário ISTQB) Teste de caixa preta Teste, funcional ou não funcional, sem referência à estrutura interna do componente ou do sistema. (Glossário ISTQB)
  • 10. Testar é muito mais que automatizar Necessidades Características / Requisitos Casos de Uso Cenários de Teste Casos de Teste (Incluindo Dados) Scripts de Teste [ZIELCZYNSKI 2006]
  • 11. Teste de Aceite Teste de Sistema Teste de Integração Teste de Unidade Modelos “V” De Desenvolvimento Requisitos Análise Desenho Implementação
  • 12. Teste de Aceite Teste de Sistema Teste de Integração Teste de Unidade Diferentes níveis, diferentes abordagens Para cada momento do ciclo de vida de um determinado produto de software, devemos ter diferentes abordagens, o que inclui as técnicas, as ferramentas e as pessoas certas.
  • 13. Teste de Unidade Teste de unidade (unit test) é o processo que inclui o planejamento, a execução, a aquisição de dados de teste e as medições de cobertura em relação aos requisitos, usando de dados mais simples para exercitar as unidades de forma a realizar comparações entre o comportamento real (software sob teste) e o comportamento esperado (requisitos definidos). [IEEE Standards Board]
  • 14. Teste de Unidade Mesma Classe ou Unidade
  • 15. Teste de Unidade com JUnit Requisito Classe de Teste Bibliotecas (Junit) Implementa Especifica Dados (DB, XML) Gera e Testa Classe Java Acessa Acessa Cobertura de Código Defeitos Estimativas Exemplo: Uma Introdução a TDD com JUnit
  • 16. Teste de Integração Teste de integração (Integration testing) Teste realizado com a finalidade de expor defeitos nas interfaces e nas interações entre componentes ou sistemas integrados. (ISQTQB Glossário)
  • 17. Teste de Integração Classes ou Unidades Diferentes .
  • 18. Modelos de Teste de Integração Teste big-bang (Big-bang test) Tipo de teste de integração no qual os elementos de um software ou de um hardware, ou ainda de ambos, são combinados todos de uma vez, ao invés de em estágios, em um componente ou sistema geral. (IEEE610) (ISQTQB Glossário ) Teste bottom-up (Bottom-up testing) Abordagem incremental do teste de integração, na qual os componentes de nível mais baixo são testados em primeiro lugar, e, então utilizados para facilitar o teste de componentes de nível mais alto. Este processo é repetido até que o componente no topo da hierarquia seja testado. (ISQTQB Glossário ) Teste top-down (Top-down testing) Abordagem incremental do teste de integração na qual o componente na parte superior da hierarquia de componentes é testado primeiro, e os componentes nos níveis mais baixos são simulados por simuladores (stubs). Os componentes testados são então utilizados para testar componentes de níveis mais baixos. Este processo é repetido até que os componentes de níveis mais baixos tenham sido testados. (ISQTQB Glossário ) Unidade Testada Software Completo Unidade Software Completo Software Completo
  • 19. Teste de Sistema Teste de sistema (System testing) Testa um sistema integrado para verificar se ele atende aos requisitos especificados. [Hetzel] Teste de Sistema é o teste realizado em um sistema completo e integrado (software ou hardware) para avaliar a sua conformidade com os requisitos especificados. No escopo do Teste do Sistema são inseridos os testes de caixa preta, e como tal, não deve exigir nenhum conhecimento de projeto interior do código ou lógica. IEEE Standard Computer Dictionary
  • 20. Caso de Teste CT SIS65 ID - Nome Pré condições Procedimentos Entradas e Saídas Resultados esperados Pós Condições
  • 21. Teste de Sistema CT01 CT02 CT03 CT04 CT05 CT06 CT07 Automatizado Manual Leitura dos casos de teste Registro manual dos resultados Programação dos casos de teste em ferramenta de automação e Record and replay
  • 22. Teste de Sistema Programador Implementa Código Testador encontra muitos problemas recorrentes Release gerada Defeitos abertos Gasto excessivos de tempo; Pessoas desmotivadas (trabalho repetitivo); Maior custo com salários e horas extras; Probabilidade de erros passarem após vários ciclos de teste; Vício do testador na ferramenta (perda de eficiência).
  • 23. Teste de Sistema Programador conta com ferramentas de suporte e processo automatizado. Release gerada * Desenvolver testes automatizados leva cerca de 3 a 10 vezes mais tempo que executá-los manualmente. O ganho está na redução do tempo de execução.( CBT-TST110 ) Testador incansável Testa, retesta e testa de novo! Log de Erros Testador motivado mantém os scripts e tem mais tempo para analisar resultados e planejar testes.
  • 24. Teste de Sistema Scripts de Teste Teste de Sistema automatizado Call Scripts Ponto de verificação Ponto de verificação Ponto de verificação BD (Datapool)
  • 25. Teste de Aceite Teste de aceite (Acceptance testing) Teste formal relacionado às necessidades dos usuários e aos requisitos e processos de negócios. Este teste é realizado para estabelecer se um determinado sistema satisfaz ou não os critérios de aceite e para possibilitar aos usuários, aos clientes e às outras entidades autorizadas decidir aceitar ou não determinado sistema. (IEEE 610) (ISQTQB Glossário)
  • 26. Testes de Aceite Cenário de Teste Caso de Teste de Negócio Caso de Teste Caso de Teste de Aceite . . . Abstração
  • 27. Testes de Aceite Os testes de aceite são os testes executados pelo cliente, baseados nos requisitos para que ele possa aprovar o sistema e avaliar se é exatamente o que ele precisava. Logo, podemos supor que não é viável automatizar testes funcionais de aceite. Relembrando: Testes funcionais são aqueles que visam encontrar defeitos funcionais ou verificar se uma determinada funcionalidade do sistema atende corretamente aos seus requisitos.
  • 28. Testes de Requisitos Não Funcionais Os requisitos não funcionais são medidas baseadas em comportamentos do sistema durante a execução das funcionalidades. Os testes desses requisitos são normalmente executados com ajuda de ferramentas especializadas, com grande planejamento, avaliação arquitetural, aplicando técnicas avançadas. O papel que executa essas atividades é normalmente conhecido como arquiteto ou engenheiro de Teste
  • 29. Eficiência Recursos Algoritmo Arquitetura e Rede Outros Requisitos Não Funcionais Pesquisa Requisitos Funcionais Acessos / Usuários
  • 30. Eficiência Sumário com as médias de resposta Registradores por página Medidores por servidor Número máximo de usuários 100 Requisições por segundo 12.2 Requisições não completadas 0 Porcentagem de requisições em cachê 43.4 Tempo médio de resposta de requisições (segundos) 0.57 Avg. Content Length (bytes) 14,410 Testes por segundo 0.091 Testes com falha 0 Tempo médio de duração de cada teste (segundo) 105 Tempo médio de transações por segundo 0 Tempo médio de resposta por página (segundos) 1.50 Nome do servidor % Processamento Memória disponível (Mb) Aplic01 34.7 1,034 Aplic02 21.3 747 Banco De dados 0.25 1,332 Apresentação 69.1 627 URL (Link to More Details) Avg. Page Time (sec) Count /Pacote1/VisualizarItem.aspx 2.30 40 /Pacote2/ExibeFornecedor.aspx 1.94 250 /Default.aspx 1.33 10 /Pacote1/ConsultarItem.aspx 1.30 30 /Portal.aspx 0.77 40 / Pacote3 /pac/8/banner.swf 0.32 20
  • 31. Arquitetura de Automação - Praxis Casos de teste.properties Arquivo com os casos de teste usados pela aplicação. Os mesmos casos de teste podem ser usados pelos testes de unidade e de sistema. Entidades de teste.properties Arquivo com as entidades utilizadas como entrada para os testes de unidade e sistema. Mensagens.properties Arquivo com as mensagens do sistema, normalmente usado para informar o resultado esperado dos casos de teste. [WILSON2009, MERCI2010] http://homepages.dcc.ufmg.br/~wilson
  • 32. Macro Arquitetura de Automação RSDP * *RSDP – Rational Software Development Platform
  • 33. Testadores Técnicos Automatizador de Teste O automatizador é um profissional com conhecimentos intermediários em programação e conhecimento básico de arquitetura de software. Normalmente conhece bem alguma linguagem de programação, domina Orientação a Objetos e algumas ferramentas e técnicas de programação. O automatizador de testes é o profissional responsável por escrever os testes predefinidos pelo engenheiro de testes ou arquiteto de testes. Engenheiro de Teste O engenheiro de testes é um profissional que procura se qualificar de forma a atender projetos de forma analítica e sistemática, sempre ponderando as decisões técnicas e tecnologias usadas para melhor desempenho durante todas as atividades de teste no projeto. A escolha das ferramentas de automação, a análise dos requisitos não funcionais, o conhecimento das limitações das linguagens, frameworks e bancos dados também são pontos que um bom engenheiro de testes deve observar. Arquiteto de Teste O arquiteto de Teste de Software é o profissional responsável pelo planejamento estratégico dos testes na organização. Esse planejamento vai desde aquisição de novas ferramentas, inclusão de novas atividades nos processos, arquitetura dos casos de teste, arquiteturas de reuso de testes (funcionais e não funcionais), frameworks de teste e etc.
  • 34. Esse material foi inspecionado! Obrigado: • Fabíola Lara • Marlon Lima • Vanessa Vaz E ainda deve ter alguns bugs . . . 
  • 36. Bibliografia • Myers, Glenford J. (1979). The Art of Software Testing. John Wiley and Sons. ISBN 0-471-04328-1. • BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall. • WHEELER, D.A., BRYKEZYNSKI, B., MEESON, R.N., 1996, Software Inspections: An Industry Best Practice, IEEE Computer Society. • PRESSMAN, R.S., 2001, Software Engineering: A Practitioner´s Approach, Fifth Edition, McGraw Hill. • [ISO9126] ISO/IEC 9126-1:2001, Software Engineering – Software Product Quality • ISQTQB Glossário de termos usados no Teste de Software Versão 1.0 • Foundation Level ISTQB Syllabus, ISTQB • PÁDUA FILHO (2003), Wilson. Engenharia de Software – Fundamentos , Métodos e Padrões. 3ª Edição. LTC Editora, 2009. • RIOS, E., MOREIRA, T., SOUZA, A., CRISTALLI, R . Base de Conhecimento em Teste de Software 2ª Edição. Martins, 2007. • IEEE Standards Board, "IEEE Standard for Software Unit Testing: An American National Standard, ANSI/IEEE Std 1008-1987" in IEEE Standards: Software Engineering, Volume Two • IEEE Std 829-2008. • IEEE Std 610- • Hetzel, Bill, The Complete Guide to Software Testing, 1993, Ed.2 • CBT-TST110, Computer Based Training TST110 Principals of Software Testing for Testers; • IEEE729-1983 • NOGUEIRA, Elias. Automação de Teste - Mitos e Verdades, 4° Encontro Mensal ALATS, http://www.slideshare.net/elias.nogueira , 2009 • IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries; IEEE; New York, NY.; 1990 •MERCI2010, Praxis 3.0 – Wilson de Pádua. http://homepages.dcc.ufmg.br/~wilson/praxis/ 2010 • ZIELCZYNSKI, Peter, Traceability from Use Cases to Test Cases, http://www.ibm.com/developerworks/rational/library/04/r-3217/ IBM Rational Technical library, 2006