O que é o teste de caixa preta?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Conheça esta técnica essencial de garantia de qualidade, na qual o funcionamento interno está oculto, mas os erros são detetados.

Os testes de caixa preta são um tipo de teste de software em que se examina a funcionalidade de um programa sem conhecer o seu funcionamento interno. Pense nisto como tentar resolver um puzzle sem saber como foi montado. 

Enquanto profissional de testes com quase 10 anos de experiência, tenho todo o gosto em partilhar consigo os meus conhecimentos sobre testes de caixa preta. Neste artigo, vou explicar em detalhe o que são os testes de caixa preta, como funcionam e porque são essenciais no processo de desenvolvimento de software. Por isso, prepare-se e vamos começar!

O que são testes de caixa preta?

um infográfico que explica o que são testes de caixa preta para testes de software

Os testes de caixa preta são uma abordagem de testes em que os testes são realizados sem qualquer conhecimento da estrutura interna da aplicação em teste (AUT). Em contraste com os testes de caixa branca, que se baseiam numa compreensão aprofundada do código-fonte da aplicação e são realizados pela equipa de desenvolvimento.

Os testes de caixa preta são normalmente realizados pela equipa de garantia da qualidade e concentram-se nas entradas e saídas da aplicação. Os profissionais de testes utilizam entradas válidas e inválidas e observam os resultados. Por vezes, são designados por testes comportamentais, porque são realizados a partir da perspetiva do utilizador final.

Os testes de caixa preta podem ser aplicados em qualquer nível de testes: testes unitários, testes de integração, testes de sistema e testes de aceitação pelo utilizador. Existe também uma grande variedade de ferramentas de testes de caixa preta que permitem tirar partido desta abordagem aos testes de software com facilidade.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Tipos de testes de caixa preta 

Testes funcionais: referem-se a um tipo de testes em que verificamos O QUE a aplicação faz. Os casos de teste podem ser escritos com base nos requisitos funcionais. Por exemplo, os testes funcionais de um ecrã de início de sessão podem incluir:

  • Iniciar sessão com credenciais válidas e verificar a hiperligação “Esqueceu-se da palavra-passe?”.
  • Verificar a funcionalidade “Lembrar-me”.
  • Testes negativos, como iniciar sessão com credenciais inválidas e tentar iniciar sessão sem os dados obrigatórios.

Testes não funcionais: referem-se a COMO a aplicação faz aquilo que faz. Também podemos ter requisitos de software não funcionais. Por exemplo, a rapidez com que uma página deve carregar, quantos utilizadores simultâneos deve aceitar,  ou que diretrizes de acessibilidade deve cumprir. Existem vários subtipos de testes não funcionais que podemos considerar durante o processo de testes (e dependendo das especificações dos requisitos):

  • Testes de usabilidade: normalmente, concentram-se na facilidade com que o utilizador final consegue aceder às funcionalidades da aplicação.
  • Testes de acessibilidade: aqui, verificamos se a aplicação é acessível a todos os utilizadores, incluindo pessoas com deficiência. 
  • Testes de desempenho: testes ao desempenho da aplicação. É um tipo de testes mais adequado à automatização, em que são utilizadas ferramentas de teste. Por exemplo, nos testes de carga, podemos tentar testar a aplicação com um grande número de utilizadores simultâneos, algo que não conseguimos fazer manualmente.
  • Testes de segurança: testamos a segurança da aplicação e o nível de proteção dos dados sensíveis. Incluem metodologias de teste como os testes de penetração.

Testes de regressão: este é um tipo de testes em que verificamos se as funcionalidades existentes não foram afetadas pelo código recentemente adicionado.

Repetição de testes: um tipo de testes em que verificamos se uma funcionalidade que anteriormente não funcionava foi corrigida.

Testes de caixa preta vs. caixa branca

O “oposto” da caixa preta é o tipo de teste de caixa branca — também conhecido como teste de caixa transparente. Os testes de caixa branca são normalmente realizados pelos programadores da equipa e concentram-se no código-fonte da aplicação em teste.

