Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 1/30
QUALIDADE E TESTEQUALIDADE E TESTE 
DE SOFTWAREDE SOFTWARE
Me. Roque Mait ino Neto
I N I C I A R
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 2/30
introdução
Introdução
Depois de estudarmos na primeira Unidade os tópicos fundamentais de
Qualidade de Software, os processos que visam garanti-la, parâmetros e
padrões, é normal que algumas questões venham à tona: a aplicação de
todas essas providências e ações é su�ciente para nos garantir um produto
livre de erros? As funções da equipe da qualidade se resumem a seguir
corretamente padrões e aplicar métricas de forma rigorosa?
Na vida real, respondemos a essas questões com um “não”. Embora um
processo de desenvolvimento corretamente conduzido e aplicação de
métodos relacionados à qualidade tendem a gerar um bom produto, ainda
assim este deverá passar por exames e provas que atestem sua qualidade em
funcionamento. Damos o nome de teste de software e sua abordagem será o
tema central deste nosso encontro.
Iniciamos, aqui, a segunda Unidade do curso de Qualidade e Teste de
Software, desejando a você um ótimo aproveitamento deste conteúdo que,
certamente, despertará bastante interesse.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 3/30
Mesmo se você não for um viciado em automóveis, ainda assim será capaz de
imaginar que estes são compostos por várias unidades distintas que, juntas,
serão capazes de fazê-los rodarem com segurança e conforto. O motor, a
suspensão, os medidores e o sistema de ar condicionado são exemplos de
partes do todo e, para que estejam aptas a compor um carro, precisam ser
testadas uma a uma antes de serem colocadas à prova de modo integrado.
Pois é assim mesmo que funciona o teste de um software: as partes
planejadas durante o projeto, que desde já chamaremos de unidades,
deverão passar por testes isolados antes de serem avaliadas em conjunto
com todo o restante do sistema. Colocada de forma simples e objetiva, essa é
essência de um teste de unidade.
Antes de desenvolvermos essa ideia, no entanto, trataremos de conceitos
básicos relacionados ao teste de software. Vamos a eles.
Conceito de Teste
Teste de UnidadeTeste de Unidade
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 4/30
Um teste – ou um processo de teste – consiste em uma sequência de ações
executadas com o objetivo de encontrar problemas no software, o que
aumenta a percepção de qualidade geral do software e garante que o usuário
�nal tenha um produto que atenda às suas necessidades (PINHEIRO, 2015).
Nenhuma equipe de qualidade irá aplicar testes em um software (ou em uma
unidade dele) com o objetivo de garantir que o produto é livre de defeitos.  A
certeza de que um programa não possui falhas, erros ou defeitos (logo
saberemos a diferença entre eles) não é algo atingível no mundo real. Se o
processo de teste não revelar defeitos, há que se aprimorar os casos de teste
e o processo empregado. Não se pode acreditar que o sistema não possui
problemas se o teste aplicado não for capaz de revelá-los.
Etapas do Processo de Teste
O processo de teste é normalmente separado em quatro grandes etapas:
1. Planejamento: nessa etapa deve ser de�nido quem executa os
testes, em que período, com quais recursos (ferramentas de teste e
computadores, por exemplo) e qual será́ a técnica utilizada (técnica
estrutural ou técnica funcional, por exemplo).
2. Projeto de casos de teste: aqui são de�nidos os casos de teste que
serão utilizados no processo. No próximo item, esse conceito será́
detalhado.
3. Execução do programa com os casos de teste: nessa etapa, o teste
é efetivamente realizado.
4. Análise dos resultados: veri�ca-se se os testes retornaram
resultados satisfatórios.
Casos de teste
Um caso de teste é o par formado por uma entrada no programa e a
correspondente saída esperada, de acordo com os requisitos do sistema
(NETO, 2016). O conceito de entrada relaciona-se com o conjunto de dados
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 5/30
necessários para a execução do programa. Tomemos como exemplo um
programa que oferece ao usuário a possibilidade de inserir valores de
produtos alimentícios de varejo para emissão de nota �scal. Esse conjunto de
valores comporá os dados de entrada que, após a validação, deverão ser
gravados em banco.
A saída esperada é o resultado de uma execução do programa ou função
especí�ca. Ainda considerando o exemplo da inserção de valores de produtos,
um caso de teste possível seria: (200; válido). Ao receber a entrada 200, o
programa de validação de valores deveria retornar “valor válido”.
A boa escolha dos casos de teste é fundamental para o sucesso do
procedimento, já que um conjunto de casos de teste de baixa qualidade pode
não exercitar partes críticas do programa e não será capaz de revelar defeitos
no código. Se o responsável pelos testes usasse apenas valores válidos como
entradas, a parte do programa que trata dos valores inválidos não seria
executada, o que prejudicaria a con�abilidade do processo de teste e do
produto testado. Observe estes casos de teste:
t1= {(53,70;válido), (30/1/2004;inválido); (-6;inválido); (12,9;válido),
(***;inválido), (0;inválido)}. Com esse cenário, certamente a maior parte do
código será́ coberta e a chance de detecção de defeitos aumentará.
Fica claro que o sucesso no procedimento de testes está diretamente
relacionado à correta escolha dos casos de teste. Idealmente, cada conjunto
de casos de teste deverá estar associado a um grande requisito diferente a
ser testado. Imagine que um produto tenha como duas de suas funções
principais a emissão de relatórios de produtos avariados no processo de
fabricação e de validação do peso do produto fabricado, tendo 0,01Kg como
variação máxima permitida. É certo que a equipe de teste deverá criar casos
de teste para essas duas funções, cuidando para que atendam a maior
variedade possível de situações.
Para que não se corra o risco de de�nir casos de teste incorretamente, é
necessário planejamento e o bom conhecimento da aplicação. Uma boa
forma de se abordar o problema é a que segue (PINHEIRO, 2015):
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 6/30
De�nir o ambiente no qual o teste será́ realizado;
De�nir a entrada desse caso de teste;
De�nir a saída esperada para cada entrada;
De�nir os passos a serem realizados para executar os testes.
Quando um caso de teste é executado, o seu resultado deve ser coletado.
Podemos assumir diferentes abordagens para de�nir o resultado da aplicação
de um caso de teste especí�co. A mais comum de�ne as seguintes opções
(PINHEIRO, 2015):
Passou: todos os passos do caso de teste foram executados com
sucesso para todas as entradas;
Falhou: nem todos os passos foram executados com sucesso para
uma ou mais entradas;
Bloqueado: o teste não pôde ser executado, pois o seu ambiente
não pôde ser con�gurado.
Assim de�nimos os casos de teste. Há, no entanto, três conceitos
especialmente importantes no contexto de teste que merecem abordagem
mais especí�ca, até por serem confundidos entre si. Vamos a eles.
Defeito, Falha e Erro
Qual é a expressão que você usa quando um programa simplesmente trava
ou não produz o resultado que se espera? Nomes não faltam para o que
acontece de incomum durante a execução de um software: falta, incidente,
problema, falha, anomalia e por aí vai. Genericamente podemos resumir
todos em um: bug. Pinheiro (2015) de�ne que um bug ocorre quando:O software não executa uma função que ele deveria executar,
segundo sua especi�cação;
O software executa uma função que não deveria executar, segundo
sua especi�cação;
O software executa uma função não prevista em sua especi�cação;
O software não executa uma função não prevista em sua
especi�cação, mas que deveria estar;
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 7/30
O software é difícil de ser usado ou entendido, além de passar a
impressão ao usuário �nal de não estar correto.
Parece que essa lista diverge um pouco do que entendemos como bug, não é
mesmo? Esse tratamento genérico, no entanto, não nos serve para identi�car
corretamente cada problema que pode ocorrer em um programa durante sua
execução. Observe os conceitos:
Defeito: trata-se de de�ciência algorítmica que, se ativada, pode levar a uma
falha. Vamos a um exemplo. Observe o trecho que segue, escrito em
pseudocódigo:
a = –1;
b = 0;
enquanto a < 0 faça
          b = b + 1;
          imprima (b);
          imprima (a);
