Aula 17 Testes Software
Aula 17 Testes Software
Aula 17 Testes Software
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
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.
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.
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
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