Esse artigo faz parte da revista Engenharia de Software 18 edição especial. Clique aqui para ler todos os artigos desta edição



Validação, Verificação & Teste

Profissional da Área de Testes

Conhecimentos, habilidades e atitudes requeridas para a área de Testes de Software

 

De que trata o artigo:

Este artigo apresenta um conjunto de conhecimentos, habilidades e atitudes que o profissional de testes (ou o que quer iniciar sua carreira na área) deve possuir para que seja capaz de destacar-se na realização do seu trabalho. É apresentada também a estrutura de equipe mais comum encontrada na área de testes.

 

Para que serve:

O artigo visa orientar profissionais que desejam ingressar na área de Testes de Software, assim como orientar os profissionais que já atuam a complementarem suas competências. Serve também para empresas que desejam montar uma equipe de testes na medida certa para atender suas necessidades.

 

Em que situação o tema é útil:

Empresas e profissionais que possuem interesse em conhecer quais são as competências que um profissional e/ou equipe de testes de software devem possuir para obterem sucesso na função.

 

 

Quem participa de listas de discussão e fóruns na Internet sobre Testes de Software (ler Nota 1) sabe que é frequente o ingresso de novos integrantes solicitando orientações e conselhos para iniciarem a carreira na área. Normalmente, perguntam o que devem saber e fazer para poderem se especializar em testes e, consequentemente, encontrar um emprego com maior facilidade. Este artigo poderá ajudá-los no sentido de orientar sobre quais são as competências desejáveis para um profissional de testes. Dessa forma, o iniciante poderá utilizá-lo como guia para montar um plano de estudos e assim aumentar seu conhecimento. Poderá, também, aperfeiçoar-se nos aspectos comportamentais necessários, preparando-se para gerar bons resultados na sua empresa, ou mesmo para uma entrevista de emprego na área. Da mesma forma, uma empresa poderá se basear nas competências indicadas para realizar um processo de seleção para uma vaga específica de testes, ou montar uma equipe de testadores sob medida.

 

Nota 1. Teste de Software

Teste de software é o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado. O seu objetivo é revelar falhas em um produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas pela equipe de desenvolvimento antes da entrega final. Por conta dessa característica das atividades de teste, dizemos que sua natureza é “destrutiva”, e não “construtiva”, pois visa ao aumento da confiança de um produto através da exposição de seus problemas, porém antes de sua entrega ao usuário final.

 

O conceito de teste de software pode ser compreendido através de uma visão intuitiva ou mesmo de uma maneira formal. Existem atualmente várias definições para esse conceito. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa é revelar o número máximo de falhas dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.

 

Já o planejamento dos testes deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento do software. Os principais níveis de teste de software são:

·        Teste de Unidade: também conhecido como testes unitários. Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código.

·        Teste de Integração: visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.

·        Teste de Sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software. Verifica se o produto satisfaz seus requisitos.

·        Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.

·        Teste de Regressão: Teste de regressão não corresponde a um nível de teste, mas é uma estratégia importante para redução de “efeitos colaterais”. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste.

 

 

As competências necessárias para o desempenho das atividades da área de Testes de Software são formadas por características comportamentais e técnicas. A área de testes exige um equilíbrio maior entre essas duas características, diferentemente das outras áreas da Engenharia de Software, como por exemplo, a área de Requisitos. Nesta área, o comportamento tende a ter maior importância frente ao conhecimento técnico, pois o profissional passará mais tempo em contato com o cliente, realizando o levantamento dos requisitos. Nos testes, apenas conhecimentos técnicos não são suficientes, pois a área envolve muitos aspectos de psicologia, como serão apresentados adiante. Da mesma forma, apenas um comportamento adequado não credencia uma pessoa a ser um bom profissional de testes. Este deve possuir grandes conhecimentos técnicos para atuar com precisão.

O termo competência no contexto desse artigo seguirá o conceito de [GRAMIGNA], que é definido como o “repertório de comportamentos e capacitações que algumas pessoas ou organizações dominam melhor que outras, fazendo-as eficazes em uma determinada situação”. No próximo item, o repertório para os profissionais de testes será apresentado.

O que saber e como agir?

