Guia de Linguagem

Testes de Software


Neste guia de consulta você encontrará diversos artigos e vídeos que podem ser usados ao longo dos seus estudos sobre Testes de Software, abordando diversas técnica e ferramentas.

Introdução

Os testes representam uma etapa de extrema importância no processo de desenvolvimento de software, pois visam validar se a aplicação está funcionando corretamente e se atende aos requisitos especificados.

Nesse contexto existem diversas técnicas que podem ser aplicadas em diferentes momentos e de diferentes formas para validar os aspectos principais do software. Nos artigos abaixo você conhecerá conceitos fundamentais do teste de software e como aplicá-los.

Processo de teste

Para evitar que o teste seja uma mera etapa do ciclo de desenvolvimento, a implantação de um processo relacionado a este garante um maior controle das atividades de teste e, consequentemente, mais qualidade ao software. Nos artigos a seguir você verá como a utilização de um Processo de Teste pode melhorar a efetividade dos testes, controlando as atividades e garantindo mais credibilidade e valor ao produto.

Ainda nesse contexto, considerando o amplo uso das metodologias ágeis, é importante alinhar os testes ao processo de desenvolvimento e gestão como um todo.

Modelagem e Casos de Testes

O propósito da técnica de modelagem de teste é identificar as condições e os casos de testes. Isso visa garantir que os testes serão executados com dados e formas que realmente simulam o comportamento real do software e validam todas as possibilidades de uso.

A partir da modelagem são gerados os casos de teste, que são conjuntos de regras e dados usadas para testar o software. Normalmente os casos de teste estão vinculados a requisitos e visam simular da forma mais fiel possível o uso do sistema, a fim de garantir que ele funcionará corretamente quando submetido à utilização real.

Gerenciamento de testes

Para garantir que os testes serão realizados de forma eficiente, é necessário haver um gerenciamento sobre as atividades e artefatos relacionados a esse processo. No artigo a seguir você verá uma introdução ao assunto:

Em seguida, consulte os links abaixo para conhecer as principais ferramentas e técnicas para realizar esse gerenciamento:

Testes unitários

Os testes unitários têm por objetivo validar pequenas partes do software com base em suas entradas possíveis e saídas esperadas. As unidades usadas nesse tipo de teste são as menores partes testáveis de um sistema, normalmente funções, que recebem argumentos e retornam um determinado valor ou efetuam alguma ação cujo resultado pode ser analisado. Nos links abaixo você verá como realizar testes unitários em diferentes linguagens de programação:

Os testes unitários são muito utilizados no TDD (Test-Driven Development), uma metodologia de desenvolvimento que se baseia nos testes para implementar as funcionalidades (ao invés de fazer o contrário, que é mais comum). Se você ainda não conhece o TDD, confira o curso a seguir:

Testes funcionais

Além dos tipos de software que avaliam o código dos programas, existem alguns que visam analisar seu comportamento externo: os testes funcionais. Normalmente esse tipo de teste se baseia nos requisitos do sistema e consiste de realizar ações de uso real no sistema, entrando com dados e avaliando seu retorno.

Testes de integração

Os testes de integração, como o nome sugere, têm por objetivo unir os diversos módulos do sistema e testá-los em conjunto. Eles são realizados após outras etapas de teste que garantem o funcionamento individual das partes.

Testes de aceitação

Os testes de aceitação formam uma das últimas etapas do desenvolvimento do sistema, pois validam se o software está pronto para ir para produção. Para avaliar isso, normalmente um cliente ou testador especializado, com amplo conhecimento dos requisitos, avalia se a aplicação está se comportando como esperado e pode ser considerada “pronta”.

Testes de performance / carga

Os testes de performance, também chamados testes de carga, têm por objetivo submeter o software a situações intensas de uso e avaliar seu comportamento. Esse tipo de teste é muito comum em aplicações web, que são submetidas a um grande número de requisições para verificar se o servidor suportará tamanha carga. Nesta etapa normalmente são utilizadas ferramentas específicas que simulam o uso da aplicação em grande escala, como você verá nos artigos abaixo:

Testes de segurança

Os testes de segurança visam garantir a correta aplicação das premissas de segurança definidas para o software, alcançando assim um ambiente operacional mais seguro.

Testes automatizados

Durante o desenvolvimento de um software vários testes podem ser realizados e normalmente cada um será executado várias vezes. A automação desse processo visa reduzir o tempo gasto nessa etapa, bem como reduzir a probabilidade de falha humana. No entanto, nem todo teste pode ser feito dessa maneira com facilidade, portanto é importante planejar adequadamente e usar ferramentas eficientes.

Relatórios de testes

À medida que os testes são realizados, dados são gerados sobre os resultados obtidos, sejam eles bem sucedidos ou não. Avaliar esses dados pode auxiliar na tomada de decisão, planejamento de novos testes e avaliação da qualidade do processo.

Nos artigos abaixo você verá algumas técnicas e ferramentas que podem lhe ajudar com isso:

Conteúdo extra

Aqui separamos um conteúdo adicional para que você possa aprofundar seus estudos sobre testes de software.

Mais sobre Engenharia de Software

Além dos vídeos e artigos contidos nesse guia, a DevMedia publica com frequência novos conteúdos sobre engenharia de software, os quais você encontra nos Guias de Consulta abaixo:

Ficou com alguma dúvida?