Performance Computacional
Teste de Software
Definição: Teste de software é o processo de investigação para determinar se o software atingiu as especificações de funcionamento para o ambiente ao qual foi projetado.
Os Tipos de Teste de Software.
-
Teste de instalação e configuração
-
Teste de integridade
-
Teste de Segurança
-
Teste funcional
-
Teste de unidade
-
Teste de integração
-
Teste de volume
-
Teste de performance
-
Teste de usabilidade
-
Teste de regressão
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 Segurança
O Teste de Segurança e Teste de Invasão visam identificar as falhas de segurança de um software ou ambiente em que está sendo executado. Avaliar as vulnerabilidades em aplicações e serviços frente a diferentes tipos de ataques de segurança.
Como resultado, sugerir correções ou melhores medidas de segurança.
Teste Funcional
Testa os requisitos funcionais da aplicação e software. Resumidamente verificar se a aplicação está apta a realizar as funções na qual foi desenvolvida para fazer.
O teste funcional pode ser manual, realizado de forma automatizada ou uma mistura dos dois.
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 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 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 Performance
Consiste em avaliar a capacidade de resposta, 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.
Em particular, o objetivo de tais experiências pode ser o de garantir que o software não apresente problemas ou indisponibilidade em condições de insuficiência dos recursos computacionais (como memória, processamento ou espaço em disco), quando trabalhando em alta concorrência.
São diversas a estratégias de teste, como: Teste de Carga, O Teste de estresse (Stress Testing), Teste de longa duração ou Teste de Resistência, Teste de Subida Rápida, Teste de Configuração.
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.
Também se outras questões podem melhorar esta experiência, como um fundo ruim, fontes ou tamanho de imagens que podem prejudicar a usabilidade.
É importante avaliar no local final onde o sistema será executado. Por exemplo: Muitas vezes sistema é desenvolvido para utilizar toda a tela, mas na vida real, o utilizador precisa dividir a tela com outros sistemas. Ou a simples falta de um campo com preenchimento automático, pode aumentar muito o tempo de atendimento durante o dia de trabalho.