Vejamos as principais diferenças entre os dois:

  • Os testes de caixa preta são realizados sem conhecimento do funcionamento interno da aplicação, enquanto os testes de caixa branca envolvem conhecimento do código-fonte.
  • Nos testes de caixa preta, não é necessário ter conhecimentos de programação; os testes de caixa branca envolvem normalmente a criação de testes automatizados para alcançar uma cobertura de testes adequada.
  • Os testes de caixa preta são da responsabilidade da equipa de QA, enquanto os testes de caixa branca são realizados pela equipa de desenvolvimento.
  • Os testes de caixa preta utilizam técnicas como o particionamento de equivalência, a análise de valores-limite, as tabelas de decisão e a transição de estados (mais informações abaixo). As técnicas de testes de caixa branca incluem a cobertura de instruções, a cobertura de ramos e a cobertura de condições.
  • Ao contrário dos testes de caixa branca, que exigem frequentemente um conhecimento profundo da base de código, os testes de caixa preta permitem que os testadores se concentrem no comportamento da aplicação. No entanto, ambas as abordagens requerem a utilização de ferramentas fiáveis de gestão de bases de dados para obter resultados ideais
  • Os testes de caixa branca são mais adequados para níveis inferiores de testes (como testes unitários ou de integração), enquanto os testes de caixa preta são realizados em níveis superiores (testes de sistema e de ponta a ponta, bem como testes de aceitação do utilizador).

Uma combinação dos dois é o tipo de teste de caixa cinzenta, em que os testadores têm acesso a algumas informações sobre o funcionamento interno do software, como a sua arquitetura ou estrutura da base de dados, mas não a toda a base de código. Isto permite-lhes testar o software de forma mais aprofundada do que com os testes de caixa preta, mas sem o conhecimento e controlo completos do sistema proporcionados pelos testes de caixa branca.

More Articles

Técnicas de testes de caixa preta

Para alcançar uma boa cobertura de testes, existem várias técnicas de testes de caixa preta que podem ser aplicadas ao criar casos de teste:

Análise de valores-limite: utilizando esta técnica, são identificados os valores extremos de entrada e os cenários de teste abrangem apenas esses valores. Estatisticamente, estes valores de “limite” têm maior probabilidade de detetar erros.

Particionamento de equivalência: nesta técnica, os possíveis valores de entrada são divididos em classes de equivalência. Espera-se que cada valor de uma classe de equivalência produza o mesmo resultado, pelo que será suficiente um caso de teste para cada classe para obter uma cobertura completa. Devemos abranger tanto as entradas válidas como as inválidas.

Testes com tabelas de decisão: um método de teste em que os casos de utilização são derivados de regras que utilizam combinações de entradas e os respetivos resultados esperados.

Testes de transição de estados:  uma técnica de teste de software que se concentra em testar o comportamento de uma aplicação de software à medida que esta transita entre diferentes estados.

Antecipação de erros: uma técnica baseada na experiência, em que os testadores utilizam a sua intuição e experiência para antecipar e descobrir erros no sistema, com base nos seus conhecimentos anteriores e na compreensão dos potenciais pontos de falha.

Conclusão 

Os testes de caixa preta são um componente essencial dos testes de software, ajudando a garantir a qualidade e a funcionalidade de um software. Ao testar a aplicação da perspetiva do utilizador final, os testes de caixa preta podem ajudar a encontrar problemas que, de outro modo, poderiam não ser detetados.

Os testes de caixa preta são uma ferramenta prática para identificar defeitos funcionais no software. Ao testar as entradas e saídas do sistema e verificar se este se comporta conforme esperado, os testadores podem compreender melhor o funcionamento do software e identificar áreas onde podem ser feitas melhorias. De um modo geral, os testes de caixa preta devem ser parte integrante de qualquer estratégia abrangente de testes de software, para garantir que o software é fácil de utilizar, fiável e livre de defeitos funcionais.


Se gosta de artigos sobre testes de software, considere subscrever o boletim informativo do QA Lead!

Andreea Draniceanu
Hi there! My name is Andreea, I’m a software test engineer based in Romania. I’ve been in the software industry for over 10 years. Currently my main focus is UI test automation with C#, but I love exploring all QA-related areas 😊

You may also like