Beruflich Dokumente
Kultur Dokumente
Introduo
Vinicius Pessoni
controlar a execuo dos testes; gerar e inserir dados; comparar os resultados obtidos com os esperados;
gerar relatrios baseados em mtricas definidas; gerar scripts que simulem o comportamento do usurio.
Introduo
Problema: Testes so uma das tarefas mais caras no projeto de software; Motivao: Testes automticos podem reduzir os custos de execuo de testes repetitivos; Objetivos: Expor o estado atual da automao de testes nas empresas; Identificar melhorias no desenvolvimento de testes de software na prtica.
Processo de Pesquisa
Entrevistas realizadas em uma unidade da empresa. Para empresas pequenas pode ser a prpria empresa; Primeira Etapa: 12 grandes empresas entrevistadas; Conhecer os fatores que impactam nos testes automatizados de software; Segunda Etapa: 31 empresas entrevistadas; Entrevistados: Designers, programadores, testadores, projetistas e gerentes de testes.
Processo de Pesquisa
Processo de Pesquisa
Processo de Pesquisa
Mtodo de Anlise Os dados de cada entrevista foram agrupados e classificados em 12 categorias A categoria de Automao de teste foi definida como categoria principal Todas as outras categorias estavam relacionadas a ela.
Processo de Pesquisa
Mtodo de coleta de dados Coletar informaes das pessoas sobre o que elas pensam sobre Automao de testes. Estudo exploratrio para entender melhor pesquisadores e desenvolvedores. Questionrio http://www2.it.lut.fi/project/MASTO/
Resultados
Empresas entrevistadas
Resultados
Empresas entrevistadas
Resultados
Quantidade de recursos disponibilizados para testes
Resultados
Nvel de teste de acordo com a ISO/IEC 29119
Resultados
Nvel de teste de acordo com a ISO/IEC 29119
Resultados
Nvel de teste de acordo com a ISO/IEC 29119
Resultados
Efeitos do processo de teste
Resultados
Efeitos do processo de teste
Resultados
Efeitos do processo de teste
Resultados
As reas mais importantes de aplicao de testes automticos
Resultados
As reas mais importantes de aplicao de testes automticos
Resultados
As reas mais importantes de aplicao de testes automticos
Qualidade do estudo
Foram conceitualizadas as principais categorias Automao de testes Descreve as reas de desenvolvimento de software em que a automao foi aplicada com sucesso Papis no processo de desenvolvimento de software Objetivos para os quais a automao foi aplicada Estratgias para automao de testes Como a automao foi aplicada no processo de software
Qualidade do estudo
Foram conceitualizadas as principais categorias Desenvolvimento automtico de testes Recursos alocados para a infraestrutura Ferramentas de automao Ferramentas utilizadas pelas empresas Impedimentos para automao Principais impedimentos para automao dos testes nas empresas.
Concluso
Esforo em testes menor que o esperado (25%) Literatura menciona entre 50% e 60% Em mdia apenas 26% dos testes so automticos Vrias empresas evitaram investir em testes automticos devido ao custo/benefcio Preferem testes manuais Muitas empresas apresentam objetivos e estratgias erradas na implementao de testes automticos. 61% das empresas seguem algum processo de teste 13% possuem mtodos para medir a eficincia deste processo
Agenda
Papis dos engenheiros Estrutura organizacional Tipos de teste Planejamento da automao de teste Exemplo - Webmaster Tools
Estrutura organizacional
Estrutura hierquica divida em reas Focos; Baixo nmero de Testers;
Diretor
SWEs
SWEs
STEs
STEs
Tipos de testes
Small Medium Large
Grande ao dos SWEs ; Quase sempre automatizado; Testa cdigo funcional, dados corrompidos, condies de erros, enganos comuns;
Grande ao dos STEs no incio do ciclo do produto; Geralmente automatizado; Testa cdigo funcional, dados corrompidos, condies de erros, enganos comuns;
Cobre cenrios reais; Todos os trs papis esto envolvios; Automao de testes exploratrios;
Infraestrutura de testes compartilhada; A diviso em grupos permite melhor escalonamento dos testes;
Tipos de testes
Planejamento da automao
Se o teste pode ser automatizado e o problema no requer inteligncia ou intuio humana ento ele deve ser automatizado; A automatizao deve ser feita passo-a-passo mas o mais cedo possvel; O plano de automao deve ser: sensato; impactante; de propsito especfico; til;
Planejamento da automao
Passo a Passo: 1. Isolar as interfaces propensas a erros e criar mocks e fakes para controlar as interaes nas interfaces e garantir uma boa cobertura de teste; 2. Construir uma estrutura de automao simples que permite que o sistema mockado ser construdo e executado; 3. Alm da automao o plano deve incluir: Informaes de como fazer construo de qualidade; Mecanismos de comunicao entre os envolvidos; Dashboards;
Contexto
Time: 15 SWEs (C++/Java) 2 SETs Releases: 6 semanas: 3 de desenvolvimento; 2 a 3 de garantia da qualidade: testar a UI em todos os browsers e idiomas; Ferramenta de automao: eggPlant.
eggPlant
Problemas
Desenvolver testes em SenseTalk; pouco conhecimento do time; difcil organizao dos scripts em projetos grandes; Todo teste usando eggPlant somente executado na ferramenta eggPlant; Teste baseado em comparao de imagens; comparao de strings so pixel-a-pixel; tolerncia de imagens; Difcil integrao com a infraestrutra de testes j existente;
Diferentes renderizaes
Soluo
Uso do WebDriver: examina o HTML retornado pelo servidor; teste de funcionalidades e no de aparncia; a checagem manual da aparncia; verdadeira comparao de strings; reduo do tempo de execuo; testes ecritos em Java; fcil integrao com a infraestrutra de testes j existente;
Concluses
Uma boa estratgia de automao incide sobre os objetivos mais importantes para os testes automatizados; Dependendo de como a automao de teste estruturada, grandes quantidades de esforos podem ser jogados fora quando grandes mudanas ocorrem no sistema em teste; Caractersticas da ferramenta que so timas quando voc v pode no ser to bom quando voc tentar us-las a srio; Comece pequeno. Tom Gilb diz: "Se voc vai ter um desastre, tenha um pequeno."
Fabrcio Pessoni
Agenda
A empresa Introduo MBT - Foco de Aplicao Benefcios do MBT Abordagem MultiScrum Processo sugerido Terminologia Gerao de modelos no contexto MultiScrum Desafios Resultados Concluses
A empresa
Companhia com sede na ustria; Presente em mais de 140 pases; Atua no ramo de eletricidade de potncia; Prov ferramentas para teste e monitoramento de sistemas de eletricidade de potncia: hardware e software;
Introduo
Contexto:
GUIs de sistemas so testadas para regresso via processo Capture & Replay; A empresa utiliza processo de desenvolvimento gil;
Objetivo:
Encontrar alternativa para gerao de casos de testes automatizados para propsitos de regresso que se adaptem aos processos geis;
Benefcios do MBT
Separao entre a descrio lgica do caso de teste e sua implementao tcnica; Independncia de plataforma e consequente reusabilidade de modelos; Identificao de inconsistncias nas especificaes antes da implementao; Mudana no paradigma de TS: de qualidade analtica (cdigo pronto); para qualidade construtiva (cdigo em desenvolvimento);
Processo sugerido
Desafios Humanos - convencer as partes interessadas: Donos de produto, desenvolvedores e Gerentes; Mudanas em processos so vistas com certo receio; Necessidade de treinamento dos envolvidos no processo;
Alguns Resultados
Concluses
MBT automatizado superior a C&R para testes de regresso de GUIs; O processo reduz o tempo das rotinas de teste, aumenta a abrangncia de cdigo e diminui o time-to-market do produto final; O processo adaptou-se bem s rotinas de desenvolvimento gil; H dificuldades de comprenso dos modelos por: Dono do produto; Gestores; H necessidade de ferramentas de cdigo aberto para gerenciamento do ciclo de vida dos modelos;
Bruno Calado
Introduo
Observaes Empricas Automated Unit Testing Aumenta a qualidade do Cdigo? Relatos apresentados: Teste de Unidade aplicado na Microsoft A pesquisa na empresa - minerao de informaes: Entrevistas Aplicao de Surveys (desenvolvedores e testadores) outros
Introduo - Contexto
Contexto da aplicao da pesquisa: Time composto por 32 desenvolvedores Linguagem predominante: C# Durao dos testes: 1 ano Verses do software testadas: Verso 1 (v1) - Teste manual Verso 2 (v2) - Teste automatizado Resultado: Queda de 20.9% de defeitos (durante o desenvolvimento) Queda de defeitos aps 2 anos de utilizao Custo de aproximadamente 30% mais tempo de desenvolvimento em relao v1
Anlise - Equipe
Verso 1 (v1) 28 desenvolvedores 22 testadores Verso 2 (v2) 32 desenvolvedores 28 testadores
As prticas desenvolvidas
v1: prticas ad hoc, BVTs e execues manuais v2: uso de framework (NUnit) e de tcnicas automatizadas (TDD - TestDriven Development)
Anlise - plano
Verso 1 (v1) Prticas ad hoc de teste de unidade Prticas de Teste individualizadas de Verso 2 (v2) Prticas ad hoc de teste de unidade de Unidade Unidade Prticas de Teste individualizadas Automoo Processo de Unidade de Teste: unificado e sistemtico
Teste de Caixa Branca Fases analisadas: Cdigo Teste Erros Outros repositrios
v2
Reviso individual de cdigo Analisador esttico Testes funcionais (BVTs):aceitao e regresso
Teste automatizado
Raramente ou nunca. Exceo: teste ad hoc - Desenvolvedor poderia executar o teste na sua prpria mquina se quisesse Diriamente a partir da primeira tentativa
Frequncia de Execuo
Prprios Testes de Unidade: Pelo menos uma vez por dia Testes de outros desenvolvedores: uma vez por semana
Preocupao:
Tcnicas adicionais
As prticas desenvolvidas
Uso de ferramentas que implementam Automoo de Testes
As prticas desenvolvidas
Uso de ferramentas que implementam Automoo de Testes
As prticas desenvolvidas
Uso de ferramentas que implementam Automoo de Testes
As prticas desenvolvidas
Uso de ferramentas que implementam Automoo de Testes
Resultados - Defeitos
Gravidade dos Defeitos Gravidade 1 Gravidade 2 Gravidade 3 v1 (%) 65,3% 28,7% 6.0% v2 (%) 56,9% 18, 8% 3,4%
A quantidade de defeitos encontrados durante 2 anos amentou em um fator de 2,9%. O nmero de clientes aumentou em um fator de 10 Mais clientes, possivelmente mais defeitos encontrados Usando TDD reduziu-se o nmero de defeitos entre 62 e 91% Qualidade
Defeitos
Resultados
Automao de teste: Vantagem: ferramentas e tcnicas que garantem uma maior cobertura de anlise (NUnit, Test-Driven Development) Maior quantidade de defeitos encontrados Desvantagem: Aumento na quantidade de linhas de cdigo Aumento do tempo de desenvolvimento
Aprendizado
O aprendizado
O aprendizado
O aprendizado
Principais observaes: Liderana: gerenciar Testes de Unidade importante Equipe de teste e de desenvolvimento trabalhando juntas Deixar claro no esquema do projeto o fator tempo. A equipe deve entender que pode ser demorado A testabilidade precisaria ser considerada como parte da arquitetura e modelagem. Entender como impactar os testes, esforo que vir e a eficcia do processo de teste A execuo do conjunto de testes deve ser fcil (exemplo, os testes do caso Microsoft levavam em torno de 10min)
Jackeline Neves
Quanto maior a medida de cada atributo maior a rea delimitada pelas linhas que unem e melhor o caso de teste.
Concluses
Dvidas?
Referncias
Linda G. Hayes - The Automated Testing Handbook; Graham, Fewster - 2012 - Experiences of Test Automation; Williams, Kudrjavets, Nagappan - 2009 - On the Effectiveness of Unit Test Automation at Microsoft; Ammann, Offutt - 2008 - Introduction to Software Testing; Naresh Jain - 2010 - Test Automation Strategies For Agile; Cem Kaner, James Bach, Bret Pettichord - 2001 - Lessons Learned in Software Testing: A Context-Driven Approach; Fewster, Mark, 2011. Common Mistakes in Test Automation; James A. Whittaker, Jason Arbon and Jeff Carollo, 2012. How Google Tests Software; Entin, Winder, Zhang, Christmann - 2012 - Introducing Model-Based Testing in an Industrial Scrum Project ; http://jmeter.apache.org/ http://www.seleniumhq.org/