�m_enquanto;
Observe que em momento algum da execução o valor da variável a deixará de
ser menor que zero, o que fará com que a condição de parada do laço jamais
seja satisfeita. Estamos diante de um defeito, mais precisamente um laço
in�nito. Se o caso de teste escolhido for capaz de exercitar esse trecho do
código, o defeito se manifestará e, então, teremos uma falha observável.
Falha: é tida como um não funcionamento do software, provavelmente,
provocado por um defeito. Contudo, uma falha também pode estar
relacionada a uma queda na comunicação ou a um erro na leitura do disco,
por exemplo.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 8/30
Erro: ocorre quando o resultado obtido em um processamento e o que se
esperava dele são diferentes. Pode-se associar um erro, portanto, a um fato
visível durante a execução de um programa. Um erro também está associado
a uma violação nas próprias especi�cações do software. Como exemplo,
tomemos um usuário que consegue acessar determinado módulo do
programa para o qual não está autorizado (esse é o resultado obtido), sendo
que seu nível de privilégios não deveria permitir que o �zesse (o não acesso
era o resultado esperado).
Antes de abordarmos o teste de unidade em especí�co, a de�nição de mais
um elemento básico dos testes se faz necessária.
Depuração
Se testar signi�ca executar o software para encontrar defeitos desconhecidos,
a depuração é a atividade que consiste em buscar no código a localização
desses defeitos. Durante o processo de teste, é comum que se descubra a
existência de um defeito sem que se saiba, contudo, sua localização no
código-fonte. A depuração, portanto, tem a função de apontar o local exato
do defeito.
Os ambientes de programação atuais oferecem recursos para depuração do
programa. Durante esse processo, o valor assumido pelas variáveis sob
inspeção em cada passo do algoritmo pode ser observado. Além disso, alguns
pontos de parada da execução do programa podem ser inseridos no código.
O teste de Unidade
Colocados esses elementos básicos, nosso foco volta-se para a abordagem do
teste de unidade. Um software produzido com base em métodos consagrados
será, necessariamente, dividido em módulos. Embora sejam importantes, os
critérios utilizados para essa divisão não fazem parte do escopo desta
Unidade. Contudo, é necessário registrar que cada módulo deve ser o mais
coeso e o menos funcionalmente dependente possível de outros módulos,
sob pena de construirmos um produto de difícil de ser testado e mantido.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74631… 9/30
Como é aplicado em um módulo do sistema, o teste de Unidade é feito
durante o desenvolvimento (ou codi�cação) de um software. Seu objetivo é
isolar uma seção de código – que pode ser um procedimento, uma função ou
um conjunto delas quando tratamos de programação procedural – e veri�car
sua corretude.
O objetivo de um teste de unidade, portanto, é isolar cada parte do programa
e testá-las em separado (RUNGTA, 2018). No entanto, se o teste de unidade
deve ser seguido pelo teste de integração (esse tipo será tratado logo na
sequência), por que então não deixar para investir tanto tempo e cuidado no
próximo teste? Por um motivo muito simples: economizar nos testes de
unidade leva a custos mais altos de correção de defeitos nos testes
posteriores, principalmente, no teste de integração. Pular ou não dar a devida
atenção a certas etapas nunca será uma boa ideia nos procedimentos de
teste.
A aplicação do teste de unidade pode ser feita de forma manual ou
automatizada, com o uso de aplicações especí�cas, que trataremos ainda
neste item do conteúdo. Caso a aplicação do teste seja manual, é de se
esperar que a equipe conte com um passo a passo para a realização do
procedimento. Além disso, o documento de especi�cação dos requisitos deve
estar à mão, já que nele devem estar descritas as funções do sistema.
Pela facilidade e conveniência que proporciona, o teste automatizado tem
sido mais usado pelos programadores. Pode-se usar uma aplicação de teste
de unidade (que comumente chamamos de Framework UnitTest) para
desenvolver casos de teste automatizados. Nesse caso, o desenvolvedor
estabelece critérios no teste para veri�car a corretude da unidade. Durante a
execução dos casos de teste, o framework registra aqueles que falham em
qualquer critério estabelecido e relatam ao testador. Testar de forma
automatizada é, portanto, muitas vezes uma forma mais completa de teste,
pois pode revelar dependências desnecessárias entre o código que está
sendo testado e outras unidades. Para o bem da correta modularização, da
manutenibilidade e da facilidade em se testar o software, essas dependências
desnecessárias podem e devem ser eliminadas.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 10/30
Algumas das mais utilizadas ferramentas de testes automatizados incluem
(RUNGTA, 2018):
JUnit: trata-se de uma ferramenta de teste gratuita criada para testes
de unidades escritas em Java. Ela fornece asserções para identi�car o
método de teste e, primeiramente, realiza o teste dos dados para,
então, inseri-los no código a ser testado.
NUnit: esse framework é amplamente usado para testes unitários de
programas .net. É uma ferramenta de código aberto que permite
escrever scripts manualmente. Ele suporta testes baseados em
dados que podem ser executados em paralelo.
PHPUnit: ferramenta de teste de unidade para programadores PHP. Toma
pequenas porções de código que são chamadas de unidades e testa cada
uma delas separadamente. A ferramenta também permite que os
desenvolvedores usem métodos de asserção pré-de�nidos para a�rmar que o
sistema se comporta de uma certa maneira.
Antes de terminarmos nossa abordagem sobre os testes de unidade, vale
uma re�exão sobre os pontos fortes e as fragilidades relacionadas a essa
prática.
Devido a sua natureza modular, pode-se testar partes do projeto sem que se
tenha de esperar outros módulos para sua realização. Em contrapartida, não
se pode esperar que o teste de unidade revele todos os defeitos do código.
Não é possível avaliar todos os caminhos passíveis de execução, mesmo em
programas mais triviais, já que falta ao testador o restante do sistema.
Outro ponto positivo relacionado aos testes de unidade é que um testador,
que esteja procurando conhecer as funcionalidades do sistema e como utilizá-
las, pode olhar para cada unidade disponível e obter as informações que
deseja.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 11/30
atividade
Atividade
O uso repetitivo do mesmopesticida para erradicar insetos na plantação irá, com o
tempo, levar os insetos a desenvolver resistência a ele. O mesmo se aplica ao teste
de software: se o mesmo conjunto de testes repetitivos for realizado, o método será
inútil para descobrir novos defeitos.
RUNGTA, K. Learn Testing in 1 Day: De�nitive Guide to Learn Software Testing for
Beginners. Edição do Kindle, 2018, p. 76.
Em relação aos conceitos básicos de teste de software e ao teste de unidade, analise
as a�rmações que seguem.
I. Depuração é a técnica usada para corrigir o defeito encontrado no código.
II. O teste de unidade é aplicado no sistema todo, que passa a ser entendido como
uma unidade.
III. Considera-se defeito uma de�ciência em determinado trecho do algoritmo.
IV. Pode-se aplicar um teste sem que se execute o código, desde que se tenha
conhecimento de suas funções.
A partir das a�rmativas apresentadas anteriormente, é correto o que se a�rma em:
a) I, II e III, apenas.
b) I, II, III e IV.
c) II e III, apenas.
d) III, apenas.
e) I e III, apenas.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 12/30
O teste de unidade, por útil e indispensável que seja, não é capaz de exercitar
os trechos de código e utilizar dados que só existem para �ns de conexão
entre módulos. Essa lacuna é, entretanto, preenchida pelo teste de
integração, processo no qual os módulos do software são logicamente
integrados e testados como um conjunto de unidades.
Conforme tratamos no item anterior, um projeto de software deve prever sua
criação em módulos. Com bastante frequência, os módulos são desenvolvidos
por programadores diferentes, com lógicas e entendimentos do problema
distintos entre si. É compreensível e indispensável, portanto, que a checagem
do �uxo de dados entre esses módulos seja submetida a teste.
Outro forte argumento em favor da necessidade de realização do teste de
integração é a possibilidade (ou quase a certeza) de haver mudança nos
requisitos provocada pelo cliente e a consequente falta de tempo ou de
oportunidade para se testar esses novos requisitos em uma unidade.
No mesmo sentido, as interfaces dos módulos com o banco de dados e com
outros módulos podem ter sido codi�cadas incorretamente e só o teste de
Teste de IntegraçãoTeste de Integração
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 13/30
integração poderá apontar o defeito. 
Casos de Teste no Teste de Integração
Pela própria natureza e �nalidade do procedimento, os casos de teste aqui
diferem de outros casos de teste por serem projetados para exercitar
interfaces e �uxo de dados entre os módulos.
As prioridades devem ser dadas aos pontos de integração, em detrimento das
funções de unidade que já foram testadas. Imagine o seguinte cenário como
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 14/30
exemplo: nosso sistema possui três módulos compostos pela página de login,
pela caixa de correio e pelo módulo de excluir e-mails, e cada um deles está
integrado logicamente.
Nossa missão não é encontrar defeitos nos módulos individualmente, já que
essa providência já foi tomada no teste de unidade. A tarefa aqui se resume
em checar as vinculações, por exemplo, entre a página de login e a caixa de e-
mail. Da mesma forma, a integração entre a caixa de correio e a
funcionalidade de exclusão de e-mails compõe nossa principal atividade.
O Quadro 2.1 exibe dois casos de teste possíveis para o processo proposto,
com suas descrições e seus resultados esperados.  Observe que a
apresentação desses casos difere ligeiramente daquela oferecida no item
anterior desta Unidade. 
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 15/30
Quadro 2.1 – Casos de teste para o sistema de e-mail 
Fonte: Adaptado de Rungta (2018).
#PraCegoVer: Apresenta um quadro com fundo na cor cinza com quatro
colunas, onde a primeira linha está na cor azul escuro contendo o título de
cada coluna. As demais linhas alternam em tons de cinza claro e cinza escuro. 
 
