Quer ter acesso a todos os cursos desse Guia?
Técnicas e fundamentos de Testes de Software
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.
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.
-
ArtigoProcesso de Teste de Software
-
ArtigoDesvendando o processo de Teste de Software
-
ArtigoConheça o MPT.Br: Melhoria do Processo de Teste de Software
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.
Agora, para iniciar nos testes unitários, assista nestes DevCasts um bate-papo sobre a importância de aplicar aos seus testes uma metodologia:
Para entendermos na prática, confira no curso a seguir o que é teste unitário:
Nos links abaixo você verá como realizar testes unitários em diferentes linguagens de programação:
-
ArtigoTeste unitário com JUnit e Complex Graph
-
ArtigoTestes Unitários com DUnitX
-
ArtigoUnit Tests - Testes Unitários com .NET
-
ProjetoDocumentação PHPUnit Novo!
-
ProjetoDocumentação Teste Unitário Novo!
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 no material 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:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>