Buscar

Qualidade-e-teste-de-SW-Unidade6

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Qualidade e 
testes de software
Fases ou níveis do 
teste de software
Unidade 6
Fases ou níveis do 
teste de software
Unidade 6
Qualidade e 
testes de software
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
3
Unidade 6 Fases ou níveis do teste de software
Objetivo de aprendizagem:
• Apresentar as fases ou níveis de teste de software.
Tópicos de estudo:
• Teste de unidade;
• Teste de integração;
• Teste de sistema.
Iniciando os estudos:
Nesta unidade, você poderá compreender como os testes de software podem diferir quanto a sua granu-
laridade. No teste de software, você encontrará as fases ou níveis de teste de unidade, teste de inte-
gração e teste de sistema. A questão-chave para a compreensão de cada um desses níveis é entender o 
objetivo de teste em cada um deles.
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
4
1 TESTE DE UNIDADE
O teste de unidade tem como foco as menores unidades de um programa, que podem ser funções, 
procedimentos, métodos ou classes. Nesse contexto, espera-se que sejam identificados erros relacio-
nados a algoritmos incorretos ou mal implementados, estruturas de dados incorretas ou simples erros 
de programação. Como cada unidade é testada separadamente, o teste de unidade pode ser aplicado à 
medida que ocorre a implementação das unidades e pelo próprio desenvolvedor, sem a necessidade de 
dispor-se do sistema totalmente finalizado (DELAMARO et al., 2016).
Para você compreender melhor o conceito, observe o pseudocódigo abaixo:
função soma(a, b)
 início
 retorne a + b;
	 fim
Seja soma uma função hipotética de soma, que recebe dois parâmetros e retorna a soma entre eles. 
Para que o teste seja realizado é necessário executar ao menos uma vez essa função:
resultado <= soma (1, 2);
se resultado é igual a 3 então
 imprima (“Função está correta”);
Ao programar os trechos exibidos, você terá concluído um teste unidade ou unitário.
Título: C#: como criar e executar testes de unidade
Acesso em: 27/11/2019.
Disponível em: https://youtu.be/uBI2vtflrRo
Aprofunde-se
Veja, foi construído um novo código para realizar o teste de unidade. Em um primeiro momento pode 
parecer tentador não escrever um novo código para validar um outro código. Porém, ressalta-se que no 
ciclo de vida de um produto de software esse mesmo software passará por sucessivos ciclos de manu-
tenção, com a adição de novas funcionalidades ou correções de funcionalidades já existentes. Nesse 
contexto, o código-fonte base, ao final de vários ciclos, será grande o suficiente para tornar a manu-
tenção custosa e realizar testes nesse código de forma manual será uma tarefa humanamente difícil, 
dado seu tamanho. Com essa motivação, a construção de testes de unidade surge como alternativa para 
https://youtu.be/uBI2vtflrRo
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
5
facilitar a manutenção do produto de software, frente a sucessivas modificações/inclusões de código no 
ciclo de vida do produto de software, utilizando-se, inclusive, de recursos para automatização desses 
testes (LIMA, 2017).
Título: 5 maneiras de aplicar ou otimizar seus testes de unidade
Acesso em: 27/11/2019.
Disponível em: https://youtu.be/oIMsTXRN8Qg
Aprofunde-se
Acesse na plataforma o vídeo: Custo dos testes unitários
Assista
Para resumir a importância do teste unitário hoje na cadeia de desenvolvimento de software, considere 
a imagem a seguir:
Na figura acima, é exemplificado que testes de unidade ou unitários são mais baratos e rápidos (como 
coelhos) que testes de usuários (UI) que são mais caros e lentos (como tartarugas).
Figura 1 - Relação em testes unitários e de interface de usuário. 
Fonte: Lima (2017).
https://youtu.be/oIMsTXRN8Qg
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
6
2 TESTE DE INTEGRAÇÃO
No teste de integração, que deve ser realizado após serem testadas as unidades individualmente, a 
ênfase é dada na construção da estrutura do sistema. À medida que as diversas partes do software 
são colocadas para trabalhar juntas, é preciso verificar se a interação entre elas funciona de maneira 
adequada e não leva a erros. Também nesse caso é necessário um grande conhecimento das estruturas 
internas e das interações existentes entre as partes do sistema e, por isso, o teste de integração tende a 
ser executado pela própria equipe de desenvolvimento (DELAMARO et al., 2016).
O teste de integração possui duas estratégias para sua realização: as abordagens bottom-up e top-down 
(LOURENÇO, 2010).
Na abordagem bottom-up, o software é desenvolvido a partir de rotinas, funções e métodos básicos 
que fornecem serviços às demais rotinas, funções ou métodos de uma camada superior do software. 
Por exemplo, uma verificação de CPF pode ser chamada em vários pontos de um sistema de software. 
Provavelmente será uma das primeiras a serem implementadas.
Já na abordagem top-down, faz-se o contrário. O desenvolvedor elabora seu código supondo que o 
código de uma camada inferior do sistema de software já esteja pronto. Utilizando-se o exemplo anterior 
de verificação de CPF, o desenvolvedor pode codificar chamadas (fazer o uso nominal da função) para a 
verificação de CPF, mesmo sabendo que ela ainda não existe. Nesse exemplo, utiliza-se o recurso conhe-
cido como stubs, que são rotinas vazias que retornam valores explícitos, definidos pelo programador.
Na realização de testes para a abordagem de desenvolvimento bottom-up, devem ser escritos códigos 
que invoquem as rotinas de camadas inferiores, testando-as com diversas combinações de parâmetros. 
As rotinas escritas para esses testes são conhecidas como drivers (você viu um breve exemplo no tópico 
1, no teste de unidade ou unitário), pois sua função é acionar o código que deve ser testado.
Muitas organizações encontram dificuldades com as atividades de teste. Em geral, 
tal situação é justificada pela falta de profissionais especializados na área ou 
mesmo uma dificuldade de implementar os processos de teste. Para esses casos, 
o CenPRA (Centro de Pesquisas Renato Archer) desenvolveu uma metodologia 
para auxiliar as empresas nesses processos. Saiba mais em: http://tecnologia.
alinebossi.com/2010/09/20/teste-de-software-no-contexto-da-melhoria/
Reflita
Há testes que necessitam de dados oriundos de arquivos. Nessa situação, é comum que testadores 
criem bases de dados falsas contendo registros para realizá-los, simulando os dados necessários para o 
teste. Esses dados, inclusive, podem ser inconsistentes, contendo informação incorreta para verificar o 
comportamento de rotinas.
http://tecnologia.alinebossi.com/2010/09/20/teste-de-software-no-contexto-da-melhoria/
http://tecnologia.alinebossi.com/2010/09/20/teste-de-software-no-contexto-da-melhoria/
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
7
Uma vez que cada componente tenha sido testado, seja com os drivers ou os stubs, esses elementos são 
substituídos pelas rotinas reais. Após a substituição, é recomendado que os testes de integração sejam 
executados novamente, de modo que o processo todo se repita até a conclusão do projeto.
Título: Testes de integração: comece a pensar no todo!
Acesso em: 27/11/2019.
Disponível em: https://youtu.be/sa448ZG9p9U
Aprofunde-se
2.1 TESTE DE REGRESSÃO E ACEITAÇÃO
Existem também os testes de aceitação e testes de regressão. O teste de aceitação (também conhecido 
por UAT, do inglês User Acceptance Tests) tem por objetivo verificar a conformidade com os requisitos 
de negócio e usuário na última fase do ciclo de desenvolvimento, validando o produto para entrega. Eles 
são realizados geralmente por um grupo restrito de usuários finais do sistema.
Figura 2 - Utilização de drivers e stubs para uso em 
testes de integração.
Fonte: adaptado de Albano et al. (2015).
ED
+ 
Co
nt
en
t H
ub
 ©
 2
