fbpx

Os testes não funcionais referem-se aos testes de software que são realizados para testar os aspectos não funcionais de uma aplicação de software.

Existem muitos tipos diferentes de testes não funcionais, e alguns tipos de testes de software podem ser considerados tanto testes funcionais como não funcionais ao mesmo tempo.

Os testes não-funcionais são necessários porque avaliam critérios essenciais do utilizador tais como desempenho e usabilidade e verificam se o software funciona como esperado fora da sua funcionalidade básica.

Neste artigo, exploramos a definição e características dos testes não funcionais juntamente com os tipos de testes não funcionais, abordagens aos testes não funcionais, e ferramentas de teste que podem ajudar a optimizar e melhorar os seus próprios processos de testes não funcionais.

 

Table of Contents

O que são testes não funcionais?

lista de verificação uat, ferramentas de teste de aplicações web, automatização e mais

Os testes não funcionais são qualquer tipo de teste de software onde são testados os aspectos não funcionais da construção do software.

Exemplos de testes não funcionais incluem testes concebidos para avaliar a capacidade, desempenho, usabilidade, recuperação, e portabilidade.

A verificação da qualidade e estado de cada um destes critérios não funcionais é tão importante como a verificação das funções de um software, mas estes parâmetros não são testados em testes funcionais padrão.

Essencialmente, testes não funcionais significa testar “como” o software funciona em vez de testar “se” eles funcionam.

 

1. Quando é que precisa de testes não funcionais?

 

Os testes não funcionais são realizados durante a fase de teste do sistema de teste de software após a realização de testes unitários e testes de integração.

Durante os testes do sistema, os testadores realizarão testes funcionais e não funcionais, começando pelos testes funcionais.

Uma vez estabelecido que o software está a funcionar como esperado, os testadores realizam testes não funcionais para avaliar se também cumpre os parâmetros não funcionais.

É normalmente necessário realizar testes funcionais antes de testes não funcionais porque é impossível testar a fiabilidade ou o desempenho de funções que não funcionam de todo. Os testes não funcionais são uma das últimas fases dos testes de software antes dos testes de aceitação por parte do utilizador e do lançamento final do produto.

 

2. Quando não necessita de testes não funcionais

 

É sempre importante testar os aspectos não funcionais do software, a menos que já tenham sido testados e considerados adequados.

Mesmo que já tenha efectuado testes não funcionais em software antes, poderá ser necessário testar novamente parâmetros não funcionais, por exemplo, se foram adicionadas novas funcionalidades ao software ou se foram feitas alterações ao código que possam afectar o desempenho e a fiabilidade.

 

Os objectivos dos testes não-funcionais

esclarecer alguma confusão na automatização de testes de software

Os objectivos dos testes não funcionais são verificar se o produto satisfaz as expectativas do utilizador e optimizar o produto antes de ser lançado.

Pode também ajudar os programadores e testadores a compreender melhor o software e a utilizar este conhecimento em futuras optimizações.

 

1. Controlo de qualidade

 

Os testes não funcionais visam testar factores que têm impacto na usabilidade, fiabilidade, capacidade de manutenção, portabilidade e eficiência do produto.

O teste destes elementos assegura que o produto que é lançado no mercado é de qualidade adequada e satisfaz as expectativas dos utilizadores no que diz respeito ao desempenho, tempos de carga, e capacidade de utilização.

 

2. Gestão do risco

 

Os testes não funcionais também reduzem o risco e o custo associado ao lançamento de um produto no mercado, maximizando as hipóteses de a equipa lançar um produto satisfatório.

Ao verificar os parâmetros não funcionais da construção do software, é possível reduzir os custos de lançamento do produto porque a necessidade de desenvolvimento e alterações posteriores do software é reduzida.

 

3. Optimização

 

Os testes não funcionais ajudam os testadores e desenvolvedores a optimizar a construção do software e a optimizar o desempenho durante a instalação, configuração, execução e utilização.

Também pode utilizar testes não funcionais para optimizar a forma como gere e monitoriza a construção do software.

 

4. Recolha de dados

 

Os testes não funcionais permitem aos testadores recolher e produzir medições e métricas que podem ser utilizadas por equipas de teste para investigação e desenvolvimento interno.

Pode utilizar os dados que recolhe dos testes não funcionais para compreender como funciona o seu produto e como pode optimizá-lo mais eficazmente para os utilizadores.

 

5. Melhoria do conhecimento

 

Os testes não funcionais melhoram e melhoram o conhecimento da equipa de testes sobre o comportamento do produto e as tecnologias que este utiliza.

Isto não só ajuda as equipas de teste a compreender melhor o software em que estão a trabalhar, como também pode fornecer conhecimentos úteis que ajudam os testadores a compreender melhor as construções futuras.

 

Quem está envolvido em testes não-funcionais?

que está envolvido em testes de software

Os testes não funcionais são geralmente realizados por testadores no ambiente de GQ, mas por vezes os programadores podem realizar testes não funcionais durante o desenvolvimento.

Os testes do sistema são quase sempre realizados por provadores, e esta é a fase de testes em que a maior parte dos testes não-funcionais tem lugar.

Se os testes não funcionais falharem, os testadores enviarão o software de volta aos programadores para corrigir os erros de desempenho antes de testar novamente.

 

Os benefícios dos testes não funcionais

teste de aceitação do utilizador (UAT)

Há muitos benefícios em realizar testes não funcionais, e os testes não funcionais são um passo essencial nos testes de sistemas.

Sem testes não funcionais, as equipas de teste não seriam capazes de verificar se o software cumpre realmente os requisitos do cliente ou se cumpre os requisitos estabelecidos no plano de desenvolvimento de software.

 

1. Melhorar o desempenho do software

 

Os testes não funcionais podem ajudar os testadores e programadores a melhorar o desempenho global das aplicações de software. Os testes não funcionais identificam áreas onde falta o desempenho do software, por exemplo em termos de velocidade de carregamento ou capacidade de processamento, e incitam as equipas de software a fazer alterações para corrigir estes defeitos.

Isto assegura que as equipas de software só lançam software ao público quando este está pronto, e quando o seu desempenho é suficientemente bom.

 

2. Manter o software seguro

 

Os testes não funcionais incluem testes de segurança, o que é fundamental para garantir que um software construído é seguro e salvaguardado de ameaças e ataques externos.

Os testes de segurança permitem aos testadores e programadores verificar se o software protege adequadamente os dados confidenciais e se tem segurança suficiente para se proteger contra ataques cibernéticos contemporâneos.

 

3. Aumentar a facilidade de utilização do software

 

Os testes não funcionais são a melhor forma de tornar o seu software mais fácil de utilizar, especialmente através da realização de testes de usabilidade que avaliam a facilidade com que os utilizadores aprendem a utilizar e a operar o seu software.

A facilidade de utilização é muito importante porque determina o grau de satisfação dos utilizadores com o seu software e assegura que os utilizadores sejam capazes de tirar o máximo partido de tudo o que o seu software oferece.

 

4. Assegurar que o software satisfaz as necessidades dos utilizadores

 

Assegurar que o software satisfaz as necessidades dos utilizadores deve ser uma das principais prioridades de todas as equipas de desenvolvimento e teste de software. Para além de esperarem que o software seja funcional, os utilizadores esperam que o software tenha um bom desempenho, funcione sem problemas, e salvaguarde dados confidenciais.

Os testes não funcionais são uma das únicas formas de garantir que o seu software cumpre estes requisitos.

 

Os desafios dos testes não-funcionais

Existem algumas desvantagens na realização de testes não funcionais. Embora os testes não funcionais sejam essenciais durante a fase de teste do sistema de testes de software, o processo de testes não funcionais pode colocar desafios às equipas de software que não dispõem de amplos recursos e ferramentas.

 

1. Repetição

 

Os testes não funcionais em testes de software devem ser efectuados sempre que o software é actualizado pelos programadores ou sempre que o código é alterado. Isto significa que os testes não-funcionais podem ser muito repetitivos, o que não só leva tempo como também cansa os testadores.

Os testadores cansados que realizam tarefas muito repetitivas são também mais susceptíveis de se distraírem e cometerem erros.

 

2. Custo

 

Como os testes não funcionais são tão repetitivos, também podem ser bastante dispendiosos, especialmente para equipas de teste que dependem de testes manuais não funcionais.

As equipas de software devem atribuir tempo e orçamento para testes não funcionais frequentes, e os programadores de software terão de pagar mais por estes testes adicionais.

 

O que é que testamos em testes não funcionais?

 

