Você está na página 1de 17

Engenharia de Software – Testes de

Software (Tipos – 2ª parte)


Prof. Washington Almeida, MSC, ISF 27002
Estratégia de Testes
• Os principais testes cobrados pelas bancas foram
demonstrados nos blocos anteriores.
• Cargos mais técnicos costumam abordar os conceitos que
veremos nesses blocos.
• Unitário, Validação, Sistema, Regressão, Integração,
Disponibilização, Classe, Beta e Alfa.
• Revisão de Configuração, Grupo de Teste Independente e
Depuração.

3
Testes?
• Até o momento estudamos o conceito de inspeções, defeitos e
testes em nível mais conceitual e amplo.
• Agora vamos ver em nível mais baixo levando em consideração
a abordagem prática.
• Para a implementação de testes existem a abordagem
tradicional ou convencional, a orientada a objetos e a de
WebApps.
• Os termos comuns e tipos de testes similares dessas
abordagens já foram comentados na 1ª parte desse bloco.
4
Para Pensar !!!
“Quando podemos dizer que terminamos os testes
— como podemos saber que já testamos o
suficiente?”
“O teste nunca termina; o encargo simplesmente
passa do engenheiro de software para o usuário
final”.
“O teste acaba quando o tempo ou o dinheiro
acabam”.
(PRESSMAN,2016)
5
Modelo V
• Aceitação: conduzido pelo cliente
voltado para empregar todos os
fatores e funções requisitados.
• Sistema: avalia se os requisitos
foram atendidos para o sistema
completo (ou incremento de
software)
• Integração: realizado à medida que
o sistema é construído, analisando a
integração entre os componentes
compostos.
• Unidade: menor unidade, métodos,
funções ou componentes simples.
(PRESSMAN, 2016) 6
Unidade
• A interface do módulo é testada para assegurar que as
informações fluam
• corretamente para dentro e para fora da unidade de
programa que está sendo testada.
• A estrutura de dado local é examinada para garantir
que os dados armazenados temporariamente
mantenham sua integridade durante todos os passos
na execução de um algoritmo.
• Todos os caminhos independentes da estrutura de
controle são usados para assegurar que todas as
instruções em um módulo tenham sido executadas
pelo menos uma vez.
• O teste seletivo de caminhos de execução é uma tarefa
essencial durante o teste de unidade.
• Casos de testes deverão ser projetados para descobrir
erros devido a computações errôneas,comparações
incorretas ou fluxo de controle inadequado.

7
Erros
• Entre os erros potenciais que deverão ser testados quando a
manipulação de erro é avaliada estão:
• (1) descrição confusa do erro
• (2) o erro apontado não corresponde ao erro encontrado
• (3) a condição do erro causa intervenção do sistema antes da
manipulação do erro
• (4) o processamento exceção-condição é incorreto
• (5) a descrição do erro não fornece informações suficientes para
ajudar na localização da causa do erro.

8
Exemplo
• Um sistema de projeto auxiliado por computador (CAD) foi
desenvolvido sob contrato.
• Em um módulo de processamento de transação, um
programador brincalhão colocou a seguinte mensagem de
manipulação de erro após uma série de testes condicionais
que chamavam vários desvios de fluxo de controle: ERRO!
VOCÊ NÃO TEM SAÍDA AQUI. Essa “mensagem de erro” foi
descoberta por um cliente durante o treinamento com um
usuário! (PRESSMAN, 2016)

9
Pseudocontrolador
• Devido ao fato de um componente não ser um programa
independente (stand-alone), deve ser desenvolvido um
pseudocontrolador (driver) e/ou um pseudocontrolado (stub)
para cada teste de unidade.
• Em muitas aplicações, um pseudocontrolador nada mais é do
que um “programa principal” que aceita dados do caso de
teste, passa esses dados para o componente (a ser testado), e
imprime resultados relevantes.

10
Ambiente de teste de unidade

11
Solução