01
9
https://youtu.be/sa448ZG9p9U
Qualidade e testes de software |Unidade 6 - Fases ou níveis do teste de software
8
Acesse na plataforma o vídeo: Testes de regressão e teste de aceitação
Assista
Já o teste de regressão acontece a cada modificação efetuada no sistema após a liberação de nova 
versão. Nesses processos, corre-se o risco de que novos defeitos sejam introduzidos. Por esse motivo, 
é necessário, após a manutenção, realizar testes que mostrem que as modificações efetuadas estão 
corretas, ou seja, que os novos requisitos implementados (se for o caso) funcionam como o esperado e 
que os requisitos anteriormente testados continuam válidos. De maneira geral, os testes de regressão 
tratam de uma nova execução do conjunto de casos de teste já executados (DELAMARO et al., 2016).
Esse artigo confronta as características do paradigma de orientação a 
objetos para a criação de testes de integração.
Título do artigo: Testes de integração aplicados a software orientado a 
objetos: heurísticas para ordenação de classes
Link: https://www.cos.ufrj.br/uploadfile/es63204.pdf
Aprofunde-se
3 TESTE DE SISTEMA
Depois que se tem o sistema completo, com todas as suas partes integradas, inicia-se o teste de sistema. 
O objetivo é verificar se as funcionalidades especificadas nos documentos de requisitos estão todas 
corretamente implementadas. Aspectos de correção, completude e coerência devem ser explorados, 
bem como requisitos não funcionais como segurança, performance e robustez. Muitas organizações 
adotam a estratégia de designar uma equipe independente para realizar o teste de sistema (DELAMARO 
et al., 2016).
Acesse na plataforma o vídeo: Ambientes de teste
Assista
https://www.cos.ufrj.br/uploadfile/es63204.pdf
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
9
Os seguintes pontos sumarizam o teste de sistema (SOMMERVILLE, 2011):
• Se os componentes são compatíveis;
• Se eles interagem corretamente;
• Se transferem os dados certos no momento certo, por meio de suas interfaces.
Título: Testes de aceitação
Acesso em: 27/11/2019.
Disponível em: https://youtu.be/0B3dKp07Qe4
Aprofunde-se
Ainda, segundo Sommerville (2011), os testes de sistema se sobrepõem aos testes de integração, 
possuindo as seguintes diferenças entre eles:
1. Durante o teste de sistema, os componentes reusáveis que tenham sido desenvolvidos 
separadamente e os sistemas de prateleira que eventualmente foram adquiridos, 
podem ser integrados com componentes recém-desenvolvidos. Então, o sistema 
completo é testado.
2. Nesse estágio, componentes desenvolvidos por diferentes membros da equipe ou 
grupos podem ser integrados. O teste de sistema é um processo coletivo, não indivi-
dual. Em algumas empresas, o teste de sistema pode envolver uma equipe indepen-
dente, sem participação de projetistas e programadores.
https://youtu.be/0B3dKp07Qe4
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
10
Esse artigo lista seis regras práticas para melhorar o teste de sistemas 
em geral.
Título do artigo: 6 regras simples para melhorar o teste de sistemas
Link: https://blogbrasil.comstor.com/6-regras-simples-para-melhorar-o-
teste-de-sistemas
Aprofunde-se
Infográfico 1 - Comparação entre as fases ou níveis de teste.
Fonte: adaptado de https://bit.ly/2OszyiL Acesso em: 5 dez. 2019.
ED
+ 
Co
nt
en
t H
ub
 ©
 2