A primeira coluna representa o identi�cador do caso de teste, a segunda
coluna apresenta o objetivo do caso de teste, a terceira coluna apresenta a
descrição do caso de teste e a quarta coluna apresenta o resultado esperado. 
 
Na primeira linha, com fundo em tom cinza mais escuro, é apresentado o
número um como identi�cador do caso de teste, seguido do texto: Checar o
vínculo entre as interfaces da tela de login e do módulo de caixa de e-mail,
que representa o objetivo do caso de teste. Logo em seguida temos o texto:
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 16/30
Entrar com as credenciais e clicar no botão de login, que representa a
descrição do caso de teste. O último texto da linha temos: Ir direto para a
caixa de entrada de email, que representa o resultado esperado. 
 
Na segunda linha, com fundo em tom cinza mais claro, é apresentado o
número dois como identi�cador do caso de teste, seguido do texto: Checar a
interface entre a caixa de e-mail e o módulo de exclusão de e-mail. que
representa o objetivo do caso de teste. Logo em seguida temos o texto: A
partir da Caixa de e-mails, selecione um e-mail e acione o botão de exclusão,
que representa a descrição do caso de teste. O último texto da linha temos: O
e-mail selecionado deverá aparecer na pasta de e-mails excluídos, que
representa o resultado esperado. 
 