Os testes não funcionais podem ser utilizados para testar muitos parâmetros não funcionais diferentes, cada um dos quais afecta a qualidade e a usabilidade do sistema. Cada um destes parâmetros é testado durante os testes do sistema de acordo com os critérios estabelecidos no plano de testes.

 

1. Segurança

 

Os testes de segurança são um tipo de testes não funcionais que medem o quão bem um sistema está salvaguardado contra ameaças e ataques externos. Estas incluem violações deliberadas da segurança, bem como fugas de dados e outras violações comuns.

Os testes de segurança são um passo importante nos testes não funcionais porque dão aos utilizadores finais e clientes a certeza de que os seus dados estão seguros.

 

2. Fiabilidade

 

Os testadores utilizam testes não funcionais para avaliar a fiabilidade do software e para assegurar que o software pode continuamente desempenhar as suas funções especificadas sem falhas.

Enquanto os testes funcionais asseguram que o software executa as suas funções-chave, apenas testes não funcionais testam realmente a fiabilidade e repetibilidade destes resultados.

 

3. Sobrevivabilidade

 

A capacidade de sobrevivência descreve como um sistema de software responde em caso de falha de funcionamento, e os testes de capacidade de sobrevivência garantem que se ocorrerem erros e falhas, o sistema pode recuperar-se a si próprio.

Os testes de sobrevivência podem verificar se o software é capaz de salvar dados para minimizar a perda de dados em caso de falha súbita, por exemplo.

 

4. Disponibilidade

 

A disponibilidade do software refere-se ao grau em que o utilizador pode depender do sistema durante o seu funcionamento. A isto também se chama estabilidade, e é testado por testes de estabilidade.

Os testes de estabilidade têm alguma semelhança com os testes de fiabilidade porque verificam se o sistema pode funcionar de acordo com os padrões esperados de forma consistente.

 

5. Usabilidade

 

Os testes de usabilidade são outro tipo importante de testes não funcionais em testes de software. Este tipo de testes avalia a forma como o utilizador pode aprender, operar e utilizar o sistema de software, seguindo as instruções fornecidas no ecrã e outros guias básicos.

Os testes de usabilidade são importantes porque se o software não for altamente utilizável, a maioria dos utilizadores irá simplesmente abandoná-lo ou optar por utilizar outra coisa.

 

6. Escalabilidade

 

Os testes de escalabilidade testam até que ponto uma aplicação de software pode expandir a sua capacidade de processamento para satisfazer a procura crescente.

Por exemplo, se o software for concebido para ser utilizado por vários utilizadores numa única rede ao mesmo tempo, como funciona quando dez utilizadores iniciam sessão ao mesmo tempo? As contagens mais elevadas de utilizadores afectam significativamente o desempenho ou os tempos de carregamento?

 

7. Interoperabilidade

 

O teste de interoperabilidade é um tipo de teste não-funcional que verifica até que ponto um sistema de software interage bem com outros sistemas de software.

Isto é particularmente importante quando o software é concebido como parte de um conjunto de produtos que se integram todos uns com os outros.

 

8. Eficiência

 

Eficiência nos testes de software refere-se à medida em que um sistema de software pode lidar com a capacidade, quantidade e tempo de resposta.

Por exemplo, os testadores podem avaliar quantos utilizadores podem entrar no sistema ao mesmo tempo, quanto tempo leva a recuperar dados da base de dados, ou quão rapidamente o software pode executar tarefas básicas.

 

9. Flexibilidade

 

A flexibilidade mede o grau até ao qual um sistema de software pode funcionar com diferentes tipos de hardware e periféricos.

Por exemplo, quanta RAM o software requer ou se requer uma determinada quantidade de CPU. Quanto mais baixos forem os requisitos para a aplicação de software, mais flexível será o software.

 

10. Portabilidade

 

Os testes de portabilidade são utilizados para testar a flexibilidade com que o software pode ser transferido do seu ambiente actual de hardware ou software, e a facilidade com que isso é feito.

A portabilidade é importante porque afecta a facilidade com que os utilizadores finais podem gerir o software e movê-lo entre diferentes sistemas.

 

11. Reusabilidade

 

O teste de reusabilidade é um tipo de teste não funcional que testa se partes do sistema de software podem ser convertidas para reutilização dentro de outra aplicação.

Embora os testes de reutilizabilidade não afectem normalmente os clientes e os utilizadores finais, é um bom reflexo da eficácia com que os criadores estão a criar componentes que podem ser reutilizados no futuro.

 

As características dos testes não-funcionais

Compreender o que são testes não-funcionais implica compreender as características dos testes não-funcionais. Estas características definem os testes não funcionais em testes de software.

 

1. Mensurável

 

Os testes não funcionais são sempre quantitativos e mensuráveis, o que significa que os testadores não utilizam frases subjectivas como “simpático” ou “bom”, utilizando em vez disso números e factos para descrever os resultados dos testes não funcionais.

Por exemplo, em vez de descrever os tempos de carregamento como ‘rápidos’ ou ‘lentos’, os testes não funcionais devem resultar em números específicos que mostrem o número de vezes.

 

2. Específico

 

Ao realizar testes não funcionais, o objectivo dos testes deve ser específico para as especificações de concepção do software.

Por exemplo, se o plano do projecto de software se referir ao número de utilizadores que devem ser capazes de iniciar sessão de uma só vez, isto deve ser priorizado quando os testes não-funcionais.

 

3. Desconhecido

 

Embora os testes não funcionais possam ser especificamente concebidos para medir atributos definidos nos planos do projecto, em muitos casos, estes atributos não serão especificados antecipadamente.

Neste caso, os testadores devem simplesmente realizar testes não funcionais para avaliar o software com base em cada parâmetro e mais tarde compará-los com as expectativas.

 

O ciclo de vida dos testes não-funcionais

Uma vez que os testes não funcionais não se referem a uma fase específica do ciclo de vida dos testes de software, mas simplesmente a um tipo de teste que normalmente ocorre durante a fase de teste do sistema de testes de software, o ciclo de vida dos testes não funcionais pode variar muito entre projectos.

Em geral, segue um ciclo de vida semelhante a outros tipos de testes de software que começa com a análise dos requisitos do projecto e termina com a execução do teste e o cumprimento do ciclo.

 

1. Análise dos requisitos de software

 

A primeira fase do ciclo de vida para testes não funcionais é a análise dos requisitos de software. As equipas de software trabalham para critérios específicos quando estão a construir e a testar aplicações, e estes critérios devem ditar que tipo de testes devem ser realizados.

 

2. Planeamento de testes

 

A fase seguinte do ciclo de vida é o planeamento de testes. Durante a fase de planeamento do teste, o líder de GQ elaborará um plano de teste detalhado que detalha o que será testado, quem realizará o teste, e que abordagens, métodos e ferramentas de teste serão utilizadas.

O plano de teste deve incluir todos os detalhes necessários que os testadores precisam para criar e executar casos de teste.

 

3. Criação de casos de teste

 

A criação de casos de teste é a fase seguinte dos testes não funcionais. Esta fase envolve o desenvolvimento de casos de teste não funcionais que os testadores executarão numa fase posterior para testar os requisitos não funcionais do sistema.

Os casos de teste descrevem o que será testado, como será testado, e qual é o resultado esperado do teste.

 

4. Configuração do ambiente de teste

 

A fase seguinte do ciclo de vida não-funcional dos testes é o estabelecimento do ambiente de teste antes do início dos testes.

O ambiente de testes é onde todos os testes se realizam, e é o lar de recursos e ferramentas que utilizará para executar testes não-funcionais.

A equipa de teste prepara o ambiente de teste montado antes da execução do teste.

 

5. Execução de testes

 

A execução de testes é a fase seguinte do ciclo de vida não-funcional dos testes. Envolve a execução dos casos de teste criados anteriormente para testar diferentes aspectos das aplicações de software, incluindo segurança, tempos de carregamento, capacidade e portabilidade.

A equipa de teste executa cada caso individualmente e verifica o resultado de cada teste em relação ao resultado esperado.

 

6. Repetição do ciclo

 

A fase final do ciclo de vida não-funcional dos testes é o cumprimento e repetição do ciclo. Depois de executar todos os casos de teste, os testadores verificam quais os testes aprovados e quais os testes reprovados.

Os testes que falham normalmente indicam que existe um defeito que deve ser corrigido pelos criadores. Uma vez que os programadores tenham corrigido ou editado o código, o ciclo de testes do software repete-se novamente até que não sejam encontrados defeitos.

 

Esclarecer alguma confusão:

Testes não funcionais vs testes funcionais

Testes UAT comparativos com testes de regressão e outros

