Programação

Um profissional de QA (Quality Assurance) tem como responsabilidade buscar maximizar a qualidade de um software através de testes e análises a fim de proporcionar a melhor experiência final para o usuário. 

Dentro de seu escopo de trabalho, os testes englobam uma parte importante de sua atividade, mas não se resume somente a isso. 

Existem outras ações nas quais o QA pode atuar na construção de um software, garantindo a qualidade dentro de todo o ciclo de desenvolvimento. 

Em relação aos testes de software, um dos principais objetivos é verificar e garantir que o comportamento das funcionalidades do sistema estão de acordo com o que o cliente solicitou. 

No entanto, realizar testes de softwares não é simplesmente abrir o sistema em um dispositivo, seja um computador, tablet ou smartphone, e ficar “vasculhando” tudo, para depois disso, atestar que ele está apto para uso e como o cliente espera. 

Há outras maneiras de realizar os testes dependendo do contexto, do cenário de teste e do sistema a ser testado. 

Assim, para iniciar os testes em um sistema, um(a) QA deve se perguntar:

  • O que devo testar? 
  • Como testar? 
  • Quando testar?

Para cada pergunta, existem testes que podem ser apropriados para trazer uma resposta à questão. Cabe ao QA, analisar cada situação, cenário e tipo de software (web, mobile, desktop), e utilizar o que for mais conveniente para o contexto presente.

Fonte: Curso completo de Teste de Software - Gustavo Farias.

O que testar em um software?

A pergunta “O que devo testar?” está relacionada aos tipos de testes que podem ser utilizados em um software

Nesse sentido, cabe ao conhecimento e análise do QA, determinar qual tipo de teste pode ser mais importante dentro do cenário observado. 

Dentre os tipos de teste que podem ser utilizados destacam-se:

Teste de Funcionalidade: validar se todas as funcionalidades que foram implementadas no sistema estão sendo executadas corretamente, de acordo com o que foi solicitado pelo cliente. 

Teste de Desempenho: tomar nota do desempenho do sistema, verificando o tempo de processamento de uma determinada operação. 

No teste de desempenho, o foco não é verificar se a funcionalidade está ocorrendo como esperado e sim, quanto tempo leva para que uma funcionalidade conclua o seu processamento. 

Com isso, pode-se evitar que o sistema fique lento com o grande aporte de dados, além de verificar se o sistema é escalável.

Teste de Usabilidade: verificar a experiência do usuário quanto ao uso do sistema. Nesse teste, é verificado se a interface é agradável, intuitiva, com cores e estética de fácil aceitação pelo usuário, além da acessibilidade. 

Em alguns casos, após a avaliação do QA, e dependendo do equipamento utilizado para esse tipo de teste, pode-se convidar um usuário final para “testar” o sistema. 

Durante o uso, todas as suas expressões serão monitoradas e capturadas, bem como as opiniões do usuário. 

Teste de Segurança: analisar se os dados que persistem no banco ou os dados utilizados no sistema podem ser acessados por pessoas não autorizadas. 

Além disso, é verificado se o sistema tem mecanismos para garantir a proteção desses dados, sempre verificando a criptografia de dados e o acesso restrito de informações, dentre outras coisas. 

Teste de Portabilidade: ver se o sistema pode ser executado em diferentes plataformas, browsers e sistemas operacionais, e dispositivos diferentes como celulares, tablets e computadores.

Teste de Stress: testar se o sistema funciona em condições extremas, identificando os limites do software e avaliando seu comportamento. 

Assim, avalia-se o quanto o software pode ser exigido e quais as falhas (se existirem) decorrentes do teste.

Como testar um software?

O questionamento referente a "Como testar?” está relacionado a quais técnicas para  testes podem ser utilizadas em um software. 

Para isso, cabe ao QA conhecer os testes e analisar qual ou quais dessas técnicas têm sentido serem utilizadas, levando sempre em consideração o cenário ou contexto do produto. 

Confira as principais técnicas que podem ser utilizadas:

Teste de Caixa-Preta: nesta técnica, não é levado em consideração o “interior do sistema” (código-fonte). 

É necessário executar o sistema e através de testes nas etapas da entrada, processamento e da saída de dados para validar e verificar se o funcionamento está indo como esperado. 

Os testes consideram os cenários e casos de uso do sistema. 

Teste de Caixa-Branca: leva-se em conta o “interior do sistema” (código-fonte). 

Assim, o sistema não precisa ser executado, pois, todos os testes envolvem o código (testes de unidade), analisando a qualidade da estruturação e da implementação do código, a complexidade do código para manutenção, a coesão e acoplamento, padronização, segurança, padrão de projeto, etc.