Abordagens de Teste
Em sua essência, esse procedimento irá checar as ligações entre os módulos
do sistema. No entanto, há diferentes estratégias para aplicação do teste e,
pelo critério de interesse e de importância, abordaremos três delas,
resumidamente:
Estratégia Big Bang: todos os componentes são integrados juntos de
uma vez e depois testados. Essa abordagem pode ser bem
conveniente para sistemas pequenos, mas a aplicação pode ser difícil
em sistemas com muitos módulos.
Estratégia Top Down: na abordagem top down (de cima para baixo), os
testes ocorrem de cima para baixo seguindo o �uxo de controle do
sistema de software.  Aqui, os módulos mais importantes ou críticos
são testados prioritariamente e, via de regra, grandes falhas de
projeto podem ser encontradas e corrigidas primeiro. 
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 17/30
 Estratégia Bottom Up: na estratégia de baixo para cima, cada
módulo em níveis mais baixos é testado com módulos mais altos até
que todos os módulos sejam testados.
As estratégias top down e bottom up são exibidas esquematicamente na Figura
2.1. 
#PraCegoVer: Apresenta um organograma ao centro contendo seis blocos
retangulares, dispostos de cima para baixo. À sua esquerda uma seta
apontando para baixo com a descrição Top Down e à sua direita uma seta
apontando para cima com a descrição Bottom Up. 
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 18/30
 
