RESUMO 

Teste de software é o processo de avaliação de um programa de software para garantir que ele desempenhe a finalidade pretendida. O teste de software verifica a segurança, confiabilidade e funcionamento correto do software. A crescente necessidade de software de qualidade torna o teste de software uma etapa crucial no ciclo de vida de desenvolvimento de software. Existem muitos métodos de teste de software, no entanto, a escolha do método para testar um determinado software continua sendo um grande problema no teste de software. Embora seja muitas vezes impossível encontrar todos os erros no software, empregar a combinação certa de métodos tornará o teste de software eficiente e bem-sucedido. Conhecer esses métodos de teste de software é a chave para realizar a seleção certa. Este artigo apresenta um estudo abrangente de métodos de teste de software. Uma explicação das Categorias de Teste foi apresentada primeiro, seguida por Níveis de Teste (e sua comparação), depois Técnicas de Teste (e sua comparação). Para cada Níveis de Teste e Técnicas de Teste, exemplos de alguns tipos de teste e seus prós e contras foram fornecidos com uma breve explicação de alguns dos tipos de teste importantes. Além disso, foi fornecida uma explicação clara e distinguível de dois termos confusos e contraditórios (Verificação e Validação) e como eles se relacionam com a Qualidade de Software.  

Teste  

Software envolve muitos aspectos técnicos e não técnicos (como especificação, projeto, implementação, instalação, manutenção e questões de gerenciamento) em engenharia de software. Cerca de 50% do tempo e esforço de desenvolvimento de projetos de software são colocados em testes de software. O teste de software é definido como o processo de avaliação de um programa de software com a intenção de encontrar falhas ou erros no software. O teste é feito para; garantir que o software desempenhe corretamente o seu propósito pretendido, acesse, alcance e preserve a qualidade de um software, e assim verifique se o software está apto para uso. No SDLC, o software não é considerado concluído até que tenha passado em seus testes [6] e quanto mais cedo um erro for detectado, mais barato será corrigi-lo. O objetivo geral do teste não é demonstrar que o software está livre de erros, mas dar confiança de que o software está funcionando bem antes da instalação. 

CATEGORIAS DE TESTES (ABORDAGENS)  

Testes Estático e Dinâmico são às duas abordagens de teste que são ocasionalmente inseparáveis, mas na maioria das vezes são discutidas separadamente. A abordagem de teste Estático é feita sem executar o programa sendo chamada de “atividades de verificação”, enquanto a abordagem de teste Dinâmico envolve a execução do programa com entradas reais, a maioria da literatura atual refere-se ao teste dinâmico como “teste”.  

Abordagem de teste estático: envolve apenas código-fonte e lida com programa e análise simbólica, verificação de modelo, tratamento de erros e inspeção de código para garantir que os requisitos funcionais, design e padrões de codificação sejam observados e estimam a qualidade do software sem qualquer referência às execuções reais. Verificação de mesa, passo a passo de código e inspeções formais são as técnicas comumente usadas aqui.  

Abordagem de Teste Dinâmico: envolve execuções reais de código para verificar e/ou aproximar a qualidade do software e lida com uma combinação de entradas, uso de procedimentos de teste estruturalmente ditados e automação de geração de ambiente de teste para testar o design interno do software.

 NÍVEIS DE TESTE DE SOFTWARE  

Unidade: este teste enfatiza a unidade individual ou módulo isoladamente. É um teste onde a menor parte testável do software é testada para verificar sua funcionalidade em relação à sua especificação. A unidade pode ser um construtor ou um destruidor ao nível de classe no ambiente orientado a objetos e uma estrutura no paradigma de programação procedural. Teste de fluxo de controle e teste de fluxo de dados são alguns dos tipos de teste de unidade. O teste de unidade é geralmente realizado por desenvolvedores.  

Teste de integração: envolve testar duas ou mais unidades combinadas que devem trabalhar juntas para garantir um fluxo de controle e dados sem erros (como consistência de parâmetros, formato de arquivo e assim por diante) entre unidades combinadas e seu projeto geral correto

Teste do sistema: envolve testar um software completo integrado para verificar sua conformidade com seus requisitos. Ele verifica a interação geral dos componentes para garantir o funcionamento unânime os módulos e programas sem erros. Envolve vários tipos de testes funcionais (testes de funcionalidade de software) e não funcionais (testes de qualidade de software), como testes de desempenho, confiabilidade, usabilidade e segurança. O teste do sistema é realizado pela equipe de teste.  

Teste de aceitação: este teste é realizado para validar o software em relação aos requisitos do cliente. Esse teste é feito para garantir que o software faça o que o cliente deseja e verificar a aceitabilidade do sistema. O teste de aceitação do usuário (UAT), como às vezes chamado, é composto por dois tipos de teste: teste alfa: é o teste realizado pela equipe de desenvolvimento e pelos usuários usando dados inventados e teste beta onde os usuários começam a usar o software com dados reais e cuidadosamente observar o software em busca de erros.

TÉCNICAS DE TESTE DE SOFTWARE  

Estas são as várias técnicas usadas no teste de software para garantir que ele funcione conforme o esperado. As técnicas de teste especificam a estratégia usada no desenvolvimento de casos de teste para conduzir o teste e na análise dos resultados do teste enquanto aumenta a cobertura do teste (já que o teste exaustivo não é possível) para obter testes mais eficazes. Eles ajudam a identificar condições de teste que são difíceis de reconhecer. Existem várias técnicas de teste com cada técnica cobrindo diferentes aspectos do software para revelar sua qualidade. Utilizar todas as técnicas de teste para testar um determinado software não é possível, mas o testador pode selecionar e usar mais de uma técnica dependendo dos requisitos de teste, tipo de software, orçamento e restrição de tempo. Quanto maior o número de técnicas de teste combinadas, melhor o resultado do teste, cobertura e qualidade. Existem três técnicas essenciais de teste: teste de caixa branca, caixa preta e teste de caixa cinza. 

CONCLUSÃO 

Entregar software de qualidade é o principal objetivo de qualquer projeto de software. O Teste de Software tem sido amplamente utilizado e continua sendo um meio realmente eficaz de garantir a qualidade do software.

BIOGRAFIA

Alesson Sousa Viana 

Analise e desenvolvimento de sistemas - ADS

Centro Universitário Paraíso do Ceará - UniFAP