Testes funcionais e testes não funcionais são dois tipos diferentes mas igualmente importantes de testes de software que, em conjunto, são utilizados para avaliar se uma aplicação de software satisfaz os requisitos dos utilizadores, tal como estabelecido no resumo do projecto.

Embora ambos sejam tipos de testes necessários que permitem às equipas de software identificar defeitos dentro das construções de software, os testes funcionais e não-funcionais são completamente distintos um do outro.

 

1. Qual é a diferença entre testes funcionais e não funcionais?

 

A diferença entre testes funcionais e não funcionais está no que eles testam. Os testes funcionais testam as funções da aplicação e verificam se funcionam como esperado. Os testes não funcionais testam outros aspectos da aplicação que afectam a satisfação do utilizador e a qualidade da aplicação.

Os testes funcionais e não funcionais ocorrem em diferentes fases de testes de software, mas ambos os tipos de testes são geralmente realizados durante a fase de testes do sistema.

Tanto os testes funcionais como os não funcionais podem ajudar-nos a compreender como funciona uma aplicação e se esta desempenha o seu trabalho adequadamente.

Por exemplo, se estiver a testar uma aplicação móvel que permite aos utilizadores guardar listas de afazeres e listas de compras, os testes funcionais podem testar funções como criar uma nova lista, guardar uma lista, e fazer edições a listas existentes.

Os testes não funcionais podem avaliar o bom funcionamento da aplicação em diferentes dispositivos móveis, a rapidez da lista de carga, e o desempenho da aplicação quando outras aplicações estão a ser executadas em segundo plano.

 

2. Conclusão: testes não funcionais vs testes funcionais

 

Tanto os testes funcionais como não funcionais são tipos importantes de testes de software que podem ajudar os testadores e as equipas de GQ a avaliar se uma aplicação cumpre os seus requisitos actuais.

Enquanto os testes funcionais testam as funções do software, os testes não funcionais testam outros aspectos que podem afectar o desempenho, eficiência, e segurança.

Os testes unitários, testes de integração e testes API são todas as formas de testes funcionais. Em cada uma destas fases de testes de software, os testadores avaliam o modo como as funções e características funcionam individualmente ou em conjunto e identificam bugs e defeitos que impedem as funções de funcionar como esperado.

Testes de segurança, testes de usabilidade, testes de portabilidade, e testes de carga são todas as formas de testes não-funcionais que permitem aos testadores avaliar até que ponto uma aplicação desempenha as suas funções e suporta as necessidades dos utilizadores.

 

Tipos de testes não funcionais

Testes não funcionais: o que é, diferentes tipos, abordagens e ferramentas

Existem muitos tipos diferentes de testes não funcionais, cada um dos quais testa um aspecto não funcional diferente do desempenho ou eficiência de uma aplicação de software.

Cada um destes tipos de testes irá testar parâmetros diferentes, e alguns testes podem testar os mesmos parâmetros de formas diferentes.

 

1. Testes de desempenho

 

Os testes de desempenho são um tipo de teste não funcional que verifica quão bem funcionam os diferentes componentes de software. Em vez de testar a sua funcionalidade, que é o que os testes funcionais fazem, os testes de desempenho podem testar tempos de resposta, estrangulamentos, e pontos de falha. Os testes de desempenho ajudam os testadores a garantir que o software é de alta qualidade e que é rápido, estável e fiável.

 

2. Testes de stress

 

O teste de stress é um tipo de teste não funcional que testa o bom desempenho do software quando é colocado sob quantidades anormais de stress. Isto pode significar testar o desempenho do software quando alguém tenta utilizar muitas características diferentes ao mesmo tempo, ou enquanto executa muitas outras aplicações ao mesmo tempo.

O teste de stress procura identificar o limite em que o software deixa de funcionar correctamente e o que acontece quando o sistema está sob stress. Permite aos testadores compreender se o sistema pode recuperar-se a si próprio e se notifica os utilizadores com mensagens de erro adequadas.

 

3. Testes de carga

 

O teste de carga é um tipo de teste que avalia o comportamento do software tanto em condições normais como quando se trata de cargas mais pesadas. É utilizado para determinar o quanto o software pode lidar simultaneamente sem que o desempenho seja afectado negativamente.

Os testes de carga podem ser utilizados para testar como funcionam as aplicações quando muitos utilizadores as utilizam de uma só vez ou quando os utilizadores tentam descarregar muitos dados ao mesmo tempo.

Os testes de carga são importantes se quiser verificar se o seu software é escalável.

 

4. Testes de segurança

 

Os testes de segurança avaliam as aplicações de software e procuram vulnerabilidades na segurança do software. Estes incluem potenciais riscos de segurança que podem resultar em perda de dados ou violações que exponham dados confidenciais.

Os testes de segurança são importantes porque garantem que o produto está adequadamente protegido contra hacking, violações de dados, e outras ameaças externas à segurança.

Alguns exemplos de testes de segurança que os testadores podem realizar incluem auditorias de segurança, hacking ético, testes de penetração, verificações de segurança, e avaliações de postura.

 

5. Actualização e testes de instalação

 

A actualização e instalação de testes é um tipo de teste de software não funcional que verifica como o software funciona em diferentes máquinas.

O objectivo deste tipo de testes é assegurar que novos utilizadores possam facilmente instalar o software nas suas máquinas e os utilizadores existentes possam actualizá-lo quando novas actualizações forem lançadas.

A actualização e os testes de instalação são importantes porque os utilizadores finais devem ser capazes de instalar facilmente o seu produto, desde que estejam a trabalhar com uma máquina compatível com a mesma.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

6. Testes de volume

 

O teste de volume é um tipo de teste que existe para verificar o que acontece quando grandes volumes de dados são adicionados à base de dados de uma só vez. Isto identifica se a aplicação pode lidar com grandes volumes de dados e o que acontece ao sistema se não puder.

O teste de volume é também conhecido como teste de inundação, e pode usá-lo para avaliar a perda de dados e mensagens de erro que ocorrem quando se adicionam quantidades significativas de dados ao sistema.

Os testes de volume são a única forma de assegurar que o software pode lidar com os volumes de dados que os utilizadores esperam que o façam.

 

7. Testes de recuperação

 

Os testes de recuperação envolvem forçar o sistema de software a não testar a forma como o sistema se recupera a si próprio após uma falha.

Os testes de recuperação podem ajudar os testadores a compreender como o software recupera dados e evita perdas se o hardware for desligado durante a utilização, se o software for desligado da rede durante uma transferência de dados, ou se reiniciar o sistema inesperadamente.

Este tipo de testes é importante porque os sistemas sem protocolos de recuperação adequados podem sofrer graves perdas de dados quando ocorrem acidentes como este.

 

O que é necessário para iniciar testes não-funcionais

O que é o teste de carga?

Antes de iniciar testes não funcionais, terá de se certificar de que preparou o ambiente de testes e reuniu as ferramentas e dados de que necessita.

 

1. Plano de teste

 

Antes de começar os testes não funcionais, certifique-se de que tem um plano de teste concluído que foi assinado pelas pessoas apropriadas.

O seu plano de teste deve incluir todos os detalhes relevantes sobre o que vai testar e como. Deve explicar quando se vai utilizar testes manuais e quando se vai utilizar testes automáticos, bem como delinear as funções e responsabilidades de todos os envolvidos no processo de testes.

 

2. Casos de teste

 

Antes de poder executar testes não-funcionais, terá de criar casos de teste. Cada caso de teste delineia uma coisa específica que vai testar, explica como o vai testar e descreve o resultado esperado do teste.

Por exemplo, se estiver a realizar testes de carga, um exemplo de caso de teste pode ser testar como o software se comporta quando dez utilizadores estão a utilizar o mesmo módulo ao mesmo tempo.

 

3. Verificação funcional

 

Não é possível realizar testes não funcionais em componentes de software se estes não estiverem funcionais.

Por exemplo, se quiser testar quantos utilizadores o software pode suportar ao mesmo tempo, é primeiro importante verificar se os utilizadores individuais podem efectivamente iniciar sessão no software.

Antes de iniciar testes não funcionais, certifique-se de que todos os seus testes funcionais foram aprovados e de que o seu software funciona como espera.

Isto significa normalmente que já foram efectuados testes de fumo, testes de sanidade, testes unitários, integração, e testes funcionais do sistema.

 

4. Ferramentas de teste

 

Antes de iniciar testes não funcionais, reúna todas as ferramentas de teste que queira utilizar para realizar os seus testes.

