requirements and test for a better software 66 a reunião SPIN Palestra automação inteligente em testes de software
founder & co-director CLICK TO EDIT MASTER TITLE professional em Gestão de STYLE certified requirement engineering Pós graduação projetos Especialista em automação de testes 15 anos em engenharia de testes 10 anos em automação de testes aproximadamente 2 mil treinados em 10 anos otimario@handsonconsulting.com.br
soluções requirement support - Consultoria em elicitação, documentação, validação e gerenciamento de requisitos. test support - Consultoria em Projetos de Testes e Automação de Testes training & mentoring - Engenharia de Testes e - Engenharia de Requisitos software process improvement - Avaliação do Processo de maturidade - Análise de Gap s - Implantação de processos.
Motivação É sabido que o profissional se mantém atualizado e empregável criando tendências e não apenas seguindo-as. Como se posicionar como profissional de testes em um mercado de TI concentrado, comoditizado e, paradoxalmente, ainda sem um bom nível de confiabilidade? Temos que Investir e focar em quê como profissional de Testes?
motivação custo do erro Teste como Quality Control é caro demais e será sempre visto como CU$TO e não como VALOR 2011 State of Requirements Management Report by Jama Software 5k até R$5mil custo de correção de um erro em requisitos por fase de desenvolvimento 1K 2,2K 0,1 0,3 0,7 Se testar pouco a qualidade é baixa, se testar muito o custo é elevado, testar mais ou menos não garante nem alta qualidade e nem custo baixo! fases
Qual o problema com os testes...manuais? Steve Bjoerkman lentos, caros e prende muitos recursos repetitivos, tedioso e frustrantes incompatíveis com ciclos rápidos de desenvolvimento / entrega em produção impraticáveis são necessários!!!
Qual é o desafio? Os produtos cresceram em tamanho e complexidade muito além do que cresceu a sofisticação do processo... Onde você está?
Maturridade do Processo de Testes I II III IV V Mas você está pronto para automatizar? Alta Processo de Testes independente estruturado, com documentação de testes completa e rastreável, uso de indicadores de qualidade Processo de Testes Independente gerenciável com alguma estrutura e alguma documentação de Testes. Há esforço e tentativas no sentido de estruturar o Processo de Teste mas com ciclos não gerenciados de liberação de versões as tarefas de testes parecem sempre estar fora de controle. Há Equipe independente de Testes mas com processo não estruturado, ad hoc e sem documentação de Testes. Não há Equipe de Testes Independente; os testes são ad hoc. Baixa 8
Maturidade do processo de teste melhore o seu processo de testes Equipe independente de teste Requisitos precisos e testáveis Cenários de testes precisos e rastreáveis Processo de testes definido e gerenciável
Automatizar é uma deci$ão de inve$timento! Automação de testes é um projeto de desenvolvimento de software...você obterá nele o mesmo sucesso que obtém na sua fábrica de software atual. Requisitos, Projeto, Desenho, Modelagem, Revisões, Programação, Testes, QA, Controle de Versões, Gestão de Problemas, Mudanças e Configuração, etc. etc. Todos são necessários na Automação dos Testes Já viu este filme antes? Está preparado?
Quanto custa automatizar? 400 350 300 250 200 150 100 50 0 Exemplo: (man) 200 TestCases x 30 = 100hs x 3 Testes + prep (100) = 400hs (aut) 200 TestCases x 01 = 3 hs x 3 Testes + prep (200) = 209hs (-50%) 200 Comparativo Esforço Manual x Automatizado 100 100 100 100 3 3 3 400 209 Preparação Teste #1 Teste#2 Teste #3 Esforço Total Esforço Manual Esforço Aut Para 10 ciclos de testes os testes manuais exigem 1.100hs e os testes automatizados 230 hs (- 80%)
Não esqueça da manutenção! Exemplo: (man) 200 TestCases x 30 = 100hs x 3 Testes + prep (100) = 400hs (aut) 200 TestCases x 01 = 3hs x 3 Testes + prep (320)= 329hs (-17%) 450 400 350 300 250 200 150 100 50 0 200 Comparativo Esforço Manual x Automatizado Exec + manut. 100 100 100 100 43 43 43 400 329 Preparação Teste #1 Teste#2 Teste #3 Esforço Total Esforço Manual Esforço Aut Para 10 ciclos de testes os testes manuais exigem 1200hs e os testes automatizados 630 hs (-48%)
A Solução é Automatizar? A automação de testes pode economizar tempo, acelerar o desenvolvimento, melhorar a qualidade de seus produtos e tornar seus testes mais efetivos... Steve Bjoerkman...ou pode desfocar seu esforço de testes e esbanjar recursos e tempo.
maturidade do processo automação de testes Testar mais = Testes Manuais + Testes Automatizados. AD HOC Automação feita sem compromisso Capture/Replay Execução automática dos testes Sem preocupação com o tamanho do Testware Aproveitamento dos dados de testes Variabilidade Data Driven Testing Testes automatizados testes manuais Keyword Driven Testing Full Regression Planejamento baseados em Requisitos. Ferramentas adequadas ATLM Model Based Testing Geração dinâmica de testes automatizados. >>> Valor Agregado Qualidade construída desde o inicio ESTÁGIO I ESTÁGIO II ESTÁGIO III ESTÁGIO IV ESTÁGIO V
Defina o Ambiente Defina a técnica Defina o Escopo planeje antes o que será automatizado! Escolha os cenários mais utilizado ou mais críticos(aplique o principio do Pareto) Não dê tanta ênfase aos Testes Regressivos Aumente o alcance de seus Testes automatizando múltiplos tipos de testes Ambiente próprio Backup Stubs e Mocks static capture replay data driven testing keyword driven testing model based testing
Testes Unitários Testes Segurnça Testes Funcionais Testes Desempenho escolha a ferramenta adequada aos testes Quick Test Pro Functional Tester Web Testing Selenium Watir Test Complete Load Test Load Runner Performance Tester JMeter Selenium SoapUI JUnit AppScan Nunit Acunetix JMock www.opensourcetesting.org
Static Capture Replay Massas de teste estão hard coded no script Sensível a mudança da Interface do usuário Resultado esperado hard coded Cada teste requer um script Difícil de manter e gerenciar Windows Software em Testes GUI SCRIPT DE TESTE SCRIPT DE TESTE -Interface com o SUT* -Roteiros de Teste -Massas de Teste -Resultados Esperados BD do SUT *System Under Test 17
Data Driven Testing Separa os dados de testes da execução Cada funcionalidade requer um script A lógica de execução hard coded Dificuldade de reuso. Windows Software em Testes BD do SUT GUI SCRIPT DE TESTE SCRIPT DE TESTE -Interface com o SUT -casos de Teste Manipulador de Arquivos Verificador (obtido) 18 Massas de Teste Resultados Esperados 18
Data Driven testing. Os dados podem ser modificados sem a necessidade de alteração dos scripts ID CNPJ Razão Social Produto QTD Valor do Item ICMS Valor da Nota Mensagem 1 06.254.977/0001-05 RealFlex Comercio e industria 100020 10 R$ 150,00 R$ 270,00 R$ 1.770,00 "Inclusão Realizada com sucesso" 2 00.950.123/0001-13 Takura Comercio de Frios Ltda. 10050 150 R$ 12,00 R$ 324,00 R$ 2.124,00 "Inclusão Realizada com sucesso" 3 04.877.111/0001-49 Babel Comercio de Alimentos 100204 0 R$ 140,00 R$ - R$ - "Quantidade do Produto deve ser maior que 0" 4 19.537.121/0001-02 Adriana Flores e Presentes 100300 120 R$ 300,00 R$ 6.480,00 R$ 42.480,00 "Inclusão Realizada com sucesso" 5 05.125.251/0001-07 Mega Cinco Comercio 10202 18 R$ 250,00 R$ 810,00 R$ 5.310,00 "Produto não está cadastrado 19
Keyword driven testing Utiliza palavras chaves (keyword) executar os testes Necessita de um script principal que controla a execução A dependência de Execução é hard coded Diversidade de cenários. Windows Keyword test FrameWork Casos de Teste Software em Testes GUI Script de Teste Massas de Teste BD do SUT Manipulador E/S Resultados Esperados
Keyword driven testing Palavras chaves 21
Model Based Testing Explora a descrição do comportamento do software Necessita de excelentes requisitos Não há dependência na execução Onde estou Ação Onde Vou Baseado em Model-Based Testing: Not for Dummies by Jeff Feldstein
Exmplo model Based Testing Estado Inicial Ação Estado Final HomePage ImageTab ImagePage HomePage Newstab NewsPage ImagePage HomeTab HomePage ImagePage NewsTab NewsPage NewsPage HomeTab HomePage NewsPage ImageTab ImagePage
Iniciar A MENU Opção Mercado Pesquisar Retorno da R1 COMPRA VENDA M AGUARDAR R 1 Com "ATU" MÓDULO PILOTO DE RESERVA Alteração B BOLETAGEM Finalizar Iniciar C ALTERAÇÃO BOLETO Opção Pesquisa Excluir Transferência Localizar Alteração L LOCALIZAR OPERAÇÃO Pré-Liberação Pré-Liberação Opção D SELIC: LBC, LFT, NTND/NBC-E Localização Papel Vendido COMPRAR : LBC, LFT, NTNTD/NBC-E, VENDER : LBC, LFT, NTNTD/NBC-E, Liberar PRÉ- LIBERAÇÃO Pré- Liberar Inciar K LIBERAR TESOURARIA MÓDULO TESOURARIA Papel Comprado Seleção de Estoque para Venda G Seleção do Lastro Comprado Comando Comandar N E TRANSFERÊNCIA PARA CARTEIRA Estoque Comando Lastro Transferir Papel H COMANDO Liberação Liberação Liberação novo Papel se ainda houver Saldo a ser Lastreado Liberação J Comandar LIBERAR GERAL Liquidar I (LOOP) CANCELAMENTO DE LIBERAÇÃO Cancelamento F COMANDO Liberar Z Cancelar Iniciar LIQUIDAÇÃO DE COMPROMISSADA Liberação Iniciar O processo do model based testing Modelo mental Construção do Modelo F I I Vender/Comprar Cliente interno Modelo Explícto SUT : MÓDULO FRONT OFFICE TM : I SIAN Operação Compromissada MÓDULO BACK OFFICE I I Gerar Casos de Teste Roteiros Massas Scripts Objetivos dos Testes Condições de Término Decidir: -gerar mais Casos de Teste -modificar o modelo -parar de testar Estimar: -Confiabilidade -Cobertura -outras métricas Análise dos Dados Evidências dos Testes e Falhas Resultado obtido Resultado esperado Aplicação em Testes Oráculo de Testes
F 25 I Iniciar A MENU Opção VENDA Vender/Comprar Cliente interno Mercado I Pesquisar Retorno da R1 COMPRA M AGUARDAR R 1 Com "ATU" MÓDULO PILOTO DE RESERVA MÓDULO FRONT OFFICE Alteração B BOLETAGEM Finalizar Iniciar C ALTERAÇÃO BOLETO Alteração Opção Excluir Pesquisa Transferência Localizar L LOCALIZAR OPERAÇÃO SUT : SIAN Operação Compromissada Pré-Liberação Pré-Liberação Opção D PRÉ- LIBERAÇÃO Localização Papel Vendido SELIC: LBC, LFT, NTND/NBC-E COMPRAR : LBC, LFT, NTNTD/NBC-E, VENDER : LBC, LFT, NTNTD/NBC-E, I Liberar Pré- Liberar Inciar K LIBERAR TESOURARIA MÓDULO TESOURARIA Papel Comprado Seleção de Estoque para Venda G Seleção do Lastro Comprado Comando N E Comandar TRANSFERÊNCIA PARA CARTEIRA Estoque Comando Lastro Transferir Papel H COMANDO Liberação Liberação Liberação J LIBERAR GERAL MÓDULO BACK OFFICE novo Papel se ainda houver Saldo a ser Lastreado Liberação Liquidar Comandar F COMANDO I (LOOP) CANCELAMENTO DE LIBERAÇÃO Cancelamento Z Iniciar Liberar Cancelar Liberação LIQUIDAÇÃO DE COMPROMISSADA I I Iniciar
Custo de Desenvolvimento Resumo Data Driven KDT MBT $$$$ No médio e longo prazo : CR e DD Portabilidade (KDT e MBT) Capture Replay Conhecimento Técnico
Conclusão Automação de Testes é um Investimento Contínuo e de Médio a Longo Prazo; É um Ciclo de Desenvolvimento paralelo ao seu atual Ciclo de Desenvolvimento Ferramentas são apenas 10% do Investimento. Impacta diretamente o Processo existente de desenvolver Software
Questões Respostas DÚVIDAS???
otimario@handsonconsulting.com.br 55 11 9 9881-9471 a simplicidade é o último grau de sofisticação leonardo da vinci