Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

D
Conceitos de Teste de Software
e acordo com Sommerville (2019), os testes de software têm como
objetivo mostrar que um programa faz o que foi destinado a fazer e
descobrir defeitos antes que ele seja colocado em uso. Em um teste de
software, um programa é executado com o uso de dados artificiais, e os
resultados são conferidos em busca de erros, anomalias ou informações sobre os
atributos não funcionais do programa.
Quem testa um software, tenta fazer duas coisas:
1. Mostrar ao cliente e ao desenvolvedor que o software desenvolvido atende aos
seus requisitos. No caso de software customizado, isso significa que deve haver
pelo menos um teste para cada requisito no documento de requisitos. No caso de
produtos de software genéricos, isso significa que devem haver testes para todas as
características do sistema que serão incluídas no lançamento do produto.
2. Encontrar entradas ou sequências de entradas nas quais o software se comporta
de modo incorreto, indesejável ou fora da conformidade com suas especificações.
Esses fatores são causados por defeitos (bugs), e o teste de software busca
encontrá-los a fim de erradicar comportamentos indesejáveis, como falhas de
sistema, interações indesejadas com outros sistemas, processamentos incorretos e
dados corrompidos.
O teste de software é utilizado justamente para encontrar e resolver erros que um
programa pré-desenvolvido apresenta, a fim de corrigi-los antes que a versão
definitiva seja lançada no mercado.
O teste de software se concentra nas últimas etapas na construção e
implementação de um programa, visando garantir o seu nível de qualidade. AsIr para exercício
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 1/13
falhas, bugs ou defeitos que um teste busca identificar incluem erros de
compatibilidade provenientes de algum algoritmo, requisitos que não podem ser
implementados e limitação de hardware, por exemplo. A lista pode se tornar
extensa e aumentar com a complexidade do sistema.
Os testes fazem parte de um processo mais amplo de verificação e validação de
software (V&V). A verificação e a validação não possuem o mesmo significado,
embora sejam comumente confundidas. Barry Boehm, um dos pioneiros da
engenharia de software, expressou de forma sucinta suas diferenças (BOEHM.
1979):
 
