Arquitetura para automação de testes

A 13ª Mesa Redonda DFTestes teve como tema “Arquitetura para automação de testes”, e tivemos 6 respostas e 3 participantes: eu, Elias Nogueira e o Felipe Silva.

A seguir, segue o resumo da discussão, quem quiser acessar a discussão na íntegra, basta acessar esse link.

Quais as atividades de um arquiteto de automação?

Segundo o Elias Nogueira:

As atividades são diversas, vou listar algumas aqui, mas não se restringe somente nisso:

->Criar a arquitetura de automação de testes;
->Criar a estratégia e direcionamento para os testes não-funcionais;
->Levantar/direcionar quais ferramentas podem ser usadas para determinado projeto;
->Sugere melhorias na arquitetura do sistema, para que fique compliance com a aplicação;
->Lidera/coordena uma equipe de automação, dando todos os direcionamento e resolvendo os problemas que os automatizadores tiverem;
->Cria todo o ambiente necessário de hardware e software para a aplicação da arquitetura de automação.

O Felipe Silva fez um comentário a respeito do papel do Arquiteto de Testes:

Não sou arquiteto. Como o Elias disse não é muito comum ver, trabalhar com um arquiteto ou ser um arquiteto de testes, eu particularmente só conheço o Elias, por este motivo não posso me aprofundar no assunto, só deixar minha opinião sobre o que eu penso à respeito.

A minha opinião sobre este papel é que é um papel extremista tecnicamente, digo extremista no sentido de que os skills necessários são diferentes de um skill de um tester funcional, pra quem gosta de programação mas ama testes mais do que desenvolvimento acho que este é o caminho, pra quem não gosta de programação e afins eis aqui o detalhamento do Elias da função para te ajudar saber se você realmente não gosta, pra quem gosta de um pouco de tudo, como eu, pense bem se quer ser um arquiteto ou não.
Uma coisa que gosto muito no cargo de analista de testes é que eu tenho uma liberdade de trabalhar com tudo um pouco, tornando o trabalho menos cansativo, quando eu “acordo para programação” crio scripts de automação ou desenvolvo alguma ferramenta para ajudar o time, quando não “acordo para programação” faço testes manuais, planejamento de cenários, revisão de documentos, casos de testes.

Na minha opinião as atividades que o Elias citou são as principais, destacaria apenas que o Arquiteto de Automação não é o Superman, e levará todo o projeto de automação nas costas, ele pode sim direcionar o rumo da arquitetura, mas todos podem participar e ajudar o mesmo a definir a arquitetura.

Além disso, quando estamos começando um projeto é essencial incluir esse profissional logo nas primeiras reuniões do time de desenvolvimento, pois o trabalho do Arquiteto fica MUITO mais fácil e é MAIS eficiente, quando temos um sistema com uma boa testabilidade.

Quais os conhecimentos que o arquiteto precisa ter para fazer uma boa arquitetura?

O Elias citou vários conhecimentos que um arquiteto necessita ter e disse posteriormente que “não é necessário ter 100% dos conhecimentos listados, mas sim fazer acontecer.”:

Precisa saber sobre muita coisa ao meu ver… Vocês conhecem algum arquiteto de aplicações (Java, .NET, etc..)? Um arquiteto de aplicações deve conhecer sobre diversas tecnologias, padrões, etc… sendo um profissional com o perfil muito técnico.

Ao contrário do que muitos pensam também, ele também conhece (ou deve conhecer) do negócio, justamente para montar uma arquitetura com base nas necessidades de negócio.

Alguns conhecimentos necessários de modo genérico:

->Conhecer de automação de teste em todos os níveis (óbvio);😛
->Conhecer pelo menos mais que uma linguagem de programação, e ser bom pelo menos em uma;
->Conhecer sobre arquitetura de aplicações e design patterns;
->Conhecer a linguagem SQL, sendo bem mais que um simples ‘select’ (PL/SQL por exemplo);
->Conhecer sobre Sistemas Operacionais e virtualização;
->Conhecimentos avançados em Teste de Software;
->Conhecer uma gama de ferramentas de todos os níveis (de apoio, unitário, integração, funcional e aceitação);
->Conhecer muito bem Diagramas UML e ER, pois a base de uma arquitetura de automação desenhada se dá por essas ferramentas.

Realmente, é uma lista bem grande mesmo de conhecimentos que o arquiteto necessita, mas vejo que além de todos os conhecimentos citados pelo Elias (concordo com todos), ele necessita ter um bom senso e uma boa visão do todo.

E falo isso, pois com todo esse arsenal de conhecimento adquirido, ele pode querer construir uma bomba atômica para matar uma mosca.

A visão do todo é sempre importante de ter em mente, pois às vezes podemos esquecer dela, e acabar desviando do caminho que deveríamos seguir.

Desenvolver uma ferramenta própria ou utilizar uma ferramenta do mercado?

O Elias deu a sua opinião dizendo:

Isso é um discussão boa. Eu creio que hoje em dia não há necessidade de criar uma ferramenta própria para a maioria de trabalhos que são de mercado (aplicações comerciais, bancárias, COTS, etc…).
Hoje existem muitas ferramentas pagas e opensouce/free que suprem essa necessidade, e quando precisamos de customizações, ou nós mesmo fazemos em uma free/opensource (se é que já alguém não fez) ou pagamos/baixamos plugins que suprem a nossa necessidade de customização.

Claro que existe o contraponto. Há uns 2 meses eu dei aula de automação para um desenvolvedor que fazia softwares para controle de radares e mísseis, uma coisa totalmente atípica. Como aplicar automação para um tipo de sistema desses?
Resposta: é necessário desenvolver um!a