Se está a utilizar ferramentas de automação para automatize alguns dos seus testes ou ferramentas de documentação para o ajudar a gerir e armazenar relatórios de teste para utilização posterior, certificar-se de que as ferramentas que pretende utilizar estão disponíveis e prontas a utilizar, e que todos na equipa de teste sabem como utilizar correctamente cada ferramenta.

 

5. Ambiente de teste

 

Configurar o ambiente de testes antes de iniciar os testes não funcionais. Pode já ter um ambiente de teste adequado, especialmente se puder utilizar o mesmo ambiente para testes de sistemas não funcionais e testes de sistemas funcionais.

O ambiente de teste ideal permite-lhe testar todos os elementos que necessita nos dispositivos correctos.

Por exemplo, se estiver a testar a manipulação de volume em dispositivos smartphone, é melhor testar isto num dispositivo smartphone real do que tentar emular um ambiente móvel num computador de secretária.

 

O processo de teste não-funcional

O que é o teste unitário

Testar aspectos não funcionais de uma construção de software é um processo em várias etapas que envolve a preparação do ambiente de teste, criação de casos de teste, recolha de dados de teste, e execução de testes não funcionais.

É possível decompor o processo de teste em pequenos pedaços para facilitar o seu seguimento para os principiantes em testes não funcionais.

 

1. Verificação da prontidão dos testes não-funcionais

 

Antes de poder iniciar os testes não funcionais, é importante verificar se está pronto para esta fase de testes.

Isto pode significar a avaliação dos critérios de saída para a última fase de testes para se certificar de que o software foi aprovado e de que o software passou todos os testes funcionais exigidos antes de se realizarem os testes não funcionais.

Algumas equipas podem criar critérios de entrada para testes não funcionais, que incluem todas as condições que devem ter sido cumpridas antes do início dos testes não funcionais.

 

2. Criar um plano de teste

 

Pode já ter realizado este passo mais cedo se estiver a realizar testes não funcionais como parte dos testes do sistema e a seguir o seu plano de testes do sistema. Um plano de testes descreve todos os testes que precisa de realizar e como pretende realizá-los.

Sem um plano de testes claro, é fácil perder de vista o âmbito e os objectivos dos testes que se está a realizar.

 

3. Criar casos de teste

 

A fase seguinte dos testes não funcionais é a criação de casos de teste concebidos para testar cada parâmetro não funcional do software.

Cada caso de teste deve ter um ID de caso de teste, um nome de caso de teste, uma descrição, e detalhes do resultado esperado do teste, bem como quaisquer critérios de aprovação ou reprovação que sejam determinados com antecedência. Isto ajuda os testadores a compreender como realizar cada teste e quais os resultados a procurar.

 

4. Recolher dados de teste

 

Antes de poder executar cada caso teste, terá de reunir os dados de teste que utilizará para cada caso teste.

Isto significa normalmente a recolha de código e dados de diferentes módulos e componentes que compõem as funções e áreas que vão ser testadas. Se estiver a maximizar a cobertura de teste, deverá ter muitos dados de teste para trabalhar.

 

5. Preparar o ambiente de teste

 

A fase seguinte dos testes não funcionais está a preparar o ambiente de teste. O ambiente de teste é um servidor de testes que irá utilizar para realizar testes de software de muitos tipos diferentes.

Permite-lhe criar condições idênticas para testar o seu software e configurar o seu software com diferentes configurações para testes de configuração, testes de segurança, e outros tipos de testes não funcionais.

 

6. Executar testes não-funcionais

 

Quando o ambiente de teste estiver pronto, é altura de executar testes não-funcionais. Pode decidir executar testes por ordem de tipo, por exemplo, começando com testes de desempenho antes de passar a testes de segurança e outros tipos de testes não-funcionais.

Ao realizar cada teste, tome nota dos resultados no seu relatório de teste. Se estiver a automatizar os testes, a sua ferramenta de automatização terá uma forma padronizada de comunicar os resultados de forma clara e inequívoca.

 

7. Relatar resultados de testes

 

Depois de executar cada caso de teste, compilar os resultados dos seus testes não funcionais num único relatório.

Este relatório deve ser claro sobre os resultados de cada teste e inequívoco sobre se cada teste foi aprovado ou reprovado.

Siga uma estrutura padronizada para o seu relatório de teste para se certificar de que toda a informação que necessitará de transmitir está incluída.

 

8. Corrigir defeitos

 

Assim que os resultados do teste estejam disponíveis, devolva o software aos programadores se os testes falharem ou se tiver identificado algum bug não funcional que precise de ser corrigido.

Por exemplo, se o software não lidar com um número adequado de utilizadores ao mesmo tempo ou se o desempenho abrandar demasiado quando vários programas estão em execução ao mesmo tempo, estes problemas terão provavelmente de ser corrigidos dentro do código para assegurar que os utilizadores estão satisfeitos com o produto.

 

9. Repetir o ciclo de testes

 

Uma vez reparados os defeitos encontrados dentro da fase inicial de testes não funcionais, o ciclo de testes pode recomeçar.

Os promotores ensaiarão as mudanças que fizerem e passarão o novo edifício de volta aos testadores de GQ, que realizarão então o conjunto completo de testes, começando com testes de fumo, testes unitários, testes de integração, e finalmente testes de sistema.

O ciclo de testes é repetido até que não ocorram bugs ou defeitos em nenhum ponto, após o que a construção pode entrar na fase final de testes: teste de aceitação pelo utilizador.

 

Casos de teste para testes não-funcionais

artigo de teste da caixa cinzenta - ferramentas, aproximações, teste da comaprisão vs. caixa branca e caixa preta, caixa cinzenta livre e ferramentas empresariais.

Os casos de teste são um aspecto importante de todos os testes de software, e quando estiver a realizar testes funcionais e não funcionais, utilizará casos de teste para definir o que vai testar e como o vai testar.

Cada caso de teste pode ser visto como um mini-teste, e cada caso de teste terá as suas próprias saídas e resultados definidos.

 

1. O que são casos de teste para testes não funcionais?

 

Um caso de teste é um conjunto de acções realizadas num software construído para testar se este satisfaz as condições definidas no plano do software. Cada caso de teste diz efectivamente aos testadores o que testar e como, e foi concebido para testar uma função específica ou uma característica não-funcional da aplicação de software.

Os casos de testes não funcionais podem incluir testar o que acontece quando alguém tenta aceder a dados seguros dentro do sistema ou testar a rapidez com que o software é carregado no arranque.

 

2. Como conceber casos de teste não funcionais?

 

Ao conceber casos de teste para testes não funcionais, é importante seguir as práticas padrão dos casos de teste, tendo em mente os objectivos dos seus testes não funcionais.

Siga os passos abaixo para escrever casos de teste para testes não funcionais que descrevam claramente o que os seus provadores devem fazer para realizar cada teste.

 

1. Defina a área que pretende cobrir

 

Para cada caso de teste, considere qual a área do seu software que este caso de teste vai cobrir.

Por exemplo, se estiver a escrever casos de teste para instalação e actualização, poderá incluir casos de teste que avaliam a facilidade de instalação da aplicação em diferentes dispositivos e quanto tempo leva a actualizar o software utilizando um novo patch.

 

2. Criar um ID de caso de teste único

 

Cada caso de teste deve ter um ID de caso de teste único. Isto facilita encontrar mais tarde a descrição e os resultados do caso de teste e esclarece qualquer confusão sobre a qual caso de teste se refere se dois casos de teste tiverem nomes ou descrições semelhantes.

 

3. Nome e descrição de cada teste

 

Embora o ID do caso de teste identifique o teste, também irá querer fornecer um nome e uma descrição para cada caso de teste que escrever.

Deve ser um nome simples que resume o que se está a testar, enquanto que a descrição é uma única frase que desenvolve isto com um pouco mais de detalhe.

A descrição deve ser suficientemente clara para que os testadores saibam o que testar e como o testar, bem como quaisquer condições particulares que precisem de ser satisfeitas no teste.

 

4. Especificar o resultado esperado

 

Para cada caso de teste, delinear o resultado que deve ocorrer se o software estiver a funcionar como esperado.

Em testes não funcionais tais como testes de desempenho e testes de carga, isto pode significar em muitos casos que o software continua simplesmente a funcionar normalmente sem abrandar, atrasar, ou colidir.

Noutros casos, pode significar que ocorrem mensagens de erro particulares para notificar o utilizador do problema e recomendar uma solução.

 

5. Recomendar técnicas de ensaio

 

Para cada caso de teste, recomende o tipo de técnicas de teste e ferramentas de teste não funcionais que pensa que o testador deve empregar durante o teste.

Em testes não funcionais, os testadores podem utilizar abordagens muito diferentes para diferentes tipos de testes.

