Toda a corporação presta serviços de missão crítica através de suas aplicações, ou seja, não podem sofrer qualquer interrupção no seu funcionamento. Para esse efeito, os testes de software têm a responsabilidade de otimizar a gestão destes recursos, de forma a antecipar possíveis falhas que possam surgir para os usuários finais, podendo ser realizados pelos developers ou por profissionais especializados, os Quality Assurance (QA) specialists.
Vamos descobrir mais sobre os testes de software e o seu papel no sucesso de um produto.
Segundo a International Software Testing Qualifications Board (ISTQB), os níveis de testes correspondem a grupos de atividades de testes organizados e gerenciados juntos, sendo que cada nível equivale a uma instância do processo de teste.
Existem os seguintes níveis de testes:
Os tipos de testes representam um grupo de atividades de teste focado em testar características específicas do sistema, ou parte do sistema baseado nos seus objetivos. Subdividem-se em:
Quanto maior a visibilidade do código, maior a visibilidade de como a funcionalidade é feita, menores as quantidades de requisitos e regras de negócio testadas, e maior é a transparência do teste, aproximando-se de um teste de caixa branca. Em contrapartida, quanto menor é a visibilidade do código, menor a visibilidade de como a funcionalidade é feita, maiores as quantidades de requisitos e regras de negócio, e menor é a transparência do código, aproximando-se gradualmente de um teste de caixa preta. A imagem abaixo ilustra esta ideia.

Qualquer um dos níveis e tipos de testes de software mencionados acima pode ser executado de duas formas:
Cada tipo de teste pode ser aplicado em ambientes diferentes, onde as aplicações estão instaladas, e em fases de desenvolvimento diferentes de acordo com a infraestrutura, necessidade e budget de cada projeto/aplicação, tal como demonstra a figura abaixo.

Normalmente, a quantidade de testes unitários desenvolvida é relativamente maior do que a de testes de integração (também denominados testes de serviço) e a de testes de UI (englobados no nível de testes de sistema), pois têm um custo menor, são menos específicos e mais rápidos de desenvolver.
Esta lógica é ilustrada pela pirâmide de testes de software:

Entre os mais comuns testes de software desenvolvidos estão os testes unitários, os testes de integração e, por vezes, os testes de UI. São criados diferentes níveis de testes, considerando as suas particularidades:
Com o objetivo de entregar um produto de alta qualidade, com baixo custo e tempo investido, deve ser considerada uma mescla de testes, considerando que podem ser executados de forma manual ou automatizada. Porém, os tipos de testes e a quantidade a ser desenvolvida dependem da escalabilidade da aplicação, budget, tempo de projeto e necessidade do produto.
Toda a corporação presta serviços de missão crítica através de suas aplicações, ou seja, não podem sofrer qualquer interrupção no seu funcionamento. Para esse efeito, os testes de software têm a responsabilidade de otimizar a gestão destes recursos, de forma a antecipar possíveis falhas que possam surgir para os usuários finais, podendo ser realizados pelos developers ou por profissionais especializados, os Quality Assurance (QA) specialists.
Vamos descobrir mais sobre os testes de software e o seu papel no sucesso de um produto.
Segundo a International Software Testing Qualifications Board (ISTQB), os níveis de testes correspondem a grupos de atividades de testes organizados e gerenciados juntos, sendo que cada nível equivale a uma instância do processo de teste.
Existem os seguintes níveis de testes:
Os tipos de testes representam um grupo de atividades de teste focado em testar características específicas do sistema, ou parte do sistema baseado nos seus objetivos. Subdividem-se em:
Quanto maior a visibilidade do código, maior a visibilidade de como a funcionalidade é feita, menores as quantidades de requisitos e regras de negócio testadas, e maior é a transparência do teste, aproximando-se de um teste de caixa branca. Em contrapartida, quanto menor é a visibilidade do código, menor a visibilidade de como a funcionalidade é feita, maiores as quantidades de requisitos e regras de negócio, e menor é a transparência do código, aproximando-se gradualmente de um teste de caixa preta. A imagem abaixo ilustra esta ideia.

Qualquer um dos níveis e tipos de testes de software mencionados acima pode ser executado de duas formas:
Cada tipo de teste pode ser aplicado em ambientes diferentes, onde as aplicações estão instaladas, e em fases de desenvolvimento diferentes de acordo com a infraestrutura, necessidade e budget de cada projeto/aplicação, tal como demonstra a figura abaixo.

Normalmente, a quantidade de testes unitários desenvolvida é relativamente maior do que a de testes de integração (também denominados testes de serviço) e a de testes de UI (englobados no nível de testes de sistema), pois têm um custo menor, são menos específicos e mais rápidos de desenvolver.
Esta lógica é ilustrada pela pirâmide de testes de software:

Entre os mais comuns testes de software desenvolvidos estão os testes unitários, os testes de integração e, por vezes, os testes de UI. São criados diferentes níveis de testes, considerando as suas particularidades:
Com o objetivo de entregar um produto de alta qualidade, com baixo custo e tempo investido, deve ser considerada uma mescla de testes, considerando que podem ser executados de forma manual ou automatizada. Porém, os tipos de testes e a quantidade a ser desenvolvida dependem da escalabilidade da aplicação, budget, tempo de projeto e necessidade do produto.