quinta-feira, 8 de abril de 2010

Automação de Teste - Decisão por Automatizar

Elfriede Dustin, um dos maiores ícones sobre Automação de Teste de Software e autora de diversos livros sobre o tema lançou em 1999 um livro chamado Automated Software Testing: Introduction, Management, and Performance, e o livro mesmo que lançado a mais de 10 anos é muito atual.
Vou colocar aqui no Sem Bugs uma série de post's sobre ATML - Automated Testing Life cycle Methodology, que contém uma gama de boas práticas em todos os passos para implantar a automação dentro de uma organização.

clique para ampliar

Vou iniciar a série de post's sobre Decisão por Automatizar os Testes!

A Decisão por Automatizar os Testes é a primeira etapa da ATML é uma fase importante para seguir os próximos passos do ciclo de vida. Durante esta fase é importante a equipe de teste (isso envolve desde o Gerente até o Testador) levantar todas as expectativas e benéficos esperados na aplicação da automação no processo de teste.

Lembre-se que devemos seguir este ciclo de vida para cada ferramenta de automação no respectivo processo ou técnica de teste. Mesmo sabendo que automatizando parte do processo de teste o Retorno de Investimento (ROI) não é imediato, nem sempre ele tem um retorno em curto prazo. Por isso todas as expectativas devem ser muito bem gerenciadas para não colocar sob o processo de automação todas as soluções para resolver problemas de tempo e maior qualidade de entrega.

Sabemos que hoje existem algumas ferramentas que tem o intuito de apoiar o Arquiteto/Engenheiro de Teste a planejar os testes, desde o Plano de Teste até seu controle e execução, mas muitos gerentes pensam ainda que “ferramentas de automação” farão toda a execução dos testes, desde o planejamento, execução e métricas.

Certamente durante uma reunião ou apresentação sobre uma determinada ferramenta de automação de testes os participantes, geralmente gerentes de diversas áreas com pouco conhecimento técnico sobre Teste de Software e sem ter a consciência da complexidade envolvida no esforço dos Testes Automatizados, esperam ouvir é que a ferramenta que você está propondo cria o Plano de Teste, Casos de Teste, executa os testes e analisa os resultados. Você, no entanto, como o profissional de teste, deve apresentar aos participantes que a ferramenta em questão ou quaisquer ferramentas de automação tem um propósito no Ciclo de Vida de Teste de Software e que tais ferramentas devem ser encaradas como melhorias no processo manual de teste.

Ao longo da apresentação pode ser que a realidade empregada por um participante irá mudar, pois o termo Ferramenta de Automação de Teste pode trazer duvidas e uma dose de ilusão para quem não é um profissional de testes. Uma colocação sempre válida e regra para nós são de que uma ferramenta de automação de teste não substitui o fator humano, necessário para testar um produto.
Profissionais de teste ou especialistas em Garantia da Qualidade ainda serão necessários para garantir todo o Ciclo de Vida dos Testes. Uma ferramenta de automação pode se encarada como mais um elemento de liberação de um bom produto.

Atualmente não temos uma única ferramenta que contemplem todos os testes em Sistemas Operacionais e Browsers web. É importante realçar este item, pois sempre teremos mais de uma ferramenta para o mesmo processo do Ciclo de Vida dos Testes quando temos diversos tipos de aplicações, tecnologias, sistemas operacionais e browsers.

Outra expectativa errônea sobre as Ferramentas de Automação de Testes é de que elas vão minimizar o tempo total de teste já no primeiro projeto que utilizará uma ferramenta. Na verdade devemos acrescentar mais tempo de teste no projeto e, que estamos inserindo a ferramenta, já que um novo processo de teste está sendo implantado. Todas as pessoas da equipe de testes e até mesmo os desenvolvedores devem se familiarizar com o novo processo e segui-lo, podendo também ajudar a melhorar o processo. O retorno não virá em apenas um teste sob determinado produto, mas uma vez que o processo automatizado foi criado efetivamente, devemos esperar a diminuição de tempo e custos sob o projeto e ganhos de produtividade.

Sempre que tentarmos inserir uma nova tecnologia dentro da empresa onde trabalhamos temos sempre um esforço extra para adaptar esta tecnologia as necessidades da empresa.
Com ferramentas de automação de teste não é muito diferente, o principal ponto é apresentar corretamente um caso para a aplicação da ferramenta de automação e sua utilização pela equipe.