Por exemplo, os testes de carga e de esforço podem exigir automatização porque é impraticável simular manualmente tráfego extremamente pesado, enquanto outros tipos de testes podem ser mais fáceis de realizar sem quaisquer ferramentas ou tecnologias específicas.

 

6. Fazer com que cada caso de teste seja revisto por pares

 

Antes de assinar cada caso de teste, faça com que cada caso seja revisto por alguém com quem trabalhe. Isto pode ser outro testador ou uma pista de QA.

Os casos de teste de revisão por pares asseguram que são suficientemente claros para serem seguidos por um terceiro testador e não incluem quaisquer ambiguidades ou erros que possam levar a testes impróprios.

 

3. Exemplos de casos de testes não funcionais

 

Se estiver a escrever casos de testes para testes não funcionais, eles podem parecer-se com os exemplos de testes não funcionais abaixo.

 

Exemplo de teste de escalabilidade

ID do caso de teste: 6671
Nome do caso de teste: Teste de login de múltiplos utilizadores
Descrição: Emule mais de 20 utilizadores a entrar no software ao mesmo tempo, utilizando ferramentas de automatização.
Resultados esperados: O software deve funcionar normalmente para cada utilizador, permitindo que cada utilizador inicie a sessão com sucesso em menos de 5 segundos.

 

Exemplo de teste de compatibilidade

ID do caso de teste: 5214
Nome do caso de teste: Carregar a aplicação no navegador Opera
Descrição: Carregar a aplicação no navegador da web Opera.
Resultados esperados: A aplicação carrega como habitualmente no navegador Opera com resolução e layout de visualização padrão.

 

Testes manuais ou automatizados não-funcionais?

visão por computador para testes de software

Ao escolher entre diferentes técnicas de testes não funcionais, terá de decidir se quer realizar testes manuais ou automatizados não funcionais.

Os testes manuais são realizados por testadores humanos, o que significa que são normalmente mais demorados, mas também oferecem oportunidades para testes exploratórios.

Os testes automatizados não funcionais são mais rápidos e, de certa forma, mais fiáveis, mas também exigem mais recursos ou ferramentas. A automatização e a hiperautomação estão a tornar-se cada vez mais populares nos testes, especialmente quando se trata de testes não-funcionais.

 

Testes manuais não funcionais: Benefícios, desafios e processos

 

Os testes manuais não funcionais são realizados exclusivamente por testadores, que testarão cada elemento individual não funcional de forma independente.

Ao realizar testes manuais não funcionais, os testadores devem recolher informações sobre o software, criar casos de teste individuais que correspondam ao plano de teste, e executar esses casos manualmente.

Isto leva muito tempo, mas também significa que os testadores de GQ têm a liberdade de determinar o que é testado e como.

 

1. Algumas das vantagens dos testes manuais incluem:

 

● Os testes manuais podem ser mais baratos do que os testes automáticos porque não requerem tecnologias específicas ou conhecimentos técnicos.

● Os testes manuais permitem aos testadores oferecer uma visão humana e subjectividade sobre como o software funciona e se funciona de forma satisfatória.

● Os testes manuais podem ser utilizados para realizar testes do sistema em cenários onde é impossível automatizar.

● Os testes manuais permitem aos testadores avaliar os aspectos visuais do sistema, tais como a interface gráfica e outros factores que possam afectar a usabilidade.

● Testes manuais oferecem aos testadores uma perspectiva mais ampla do sistema como um todo e como diferentes módulos e componentes trabalham em conjunto

 

Contudo, há também inconvenientes em relação aos testes manuais.

 

2. Alguns dos desafios dos testes manuais incluem:

 

● Alguns tipos de testes não funcionais, incluindo testes de carga e testes de desempenho, são impraticáveis de realizar manualmente

● Os testes manuais levam consideravelmente mais tempo do que os testes automáticos não funcionais

● Os testadores manuais podem distrair-se, perder o foco, e cometer erros, especialmente quando realizam tarefas de teste muito repetitivas

 

Testes automatizados não-funcionais: Benefícios, desafios, e processos

Os testes automatizados não-funcionais são realizados por scripts e ferramentas de teste automatizados. Ao utilizar métodos de teste automatizados, os testadores podem realizar testes em segundo plano enquanto prosseguem com outras tarefas, uma vez iniciados os testes automatizados.

 

1. Algumas das vantagens da automatização de testes não funcionais são:

 

1. Poupe tempo e recursos, reduzindo o tempo gasto em tarefas morosas e demoradas

2. A automatização torna possível aumentar a cobertura dos testes, cobrindo uma gama mais vasta de componentes e características

3. É mais viável realizar testes automatizados com frequência porque demoram menos tempo a realizar

4. Os testes automatizados são ideais para tarefas de teste demoradas como testes de carga, de volume e de esforço, que são muito difíceis de realizar manualmente.

5. Há uma menor probabilidade de ocorrência de erros ao realizar testes automatizados.

 

Contudo, há também alguns inconvenientes nos testes automatizados, o que significa que nem sempre é a abordagem certa para todos os tipos de testes não funcionais.

 

2. Alguns dos desafios dos testes automatizados não funcionais incluem:

 

1. A instalação de testes automatizados é mais dispendiosa do que os testes manuais

2. O estabelecimento da automatização de testes pode levar tempo e recursos técnicos

3. A automatização dos testes não permite espaço para testes exploratórios

4. A automatização dos testes ainda requer tempo para a criação de casos de teste

 

Conclusão: Manual ou automático

testes não-funcionais?

Benefícios da criação de um Centro de Testes de Excelência. Os testes de desempenho são diferentes dos testes funcionais?

Na maioria dos tipos de testes de software, a combinação de testes manuais e automatizados oferece geralmente os melhores resultados. Isto permite às equipas de teste beneficiar da eficiência, fiabilidade e precisão dos testes automatizados, ao mesmo tempo que realiza testes exploratórios que permitem aos testadores avaliar o software a partir de uma perspectiva mais subjectiva.

Em testes não funcionais, tanto os testes manuais como os automatizados são virtualmente necessários para a maioria das equipas de teste.

Os testes manuais são melhor utilizados para realizar tarefas de teste não funcionais como testes de usabilidade, enquanto os testes automatizados são mais frequentemente utilizados para realizar testes que seriam demasiado morosos e difíceis de realizar manualmente, tais como testes de stress ou testes de volume.

Os testes não funcionais são uma das áreas mais óbvias para a utilização de técnicas de automatização de testes porque é um tipo de teste quantitativo e mensurável que não exige resultados subjectivos.

Tal como com outros tipos de testes, os testes não funcionais são geralmente realizados utilizando uma mistura de testes manuais e testes automatizados.

No entanto, os testes automatizados são praticamente necessários para muitos tipos de testes não funcionais, e os parâmetros e métricas dos testes não funcionais significam que a automatização é mais adequada a este tipo de testes do que os testes funcionais.

Melhores práticas para testes não funcionais

O que é o teste de Software?

Quando efectua testes não funcionais pela primeira vez, seguir as melhores práticas de testes pode ajudá-lo a normalizar o seu processo de testes e optimizar a eficácia dos seus testes.

As melhores práticas servem de directrizes para equipas de teste de software que queiram melhorar os processos de teste e alinhar-se com as normas da indústria.

 

1. Utilizar ferramentas de automatização

 

Em testes não funcionais mais do que em outros tipos de testes, é importante utilizar ferramentas de automação para automatizar certos tipos de testes, especificamente testes de volume, testes de esforço, e testes de carga.

Estes tipos de testes verificam geralmente o bom funcionamento do software sob forte pressão dos utilizadores, dados e tráfego, que podem ser condições muito difíceis de emular manualmente.

A automatização destes tipos de testes não-funcionais será não só mais eficiente mas também mais precisa e permitirá aos testadores replicar facilmente cargas e tensões mais elevadas.

 

2. Revisão por pares de toda a documentação

 

Para além de pedir aos pares que revejam os casos de teste que criar, peça aos pares da sua equipa de teste que revejam relatórios de bugs, relatórios de teste, planos de teste, e outras formas de documentação formal criada durante o processo de teste.

Isto reduz o risco de pequenos erros que poderiam causar sérios atrasos no processo de teste e desenvolvimento.

 

3. Definir requisitos mensuráveis

 

Quando definir os requisitos do seu software antes do início dos testes não funcionais, certifique-se de que cada requisito é objectivo e mensurável.

Isto facilita aos testadores verificar se o software satisfaz estes requisitos durante os testes e não deixa espaço para interpretação.

O que é que conta como ‘rápido’ ou ‘eficiente’? Use números e valores quantitativos para definir o que procura.

 