Normalmente, são os desenvolvedores que executam essas técnicas, porém, dependendo da empresa ou do produto que está sendo desenvolvido, os próprios QAs podem executar esses testes. 

Teste de Caixa-Cinza: é basicamente uma combinação dos testes Caixa-Preta e Caixa-branca. 

Nele, é possível ter acesso parcial ao código-fonte do sistema para entender o comportamento de determinada funcionalidade e, quando executar o sistema, analisá-lo através da entrada e saída dos dados. Assim, pode-se entender como o processamento dos dados é realizado.

Quando testar um software?

Quanto à dúvida de “Quando testar?”, está relacionada aos níveis de testes. Esses níveis vão desde testes com foco no código até testes que envolvem a funcionalidade do software

Também envolvem não só a participação do QA, mas dos stakeholders e usuários finais. É válido destacar que cabe à análise do QA, determinar qual tipo de teste pode ser mais importante dentro daquele cenário ou contexto.

Para isso, conheça as técnicas de teste mais utilizadas:

Testes de Unidade:  validar se a menor parte do sistema (unidade), seja uma  função, método ou trecho de código, está funcionando como esperado. 

Nesses testes, geralmente, é verificada a entrada e saída de dados, garantindo sua previsibilidade. 

Testes de Integração: validar a comunicação entre componentes (conjunto de classes ou módulos) de um sistema. 

Com esse teste, pode-se evitar uma mudança não esperada de comportamento do sistema na criação de possíveis novas funcionalidades ou alterações nas antigas. 

Testes de Sistema: executar e avaliar o sistema como um todo, vasculhando todas as funcionalidades, simulando o uso do usuário final, mantendo atenção a possíveis falhas nas principais funções do sistema. 

Teste de Aceitação: assim como os testes de sistema, serão analisadas as funcionalidades do sistema como um todo. Nestes casos, quem valida se o sistema está operando como esperado são os stakeholders

Teste Alfa:  bem como nos testes de aceitação e de sistema, citados anteriormente, todas as funcionalidades do sistema serão analisadas. 

Quanto à validação, o responsável em saber se o sistema está indo como esperado,  será um grupo pequeno de usuários finais. 

Nesse caso, à medida que utilizam o sistema no dia a dia, eles vão reportando o funcionamento do sistema. 

Teste Beta: Nesta técnica também serão analisadas todas as funcionalidades do sistema. Quem validará se o funcionamento do sistema está como o esperado será um grupo grande de usuários finais. 

Eles utilizarão o sistema no dia a dia e reportarão sobre o funcionamento do sistema. Normalmente, a maioria das pessoas desse grupo são desconhecidas, sendo um subconjunto do público alvo que o sistema vai atender. 

Teste de Regressão: quando uma alteração nova é implementada no sistema, faz-se necessário re-executar os testes que foram realizados anteriormente, para verificar e garantir que todo o sistema continua funcionando normalmente após uma nova alteração. 

Com base no que foi escrito ao decorrer da leitura, pode-se perceber que, dentro do universo dos testes de software, existe uma metodologia que direciona como e em que momento cada um desses testes podem ser utilizados em um software.

Na Vsoft, dentro da linha do produto Certfy, são aplicadas técnicas e níveis de testes pelo time de qualidade, especialmente no produto Onboarding Presencial.

Esse produto é um sistema Desktop, no qual são realizadas:

  • Coleta de dados biométricos (Impressões Digitais e Face). 
  • Coleta de dados biográficos (Nome, Filiação, Número de documento, etc.) de indivíduos. 
  • Após a finalização das coletas, é realizado o processo de verificação de identidade seguro.

Nos testes feitos para esse produto, pode-se destacar o uso do teste de caixa preta, em que é verificado se um componente do sistema, como a captura das impressões digitais das mãos, está operando como esperado e se as informações captadas são enviadas normalmente. 

Com relação aos níveis de teste, pode-se destacar os testes de regressão, em que é realizado o teste em todo o sistema sempre que novas implementações são adicionadas, verificando em cada etapa das capturas biográficas e biométricas se o sistema continua operando como esperado. 

Ao compreender um pouco sobre a importância de um profissional de QA no desenvolvimento de um software, fica claro que seu conhecimento sobre os tipos, técnicas e níveis de teste, bem como suas aplicações, é crucial para a garantia de qualidade do produto final, aquele que chega até nós, usuários.  

Curtiu o conteúdo? Continue acompanhando o Blog, em breve terá mais conteúdo dos nossos especialistas.

Success! You're signed up
Oops! Something went wrong while submitting the form.
go  top