Engenharia de Software Teste de Software Parte 2 Prof. Luís Fernando Garcia [email protected] Parte 2: Automação de Testes Ferramentas de Testes Testes Ágeis Testes na Nuvem MPT.BR Profissionais de Testes Automação de Testes “aplicação de estratégias e ferramentas tendo em vista a redução do envolvimento humano em atividades manuais repetitivas” (Cen Kaner) FOCO na amplitude/escopo, não na velocidade dos testes Automação de Testes Boas Práticas: Automatizar testes críticos primeiro ... Nem todos os testes “valem a pena” serem automatizados ... Incorpore “testabilidade” à aplicação ... Ferramentas de testes também são software ... Criar infra-estrutura adequada, Ambiente isolado e controlado e Massa de dados consistente ... Crie um “projeto de automação de testes” ... Alinhe e motive envolvidos ... Investimento de longo prazo ... Teste manual é insubstituível ... Automação de Testes Principal Testes aplicação: Regressão (re-testes de funcionalidades mediante inclusão de novas funcionalidades ou correção de defeitos) Automação de Testes Paradigmas: Testes funcionais Testes unitários Testes de performance Outros ... Automação de Testes Paradigmas: Automação de Testes Capture/Playback Captura a utilização da aplicação pelo usuário .. Geram um script ... Reproduzem posteriormente ... Não requerem alterações na aplicação ... Dependem fortemente da interface gráfica ... Automação de Testes Data Driven Executam a mesma ação repetidamente porém com dados diferentes ... Automação de Testes Keyword Driven Foco em testes de aceitação Foco em metodologias ágeis Permite a escrita de testes baseados em palavras-chave que representam ações do usuário (PASSOS) como abrir um browser web, digitar a URL, cliques em botões etc Automação de Testes Keyword Selenium IDE Driven Automação de Testes Linha de Comando Não dependente da Interface Gráfica Criação de Scripts Automação de Testes Baseados em API Não dependente da Interface Gráfica Maior profundidade/poder Evolução dos baseados em linha de comando Automação de Testes Test Harness Baseado na lógica de negócio Composto de: • API ou gancho no programa original • Programa testador Funcionamento: Automação de Testes Exemplo de Funciona mento: Automação de Testes Ferramentas de Testes Ferramentas de Testes Testes Ágeis Testes Ágeis Os testes ágeis devem seguir as pequenas iterações, para que os defeitos sejam rapidamente identificados e corrigidos. Os mesmos princípios utilizados no direcionamento do desenvolvimento ágil devem ser considerados quando os testes ágeis são adotados, ou seja, testar de forma ágil exige uma forte adaptação na rotina e dinâmica da equipe de teste, com o objetivo de proporcionar um processo mais leve e que possa ser executado com maior facilidade e agilidade. Os testes ágeis observam um conjunto de práticas que proporcionam a redução do tempo entre o erro e a sua descoberta. Testes Ágeis Diferenças Tradicionais x Ágeis Testes Ágeis Testes Ágeis Testes na Nuvem / Cloud Testing Teste usando a nuvem: Nesta categoria, o teste de software migra para a nuvem e os recursos computacionais da nuvem são utilizados para potencializar a profundidade, amplitude e a escala do teste de software. Teste da nuvem: Nesta categoria são tratados os desafios da implementação de uma estratégia para a realização de testes em aplicações residentes nas nuvens. Testes na Nuvem Teste usando a nuvem: Potencializa a Profundidade, Amplitude e Escala do teste ... Economia Dinamicidade / Adaptabilidade Diversidade de combinações ... Testes na Nuvem Teste da nuvem: Ambiente distribuído Multiusuário Escalável Alta disponibilidade Infraestrutura compartilhada Alto volume de usuários Usuários sem treinamento Testes na Nuvem Testando: Funcionalidade Interoperabilidade Confiabilidade Usabilidade Eficiência Segurança Compatibilidade Desempenho Escalabilidade Conformidade MPT.BR MPT.BR MPT.BR Profissionais de Testes Competências do profissional de testes Profissionais de Testes Profissionais de Testes Profissionais de Testes Profissionais 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 Testes Coordenador de Testes Automatizador de Testes Arquitetos de Testes – Definição das técnicas de testes ... Analistas de Testes – Criação de casos de testes ... Testadores – Executam os testes ... Profissionais de Testes Profissionais de Testes Profissionais de Testes Referências CAETANO, Cristiano. Introdução à Automação de Testes. Revista Engenharia de Software/Devmedia. 4ª. Edição. CAETANO, Cristiano. Melhores práticas na Automação de Testes. Revista Engenharia de Software/Devmedia. 5ª. Edição. LAGES, Daniel. Profissional da área de testes. Revista Engenharia de Software/Devmedia. 18ª. Edição. PATUCI, Gabriela. Seus testes são ágeis? Revista Engenharia de Software/Devmedia. 34ª. Edição. CAETANO, Cristiano. Testes nas Nuvens. Revista Engenharia de Software/Devmedia. 46ª. Edição. MORAIS, Lenildo. Migrando de testes tradicionais para testes ágeis. Revista Engenharia de Software/Devmedia. 48ª. Edição. CAETANO, Cristiano. Testes Ágeis. Revista Engenharia de Software/Devmedia. 48ª. Edição.