Engenharia de Software Teste de Software Parte 2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Post on 22-Apr-2015

106 views 0 download

Transcript of Engenharia de Software Teste de Software Parte 2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Engenharia de Software

Teste de SoftwareParte 2

Prof. Luís Fernando GarciaProf. Luís Fernando GarciaLUIS@GARCIA.PRO.BRLUIS@GARCIA.PRO.BR

Parte 2:Parte 2:

Automação de TestesAutomação de Testes Ferramentas de TestesFerramentas de Testes Testes ÁgeisTestes Ágeis Testes na NuvemTestes na Nuvem MPT.BRMPT.BR Profissionais de TestesProfissionais de Testes

Automação de TestesAutomação de Testes

““aplicação de estratégias e aplicação de estratégias e ferramentas tendo em vista a redução ferramentas tendo em vista a redução do envolvimento humano em do envolvimento humano em atividades manuais repetitivas” (Cen atividades manuais repetitivas” (Cen Kaner)Kaner)

FOCO na amplitude/escopo, não na FOCO na amplitude/escopo, não na velocidade dos testesvelocidade dos testes

Automação de TestesAutomação de Testes

Boas Práticas:Boas Práticas: Automatizar testes críticos primeiro ...Automatizar testes críticos primeiro ... Nem todos os testes “valem a pena” serem automatizados ...Nem todos os testes “valem a pena” serem automatizados ... Incorpore “testabilidade” à aplicação ...Incorpore “testabilidade” à aplicação ... Ferramentas de testes também são software ...Ferramentas de testes também são software ... Criar infra-estrutura adequada, Ambiente isolado e controlado e Criar infra-estrutura adequada, Ambiente isolado e controlado e

Massa de dados consistente ...Massa de dados consistente ... Crie um “projeto de automação de testes” ...Crie um “projeto de automação de testes” ... Alinhe e motive envolvidos ...Alinhe e motive envolvidos ... Investimento de longo prazo ...Investimento de longo prazo ... Teste manual é insubstituível ...Teste manual é insubstituível ...

Automação de TestesAutomação de Testes

Principal aplicação:Principal aplicação:

Testes Regressão Testes Regressão (re-testes de (re-testes de funcionalidades mediante inclusão funcionalidades mediante inclusão de novas funcionalidades ou de novas funcionalidades ou correção de defeitos)correção de defeitos)

Automação de TestesAutomação de Testes

Paradigmas:Paradigmas:

Testes funcionaisTestes funcionais Testes unitáriosTestes unitários Testes de performanceTestes de performance Outros ...Outros ...

Automação de TestesAutomação de Testes

Paradigmas:Paradigmas:

Automação de TestesAutomação de Testes

Capture/PlaybackCapture/Playback Captura a utilização da aplicação pelo Captura a utilização da aplicação pelo

usuário .. usuário .. Geram um script ...Geram um script ... Reproduzem posteriormente ...Reproduzem posteriormente ...

Não requerem alterações na aplicação ...Não requerem alterações na aplicação ... Dependem fortemente da interface gráfica ...Dependem fortemente da interface gráfica ...

Automação de TestesAutomação de Testes

Data DrivenData Driven Executam a mesma ação repetidamente Executam a mesma ação repetidamente

porém com dados diferentes ... porém com dados diferentes ...

Automação de TestesAutomação de Testes

Keyword DrivenKeyword Driven Foco em testes de aceitaçãoFoco em testes de aceitação Foco em metodologias ágeis Foco em metodologias ágeis Permite a escrita de testes baseados em Permite a escrita de testes baseados em

palavras-chave que representam ações do palavras-chave que representam ações do usuário (PASSOS) como abrir um browser usuário (PASSOS) como abrir um browser web, digitar a URL, cliques em botões etc web, digitar a URL, cliques em botões etc

Automação de TestesAutomação de Testes

Keyword DrivenKeyword Driven SeleniumSelenium IDE IDE

Automação de TestesAutomação de Testes

Linha de ComandoLinha de Comando Não dependente da Interface GráficaNão dependente da Interface Gráfica Criação de ScriptsCriação de Scripts

Automação de TestesAutomação de Testes

Baseados em APIBaseados em API Não dependente da Interface GráficaNão dependente da Interface Gráfica Maior profundidade/poderMaior profundidade/poder Evolução dos baseados em linha de Evolução dos baseados em linha de

comandocomando

Automação de TestesAutomação de Testes

Test HarnessTest Harness Baseado na lógica de negócioBaseado na lógica de negócio Composto de:Composto de:

• API ou gancho no programa originalAPI ou gancho no programa original• Programa testador Programa testador

Funcionamento:Funcionamento:

Automação de TestesAutomação de Testes

Exemplo Exemplo de de FuncionaFuncionamento:mento:

Automação de TestesAutomação de Testes

Ferramentas de TestesFerramentas de Testes

Ferramentas de TestesFerramentas de Testes

Testes ÁgeisTestes Ágeis

Testes ÁgeisTestes Ágeis

Os testes ágeis devem seguir as pequenas iterações, Os testes ágeis devem seguir as pequenas iterações, para que os defeitos sejam rapidamente identificados e para que os defeitos sejam rapidamente identificados e corrigidos. Os mesmos princípios utilizados no corrigidos. Os mesmos princípios utilizados no direcionamento do desenvolvimento ágil devem ser direcionamento do desenvolvimento ágil devem ser considerados quando os testes ágeis são adotados, ou considerados quando os testes ágeis são adotados, ou seja, testar de forma ágil exige uma forte adaptação na seja, testar de forma ágil exige uma forte adaptação na rotina e dinâmica da equipe de teste, com o objetivo de rotina e dinâmica da equipe de teste, com o objetivo de proporcionar um processo mais leve e que possa ser proporcionar um processo mais leve e que possa ser executado com maior facilidade e agilidade. Os testes executado com maior facilidade e agilidade. Os testes ágeis observam um conjunto de práticas que ágeis observam um conjunto de práticas que proporcionam a redução do tempo entre o erro e a sua proporcionam a redução do tempo entre o erro e a sua descoberta. descoberta.

