,

O que é teste de software?

Existem muitas definições de teste de software, mas ficamos com o conceito do criador da metodologia, Glenford J. Myers, que escreveu “O teste de software é um processo ou uma série definida de processos, projetados para garantir que o código desenvolvido irá fazer o que foi projetado para fazer, e, inversamente, que ele não faça nada fora desta intenção. Um bom software deve ser previsível e consistente, sem oferecer surpresas ao usuário” – The Art of Software Testing, 3 edição.

Mas é claro que não é bem assim que acontece! O esperado é que muitos erros sejam detectados e corrigidos.

O processo de software testing é muito mais amplo do que rodar programas de teste ou homologar o sistema para encontrar bugs. Além disso, demanda vários tipos de profissionais para realizar o teste: programador, analista de sistemas, analista de testes e o usuário final.

É necessário realizar o processo de validação e verificação de um programa de software e analisar:

  • Se o sistema atende aos requisitos técnicos;
  • Se todas as regras de negócios que foram especificadas no projeto foram contempladas;
  • Se ele pode ser implementado ou não.

Os testes de software são extremamente importantes e garantem o sucesso do projeto quando bem dimensionados e executados. A ideia principal é agregar valor ao projeto aumentando a qualidade do software, de acordo com a norma ISO 9126, que são a funcionalidade, a escalabilidade, a confiabilidade, a usabilidade, a eficiência, a portabilidade e a manutenibilidade. E a melhor forma de subir os índices de qualidade é encontrar o máximo de erros e corrigi-los antes da entrega ao usuário final.

Existem diversas técnicas de teste de software que devem ser escolhidas de acordo com o sistema, linguagem, metodologia de desenvolvimento ou fase do ciclo de vida do sistema. Vamos falar das mais utilizadas:

Teste Estrutural ou Caixa Branca

O código-fonte é analisado e precisa estar de acordo com o Caso de Teste. Esta é a parte mais precisa e lógica de um teste nesta modalidade após elaborar o documento com os casos de teste que contemplem todas as funcionalidades do programa. Mais usado pelos programadores nas fases de manutenção e depuração e para aumentar a confiabilidade do sistema.

Teste Funcional ou Caixa Preta

Imprescindível na fase de desenvolvimento de um sistema, contempla as funcionalidades adequadas às regras de negócio, detecta erros de navegação, comportamento e desempenho. Os resultados esperados que foram detalhados no documento de Caso de Testes devem ser validados no sistema e os resultados devem ser iguais.

Teste Não Funcional

Aqui vale a imaginação, criatividade e experiência do homologador: prever situações que não foram contempladas no projeto e inclusão de erros propositais para ver como o sistema irá se comportar.

Teste de Estresse

Muito usado para avaliar eficiência e alta disponibilidade, principalmente em sistemas mais complexos, o objetivo é carregar o sistemas com muitas condições de saturação e estresse de dados para ver como o sistema se comporta: memória insuficiente, recursos limitados, falha de energia, hardware no máximo de CPU ou carga máxima no banco de dados.

Começar os testes de software desde o início do ciclo de desenvolvimento de um sistema garante um menor número de erros no momento da entrega ao usuário final, assegurando não só a qualidade do software como agregando valor ao negócio. Iremos detalhar mais sobre outros tipos de testes nos próximos posts como os testes integrados, unitários e ponta a ponta. Fique ligado e assine nossa newsletter para saber mais sobre software testing.