O Arquiteto/Engenheiro de Teste deve ser o evangelizador dentro da empresa e deve gerir as expectativas dos stakeholders transmitindo informações úteis, desenvolvendo um material de divulgação ou treinamento ou até mesmo desenvolvendo workshops sobre estas ferramentas. O primeiro passo para a tomada de decisão em automatizar os testes exige um conhecimento sobre o assunto e o alinhamento de expectativas, para que os gestores compreendam a aplicação destes testes, os principais benefícios, custos, etc.
Se a ferramenta que está sendo proposta for freeware (grátis), temos sempre que levar em consideração os custos sobre treinamento e aprendizado da equipe de testes. Mesmo a ferramenta sendo freeware ou paga temos que levar em consideração que os custos iniciais em qualquer projeto aumentarão ate que se tenha dominado a utilização e aplicação da ferramenta de automação de teste. Isso é assunto para o nosso próximo item.

Em resumo à Decisão por Automação de Testes temos que:
  • Ferramentas de Automação não executarão todo o Ciclo de Vida de Teste sozinha
  • Ferramentas de Automação não substituirão o trabalho manual
  • Às vezes mais de uma ferramenta da mesma técnica de teste ou processo poderá ser utilizada
  • Escolher a ferramenta certa para a automação da tarefa em questão, analisando os requisitos da aplicação
  • Desenvolver e implementar um processo automatizado de teste
  • Treinar a equipe de teste no processo, elaboração e execução dos testes automatizados
  • Sempre levar em consideração que haverá um aumento inicial nos custos do projeto

Abraços!!!

Referências:
DUSTIN, Elfriede; RASHKA, Jeff; PAUL, John. Automated Software Testing: Introduction, Management, and Performance. Canadá. Addison-Wesley Professional. 1999

Link do livro na Amazon: http://www.amazon.com/reader/0201432870?_encoding=UTF8&ref_=sib_dp_pt#reader_0201432870

Livros escritos pela Elfried Dustin: http://www.amazon.com/Elfriede-Dustin/e/B001IO9RTM/ref=ntt_dp_epwbk_0

    4 comentários:

    1. Elias,

      Primeiramente, meus parabéns pela inauguração da série! Sem dúvidas, será muito útil para profissionais que estão buscando colocar a automação de teste em prática. ;)

      Agora dois comentários sobre esse primeiro post:

      - Gerenciar as expectativas é ESSENCIAL. Muitas pessoas, até mesmo profissionais de Teste de Software, acreditam que ferramentas são milagrosas e que é preciso automatizar todos os testes.
      -- Primeiro precisamos avaliar quais são os problemas que estamos querendo resolver com a automação (automatizar por automatizar é besteira), priorizar esses problemas, levantar e analisar quais ferramentas poderão nos ajudar (eu disse A-JU-DAR) a resolver esses problemas.

      -Nem sempre encontramos a ferramenta para automatizar os nossos testes, neste caso se faz necessário avaliar a viabilidade de desenvolver uma ferramenta. E depois se for viável, precisamos tratar o desenvolvimento desse software, do mesmo jeito que tratamos o desenvolvimento de qualquer outro software. ;)

      Abraços! E mais uma vez, parabéns! :D

      ResponderExcluir
    2. Excelente post. Bem completo.
      Eu enfatizaria no seguinte ponto (que vai em contrapartida a todas as empresas

      interessadas em vender um Software de testes em específico): não existe ferramenta

      ideal de automação de casos de testes, bem como ferramentas com outros objetivos, tais

      como gestão de configuração, gestão de casos de teste, etc. Como citado anteriormente,

      existem vários projetos, com diferentes ambientes, configurações, sistemas

      operacionais, linguagem de programação, conexão, etc. partindo desse princípio, é

      primordial que na fase de Test Acquisition Tool, faça um levantamento do que a

      ferramenta deve ter naquela necessidade em específico, fazendo um comparativo entre as

      mesmas e avaliando qual seria a mais adequada para o contexto daquele projeto.
      E como também citado anteriormente, feito o ROI ideal para cada ferramenta escolhida.

      Lembrando que, pelo fato da ferramenta ser free, não significa que não haverão custos

      para o projeto, podendo estar associado custos como: treinamento, aprendizado,

      cobertura, etc.
      Tudo já tinhas citado no seu post, mas achei importante ressaltar esses pontos.

      Parabéns!

      abraços,
      Luiz Gustavo S. Vieira
      Consultor de Testes
      http://testavo.blogspot.com
      www.lugati.com.br

      ResponderExcluir
    3. Elias,
      Parabéns pelo post. Muito boa a idéia de descrever a ATLM.
      Abraço.

      ResponderExcluir
    4. Fabrício, Luiz e Eduardo,
      Muito obrigado por visitarem o blog e deixar suas contribuições!

      Abraços!

      ResponderExcluir