Faculdade Perto

Teste funcional ou não funcional: o que realmente muda?

Entenda como o objetivo avaliado separa testes funcionais e não funcionais, sem confundir automação, nível unitário, desempenho e carga.

Faculdade PertoPublicado em 4 min de leitura

A diferença está no aspecto avaliado. Se a verificação confirma uma funcionalidade ou um comportamento esperado do sistema, ela pode ser classificada como funcional. Se observa desempenho, capacidade de carga ou comportamento sob muitos acessos, seu objetivo é não funcional. A execução manual ou automatizada, por si só, não determina essa classificação.[1, 2]

O objetivo da verificação define a categoria

Um teste funcional procura confirmar o que uma funcionalidade faz. A fonte inclui nessa categoria tanto verificações de novas funcionalidades quanto testes unitários que validam comportamentos funcionais.[1]

Um teste não funcional dirige a observação para características como desempenho, capacidade de carga e comportamento do sistema quando há níveis elevados de acesso. A pergunta deixa de ser apenas se a funcionalidade realiza a ação esperada e passa a considerar aspectos como velocidade ou capacidade do ambiente.[2]

Por isso, a classificação pode começar com uma pergunta simples: qual aspecto está sendo observado? Se o foco é o comportamento da função, a verificação pode ser funcional. Se o foco é tempo de resposta, volume suportado ou reação a muitos acessos, o objetivo está entre os aspectos não funcionais descritos pelas fontes.[1, 2]

Manual e automatizado são formas de execução

Uma verificação não se torna não funcional apenas porque foi automatizada. Um teste continua sendo funcional quando verifica uma funcionalidade do sistema, independentemente de sua execução manual ou automatizada.[1]

A relação inversa também não deve ser presumida. Testes não funcionais podem ser executados manualmente ou por automação. Assim, encontrar um script, uma ferramenta ou uma ação humana não basta para classificar o teste sem examinar o que está sendo medido.[2]

Essa separação evita usar automação como sinônimo de categoria. “Funcional” e “não funcional” descrevem o objetivo avaliado nas fontes fornecidas, enquanto “manual” e “automatizado” indicam como a verificação é executada.[1, 2]

Duas perguntas para não confundir o teste: infográfico ilustrado do curso Quality Assurance
Infográfico: Duas perguntas para não confundir o teste · material do curso de Quality Assurance

Um teste unitário pode ser funcional

O teste unitário verifica isoladamente o comportamento de métodos ou unidades de código. Embora seja automatizado e realizado em baixo nível, ele pode ser considerado funcional quando valida a função executada por aquela unidade.[3]

Isso mostra por que nível e categoria não são equivalentes. “Unitário” informa que a observação está concentrada em uma unidade de código; não determina sozinho se o aspecto avaliado é funcional ou não funcional. Quando a unidade é verificada para confirmar seu comportamento, a classificação funcional permanece possível.[3]

Portanto, chamar um teste de unitário não resolve toda a classificação. Ainda é necessário observar o propósito da verificação: confirmar uma função executada pela unidade é o caso funcional explicitamente sustentado pela fonte.[3]

Qualidade exige escolhas: infográfico ilustrado do curso Quality Assurance
Infográfico: Qualidade exige escolhas · material do curso de Quality Assurance

Desempenho e carga mudam a pergunta

Uma verificação manual de desempenho pode observar quanto tempo uma operação leva para responder. Também pode acompanhar a velocidade de transferências, como uploads e downloads, ajudando a identificar respostas ou movimentações de arquivos excessivamente lentas.[4]

Carga amplia a observação para a capacidade do sistema e para seu comportamento sob níveis elevados de acesso. As fontes relacionam avaliações de carga e estresse à verificação de que os ambientes suportam a quantidade prevista de usuários.[2, 5]

Essas avaliações não aparecem como responsabilidade exclusiva de profissionais de QA. Equipes ligadas à infraestrutura e a DevOps também podem executar testes de carga e estresse, especialmente quando a capacidade dos ambientes faz parte do que precisa ser observado.[5]

A participação de outras áreas decorre, nas fontes, do aspecto examinado. Confirmar o comportamento funcional de uma operação não fornece, sozinho, a observação de tempo, volume de acessos ou capacidade do ambiente exigida por avaliações de desempenho e carga.[1, 2, 5]

Um exemplo compacto de classificação

Considere uma funcionalidade de envio de arquivo. Verificar se a unidade responsável executa isoladamente a função esperada pode ser um teste unitário e funcional, mesmo que automatizado.[3]

Observar manualmente quanto tempo o upload leva muda o aspecto avaliado para desempenho. Medir o comportamento do sistema diante de muitos acessos ou verificar se o ambiente suporta a quantidade prevista de usuários direciona a avaliação para carga ou estresse.[2, 4, 5]

A proteção de dados também representa uma pergunta diferente da simples confirmação de que a função executou seu comportamento. Entretanto, as fontes fornecidas não descrevem critérios, técnicas, ferramentas ou participantes para testes de segurança. Por esse limite documental, não é possível detalhar aqui como essa avaliação deve ser planejada ou executada.

A distinção central permanece verificável: a forma de execução e o nível do teste não substituem a identificação do aspecto avaliado. Uma automação unitária pode confirmar comportamento funcional, enquanto tempo de resposta e capacidade sob carga exigem observações próprias e podem envolver infraestrutura ou DevOps além de QA.[3, 4, 5]

A relação desta distinção com os módulos introdutórios de Quality Assurance pode ser consultada no conteúdo relacionado do curso.

Fontes consultadas

Obras e aulas usadas na redação deste guia. Os números no texto levam a elas.

  1. Testes Funcionais X Testes Não Funcionais, Many - QA | Migração para TI • Teste de Software, tempo 00:01:48 a 00:02:40
  2. Testes Funcionais X Testes Não Funcionais, Many - QA | Migração para TI • Teste de Software, tempo 00:08:50 a 00:09:44
  3. Testes Funcionais X Testes Não Funcionais, Many - QA | Migração para TI • Teste de Software, tempo 00:03:41 a 00:04:30
  4. Testes Funcionais X Testes Não Funcionais, Many - QA | Migração para TI • Teste de Software, tempo 00:10:41 a 00:11:30
  5. Testes Funcionais X Testes Não Funcionais, Many - QA | Migração para TI • Teste de Software, tempo 00:09:45 a 00:10:39

Continue lendo