O que é teste de software
O processo de submeter o bloco de código/funcionalidade/sistema desenvolvido/projetado através de um conjunto bem definido de métodos de avaliação (chamados testes) para isolar bugs e defeitos é chamado de teste de software.
Os testes garantem que os requisitos fornecidos pelo cliente sejam atendidos e que o produto tenha o desempenho esperado no ambiente determinado
O que sabemos sobre testes de software?
- Realizado para garantir a qualidade do produto entregue
- Uma das etapas mais importantes do Ciclo de Vida de Desenvolvimento de Software (SDLC)
- O teste é a 5ª fase do SDLC que vem após o desenvolvimento/construção e é feito antes da implantação/instalação
- No modelo clássico em cascata, SDLC é um processo de bloco em SDLC, enquanto em outros modelos, como modelos AGILE ou SPIRAL, é um processo contínuo como parte da Integração Contínua/Implantação Contínua)(CI/CD)
- O resultado dos testes não se limita ao relato de bugs/defeitos. A seguir, o processo é necessário para garantir o fechamento e o novo teste, portanto, 100% de qualidade
- Bugs são problemas relacionados ao código que podem ou não ser críticos. Geralmente identificável e endereçável na própria fase de desenvolvimento. Os bugs podem ser resultado de erro de sintaxe, erro lógico ou problemas de tempo de execução. Principalmente corrigido pelos desenvolvedores. Bugs ocultos/não identificados podem causar atraso no comportamento do sistema e o resultado é a subutilização de recursos
- Defeitos são desvios das especificações/requisitos obtidos e são graves e precisam ser resolvidos imediatamente. Defeitos não corrigidos podem resultar em graves perdas em termos de recursos. Geralmente identificado durante a fase de teste. Quando o testador realiza testes onde os casos de teste baseados em requisitos são usados, desvios das especificações podem ser identificados, devolvidos ao desenvolvedor ou discutidos com o cliente para alternativas e o problema pode ser abordado e corrigido de acordo com o resultado da discussão.
- O teste pode ser realizado manualmente pelo testador usando o desenvolvimento de casos de teste com base em requisitos e/ou especificações ou automatizado usando ferramentas nas quais os casos de teste e os dados são alimentados e a saída analisada para aderência aos requisitos.
- O software pode ser testado quanto à funcionalidade onde cada unidade de código ou função pode ser testada, unidades de código e funções integradas e testadas, o sistema como um todo pode ser testado, a sanidade testada, as interfaces podem ser testadas ou regressivas (compatibilidade com versões anteriores recursos) ser testado
- Os testes não funcionais incluem desempenho, carga, estresse, segurança, compatibilidade, instalação, confiabilidade etc., onde o sistema é submetido a ambientes de teste para avaliar como ele se comporta de acordo.
Relevância dos testes de software:
Sistemas projetados e desenvolvidos nunca são perfeitos devido às muitas mentes que contribuem para projetá-los e construí-los. O teste de software como processo garante a qualidade geral do produto. O teste garante a entrega de um produto em conformidade com os requisitos do cliente e adequado às necessidades do negócio. Um processo de teste bem definido garante que os bugs sejam corrigidos e os defeitos identificados, as interfaces funcionem em conjunto, a segurança e a sanidade do produto não possam ser comprometidas. Os testes resultam em um produto capaz de funcionar conforme necessário, passar por qualquer teste e resistir a qualquer tipo de interrupção. Um produto verificado e validado é uma prova do mais alto nível de recursos e de sua capacidade de fornecer um produto duradouro e duradouro.