Validação: Estamos construindo o produto correto?
Verificação: Estamos construindo o produto corretamente?
A realização de um teste de software é um trabalho complexo. São incontáveis os
fatores que podem provocar erros, falhas ou defeitos. Desde a utilização de um
algoritmo incorreto até a não utilização de uma política de segurança em alguma
funcionalidade do software. Por outro lado, existem técnicas que podem ser
aplicadas para diminuir esses fatores.
Várias técnicas, fases e testes podem ser aplicados em um software para encontrar
seus defeitos, erros ou falhas. Abaixo listo alguns deles:
Fases ou níveis de testes:
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 2/13
Teste de unidade – Tem o objetivo de testar unidades menores de um software,
de modo isolado. Foca nas menores unidades de um programa, que podem ser
funções, procedimentos, métodos ou classes.
Teste de integração – após o teste de unidade, realiza-se uma verificação para
garantir que as unidades funcionem juntas de maneira integrada. A ênfase é dada à
construção da estrutura do sistema. À medida que vários módulos do software são
executados em conjunto, é necessário verificar se a interação entre eles ocorre de
forma adequada e não resultará em erros.
Teste de Sistema – após a conclusão e integração do sistema, inicia-se o teste de
sistemas, cujo objetivo é verificar se as funcionalidades especificadas nos
documentos de requisitos estão corretas e foram implementadas adequadamente.
Os requisitos não funcionais, como segurança, performance e robustez, também
devem ser avaliados.
Teste de regressão – Esse teste tem como objetivo realizar novos testes a cada
versão do software, na qual algumas funcionalidades podem ser modificadas. Isso
evita a repetição de erros que já ocorreram. Esse tipo de teste ou estratégia não é
realizado durante o processo “normal” de desenvolvimento, mas sim durante a
manutenção do software.
Técnicas ou tipos de testes:
Técnica Estrutural ou Teste da caixa branca – Tem como objetivo analisar o
comportamento interno do componente de software, ou seja, o código fonte. São
avaliados aspectos como teste de condição, teste de fluxo de dados, teste de ciclos
e teste de caminhos lógicos. Os aspectos avaliados nesta técnica de teste
dependem da complexidade e da tecnologia que determinam a construção do
componente de software.
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 3/13
Técnica Funcional ou Teste da caixa preta – tem como objetivo verificar os
aspectos externos de um sistema. Na prática, são fornecidas entradas e avaliadas as
saídas geradas para verificar se estão em conformidade com os requisitos
especificados. Inicialmente, o teste pode identificar todos os defeitos, submetendo
o software a todas as entradas possíveis, o que é chamado de teste exaustivo. No
entanto, esse tipo de teste pode levar muito tempo para ser executado, tornando-o
inviável.
Teste da caixa cinza – tem como objetivo a combinação do teste funcional e
estrutural, daí o termo ‘cinza’. Analisa tanto os aspectos internos quanto os externos,
de entrada e saída. No entanto, como todos os trabalhos relacionados ao teste
envolvem a aplicação simultânea de várias técnicas, é aconselhável utilizar os
conceitos fundamentais de cada técnica.
Teste de carga – tem como objetivo avaliar os limites de uso do software, ou seja,
quanto ele pode suportar termos de volume de informações, tráfego e
processamento sem ocorrer erros ou falhas.
Teste de usabilidade – tem como objetivo avaliar a experiência de uso do software
por um pequeno grupo de usuários, que verificarão se o software atende às suas
necessidades em termos de facilidade de uso. Nesse teste, também são analisados
os pontos em que os usuários encontram mais dificuldades.
Teste de stress – Tem como objetivo levar o software ao limite de suas operações
e funcionalidades, aplicando níveis mais altos e mais baixos de intensidade, para
determinar em que ponto ele deixa de operar adequadamente de acordo com os
requisitos estabelecidos.
Técnicas de desenvolvimento para testes
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 4/13
TDD é a sigla para Test Driven Development ou Desenvolvimento Orientado a
Testes. A premissa do TDD é trabalhar em ciclos, que ocorrem na seguinte ordem:
Red: escreva um teste que, ao executá-lo, falhará;
Green: escreva um código que seja suficiente para passar no teste;
Refactor: refatore, melhorando o código e deixando-o mais funcional.
Figura 1 – Ciclos de um TDD. Fonte: Treinaweb
Estes ciclos são normalmente identificados como red-green-refactor. É importante
frisar que TDD não é uma técnica de escrever teste, mas sim uma metodologia para
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 5/13
desenvolvimento e escrita de código baseado em testes.
Ao usar esta metodologia, o desenvolvedor adquiremais segurança ao realizar
alterações no código e obtém um feedback mais rápido, caso algo não saia como
esperado durante a refatoração. As correções de falhas ou defeitos também são
mais abrangentes, pois, na maioria dos casos, tanto o código quanto o teste serão
corrigidos, resultando em um código de projeto com maior maturidade.
A popularidade da prática de TDD tem crescido muito entre os desenvolvedores,
uma vez que ela traz diversas vantagens:
- Escrevendo o teste antes, garantimos que o código já se desenvolva testado;
- Haverá segurança para refatorar, afinal sempre refatoraremos a partir de testes que
garantam que o comportamento já existente não seja quebrado;
- Efeitos no design; Se tornará comum percebermos que o projeto de classes de
sistemas feitos com TDD será melhor do que sistemas feitos sem TDD.
Em uma análise de alto nível, a ideia de começar pelo teste permite que
naturalmente se escreva um código mais fácil de ser testado, que apresenta
algumas características interessantes:
• Ele é mais coeso.
• Ele é menos acoplado.
• A interface é mais simples.
• As precondições são mais simples.
Como toda prática de engenharia de software, ela deve ser usada no momento
certo. TDD faz muito sentido ao implementar novas funcionalidades, ao corrigir
bugs, ao trabalhar em códigos complexos etc. Mas às vezes não precisamos seguir
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 6/13
o fluxo da prática de TDD; em códigos mais simples, talvez a prática do TDD não
seja necessária.
O BDD é sigla para Behavior Driven Development, é uma metodologia de
desenvolvimento orientada a comportamento.
É uma técnica de desenvolvimento que visa integrar regras de negócios com
linguagem de programação, focando principalmente no comportamento do
software.
Esta técnica utiliza uma linguagem natural e, desta forma, busca diminuir cada vez
mais as brechas ou perdas existentes entre a área de negócio e a de
desenvolvimento, disponibilizando uma documentação efetiva, que será de grande
importância para todo o time envolvido no desenvolvimento do projeto.
Um objetivo do BDD era criar uma linguagem onipresente que os analistas de
negócios pudessem usar para definir requisitos de forma inequívoca, e que também
poderia facilmente ser transformado em testes de aceitação automatizados.
Exemplo:
Dado que um cliente tem uma conta corrente
Quando o cliente transfere fundos desta conta para uma conta no exterior
Em seguida, os fundos devem ser depositados na conta no exterior
E a taxa de transação deve ser deduzida da conta corrente
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 7/13
Um analista de negócios pode facilmente entender um cenário escrito assim. Estão
claramente definidas as metas objetivas para cada história em termos do que
precisa ser desenvolvido e do que precisa ser testado.
No BDD, não é uma boa prática tentar definir todos os requisitos de uma vez; as
equipes que praticam BDD se envolvem em conversas contínuas com os usuários
finais e outras partes interessadas para construir progressivamente um
entendimento comum de quais recursos eles devem criar.
A essência BDD é ser uma prática altamente colaborativa, tanto entre usuários
quanto a equipe de desenvolvimento. Analistas de negócios, desenvolvedores e
testadores trabalham juntos com os usuários finais para definir e especificar
recursos, e os membros da equipe extraem ideias de sua experiência e know-how
individuais. Essa abordagem é altamente eficiente.
Como toda metodologia, o BDD também possui um ciclo, iniciando pela
Descoberta, Definição, Formalização e Entrega.
Figura 2: o processo do BDD. Fonte: Zoop, 2020.
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 8/13
No BDD não é apenas a equipe de desenvolvedores que fica responsável por
escrever os cenários de testes. Com isso, três agentes interagem para criar o
produto: o Product Owner (PO), o Quality Analyst (QA) e o developer,
internacionalmente conhecido como regra dos três amigos.
Em síntese, a escolha da metodologia baseada no comportamento do software
com a utilização de uma linguagem natural traz vantagens como:
• Reduz o desperdício: focar o esforço de desenvolvimento na descoberta
e entrega do recursos que fornecerão valor comercial, evitando assim
aqueles que não fornecem.
• Melhora a Comunicação: desenvolvedores e testadores trabalham de
forma integrada. Desta forma, a metodologia força o compartilhamento de
conhecimento e informações entre toda a equipe.
• Visão do todo: com o trabalho realizado de forma compartilhada e
integrada, é possível ter uma visão de todas as etapas do processo de
desenvolvimento e testagem do software.
• Documentação Dinâmica: as equipes podem realizar o processo de
documentação de forma mais abrangente e facilitada do sistema, sem
despender um esforço adicional para isso.
• Mudanças mais fáceis e seguras: O BDD torna consideravelmente mais
fácil alterar e estender seus aplicativos. A documentação é gerada a partir
das especificações executáveis usando termos que as partes interessadas
estão familiarizadas.
Por outro lado, o que não chega a ser uma desvantagem, mas sim um obstáculo
natural nas empresas, é que o BDD requer um alto envolvimento e colaboração
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw/… 9/13
entre negócio e desenvolvimento. As práticas de BDD são baseadas em conversas
e feedbacks.
Se as partes interessadas não quiserem ou forem incapazes de se envolver em
conversas e colaboração, ou esperam até o final do projeto antes de fornecer
qualquer feedback, será difícil extrair todos os benefícios do BDD.
Conteúdo Bônus
Aperfeiçoe seus conhecimentos em Teste de Software.
O vídeo abaixo acrescenta mais detalhes e conteúdo a nossa disciplina.
Nome do vídeo: O que são testes de software ?
Canal: Tu quer saber mais?
Plataforma: Youtube
Referência Bibliográfica
MANOEL, S. da S. Governança de segurança da informação: como criar
oportunidades para o seu negócio. Brasport: 2014.
GALVÃO, M. da C. Fundamentos em segurança da informação. Pearson: 2015.
FERNANDES, A. A.; ABREU, V. F. de. Implantando a governança de TI: da
Estratégia à gestão de processos e serviços. 4.ed. Brasport: 2014.
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw… 10/13
SOMMERVILLE, IAN. Engenharia de software, 10ª ed. Pearson: 2019.
DELAMARO, Márcio Eduardo; MALDONADO, José Carlos; JINO, Mário. Introdução
ao teste de software. Elsevier, 2007.
ANICHE, Mauricio. Testes automatizados de software: Um guia prático. Casa do
Código, 2015.
Atividade Prática
O teste de Stress é muito importante para aplicativos e sistemas Web,
principalmente E-commerce e Sistemas que podem alcançar milhares de
acessos.
Faça uma pesquisa e defina.
- O que é Teste de Stress?
- Qual a necessidade para se realizar o teste?
- Qual o objetivo?
- Liste pelo menos dois Tipos de Teste de Stress
 