O primeiro módulo, ao topo do organograma possui fundo na cor azul claro
com o texto: módulo um. Mais abaixo, no nível inferior o organograma possui
dois outros blocos na cor azul claro. O bloco da esquerda com o texto:
Módulo 2. O bloco da direita no mesmo nível, possui o texto: Módulo 3. 
 
No nível mais abaixo, ao lado esquerdo, rami�cado a partir do módulo 2, são
apresentados outros dois módulos com fundo na cor azul claro: à esquerda
com o texto: Módulo quatro e à direita com o texto: Módulo cinco. Nesse
mesmo nível, rami�cado a partir do módulo 3, temos um bloco com o texto:
Módulo 6 
 
Esse é o conteúdo que preparamospara Teste de Integração. Sigamos
adiante com nossa atividade do tópico. 
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 19/30
atividade
Atividade
Considerando o conteúdo relacionado ao Teste de Integração, assinale a alternativa
que contém os termos que completam corretamente as lacunas da sentença que
segue:
Para que o Teste de Integração seja possível, é necessário que o testador promova a
ligação entre os ___________ disponíveis e faça a checagem das _________ entre
módulos, incluindo chamadas, interações e �uxos de dados.  Ao contrário do teste
de _________, o Teste de Integração não visa a busca por defeitos no módulo.
A partir do trecho apresentado anteriormente, assinale a alternativa que apresenta
respectivamente as palavras que completam a lacunas:
a) Módulos, interfaces e unidade.
b) Módulos, entidades e depuração.
c) Métodos, interfaces e big bang.
d) Módulos, semelhanças e depuração.
e) Métodos, interfaces e depuração.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 20/30
Imagine a seguinte situação: sua equipe recebeu um produto a ser testado,
aplicou o procedimento determinado no rigor da forma e obteve sucesso em
encontrar e corrigir defeitos no código. No entanto, pouco tempo depois, uma
nova funcionalidade ou ligeira alteração precisou ser incluída no sistema e lá
se foi a con�ança no produto.
Esse cenário é comum o bastante para contar com uma modalidade de teste
especí�ca para sua ocorrência. Denominado Teste de Regressão, justi�ca sua
existência por considerar que o sistema experimentou regressão ao ter novos
componentes incluídos ou componentes já existentes alterados.
Uma outra justi�cativa plausível para esse teste é o inevitável efeito
modi�cador de qualquer tipo de manutenção aplicada ao produto, que
incluem correções de defeitos, exclusão de funcionalidades e qualquer outra
modi�cação no código.
Rungta (2018) a�rma que o Teste de Regressão é de�nido como um tipo de
teste aplicado para con�rmar que um programa recente ou alteração de
código não afetou adversamente os recursos existentes. Em relação a sua
Teste de RegressãoTeste de Regressão
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 21/30
aplicação, o procedimento prevê a seleção total ou parcial de casos de teste já
executados e a sua reexecução, com a �nalidade de garantir que as
funcionalidades estejam intactas.
Como todo procedimento, o Teste de Regressão também conta com melhores
práticas para sua aplicação. A primeira prevê que tudo seja testado
novamente, o que implica que todos os casos de teste sejam aplicados
novamente, tornando o processo, muitas vezes, dispendioso e moroso.
A segunda prática, conhecida como seleção de Teste de Regressão, prevê que
os casos de teste sejam reaplicados de forma seletiva, de acordo com a
conveniência de sua reutilização. A equipe deve escolher, então, casos de
testes reutilizáveis e casos de teste obsoletos, descartando estes últimos.
Por �m, a terceira prática prevê que os casos de teste sejam selecionados de
acordo com seu impacto nos negócios e com base em sua capacidade de
exercitar as funcionalidades críticas do sistema. É natural que, nesse caso, a
equipe deverá conhecer muito bem o sistema para não cometer erros na
seleção. 
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 22/30
atividade
Atividade
O Teste de Regressão é de�nido como um tipo de teste aplicado para con�rmar que
um programa recente ou alteração de código não afetou adversamente os recursos
existentes.
RUNGTA, K. Learn Testing in 1 Day: De�nitive Guide to Learn Software Testing for
Beginners. Edição do Kindle, 2018,
Considerando o conteúdo relacionado à justi�cativa para aplicação de Teste de
Regressão, analise as a�rmações que seguem.
I. Modi�cação do código por causa de novo requisito implementado.
II. Nova funcionalidade adicionada ao software.
III. Descoberta de um defeito na unidade durante o Teste de Integração.
A partir das a�rmativas apresentadas anteriormente, é correto o que se a�rma em:
a) I, apenas.
b)  II, apenas.
c) III, apenas.
d)  I e II, apenas.
e) I, II e III.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 23/30
Nossa última modalidade de teste abordada nesta Unidade constitui um
formato de teste muito parecido com o “codi�car e testar”, modelo de
desenvolvimento no qual não se dá ênfase a outras etapas, senão as de
codi�car e testar. Outra característica relevante dessa modalidade é que foi
concebida no âmbito da metodologia XP (Extreme Programming), criada para
desenvolvimento ágil de software.
Desenvolvimento Voltado aDesenvolvimento Voltado a
TestesTestes
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 24/30
Para a realização dos testes no formato TDD (Test-Driven Development ou
Desenvolvimento Voltado a Testes), a equipe apoia-se no fato de que a
descrição dos requisitos – ou as estórias escritas pelo cliente – não constitui
documento com excessiva formalidade e detalhamento de funções e que, por
esse motivo, o cliente deve acompanhar o processo de codi�cação e teste. Em
tempos passados, o teste era realizado tomando como base o código
completo, ou quase completo, já que as linguagens de programação
di�cultavam a execução de apenas partes do programa. Hoje em dia,
tecnologias que suportam linguagens orientadas a objeto (como o Java)
permitem não só́ a automatização dos testes – ação tão importante no âmbito
do TDD – como também a execução de partes autônomas de um programa,
como uma classe, por exemplo (NETO, 2016).
O teste de parte do código segue a sua criação, ou seja, o teste e a integração
são feitos logo após sua codi�cação.
Os passos do desenvolvimento guiado pelos testes incluem:
A seleção de um conjunto de casos de teste;
A execução do caso de teste. Encontrando-se o defeito, o código
deverá ser ajustado. Caso não se encontre defeito, um novo conjunto
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 25/30
de casos de teste deve ser selecionado e o processo deve ser
reiniciado (PINHEIRO, 2015)
Este foi o conteúdo de teste que preparamos. A variedade de assuntos
relacionados ao tema, no entanto, ultrapassa os limites desta Unidade e deve
ser alcançada pela leitura de outras fontes, como a indicada a seguir.
Mantenha-se �rme nas atividades e até a próxima!
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 26/30
atividade
Atividade
Para a realização dos testes no formato TDD, a equipe apoia-se no fato de que a
descrição dos requisitos – ou as estórias escritas pelo cliente – não constitui
documento com excessiva formalidade e detalhamento de funções e que, por esse
motivo, o cliente deve acompanhar o processo de codi�cação.
Assinale a alternativa que contém  a correta justi�cativa para a presença do cliente
no processo de desenvolvimento orientado a testes.
a) Cliente pode ordenar trocas de elementos na equipe de teste.
b)  Cliente dar sugestões para otimização do código, o que pode     torná-lo
mais e�ciente.
c) Cliente pode ajudar na refatoração do código, de modo que sua
formatação �que de acordo com o que deseja.
d) Cliente pode ajudar no processo de depuração do código.
e) Cliente ajuda na elaboração de casos de teste com base em seu
conhecimento das regras de negócio implementadas.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463…27/30
indicações
Material Complementar
LIVRO
Introdução ao Teste de Software
Márcio Eduardo Delamaro; José Carlos Maldonado;
Mário Jino.
Editora: Elsevier
ISBN: 8535283528
Comentário: escrito por três das maiores autoridades
brasileiras em Engenharia de Software e Teste de
Software, essa edição atualizada do livro é abrangente
o su�ciente para introduzir novos assuntos aos
iniciados e, ainda assim, simples na medida para
iniciantes. Vale a leitura.
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 28/30
FILME
Estrelas além do Tempo
Ano: 2016
Comentário: o �lme mostra a contribuição de três
mulheres na corrida espacial travada entre Estados
Unidos e União Soviética, em plena guerra fria. Envoltas
em uma circunstância social peculiar, as três amigas
promovem verdadeira revolução em um ambiente
dominado por homens.
T R A I L E R
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 29/30
conclusão
Conclusão
É provável que alguém pense ser desnecessário e lugar comum mencionar
coisas relacionadas a importância do teste de software. Mas não é. A
aplicação de testes nos produtos de software transcende a mera formalidade
procedimental e alcança níveis de atividade crítica no processo de construção
do sistema. Sem ele, não teríamos garantia de que o produto funciona como
se espera e nada além da sorte protegeria o cliente de paradas súbitas no
programa, manifestação de defeitos até então ocultos e, em casos mais
extremos, de prejuízo �nanceiro e em vidas.
Pela complexidade e criticidade envolvida na atividade é que foram criadas
várias modalidades e estratégias de teste e essa diversidade se manifesta
também na escolha do momento para aplicação do teste: após se testar a
unidade, depois da integração, após a inclusão de uma nova funcionalidade
etc.
Esperamos que você se torne uma boa referência no assunto e que seja capaz
de produzir e transmitir conhecimento em teste de software. Até a próxima!
referências
Referências Bibliográ�cas
22/09/2021 21:22 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 30/30
NETO, R. M. Engenharia de software. Londrina: Editora e Distribuidora
Educacional S.A., 2016.
PINHEIRO, A. F. Fundamentos da Engenharia de Software. 1 ed. Recife:
Amazon Publishing, 2015.
RUNGTA, K. Learn Testing in 1 Day: De�nitive Guide to Learn Software
Testing for Beginners. Edição do Kindle, 2015.
____. Learn Testing in 1 Day: De�nitive Guide to Learn Software Testing for
Beginners. Edição do Kindle, 2018.
IMPRIMIR

Mais conteúdos dessa disciplina