Como dito na introdução, para que um profissional de testes possa começar a atuar, deverá possuir algumas competências técnicas e comportamentais básicas. Naturalmente, ao longo do tempo e com boa orientação, o profissional irá desenvolver essas competências. Não é aconselhável ter muita pressa e sair estudando tudo que aparece pela frente. A prática é fundamental. A experiência virá com o tempo.

Mas para que possa se destacar é preciso ter conhecimentos técnicos amplos, e alguns deles mais profundos. Assim como possuir atitudes exemplares. Segundo [LOVELAND], o profissional de testes é uma “raça especial” por uma série de razões. Alguns traços de personalidade são necessários para que se tenha sucesso, felicidade e longa carreira na função. O “Qualquer um pode testar” é um mito. O bom testador deve atuar com precisão e segurança, falhando o mínimo possível. Deve preocupar-se ao máximo com sua credibilidade, que é um fator determinante para o seu sucesso. Um testador que falha sucessivamente perde a confiança dos colegas de trabalho, que passam a desconfiar da sua competência, por exemplo, duvidando das falhas registradas ou ignorando sugestões, alertas e questionamentos.

Para alcançar essa credibilidade, o testador deverá ser persistente na busca pelas competências necessárias (mas lembrando, sem correria). Para desmembrar as competências, um conceito bastante conhecido entre os profissionais da área de recursos humanos é bem útil, o CHA. Este é o acrônimo das palavras conhecimentos, habilidades e atitudes.

Conforme [GRAMIGNA], as competências do ser humano podem ser comparadas a uma árvore:

·         A raiz corresponde às atitudes: A raiz corresponde ao conjunto de valores, crenças e princípios, formados ao longo da vida, e que determinam nossas atitudes. Ela é o início de tudo e o principal componente da competência. Está relacionada com o querer ser e o querer agir;

·         O tronco corresponde ao conhecimento: É o segundo componente de uma competência. Trata-se do conjunto de informações que a pessoa armazena e lança mão quando precisa. Quanto maior este conhecimento, mais a competência se fortalece. E permite que o profissional enfrente com flexibilidade e sabedoria os diversos desafios de seu dia-a-dia;

·         A copa (com frutos, flores e folhas) corresponde às habilidades: Agir com talento, capacidade técnica, obtendo resultados positivos é o que chamamos de habilidade. Uma competência só é reconhecida quando disponibilizada. Não adianta alguém saber que sabe. Para obter o reconhecimento, precisa demonstrar.

 

As competências de um bom profissional devem ser formadas por uma combinação de conhecimentos, habilidades e atitudes. Apenas o conhecimento, sem habilidades e atitudes, nos passa a sensação de um profissional por demais teórico, sem capacidade de externalizar e colocar em prática todo o seu conhecimento. Só habilidades, sem conhecimentos e boas atitudes nos traz a imagem de um bom operador, com conhecimentos restritos à sua função, com pouca capacidade de desenvolvimento e de tomada de atitudes. Este tipo de profissional faz bem o que o mandam. Pode ser facilmente substituído, mas em muitos casos, são extremamente úteis. Da mesma maneira, as atitudes sozinhas, não são suficientes para qualificar um grande profissional, pois este poderá apresentar boa índole, boa postura profissional, mas pouco conseguirá produzir, por falta de conhecimento.

Conhecimentos

Conhecimentos em Engenharia de Software são essenciais para um testador. [DIMAGGIO] divide esse conhecimento em três áreas: processo de desenvolvimento de software, programação de computadores e sistemas operacionais (SO).

O testador deve conhecer o processo de desenvolvimento no qual está inserido, pois suas atividades fazem parte desse processo. Para desempenhar bem a função, deve dominar o processo. Ele deve conhecer quais são os artefatos de entrada e saída de cada fase do processo, principalmente das que envolvem atividades de testes. Dessa forma, poderá antever problemas e sugerir soluções antecipadamente, além de planejar as atividades com maior segurança, uma vez que terá uma visão ampla de como funcionam as interfaces das fases do processo. Portanto, deve procurar entender todo o processo de desenvolvimento da sua empresa. Caso não esteja trabalhando, pode estudar processos modelos, como por exemplo, RUP, PRAXIS, XP, SCRUM, V-MODEL, TMAP, pois com certeza, se os processos das empresas não são fiéis a algum desses, são bem próximos. Conhecer a fundo o processo da sua empresa faz grande diferença entre os profissionais da organização. ...

Quer ler esse conteúdo completo? Tenha acesso completo