Testes ÁgeisTestes Ágeis

Diferenças Tradicionais x ÁgeisDiferenças Tradicionais x Ágeis

Testes ÁgeisTestes Ágeis

Testes ÁgeisTestes Ágeis

Testes na Nuvem / Cloud TestingTestes na Nuvem / Cloud Testing

Teste Teste usando a nuvemusando a nuvem: Nesta categoria, o teste : Nesta categoria, o teste de software migra para a nuvem e os recursos de software migra para a nuvem e os recursos computacionais da nuvem são utilizados para computacionais da nuvem são utilizados para potencializar a profundidade, amplitude e a potencializar a profundidade, amplitude e a escala do teste de software.escala do teste de software.

Teste Teste da nuvemda nuvem: Nesta categoria são tratados os : Nesta categoria são tratados os desafios da implementação de uma estratégia desafios da implementação de uma estratégia para a realização de testes em aplicações para a realização de testes em aplicações residentes nas nuvens.residentes nas nuvens.

Testes na NuvemTestes na Nuvem

Teste Teste usando a nuvemusando a nuvem::

Potencializa a Profundidade, Amplitude e Potencializa a Profundidade, Amplitude e Escala do teste ...Escala do teste ...

EconomiaEconomia Dinamicidade / AdaptabilidadeDinamicidade / Adaptabilidade Diversidade de combinaçõesDiversidade de combinações ......

Testes na NuvemTestes na Nuvem

Teste Teste da nuvemda nuvem: :

Ambiente distribuídoAmbiente distribuído MultiusuárioMultiusuário EscalávelEscalável Alta disponibilidadeAlta disponibilidade Infraestrutura compartilhadaInfraestrutura compartilhada Alto volume de usuáriosAlto volume de usuários Usuários sem treinamentoUsuários sem treinamento

Testes na NuvemTestes na Nuvem

Testando:Testando:

FuncionalidadeFuncionalidade InteroperabilidadeInteroperabilidade ConfiabilidadeConfiabilidade UsabilidadeUsabilidade EficiênciaEficiência SegurançaSegurança CompatibilidadeCompatibilidade DesempenhoDesempenho EscalabilidadeEscalabilidade ConformidadeConformidade

MPT.BRMPT.BR

MPT.BRMPT.BR

MPT.BRMPT.BR

Profissionais de TestesProfissionais de Testes

Competências do profissional de testesCompetências do profissional de testes

Profissionais de TestesProfissionais de Testes

Profissionais de TestesProfissionais de Testes

Profissionais de TestesProfissionais de Testes

Profissionais de TestesProfissionais de Testes

O testador deve ser diplomático, ou seja, utilizar bons modos e delicadeza para conduzir uma questão, pois, querendo ou não, na maioria das vezes, é portador de más notícias. Conforme [LOVELAND], terá que dizer ao desenvolvedor “The baby is ugly!”.

Profissionais de TestesProfissionais de Testes

Coordenador de TestesCoordenador de Testes Automatizador de TestesAutomatizador de Testes Arquitetos de TestesArquitetos de Testes

– Definição das técnicas de testes ... Definição das técnicas de testes ...

Analistas de TestesAnalistas de Testes– Criação de casos de testes ...Criação de casos de testes ...

TestadoresTestadores– Executam os testes ...Executam os testes ...

Profissionais de TestesProfissionais de Testes

Profissionais de TestesProfissionais de Testes

Profissionais de TestesProfissionais de Testes

ReferênciasReferências

CAETANO, Cristiano. Introdução à Automação de Testes. Revista Engenharia CAETANO, Cristiano. Introdução à Automação de Testes. Revista Engenharia de Software/Devmedia. 4ª. Edição. de Software/Devmedia. 4ª. Edição.

CAETANO, Cristiano. Melhores práticas na Automação de Testes. Revista CAETANO, Cristiano. Melhores práticas na Automação de Testes. Revista Engenharia de Software/Devmedia. 5ª. Edição.Engenharia de Software/Devmedia. 5ª. Edição.

LAGES, Daniel. Profissional da área de testes. Revista Engenharia de LAGES, Daniel. Profissional da área de testes. Revista Engenharia de Software/Devmedia. 18ª. Edição.Software/Devmedia. 18ª. Edição.

PATUCI, Gabriela. Seus testes são ágeis? Revista Engenharia de PATUCI, Gabriela. Seus testes são ágeis? Revista Engenharia de Software/Devmedia. 34ª. Edição.Software/Devmedia. 34ª. Edição.

CAETANO, Cristiano. Testes nas Nuvens. Revista Engenharia de CAETANO, Cristiano. Testes nas Nuvens. Revista Engenharia de Software/Devmedia. 46ª. Edição. Software/Devmedia. 46ª. Edição.

MORAIS, Lenildo. Migrando de testes tradicionais para testes ágeis. Revista MORAIS, Lenildo. Migrando de testes tradicionais para testes ágeis. Revista Engenharia de Software/Devmedia. 48ª. Edição. Engenharia de Software/Devmedia. 48ª. Edição.

CAETANO, Cristiano. Testes Ágeis. Revista Engenharia de Software/Devmedia. CAETANO, Cristiano. Testes Ágeis. Revista Engenharia de Software/Devmedia. 48ª. Edição. 48ª. Edição.