Existe também empresas que querem desenvolve suas próprias ferramentas: frameworks de automação, issue tracker, etc… E isso não é errado. Na verdade não existe certo ou errado, existe o que é o melhor para a organização.

Minha opinião então fica:
Se não existe nenhuma diretriz que a empresa tenha que desenvolver uma ferramenta: compre ou adote uma
Se existe uma diretriz para que a empresa crie uma ferramenta: desenvolva, e fique atendo as ferramentas opensources, pois você pode (dependendo da licença da ferramenta) utilizá-la como base para a sua.
Minha empresa faz algo “não usual” de aplicações comercias: desenvolva uma ferramenta, se isso for realmente de ajudar. Mas lembre-se de que isso pode não ter um retorno imediato.

A resposta dessa pergunta depende muito da natureza do projeto, e é uma das primeiras que o arquiteto deve buscar responder.

No meu caso atual por exemplo:

  • Estou utilizando o Selenium para criar uma API, que possa ser utilizada pelos testadores (ainda estou estudando como os testadores irão utilizar essa API, minhas opções são: JUnit, easyb e Concordion). Ou seja, optei por criar uma ferramenta própria, só que utilizando outras ferramentas já existentes no mercado;🙂
  • Já em um outro projeto o desenvolvedor criou uma aplicação que executa os testes criados por nós, mas ela possibilita apenas executar as ações, e agora estamos criando uma aplicação que automatiza toda a execução dos testes (pré-condições, ações e verificações). Neste caso, optamos por uma ferramenta própria.

Quais os maiores problemas dessa área?

Para o Elias os maiores problemas são:

O maior problema é de, na maioria das vezes, não termos essa cargo tão bem definidos, ou termos pessoas que ocupam esse tipo de cargo que não são tão preparadas tecnicamente, o que pode fazer da automação um negócio caro, pois ele pode ser arquitetado e construído da maneira errada.

Também as empresas necessitarem deste tipo de profissional explicitamente. É bem pouco comum acharmos uma vaga como esta no mercado.

E a principal é o conhecimento de uma pessoa que se propõe a ser um Arquiteto de Automação. São muitos conhecimentos que temos que ter para desempenhar essa função, além dela ser a função mais técnica dentro da área de Teste de Software. E sabemos que muitas pessoas ‘não gostam de ser técnicas’ dentro da área.

Eu colocaria também o Arquiteto de Automação em Teste de Software nas reuniões de pré-venda com o cliente e, posteriormente, em contato com os arquitetos da empresa que está contratando estes serviços. Isso pode poupar muita dor de cabeça em “negócios mal vendidos” e pode realmente mostrar o que pode e o que não pode ser feito para o projeto.

Ao invés de Arquiteto de Automação, eu diria que o profissional é um Arquiteto de Teste. Para mim toda a pessoa que se diz “Arquiteto de Teste” deve ter estes conhecimentos.

Eu destaco os seguintes:

  • A testabilidade dos sistemas sob teste, principalmente nos casos de sistemas legados;
  • É uma área bem recente, por isso ainda não temos cargos bem definidos;
  • Difícil encontrar bons profissionais;
  • Nos caso de arquiteturas de automação de testes, é necessário primeiro convencer as pessoas que a automação é viável e pode ajudar a minimizar/resolver os problemas enfrentados, e isso muitas vezes não é uma tarefa fácil.

E vocês pessoal, alguém aqui é arquiteto? Alguém gostaria de virar um? Quais as suas opiniões sobre o assunto?

O Felipe Silva deu a sua resposta dizendo:

Eu acho que eu gostaria sim de ser um arquiteto, gosto muito da parte técnica, trabalho muito com muito com isso também (por que eu quero), porém meu medo atualmente seria assumir um papel menos flexível no sentido de poder fazer de tudo um pouco, o que faz o serviço mais saudável ao meu ver.

Não sou. É uma possibilidade no mínimo interessante, eu diria.😀

Se já é difícil encontrar um bom Analista de Teste no mercado, encontrar um bom Arquiteto de Teste é mais difícil ainda. E isso ocorre por uma série de fatores, dentre os quais eu destaco três:

  • Acredito que boa parte dos companheiros de profissão, costumam ter a sua atuação mais voltada para a parte de Validação (negócio). Sendo assim, acabam indo em direção a área Gerencial (pensando em uma carreira em Y);
  • Ser um arquiteto é difícil, e você não se torna um, da noite para o dia (vide tempo necessário de experiência para essa vaga, por exemplo). Como o Elias e o Felipe disse, tal profissional necessita de diversos conhecimentos, e de forma sólida, e além é claro de boa experiência na área (lembrando que experiência é diferente de tempo na área);
  • O mercado ainda não sabe bem o que quer. Isso, infelizmente, é ainda uma realidade no mercado brasileiro, vide discussões já ocorridas no DFTestes sobre descrições de vagas de emprego.

Pra encerrar, acho importante a pessoa não buscar uma carreira simplesmente pelo status do cargo, você deve buscar a carreira que te dá mais satisfação profissional. Aliás, essa coisa de cargo na nossa área, na maioria das vezes, só serve para preencher no contrato ou na carteira.

Bem pessoal é isso.Continuem de olho na lista do DFTestes, pois sempre há assuntos bem interessantes lá, e poderão haver novas respostas nessa mesa redonda.

Fique por dentro das novidades, assine o feed do QualidadeBR.

2 comentários sobre “Arquitetura para automação de testes

  1. Pingback: O melhor do Ensinar – 27/02 a 05/03 « Blog do Ensinar

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s