• O teste de unidade é simplificado quando um componente


com alta coesão é projetado.
• Quando somente uma função é implementada por um
componente, o número de casos de teste é reduzido, e os
erros podem ser mais facilmente previstos e descobertos.

12
Questão 1
Ano: 2018 Banca: FAURGS Órgão: BANRISUL Prova: FAURGS - 2018 - BANRISUL - Teste de Software
Considere as seguintes afirmações sobre o Modelo "V" de teste de software:

I - Descreve a relação entre ações de garantia da qualidade e as ações associadas à comunicação, modelagem e atividades iniciais de
construção.
II - À medida que a equipe de software desce em direção ao lado esquerdo do "V", os requisitos básicos do problema são refinados em
representações, progressivamente, mais detalhadas e técnicas do problema e de sua solução. Ao ser gerado o código, a equipe se
desloca para cima, no lado direito do "V", realizando basicamente uma série de testes que validem cada um dos modelos criados, à
medida que a equipe se desloca para baixo, no lado esquerdo do "V".
III - Fornece uma forma para visualizar como a verificação e as ações de validação são aplicadas ao trabalho de engenharia anterior.

Quais estão corretas?


a) Apenas I.
b) Apenas I e II.
c) Apenas I e III.
d) Apenas II e III. LETRA E
e) I, II e III.

13
Questão 2
Ano: 2018 Banca: FAURGS Órgão: BANRISUL Prova: FAURGS - 2018 - BANRISUL - Teste de Software
Numere a segunda coluna de acordo com a primeira, associando os Níveis de Teste de Software às suas respectivas características.
(1) Teste de Unidade (2) Teste de Integração (3) Teste de Sistema (4) Teste de Aceitação

( ) Avalia o software com respeito ao projeto de seus subsistemas e detecta suposições errôneas sobre pré e pós-condições para
execução de um componente, falhas nas interfaces de comunicação dos componentes do software.
( ) Avalia o software com respeito aos seus requisitos e detecta falhas nos requisitos e na interface com o usuário.
( ) Avalia o software com respeito a sua implementação detalhada e detecta falhas de codificação, algoritmos ou estruturas de dados
incorretos ou mal implementados.
( ) Avalia o software com respeito ao seu projeto arquitetural e detecta falhas de especificação, desempenho, robustez e segurança.

A sequência correta de preenchimento dos parênteses, de cima para baixo, é:


a) 2 – 4 – 1 – 3.
b) 1 – 4 – 2 – 3.
c) 4 – 2 – 3 – 1.
d) 2 – 1 – 3 – 4.
e) 1 – 3 – 4 – 2. LETRA A

14
Questão 3
Ano: 2016 Banca: CESPE Órgão: TCE-PA Prova: CESPE - 2016 - TCE-PA - Auditor de Controle Externo - Área
Informática - Analista de Sistema

No que concerne a testes de software, julgue o item que se segue:


Na aplicação de versões mais recentes do software, caso seja
verificada a ocorrência de novos defeitos em componentes já
analisados, os testes de unidade rejeitarão o software,
interpretando ter havido violação das assinaturas de entrada e
saída. ERRADO
Justificativa: Teste de REGRESSÃO - aplicação de testes à versão mais recente do SW para garantir que não
surgirão novos defeitos em componentes já testados.

15
Gabarito

Questão Resposta
1 LETRA E

2 LETRA A

3 ERRADO

16
Continua...
• Tipos de Testes
• Finalidades
• Outros Tópicos Relevantes

17
Referências
• PRESSMAN, Roger S. ; Bruce R. Maxim. Engenharia de Software, Uma Abordagem Profissional, 8° ed.
Porto Alegre: AMGH, 2016. ISBN 978-85-8055- 533-2.
• SOMMERVILLE, Ian. Engenharia de Software, 9. ed. São Paulo: Pearson Prentice Hall, 2011. ISBN 978-
85-7936-108-1.

18

Você também pode gostar