Automação de testes: SIMPROS 2007 Miguel Argollo Cenpra



Documentos relacionados
IBM Software Demos Rational Software Delivery Platform - Teste automatizado

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

PALESTRA. Aplicação da Norma IEEE 829 como Mecanismo de Gerência do Processo de Teste de Produtos de Software. CenPRA

AutoTest Um Framework Reutilizável para a Automação de Teste Funcional de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Tipos de teste de software

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo

Sistemas de Produtividade

Projeto de Sistemas I

Fundamentos em Teste de Software. Vinicius V. Pessoni

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula:

Desafio Profissional PÓS-GRADUAÇÃO Gestão de Projetos - Módulo C Prof. Me. Valter Castelhano de Oliveira

GARANTIA DA QUALIDADE DE SOFTWARE

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Teste de Regressão. R. Anido Baseado em notas de aulas da profa. Eliane Martins

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Engenharia de Software III

Cláudia Araújo Coordenadora Diego Macêdo Programador Marcelo Rodrigues Suporte

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

15 Computador, projeto e manufatura

ERP Enterprise Resource Planning

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

Processos de Desenvolvimento de Software

Introdução à Qualidade de Software. Profº Aldo Rocha

Pós Graduação Engenharia de Software

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO

Plano de Gerenciamento do Projeto

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Professor: Curso: Disciplina:

PROFESSOR: CRISTIANO MARIOTTI

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Gerência de Projetos

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Escola Secundária de Camarate

Autores/Grupo: TULIO, LUIS, FRANCISCO e JULIANO. Curso: Gestão da Tecnologia da Informação. Professor: ITAIR PEREIRA DA SILVA GESTÃO DE PESSOAS

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Universidade Paulista

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Aplicação Prática de Lua para Web

Governança de TI. ITIL v.2&3. parte 1

Segurança Computacional. Rodrigo Fujioka

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

17/02/2009. Curso Superior de Tecnologia: Redes de Computadores. Disciplina: Gestão de Projetos de TI Prof.: Fernando Hadad Zaidan. Unidade 2.

Automação de Teste de Software: Incremento de Qualidade e Produtividade em Sistemas de Faturamento Telecom

Administração de Sistemas de Informação. Plano Diretor de Informática

Questionário. A ferramenta auxilia na alocação de Não (0) x x x. Satisfatório (5) complexidade de um caso de uso? de uso (72) Sim (10)

Engenharia de Requisitos

Implantação de um Processo de Medições de Software

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

ISO/IEC 12207: Gerência de Configuração

Metodologia para Planejamento, Execução e Controle de Teste de Software. Roteiro

MBA: Master in Project Management

Direcção Regional de Educação do Algarve

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Gerenciamento de projetos.

ESCOLHA UM TESTE PARA EXECUTAR

Introdução a Gerenciamento de Projetos Prof. MSc. Fábio Assunção

