Fundamentos do Teste de Software, Os tipos de testes.
Testar um Software não é uma tarefa simples, diversos requisitos precisam ser verificados e analisados.
Abaixo explicamos cada um deles.
Levantamento dos requisitos e execução de testes funcionais. Teste conduzido para demonstrar a operacionalidade das funções que foram especificadas. O teste funcional é realizado olhando-se o software apenas através de suas interfaces, portanto testando sua funcionalidade.
Técnicas comuns do teste funcional e teste de software.
Existem diversas maneiras de se testar um software, vamos descrever abaixo, para conhecimento, as principais técnicas normalmente informadas na literatura.
Teste de Caixa-branca:
Também chamada de teste estrutural, a técnica de caixa-branca avalia o comportamento interno do software.
Esta técnica de teste avalia o comportamento interno do componente de software, trabalhando diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos
Teste de Caixa-Preta:
Esta técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Haverá sucesso no teste se o resultado obtido for igual ao resultado esperado. O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas e/ou componentes ou mesmo uma funcionalidade. A técnica de teste funcional é aplicável a todos os níveis de teste.
Existem também as Técnicas não funcionais, são técnicas utilizadas para verificar a operação correta do sistema em relação a casos inválidos ou inesperados de entrada. Outras técnicas de teste existem para testar aspectos não-funcionais do software, como por exemplo, os testes de desempenho, teste de carga ou teste de usabilidade. As técnicas não funcionais verificam atributos de um componente ou sistema que não se relacionam com a funcionalidade (por exemplo, confiabilidade, eficiência, usabilidade, performance, manutenção e portabilidade).
Teste de Regressão:
O teste de regressão é uma técnica do teste de software que consiste na aplicação de versões mais recente do software, para garantir que não surgiram novos defeitos em componentes já analisados. Se ao juntar o novo componente ou as suas alterações, com os componentes restantes do sistema e surgirem novos defeitos em componentes inalterados, então se considera que o sistema regrediu.
Muito comum a utilização de testes automatizados para reduzir o tempo de testes.
Teste de Unidade
É o teste básico em um software, fornecendo valores válidos ou inválidos e verificando se o retorno foi de acordo com o esperado.
Teste de Integração
É a fase do teste de software em que módulos são integrados e testados em grupo. Como por exemplo, seu software acessando um banco de dados ou fazendo uma chamada externa a outros sistemas.
Teste de volume
O teste de volume submete uma certa quantidade de dados ao sistema para determinar seu comportamento. Vai depender da estratégia adotada. Pode submeter uma estimativa de 1 ano de utilização, por exemplo, para avaliar o comportamento. Ou submeter uma entrada de dados do volume máximo de dados em cada campo ou a criação de consultas que retornem todo o conteúdo do banco de dados.
Teste de Instalação e Configuração.
Basicamente no teste de Instalação e teste de configuração são verificadas o comportamento do sistema em diferentes configurações de software e hardware. Se o software funciona corretamente nas configurações de hardware e software especificados.
Teste de Integridade.
Verificar se os componentes envolvidos vão permanecer integros mesmo com um alto volume de dados. Por exemplo, verificar o comportamento de uma tabela com milhões de registros.
Teste de Usabilidade
Levantamento em conjunto com os reais usuários do sistema e verificar a facilidade que o software ou sistema desenvolvido possui de ser claramente compreendido e manipulado pelo usuário.
Teste de Invasão e Segurança (Pen Testing)
Visa identificar as falhas e vulnerabilidades de segurança de um software ou ambiente e aproveitá-las para invadi-lo, obtendo acesso indevido a informações e recursos de forma controlada. Seus resultados auxiliam a direcionar o gerenciamento dos riscos de segurança da informação, determinando prioridades e selecionando controles a serem implementados.
Teste de Performance
Em Teste de Software, o Teste de Performance ou Teste Desempenho consiste em avaliar a capacidade de resposta, ponto de exaustão, robustez, disponibilidade, confiabilidade e escalabilidade de uma aplicação, conforme a quantidade de conexões simultâneas, avaliando seu desempenho em alta carga de trabalho e considerando seu comportamento em circunstâncias normais.