Gabarito Atividade Prática
O que é teste de Stress.
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw… 11/13
É usado paragarantir a estabilidade e a confiabilidade do sistema. Os testes
simulam uma alta taxa de dados e de tráfego e registram como o sistema responde
nestas condições.
Durante o teste de estresse, o software testado receberá uma alta carga de tráfego
para saber o limite, até quando o software ou hardware suportarão. Isso permite
melhorar o dimensionamento de infra, detectar scripts demasiadamente pesados e
ter mais eficácia no gerenciamento de erros sob condições extremas.
Qual a necessidade para realização deste teste.
Considere os seguintes cenários:
• Durante uma Black Friday, um e-commerce talvez alcance uma alta nos acessos, o
sistema deve suportar o aumento.
• Quando um Site é citado por um jornal ou canal de maior relevância, pode gerar
um número de acessos que pode derrubar o site.
• Campanhas de inscrições, matrículas ou atualizações cadastrais, com datas limites.
• Algum serviço destinado a toda população, os sistemas devem estar preparados
para receber milhares de acessos.
Qual o Objetivo:
O objetivo dos testes de estresse é verificar o sistema sob condições extremas.
Essencialmente, há dois objetivos:
- saber quanto o sistema suporta e qual seu comportamento após a falha.
Para realizar o teste, pode ser preciso usar uma quantidade massiva de dados. Se o
sistema se recuperar como deve quando sobrecarregado, terá atingido um ponto
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw… 12/13
crucial do teste, a recuperabilidade.
Tipos de Teste de Stress
Teste de Estresse Distribuído
Teste de Estresse para Aplicações
Teste de Estresse Sistêmico
Teste de Estresse Exploratório
Ir para exercício
17/09/2026, 10:50 Descomplica | Prática Integradora Governança E Segurança
https://aulas.descomplica.com.br/graduacao/analise-e-desenvolvimento-de-sistemas/turma/pratica-integradora-governanca-e-seguranca-0t0xw… 13/13

Mais conteúdos dessa disciplina