4. Considerar cuidadosamente as métricas de teste

 

Antes de decidir que métricas vai utilizar para medir o desempenho do seu software, considere o que os utilizadores do software vão querer e que métricas se alinham efectivamente com o plano e requisitos do software.

A maioria do software deve ser rápido e fiável, mas que outras métricas podem os seus utilizadores procurar? Há alguma métrica específica de software que deve considerar durante o processo de teste?

 

Tipos de resultados de um teste não funcional

como funcionam os testes de automação em indústrias como a banca, por exemplo

Quando estiver a realizar testes não funcionais, irá receber diferentes tipos de resultados dos testes que realiza.

Estes são normalmente bastante diferentes dos resultados dos testes funcionais, que são frequentemente mais claros porque os testes funcionais simplesmente testam se uma função está a funcionar como deveria ou não.

Tal como os testes funcionais, os testadores devem estabelecer expectativas claras para cada caso de teste que tornem fácil determinar se cada teste passa ou falha.

 

1. Números absolutos

 

Ao realizar testes de desempenho, testes de stress, e outros tipos de testes não funcionais, os resultados que poderá estar a ver com mais frequência são velocidades e outros números absolutos.

Os testes de desempenho verificam a rapidez com que o sistema pode realizar certas tarefas, e isto será medido em segundos ou milissegundos.

Se estiver a realizar testes de carga, poderá avaliar a quantidade de dados que o software pode tratar de uma só vez sem se avariar ou atrasar.

 

2. Mensagens de erro

 

Os testes não funcionais também verificam como o sistema funciona quando ocorrem erros, tais como erros de segurança, erros de validação, e erros de configuração.

É importante que os sistemas exibam mensagens de erro precisas e claras quando ocorrem erros, para que os utilizadores possam tomar medidas para corrigir o problema e continuar a utilizar o software.

As mensagens de erro também devem ocorrer durante os testes de segurança quando o sistema impede os utilizadores de violar as características de segurança incorporadas no software.

 

3. Crashes

 

A colisão é um sinal de falha do sistema, e normalmente indica que o sistema não é capaz de funcionar ao nível que está a testar e pode significar que o teste passa.

Em alguns casos, o sistema pode cair e ainda assim passar o caso de teste em que está a trabalhar, por exemplo, se o sistema suportar a quantidade necessária de stress ou tráfego antes de cair.

Ao realizar testes não funcionais, os testadores devem esperar que o sistema se despiste regularmente, especialmente ao empurrá-lo para os seus limites para testes de esforço e outros testes de desempenho.

 

Exemplos de testes não funcionais

Testes de ponta a ponta - O que são testes E2E, Ferramentas, Tipos e mais

Os exemplos de testes não funcionais são semelhantes aos exemplos acima para os casos de testes não funcionais.

Pode olhar para exemplos de testes não funcionais para compreender melhor o que são testes não funcionais e o que testa dentro de uma aplicação de software.

 

1. Exemplo de teste de desempenho

 

Se estiver a trabalhar numa aplicação móvel que ligue utilizadores a uma base de dados em linha, é importante que um grande número de utilizadores possa aceder e descarregar os dados a partir desta base de dados ao mesmo tempo.

Esta é também uma parte fundamental dos testes de escalabilidade, particularmente se se quiser aumentar o número de utilizadores na aplicação no futuro.

Terá então de testar como o sistema reage quando, por exemplo, 1000 utilizadores tentam aceder à mesma base de dados ao mesmo tempo e definir requisitos para a rapidez com que a aplicação deve carregar sob esta condição.

 

2. Testes de compatibilidade

 

Se estiver a testar uma nova aplicação de gestão de documentos, terá de testar que funciona em todos os dispositivos a que se destina.

Isto significa testar que pode instalar e carregar a aplicação em todas as versões mais recentes do Windows, Mac, e quaisquer outros sistemas operativos (tais como Linux) com os quais deseja que o software seja compatível.

 

3. Testes de segurança

 

Quando estiver a efectuar testes de segurança, irá testar algumas das formas como as pessoas podem tentar aceder a dados confidenciais ou violar as salvaguardas de segurança do software para verificar se o sistema se comporta como se espera nestas situações.

Por exemplo, pode iniciar sessão como utilizador e tentar aceder a ficheiros que não tem autorização de segurança para se certificar de que o sistema não lhe permite aceder a esses ficheiros.

 

Tipos de erros e bugs detectados

através de testes não-funcionais

zaptest-runtime-error.png

Os testes não funcionais podem revelar muitos bugs e defeitos que não são tão fáceis de encontrar como os identificados nos testes funcionais. Isto porque os testes não funcionais requerem frequentemente que os testadores verifiquem diferentes configurações, configurações e combinações de condições para avaliar o desempenho do sistema numa miríade de configurações diferentes.

 

1. Defeitos de desempenho

 

Os defeitos de desempenho surgem quando o sistema funciona, mas não funciona tão rapidamente ou tão eficientemente como se espera que funcione.

Por exemplo, poderá descobrir que o sistema não carrega suficientemente rápido sob certas condições ou mesmo cai se demasiados utilizadores entrarem ao mesmo tempo.

Os defeitos de desempenho não impedem completamente as pessoas de utilizarem o seu software, mas podem tornar o seu software menos utilizável e menos susceptível de satisfazer os requisitos do utilizador.

 

2. Defeitos de segurança

 

Os defeitos de segurança são aqueles defeitos que afectam a segurança do seu sistema de software e os dados armazenados no mesmo.

Podem surgir defeitos de segurança se, por exemplo, os utilizadores puderem aceder a dados confidenciais aos quais não devem ter acesso ou se certas partes da aplicação não estiverem correctamente protegidas por palavra-passe, ou se a encriptação falhar.

Estas podem resultar em falhas de segurança, que podem ter um sério impacto na reputação de uma editora de software.

 

3. Defeitos funcionais

 

Embora os testes não funcionais não sejam concebidos para testar as funções de uma aplicação de software, em alguns casos os testes não funcionais podem identificar defeitos funcionais dentro do software.

Por exemplo, o objectivo dos testes de fiabilidade não é testar se a aplicação funciona, mas testar se a aplicação funciona de forma fiável em tentativas repetidas.

Isto pode revelar que algumas características não funcionam de forma fiável quando uma acção é repetida, e estas podem ser classificadas como erros funcionais.

 

Métricas comuns de testes não funcionais

vantagens da criação de um centro de ensaio de excelência (TCoE)

As métricas de teste não funcionais descrevem as métricas através das quais o desempenho e eficiência do sistema são medidos.

Os diferentes tipos de testes não funcionais dependem de métricas diferentes, e pode optar por utilizar uma variedade de métricas dependendo dos objectivos finais do projecto.

 

1. Hora

 

As métricas de tempo medem o tempo necessário para executar certas tarefas ou o tempo que os utilizadores têm de esperar para que as funções sejam carregadas.

Alguns exemplos de métricas de tempo são o número de transacções ou downloads que uma aplicação pode fazer dentro de um determinado período de tempo, os tempos de resposta de diferentes funções, e o tempo que a aplicação leva para completar uma determinada operação.

Os diferentes tipos de testes medirão os resultados em segundos ou como uma apresentação de quantas operações por segundo.

 

2. Espaço

 

O espaço é outra métrica importante nos testes não funcionais. A métrica do espaço pode testar quanto espaço de CPU o sistema requer ou quanto espaço no disco rígido o software ocupa, uma vez totalmente instalado.

Alguns exemplos de métricas espaciais incluem memória cache, memória principal, e memória auxiliar.

O software que requer uma grande quantidade de espaço para funcionar sem problemas pode ser adequado para um número menor de clientes.

 

3. Usabilidade

 

Algumas métricas em testes não funcionais têm em consideração a usabilidade do sistema, por exemplo, quanto tempo leva a treinar os utilizadores para utilizar o sistema correctamente, quantas escolhas os utilizadores têm de navegar para realizar funções chave, ou quantos cliques do rato são necessários para realizar certas tarefas.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Os testes não funcionais podem medir quantitativamente cada uma destas métricas, com números mais baixos a implicarem geralmente níveis mais elevados de usabilidade.

 

4. Fiabilidade

 

Outra métrica importante nos testes não funcionais é a fiabilidade. A fiabilidade reflecte a probabilidade de que o sistema se comporte da mesma forma, repetidamente, ou funcione como deveria durante um longo período de tempo.

Alguns exemplos de métricas que são utilizadas para medir a fiabilidade incluem o tempo médio até à falha, taxa de falha, disponibilidade, e probabilidade de inactividade.