Testes de Software Aula 1

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Introdução à Engenharia de Software

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Verificação é um processo para se determinar se os produtos, (executáveis ou

Gerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002

PLANIFICAÇÃO ANUAL DE CONTEÚDOS

Engenharia de Software Processo de Desenvolvimento de Software

COMPETÊNCIA, CONSCIENTIZAÇÃO E TREINAMENTO

PROJETO DE FÁBRICA DE SOFTWARE

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Testes de Software. Andrew Diniz da Costa

MASTER IN PROJECT MANAGEMENT

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

ENGENHARIA DE SOFTWARE

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Grécia Um Framework para gerenciamento de eventos científicos acadêmicos utilizando componentes

Transcrição:

Automação de testes: características, vantagens e limitações. SIMPROS 2007 Miguel Argollo Cenpra 1 CenPRA: Centro de Pesquisas Renato Archer. Incentivar o desenvolvimento da pesquisa científica e tecnológica nas atividades relacionadas à tecnologia da informação. Promove e realiza projetos de Pesquisa e Desenvolvimento; Realiza atividades de suporte às empresas do setor de Tecnologia da Informação. CenPRA, 2007 Pag.: 2 CenPRA 2007. 1

CenPRA: Centro de Pesquisas Renato Archer. Projeto: Tecnologia para Teste de Software em Ambientes Empresariais Objetivo: Desenvolver uma metodologia para a introdução ou a melhoria do processo de teste nas empresas produtoras de software. Cursos: Módulo I - Fundamentos de Teste de Software Módulo II - Técnicas de Teste de Software Módulo III - Documentação do Teste de Software Módulo IV - Processo de Teste Software Módulo V Automação de Teste de Software CenPRA, 2007 Pag.: 3 SIMPROS 2007 Automação de testes: características, vantagens e limitações. 4 CenPRA 2007. 2

Programa do Workshop (Curso) Objetivo do Workshop (Curso) Revisão Introdução Técnicas & demos Captura & executa Selenium Scripts estruturados Teste dirigidos por tabelas Fitnesse Teste dirigidos por palavras-chave - Watir Teste de desempenho - Jmeter Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 5 Objetivo do workshop. O workshop apresentará os principais conceitos associados à automação de testes de software, abordando as características e estilos de automação, suas vantagens e limitações, os custos associados e os principais requisitos para a implantação de uma iniciativa de automação de testes de sucesso. CenPRA, 2007 Pag.: 6 CenPRA 2007. 3

Revisão: expectativas sobre automação. O principal motivo em se adotar uma ferramenta de automação deve ser a diminuição do esforço associado ao teste de um novo produto ou de uma nova versão de um produto existente. CenPRA, 2007 Pag.: 7 Revisão: expectativas sobre automação. Uma boa ferramenta automatiza as atividades mais importantes e dispendiosas do teste de um aplicativo, diminuindo bastante a necessidade de um processo de teste detalhado. CenPRA, 2007 Pag.: 8 CenPRA 2007. 4

Revisão: expectativas sobre automação. As ferramentas atuais são fáceis de ser empregadas, de forma que o trabalho necessário para a automação dos testes de um aplicativo é razoavelmente simples. CenPRA, 2007 Pag.: 9 Revisão: expectativas sobre automação. Um bom processo de testes suportado por uma boa ferramenta permite que todos os testes necessários possam ser automatizados com o tempo. Se um teste vale a pena ser executado manualmente, vale a pena ser automatizado. CenPRA, 2007 Pag.: 10 CenPRA 2007. 5

Revisão: expectativas sobre automação. Uma equipe especialista no aplicativo, que tenha um bom conhecimento de teste de software e que domine a ferramenta de automação, é suficiente para automatizar os testes deste aplicativo. CenPRA, 2007 Pag.: 11 Revisão: expectativas sobre automação. Não existe sentido em repetir um teste já realizado com sucesso, sendo preferível projetar e executar um novo teste, que tem maior probabilidade de identificar novas falhas. CenPRA, 2007 Pag.: 12 CenPRA 2007. 6

Revisão: expectativas sobre automação. O grande benefício da automação vem da possibilidade de repetir automaticamente um teste anteriormente realizado. CenPRA, 2007 Pag.: 13 Revisão: conceitos básicos sobre teste. Teste de software consiste na verificação dinâmica do comportamento de um programa, através de um conjunto finito de casos de teste, adequadamente selecionado a partir de um conjunto infinito de possibilidades, contra um comportamento esperado especificado. (swebok) CenPRA, 2007 Pag.: 14 CenPRA 2007. 7

Revisão: conceitos básicos sobre teste. Teste é o processo de executar um software com o objetivo de verificar se ele satisfaz requisitos específicos e de detectar erros. British Computer Society SIGST CenPRA, 2007 Pag.: 15 Revisão: conceitos básicos sobre teste. Planejamento Projeto Execução Acompanhamento CenPRA, 2007 Pag.: 16 CenPRA 2007. 8

Revisão: conceitos básicos sobre teste. Planejamento Projeto Execução Acompanhamento Apanha informações sobre produto; Define abordagem de teste Identifica equipe, tarefa, cronograma,... Projeta requisitos de teste Detalha abordagem de teste Define casos de teste (dados de entrada e resultados) Executa programa com casos de testes projetados Compara resultados Analisa sintomas e Relata incidentes Verifica critério de aceitação Emite relatórios de acompanhamento Analisa tendências Verifica necessidades de novos testes CenPRA, 2007 Pag.: 17 Revisão: conceitos básicos sobre teste. Esforço associado ao teste: Dependendo do risco e da complexidade da aplicação em teste, a parcela do esforço de desenvolvimento alocada ao teste varia entre 30% e 50%. O custo do teste na maioria dos sistemas comerciais varia entre 40% e 50% do custo total de desenvolvimento. CenPRA, 2007 Pag.: 18 Prasad Patwa, Reengineering Test Management CenPRA 2007. 9

Revisão: conceitos básicos sobre teste. Custo de correção de defeito por fase de desenvolvimento. CenPRA, 2007 Pag.: 19 Software Defect Reduction Top 10 List B. Boehm, V. Basilli IEEE Computer, Jan/2001 Revisão: conceitos básicos sobre teste. A liberação de um produto de software é uma decisão de negócio, e não uma questão de qualidade. No more whining Johanna Rothman CenPRA, 2007 Pag.: 20 CenPRA 2007. 10

Revisão: conceitos básicos sobre teste. Pontos chave: Teste é uma atividade cara e repetitiva. Exige planejamento, projeto, execução e acompanhamento. Um processo de teste bem definido e documentado é fundamental. Quando executado corretamente, teste pode prevenir a ocorrência de defeitos e economizar recursos. Deve haver um alinhamento entre o processo de teste e os objetivos do negócio. Teste não é um substituto para boas práticas de Engenharia de Software. CenPRA, 2007 Pag.: 21 Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 22 CenPRA 2007. 11

Introdução: conceitos básicos de automação. Automação de teste consiste no uso de ferramentas de software para: controlar a execução dos testes; comparar os resultados obtidos com os resultados esperados; preparar o set-up de pré-condições do teste; relatar os resultados obtidos. CenPRA, 2007 Pag.: 23 Introdução: conceitos básicos de automação. Quais atividades podemos automatizar? Planejamento Projeto Execução Acompanhamento Apanha informações sobre produto; Define abordagem de teste Identifica equipe, tarefa, cronograma,... Projeta requisitos de teste Detalha abordagem de teste Define casos de teste (dados de entrada e resultados) Executa programa com casos de testes projetados Compara resultados Analisa sintomas e Relata incidentes Verifica critério de aceitação Emite relatórios de acompanhamento Analisa tendências Verifica necessidades de novos testes CenPRA, 2007 Pag.: 24 CenPRA 2007. 12

Introdução: conceitos básicos de automação. Dados de teste Resultados esperados scripts Ferramenta scripts Dados Resultados Interface Gráfica Programa Em Teste Relatórios CenPRA, 2007 Pag.: 25 Introdução: conceitos básicos de automação. Scripts de teste: Programa ou parte de programa empregado para executar um caso de teste específico ou um conjunto de casos de teste. Scripts simulam ações, alteram valores e verificam conteúdo dos objetos da interface gráfica. Normalmente as ferramentas de automação fornecem linguagens orientadas para o domínio de teste de software. CenPRA, 2007 Pag.: 26 CenPRA 2007. 13

Introdução: conceitos básicos de automação. Scripts de teste: exemplos. Window.Localizar.ProcurarPor.TypeText( automação ); Window.Localizar.Diferenciar.Click (); Window.Localizar.Localizar.Click(); MainWindow.Document.ChechSelText( automação ); CenPRA, 2007 Pag.: 27 Introdução: conceitos básicos de automação. Limitações de scripts de teste: scripts são dependentes d dos elementos da interface gráfica: Se a interface mudar, o script pára de funcionar. As linguagens de testes t normalmente reconhecem somente os elementos básicos da interface gráfica. CenPRA, 2007 Pag.: 28 CenPRA 2007. 14

Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 29 Introdução: conceitos básicos de automação. Técnicas para desenvolvimento de scripts: Captura & executa Scripts estruturados Dirigidos por tabelas Dirigidos por palavras CenPRA, 2007 Pag.: 30 CenPRA 2007. 15

Automação Conceitos básicos. I. Captura e executa. Características: 1. Usuário usa ferramenta no modo gravação e executa um caso de teste; 2. Ferramenta gera automaticamente comandos necessários para repetir ações do usuário; 3. Modo de gravação pode ser interrompido para inclusão manual de comandos de verificação; 4. Ao final da execução do caso de teste, o script correspondente está definido. O script gerado pode ser empregado para a re-execução do teste. CenPRA, 2007 Pag.: 31 Automação Conceitos básicos. I. Captura e executa Vantagens: Rapidez para a geração de scripts; Facilidade para aprendizagem da linguagem. Limitações: Número elevado de scripts gerados; Novos testes implicam em novos scripts. Elevado acoplamento entre dados (casos de teste) e código (script); Geração de scripts não estruturados; Alterações na interface gráfica impactam fortemente os scripts; Dificuldades para manutenção dos scripts. Algum conhecimento de programação é necessário. CenPRA, 2007 Pag.: 32 CenPRA 2007. 16

Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 33 Automação Conceitos básicos. II. Scripts estruturados Características: Desenvolvimento de pequenos scripts de funções genéricas que podem ser reutilizados. Scripts podem ser organizados em um framework que forneça funções básicas de automação. CenPRA, 2007 Pag.: 34 CenPRA 2007. 17

Automação Conceitos básicos. II. Scripts estruturados Vantagens: Possibilidade de agrupar vários casos de teste similares por script. Testes similares requerem menor esforço de manutenção Limitações: Esforço necessário para desenvolvimento dos scripts; Tempo necessário para obter resultados. Elevado acoplamento entre dados (casos de teste) e código (script); Conhecimento de programação necessário; Alterações na interface gráfica impactam os scripts; Novos casos de teste implicam na evolução dos scripts. CenPRA, 2007 Pag.: 35 Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 36 CenPRA 2007. 18

Automação Conceitos básicos. III. Dirigidos por tabelas Características: Os casos de teste são armazenados em tabelas. Scripts são desenvolvidos para ler a tabela e processar os casos de teste. Cada tabela contém dados de um mesmo cenário de teste. CenPRA, 2007 Pag.: 37 Automação Conceitos básicos. III. Dirigidos por tabelas Tabela 1: Cadastro de clientes Tabela 2: Transferência Tabela 3: Verificação de saldo Sobrenome Nome Conta Depósito Silva José 30.123-A 12.700,00 Moraes Carlos 40.456-B 8.200,00 Conta Conta Valor 30.123-A 40.456-B 500,00 Conta Saldo 30123-A 12200,00 40456-B 8700,00 Hans Buwalda Getting automated testing under control CenPRA, 2007 Pag.: 38 CenPRA 2007. 19

Automação Conceitos básicos. III. Dirigidos por tabelas: Vantagens: Suporte oferecido pelas principais ferramentas; Mesmo script pode ser usado sem alteração para executar novos casos de teste semelhantes. Alterações na interface gráfica impactam pouco os scripts. CenPRA, 2007 Pag.: 39 Limitações: Esforço necessário para desenvolvimento dos scripts; Tempo necessário para obter resultados. Scripts desenvolvidos são mais complexos. Conhecimento em desenvolvimento de software é necessário. Pouco flexível para a definição de novos cenários de teste. Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 40 CenPRA 2007. 20

Automação Conceitos básicos. IV. Dirigido por palavras-chave: Características: Os casos de teste são armazenados em tabelas. Scripts são desenvolvidos para ler a tabela e processar os casos de teste. Cada tabela contém dados de diversos cenários de teste CenPRA, 2007 Pag.: 41 Automação Conceitos básicos. IV. Dirigido por palavras-chave: Teste Inicial Cadastro Silva José 30.123-A 12.700,00 Cadastro Moraes Carlos 40.456-B 8.200,00 Transferência 30.123-A 40.456-B 500,00 VerificaSaldo 30.123-A 12.200,00200 VerificaSaldo 40.456-B 8.700,00 CenPRA, 2007 Pag.: 42 CenPRA 2007. 21

Automação Conceitos básicos. IV. Dirigidos por palavras-chave: Vantagens: Flexível para a definição de novos cenários de teste. Alterações na interface gráfica alteram pouco os scripts. Testes são definidos em termos de processos de negócios. Limitações: Esforço necessário para desenvolvimento dos scripts; Tempo necessário para obter resultados. Scripts desenvolvidos são mais complexos. Conhecimento em desenvolvimento de software é necessário. CenPRA, 2007 Pag.: 43 Automação Watir. WATIR: Web Application Testing in Ruby. Permite realizar testes de regressão em aplicações WEB; Usa linguagem Ruby para manipular o navegador IE (através da interface COM). CenPRA, 2007 Pag.: 44 CenPRA 2007. 22

Automação Watir. Linguagem de programação orientada a objetos desenvolvida em 1995; Atualmente considerada a 10 a linguagem mais popular em uso (http://www.tiobe.com/tpci.htm); Foco na simplicidade e produtividade. CenPRA, 2007 Pag.: 45 Automação Watir. Interpretada & flexível: Hashes: End_URL[ Fish ] = 'http://www.petshop.com/petshop/category.aspx?categoryid=fish ; Expressões regulares: Preco = / TOTAL => \d+.\d+ /. match (linhahtml) CenPRA, 2007 Pag.: 46 CenPRA 2007. 23

Automação Watir. ie = IE.new ie.goto( goto( http://www.google.com.br br ) CenPRA, 2007 Pag.: 47 Automação Watir. Manipulação de hyperlinks: ie.link(:text, Efetuar login )click ).click CenPRA, 2007 Pag.: 48 CenPRA 2007. 24

Automação Watir. Campo de entrada de dados: ie.textfield(:name, q ).set( watir ) ) CenPRA, 2007 Pag.: 49 Automação Watir. Buttons: ie.button(:value, Pesquisa Google )click ).click CenPRA, 2007 Pag.: 50 CenPRA 2007. 25

Automação Watir. Radio buttons: ie.radio(:id, all )set ).set CenPRA, 2007 Pag.: 51 Automação Watir. Exemplo: aplicativo para venda de animais: CenPRA, 2007 Pag.: 52 CenPRA 2007. 26

Automação Watir. Exemplo: aplicativo para venda de animais: Teste: Verificar funcionalidade do carrinho de compras: Inserir animais; Retirar animais. CenPRA, 2007 Pag.: 53 Automação Watir. Exemplo: aplicativo para venda de animais: Objetivo do teste: verificar funcionalidade do carrinho de compras. Exemplo de caso de teste: Inserir um peixe dourado no carrinho de compras; Inserir um poodle no carrinho de compras; Inserir uma serpente no carrinho de compras; Inserir um gato no carrinho de compras; Inserir um canário no carrinho de compras; Verificar o total do carrinho (US$81,50). CenPRA, 2007 Pag.: 54 CenPRA 2007. 27

Automação Watir. Exemplo: aplicativo para venda de animais: Abordagem escolhida: teste t dirigido i id por palavras chaves. InserirNoCarrinho: Insere um animal no carrinho de compras. RetirarDoCarrinho: Retira um animal do carrinho de compras. VerificarPreço: Verifica o total do carrinho de compras. CenPRA, 2007 Pag.: 55 Automação Watir. Exemplo: Tabela submetida ao programa de teste: Palavra chave Parâmetros InserirNoCarrinho Fish Gold Gold_male 5,50 InserirNoCarrinho Dogs Poodle Poodle_male 18,50 InserirNoCarrinho Snake RattleSnake Venomless 18,50 InserirNoCarrinho Cats Manx Tailed 23,50 InserirNoCarrinho Birds Finch Finch_Male 15,50 VerificarPreço 81,50 CenPRA, 2007 Pag.: 56 CenPRA 2007. 28

Automação Watir. Exemplo: aplicativo para venda de animais: Os dados da tabela são utilizados diretamente na automação do teste do software; Novos testes podem ser criados pela inclusão ou deleção de linhas da tabela, sem a necessidade de alteração de nenhum script de teste; Alterações na interface gráfica do software em teste t acarretam alterações nos scripts de teste, t mas não nos dados de teste. CenPRA, 2007 Pag.: 57 Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 58 CenPRA 2007. 29

Automação & desenvolvimento. Automação = desenvolvimento de software! Boas práticas de engenharia de software; Equipe: engenheiros de automação e engenheiros de teste; Retorno não imediato; Depuração dos scripts; Manutenção dos scripts. CenPRA, 2007 Pag.: 59 Automação & desenvolvimento. Automação = desenvolvimento de software! Para que um projeto de automação tenha sucesso ele deve passar por um ciclo de vida semelhante ao de um projeto de desenvolvimento de software: 1. Planejamento 2. Levantamento de requisitos 3. Projeto 4. Codificação 5. Testes 6. Operação 7. Manutenção & evolução CenPRA, 2007 Pag.: 60 CenPRA 2007. 30

Automação & desenvolvimento. Automação = desenvolvimento de software! Planejamento: Levantar escopo do projeto (tempo, equipe e recursos) Identificar envolvidos e expectativas; Identificar estratégias de teste que serão usadas; Avaliação do processo de teste. Levantamento de requisitos: Identificar necessidades dos envolvidos; Identificar objetivos do teste; Identificar cenários de teste. CenPRA, 2007 Pag.: 61 Automação & desenvolvimento. Automação = desenvolvimento de software! Projeto: Estruturação dos scripts; Estruturação dos cenários de teste; Organização do ambiente de teste; Definição de padrões. Codificação: Desenvolvimento dos scripts; Desenvolvimento dos cenários de teste; Desenvolvimento do ambiente de teste. CenPRA, 2007 Pag.: 62 CenPRA 2007. 31

Automação & desenvolvimento. Automação = desenvolvimento de software! Avaliação: Execução controlada dos scripts; Avaliação dos resultados obtidos. Operação: Execução operacional dos scripts em ambiente de teste; Manutenção & evolução: Acompanhamento da evolução do sistema em teste, compreendendo: desenvolvimento de novos testes; desenvolvimento de novos scripts. CenPRA, 2007 Pag.: 63 Automação & desenvolvimento. Automação = desenvolvimento de software! Características de uma boa solução de automação: 1. Modularidade; 2. Manutenabilidade; 3. Flexibilidade de uso; 4. Documentação; 5. Sincronização: - contexto; - temporal. A solução obtida (scripts e testes) deve ficar sobre gerência de configuração. CenPRA, 2007 Pag.: 64 CenPRA 2007. 32

Automação & desenvolvimento. Esforço necessário para desenvolver scripts: A experiência mostra que o esforço necessário para criar, verificar e documentar um teste automático é de 3 a 10 maior do que o necessário para criar e executar o teste manualmente. CenPRA, 2007 Pag.: 65 Programa do Workshop Objetivo do Curso Revisão Introdução Técnicas & demos Captura & executa Scripts estruturados Teste dirigidos por tabelas Teste dirigidos por palavras-chave - Watir Automação & desenvolvimento Conclusão CenPRA, 2007 Pag.: 66 CenPRA 2007. 33

Automação Conclusões. Custos associados à automação: Custos de aquisição da tecnologia: Recursos necessários à escolha da ferramenta Recursos necessários à compra e instalação da ferramenta; Recursos necessários ao treinamento Custos de uso da tecnologia: Recursos necessários à automação (desenvolvimento de scripts) Recursos necessários à manutenção dos scripts CenPRA, 2007 Pag.: 67 Automação Conclusões. Um exemplo: Sistema da área de seguros. Esforço necessário à execução dos testes s manuais: 5 p.m (5 pessoas X 4 semanas ) Esforço necessário à automação dos testes (uma única vez): 18 p.m ( 3 pessoas X 6 meses) Tempo necessário à execução automatizada dos mesmos testes: uma semana (1,25 p.m) Número de ciclos de teste necessários para recuperar investimento: Cinco Diferença foi reinvestida no aprimoramento dos testes. Resultado: número de incidentes em sistemas em produção caiu de 80% a 90%. A economia para empresa ao término de um ano foi superior ao orçamento anual do departamento de teste. LindaHayes Does test automation save time and money? CenPRA, 2007 Pag.: 68 CenPRA 2007. 34

Automação Conclusões. Não pense em automação como um mecanismo para diminuir o prazo da realização dos testes, mas como uma forma de aproveitar melhor o tempo para obter um produto mais confiável. O grande benefício não vem da repetição automática dos testes, mas pela execução de teste que não foram executados anteriormente. O benefício obtido pela automação ficam comprometidos se os testes não forem projetados de forma a serem facilmente modificados quando o aplicativo for alterado. CenPRA, 2007 Pag.: 69 Automação conclusões. Pontos chave: Expectativas gerenciais realísticas; Automação = desenvolvimento de software; Use técnicas orientadas por dados; Considere impactos na equipe de teste; Não planeja automatizar todos os testes; Use tempo ganho com automação para aprimorar testes; Combine testes automáticos e manuais; Testes automáticos necessitam de um bom processo de teste; CenPRA, 2007 Pag.: 70 CenPRA 2007. 35

Referências. Sites com informações sobre ferramentas: http://www.aptest.com/resources.html http://www.io.com/~wazmo/qa/ http://www.softwareqatest.com/ CenPRA, 2007 Pag.: 71 Referências. Algumas (poucas) ferramentas... Borland / Segue - SilkTest HP / Mercury - WinRunner Compuware - QACenter IBM / Rational - Robot AutomatedQA TestComplete ApTest Ap Test Manager Empirix e-tester LogiGear - TestArchitect CenPRA, 2007 Pag.: 72 CenPRA 2007. 36

Referências. Automated Software Testing, Elfriede Dustin, Jeff Rashka, John Paul. Addison Wesley, 1999. Software Test Automation, Mark Fewster, Dorothy Graham. Addison Wesley, 2000. Load Testing for econfidence, Stefan Asbock, Segue Software, 2000. Automated Testing Handbook, Linda G. Hayes, 2004. Lessons Learned in Software Testing, Cem Kaner, James Bach, Bret Pettichord, Wiley Computer Publishing, 2002 (capítulo 5 Automated Testing). Effective Software Testing, Elfriede Dustin, Addison-Wesley, 2003 (Capítulos 7 Automated Testing Tools, e 8 Automated Testing) CenPRA, 2007 Pag.: 73 Referências. Software Testing Testing Across the Entire Software Development Life Cycle, Gerald D. Everret, Raymond McLeod Jr, Wiley-Interscience, 2007 (Capítulos 9 Performance Testing, e 11 Automated Testing Tools) Fit for Developing Software: Framework for Integrated Tests, Rick Mugridge, Ward Cunningham, Prentice Hall, 2005. Everyday Scripting with Ruby For Teams, Testers, and You, Brian Marick, The Pragmatic Programmers, 2006 Testing Applications on the Web, Hung Q. Nguyen, Bob Johnson, Michael Hackett, Wiley Publishing, Inc., 2003 (capítulo 19 Performance Testing) CenPRA, 2007 Pag.: 74 CenPRA 2007. 37

F I M CenPRA, 2007 Pag.: 75 Centro de Pesquisas Renato Archer - CenPRA Divisão de Melhoria de Processos de Software - DMPS Contatos Miguel Argollo miguel.argollo@cenpra.gov.br telefone: (19) 3746-60996099 CenPRA Tecnologia da Informação 76 CenPRA 2007. 38