01
9
https://blogbrasil.comstor.com/6-regras-simples-para-melhorar-o-teste-de-sistemas
https://blogbrasil.comstor.com/6-regras-simples-para-melhorar-o-teste-de-sistemas
https://bit.ly/2OszyiL
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
11
CONSIDERAÇÕES FINAIS
Nesta unidade, os chamados níveis ou fases de teste foram apresentados detalhando seus escopos e em 
qual ponto do desenvolvimento devem ocorrer.
De posse das informações aqui apresentadas, você poderá avaliar quando e onde poderá aplicar testes 
de unidade, de integração ou sistema durante o desenvolvimento de um produto de software.
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
12
GLOSSÁRIO
Drivers: são responsáveis pelo controle do teste de uma unidade ou conjuntos de unidades de um 
sistema. É uma operação que exercita o módulo sob teste, envia valores (dados de entrada dos casos de 
teste), coleta e compara resultados.
Stubs: são implementações que simulam determinadas situações esperadas. Normalmente possuem a 
mesma assinatura dos métodos, funções ou rotinas que se deseja simular, porém retornam um compor-
tamento fixo determinado pelo desenvolvedor.
UI (User Interface): dispositivo pelo qual o usuário troca informações com o software. É o meio pelo qual 
o usuário comunica-se com o software.
Qualidade e testes de software | Unidade 6 - Fases ou níveis do teste de software
13
REFERÊNCIAS
ALBANO, Edson Lucas; AMARAL, Eduardo; BENITTI, Fabiane Barreto Vavassori, 2015. Teste de Integração. 
Disponível em: https://www.inf.ufsc.br/~fabiane.benitti/byebug/objetos/OA31/integracao/presentation_html5.html. 
Acesso em: 23 nov. 2019.
DELAMARO, Márcio Eduardo; MALDONADO, José Carlos; JINO, Mário. Introdução ao Teste de Software. 
2. ed. Rio de Janeiro: Campus - Elsevier, 2016.
LIMA, Dayvson. Entenda de uma vez por todas o que são testes unitários, para que servem e como fazê-los, 
2017. Disponível em: https://medium.com/@dayvsonlima/entenda-de-uma-vez-por-todas-o-que-s%C3%A3o-tes-
tes-unit%C3%A1rios-para-que-servem-e-como-faz%C3%AA-los-2a6f645bab3. Acesso em: 23 nov. 2019.
LOURENÇO, Marcelo. Teste de Integração, 2010. Disponível em: http://qualidade-de-software.blogspot.
com/2010/01/teste-de-integracao.html. Acesso em: 24 nov. 2019.
SOMMERVILLE, I. Engenharia de Software. Tradução Ivan Bosnic e Kalinga G. de O. Gonçalves. 9. ed. São 
Paulo: Pearson Prentice Hall, 2011.
https://www.inf.ufsc.br/~fabiane.benitti/byebug/objetos/OA31/integracao/presentation_html5.html
https://medium.com/@dayvsonlima/entenda-de-uma-vez-por-todas-o-que-são-testes-unitários-para-que-servem-e-como-fazê-los-2a6f645bab3
https://medium.com/@dayvsonlima/entenda-de-uma-vez-por-todas-o-que-são-testes-unitários-para-que-servem-e-como-fazê-los-2a6f645bab3
http://qualidade-de-software.blogspot.com/2010/01/teste-de-integracao.html
http://qualidade-de-software.blogspot.com/2010/01/teste-de-integracao.html

Outros materiais