Cada uma destas métricas ajuda os testadores a verificar se o sistema pode funcionar durante muito tempo sem sofrer falhas ou colisões.

 

5. Robustez

 

A robustez é a medida de como o sistema lida bem com as falhas e como o sistema se pode recuperar em caso de falha.

Alguns exemplos de métricas que medem a robustez incluem o tempo que o sistema leva para se recuperar após uma falha, a percentagem de incidentes que levam a uma falha catastrófica, e a probabilidade de que os ficheiros de dados sejam corrompidos após a falha do sistema.

Estas são métricas importantes porque os utilizadores esperam que os sistemas possam por vezes falhar sem perder todos os dados ou corromper os ficheiros.

 

6. Portabilidade

 

As métricas de portabilidade medem a facilidade com que o software pode ser transferido para diferentes sistemas ou transferido para um novo local dentro de uma rede.

Alguns exemplos de métricas que medem a portabilidade incluem a percentagem de código não portátil e o número de sistemas em que o software pode ser executado.

Idealmente, o software que pode funcionar em muitos sistemas diferentes é mais portátil e, portanto, mais conveniente para utilização em ambientes que possam exigir transferências ou relocalizações frequentes.

 

Estratégias para a realização de testes não-funcionais

O que são testes unitários?

Quando se inicia um teste não funcional, é importante abordar esta fase de testes com uma estratégia em mente. Os líderes de GQ e os gestores de testes de software devem considerar os riscos dos testes, os recursos de que dispõem, e o objectivo dos testes antes do início dos testes não-funcionais.

O desenvolvimento de uma estratégia pode ajudá-lo a optimizar os seus testes não-funcionais desde o início.

 

1. Atribuir papéis e responsabilidades

 

Antes de iniciar os testes não funcionais, atribuir funções e responsabilidades aos membros-chave da equipa de testes. Isto facilita a gestão da carga de trabalho dos testes não funcionais e assegura que os provadores experientes são responsáveis pela manutenção da qualidade e eficácia dos testes que realiza.

Certifique-se de que as pessoas que escolhe para assumir estas funções têm os conhecimentos e a experiência de que necessitam para realizar as tarefas que espera, particularmente se essas tarefas exigirem competências técnicas.

 

2. Reunir ferramentas de teste relevantes

 

Reúna todas as tecnologias e ferramentas que pretende utilizar para realizar testes não funcionais. Certifique-se de que toda a sua equipa sabe como utilizá-los eficazmente, e conduza formação para preencher lacunas de competências sempre que necessário.

Assegurar que todos sabem quais as ferramentas de teste a utilizar e como utilizá-las antes do início dos testes não funcionais reduz o risco de ter de interromper os testes ou refazer os testes devido a conhecimentos insuficientes.

 

3. Dar prioridade aos testes

 

Antes de iniciar os testes não funcionais, faça uma lista de todos os aspectos do sistema que precisa de testar e estabeleça prioridades com base na urgência e importância.

Pode dar prioridade aos testes não funcionais com base no nível de risco envolvido em cada aspecto do sistema que está a testar.

Por exemplo, testes básicos de segurança podem ter lugar porque uma segurança adequada é considerada extremamente importante no software moderno. Quanto mais cedo identificar defeitos de alto risco, menor o impacto potencial desses defeitos podem ser outros aspectos do sistema.

 

7 melhores ferramentas de teste não-funcionais

melhores testes de software livre e empresarial + ferramentas de automatização RPA

Ferramentas de teste não funcionais podem racionalizar o processo de teste, tornar mais fácil e mais económico automatizar os testes e ajudar os líderes de GQ a gerir o processo de teste e documentação.

Há muitas ferramentas de teste não funcionais gratuitas disponíveis online, bem como algumas ferramentas que podem ser pagas mensalmente para actualizar.

 

1. ZAPTEST edição GRÁTIS

 

ZAPTEST é uma ferramenta de teste de software popular que permite aos utilizadores realizar testes de software funcionais e não funcionais de forma rápida e fácil. Pode utilizar o ZAPTEST para automatizar testes de software e utilizar a tecnologia RPA para emular várias funções e condições em testes não funcionais.

A edição ZAPTEST FREE é apenas uma versão reduzida da edição empresarial, oferecendo muitas das mesmas funcionalidades numa escala menor. Pode procurar apoio no fórum ZAPTEST e realizar testes de desempenho com utilizadores virtuais ilimitados.

 

2. Appium

 

Appium é uma ferramenta gratuita de teste de software que é mais adequada para testar aplicações móveis numa variedade de plataformas diferentes, incluindo tanto dispositivos iOS como Android. A Appium oferece aos utilizadores uma grande flexibilidade para conceberem as suas próprias estruturas de teste e estratégias, ao mesmo tempo que beneficiam das capacidades de automatização que a Appium oferece.

 

3. Loadium

 

Loadium é uma ferramenta de teste não funcional que é melhor utilizada para realizar testes de desempenho e testes de carga, dois tipos de testes não funcionais que são muito mais fáceis de realizar utilizando ferramentas de automação.

Loadium permite aos utilizadores executar testes de carga em grande escala e oferece soluções personalizadas para que possa adaptar os seus testes aos seus objectivos de software.

Pode experimentar o Loadium gratuitamente ou pagar para descarregar a versão completa da aplicação.

 

4. Obkio

 

Obkio é uma ferramenta de teste de software que ajuda os líderes e gestores de testes de GQ a estabelecer prioridades e categorizar questões com base na sua gravidade. Obkio pode detectar problemas antes dos utilizadores, oferece aos utilizadores notificações inteligentes, e pode ajudar a detectar onde se encontra o problema.

Obkio não é apenas para testes não funcionais, mas é um instrumento de teste gratuito altamente útil que pode ser utilizado em todas as fases do ciclo de vida do teste.

 

5. SonarQube

 

O SonarQube é uma ferramenta de teste de segurança de código aberto que pode analisar automaticamente o código para detectar bugs e vulnerabilidades. Escrito em Java, pode utilizar o SonarQube para analisar código em mais de vinte linguagens de programação diferentes e a interface limpa do sistema facilita a detecção de problemas que possam causar vulnerabilidades de segurança no futuro.

 

6. Tsung

 

Tsung é outra ferramenta de teste não-funcional que é ideal se quiser automatizar testes de carga e de stress mas não continue com a versão gratuita de Loadium.

Tsung é uma ferramenta de código aberto que permite aos utilizadores realizar testes de carga de alto volume através de múltiplos protocolos e servidores, incluindo HTTP e SOAP.

Tsung é completamente gratuito e pode ajudar os testadores a garantir que o software em que estão a trabalhar oferece níveis de alto desempenho sob uma variedade de condições desafiantes.

 

7. Sikuli

 

O Sikuli é outra aplicação que utiliza automação de processos robotizada para automatizar o processo de teste. A aplicação pode automatizar qualquer coisa que possa ser vista no ecrã. Pode utilizar o Sikuli para testar aplicações não baseadas na web e para reproduzir rapidamente os bugs.

 

Lista de verificação de testes não funcionais, dicas e truques

Lista de verificação de testes de software

Antes de começar os testes não funcionais, verifique se tem tudo o que precisa para realizar testes não funcionais completos num ambiente preparado.

Siga a lista de verificação abaixo para dicas e truques antes de iniciar testes não funcionais.

 

1. Trabalhar de acordo com um horário

 

Quer o inclua no seu plano de testes ou crie um documento separado para ele, estruture os seus testes de software em torno de um calendário de testes.

Se encontrar mais bugs e defeitos do que espera, pode por vezes desviar-se do horário, mas ter um horário para começar pode ajudar a orientar os testadores e motivá-los a trabalhar eficientemente, especialmente ao realizar testes manuais demorados.

 

2. Identificar a sua equipa de teste

 

Delegar responsabilidades e atribuir membros da sua equipa de teste com funções e títulos oficiais pode ajudar a garantir que o processo de teste decorra sem problemas.

Comunique claramente as funções e responsabilidades dentro da sua equipa antes do início dos testes, e atribua diferentes provadores com a responsabilidade por diferentes aspectos dos testes não funcionais de modo a que cada um seja responsabilizado pelas suas próprias tarefas.

 

3. Seleccionar ferramentas e tecnologias antes de testar

 

Se decidir trabalhar apenas com ferramentas e tecnologia específicas depois de iniciar testes não funcionais, isto pode atrasar o processo de teste e causar confusão entre os testadores.

Em vez disso, faça as suas pesquisas com antecedência e decida se existem quaisquer ferramentas que queira utilizar antes do início dos testes. Isto facilita a incorporação destas ferramentas no plano de teste e a formação dos seus testadores para as utilizar antes do início dos testes.

 

4. Obter sempre a aprovação formal em testes e documentação

 

Os testes são um processo de garantia de qualidade, e a melhor maneira de maximizar o valor dos testes que realiza é realizar uma GQ básica sobre os testes que planeia e executa também.

Introduzir protocolos simples que requerem que os testadores solicitem aos chefes e gestores de GQ que revejam e assinem planos de teste e relatórios de teste antes de passarem à fase seguinte.

Isto aumenta em massa a possibilidade de os erros de teste serem apanhados e corrigidos precocemente.

 

7 erros e armadilhas a evitar ao implementar testes não funcionais

Testes UAT comparativos com testes de regressão e outros

Se é novo nos testes não funcionais, pode ser fácil cometer alguns erros comuns em que os testadores e os profissionais de GQ caem frequentemente.

Os testes não-funcionais são um trabalho complexo que envolve considerar uma construção de software de todos os ângulos e perspectivas.

Abaixo está uma lista de algumas das armadilhas mais comuns que os testadores fazem quando realizam testes não funcionais.

 

1. Não planear

 

Se é novo nos testes não funcionais, pode pensar que pode simplesmente mergulhar directamente na fase de testes sem criar um plano de teste completo com antecedência.

Algumas equipas de teste podem reunir documentos de teste incompletos ou resumos superficiais do plano de teste que não descrevem adequadamente as acções que os testadores devem realizar durante os testes não funcionais.

 

2. Teste de má gestão

 

Podem surgir problemas se os testes forem mal administrados em qualquer fase do processo de teste. Uma gestão inadequada pode significar que os testadores não têm os recursos adequados para realizar testes completos ou que os testadores não dispõem de tempo suficiente para testar cada aspecto da construção.

Os gestores de testes devem ser capazes de aprender com os erros que cometem e desenvolver planos de testes mais eficazes para o futuro.

 

3. Má comunicação

 

A má comunicação pode causar muitos problemas durante o processo de teste, especificamente no âmbito de testes não funcionais.

Isto pode significar má comunicação no seio da equipa de teste ou má comunicação entre os testadores, desenvolvedores, e partes interessadas.

Isto ocorre frequentemente quando os testadores não mantêm os documentos de teste adequadamente ou não comunicam regularmente com outros departamentos durante o processo de teste.

 

4. Ignorando os criadores

 

Os testadores e os programadores trabalham normalmente de forma bastante separada uns dos outros, mas as equipas de teste que trabalham de perto com os programadores podem beneficiar de conhecimentos adicionais sobre como o software funciona e como diferentes módulos interagem uns com os outros.

Envolver os programadores no processo de teste, ou solicitar feedback dos programadores em momentos chave, pode ajudar as equipas de teste a elaborar planos de teste mais eficientes e completos.

 

5. Finalidade dos testes

 

Muitos testadores ainda acreditam que o objectivo dos testes é verificar se o software funciona ou demonstrar aos interessados e investidores que o software funciona.

Em vez disso, os testadores devem abordar os testes com a atitude de que o objectivo dos testes é procurar defeitos.

Os testadores que não encontram defeitos podem ficar satisfeitos por o software que estão a testar só estar livre de bugs se estiverem satisfeitos por terem procurado em todo o lado que defeitos possam ser encontrados.

 

6. Erros manuais vs. erros de automatização

 

É importante gastar tempo a considerar se os testes manuais ou automatizados são melhores para cada tipo de teste que se realiza.

Os métodos de teste automatizados são extremamente adequados a quase todas as formas de testes não funcionais, e as equipas de teste habituadas a testes funcionais podem cometer o erro de assumir que podem testar características não funcionais manualmente com a mesma facilidade.

 

7. Utilização das ferramentas de teste erradas

 

É fácil escolher as ferramentas e tecnologias de teste erradas antes de iniciar testes não funcionais, especialmente se as equipas de teste estiverem habituadas a realizar testes manuais e não estiverem habituadas a utilizar ferramentas de teste.

Pesquise os métodos de teste não funcionais que pretende utilizar com antecedência e escolha ferramentas de software e ferramentas de automação que satisfaçam os requisitos específicos do seu projecto.

 

Conclusão

Os testes não funcionais são um passo essencial no processo de teste que permite aos testadores verificar o desempenho de um sistema e em que medida este cumpre os requisitos não funcionais, tais como tempos de carga, capacidade, e salvaguarda de segurança.

Existem muitas formas diferentes de realizar testes não funcionais, mas as ferramentas de automação contemporâneas facilitam a maximização da cobertura e precisão dos testes sem comprometer a qualidade dos seus resultados.

 

FAQs e recursos

Se quiser saber mais sobre testes não funcionais, há muitas FAQs e recursos disponíveis online.

Navegue abaixo nos nossos recursos favoritos de testes não funcionais online ou leia as respostas a algumas das perguntas mais frequentes sobre testes não funcionais.

 

1. Melhores cursos sobre testes não-funcionais

 

Há muitos cursos disponíveis online que o poderão ajudar a expandir os seus conhecimentos sobre métodos e abordagens de testes não funcionais.

Alguns destes cursos estão disponíveis gratuitamente, e outros podem oferecer um certificado ou qualificação em troca de uma taxa. Se desejar realizar um curso acreditado, poderá perguntar ao seu empregador se o patrocinarão e cobrir o custo das propinas.

 

Alguns dos melhores cursos sobre testes não-funcionais incluem

 

  • TSG: Curso de 2 Dias de Formação Não Funcional

 

  • Udemy: O Bootcamp Completo de Teste de Software 2023

 

  • Edx: Certificado Profissional de Teste de Software

 

  • Educativo: Automação de testes de desempenho 101

 

2. Quais são as 5 principais perguntas da entrevista sobre testes não funcionais?

 

Se se prepara para uma entrevista de trabalho para trabalhar em testes de software, o seu entrevistador pode fazer-lhe perguntas sobre testes não funcionais para se certificar de que compreende como funciona esta fase essencial dos testes de software. Prepare-se para a sua entrevista, preparando respostas eficazes às perguntas comuns da entrevista com antecedência.

● Como podem as abordagens e métodos que utiliza em testes não funcionais diferir das abordagens que utiliza em testes funcionais?

● Como é que os testes não funcionais diferem dos testes funcionais?

● Que tipos diferentes de testes não funcionais existem?

● Como se dá prioridade aos testes funcionais e casos de teste?

● Em que fase dos testes de software são normalmente realizados os testes funcionais?

 

3. Os melhores tutoriais do YouTube sobre testes não-funcionais

 

Se preferir aprender vendo vídeos, poderá encontrar tutoriais do YouTube sobre testes não funcionais uma forma útil de aprender mais sobre este tipo de testes de software.

Abaixo estão alguns dos melhores tutoriais do YouTube sobre testes de software disponíveis hoje em dia.

O que é o Teste de Software Não Funcional? Um Tutorial de Teste de Software
Ajuda para testes de software: Teste não-funcional
Testes Não Funcionais em Testes de Software
Visite W3Escolas
Testes Funcionais e Não Funcionais

 

4. Como manter os testes não funcionais

 

A manutenção adequada dos testes assegura que os testes de software podem ser repetidos sem comprometer a qualidade dos resultados dos testes.

Ao manter testes não funcionais, pode assegurar que os testes em cada fase do processo de desenvolvimento são adequados e que os seus testes são sempre actualizados de acordo com o código em constante mudança.

 

Pode manter testes não funcionais, seguindo as nossas dicas abaixo.

 

● Comunicar claramente entre a equipa de teste ao criar casos de teste e escrever documentação

● Siga sempre as melhores práticas de concepção de testes

● Reavaliar os protocolos de teste em várias fases do processo de teste

● Actualize as alterações no seu teste à medida que avança

Considerar projectos futuros ao fazer alterações aos testes actuais

 

5. Os testes não funcionam com caixa negra ou caixa branca?

 

Os testes não funcionais são um tipo de teste de caixa negra, o que significa que os testadores não estão preocupados com o funcionamento interno do sistema, mas apenas com as suas saídas externas.

Isto contrasta com os testes da caixa branca, que testa a forma como o sistema funciona internamente. Exemplos de testes da caixa branca incluem testes unitários e testes de integração.

Os testes de requisitos funcionais e não funcionais são exemplos de testes de caixas negras. Isto significa que os testadores não requerem competências técnicas avançadas ou conhecimentos de programação informática para realizar testes de caixas negras, nem precisam de aprender a implementar os sistemas que estão a testar.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo