Você está na página 1de 91

Teste e Qualidade de Software

Unidade 1 – Fundamentos do Teste de Software

Prof. Thiago Souza – thiago.souza@unigranrio.edu.br


Quem sou eu?
• Professor universitário desde 2004.

• Analista de Sistemas do Governo Federal desde


2005.

• Doutor em Engenharia de Sistemas e Computação


pela COPPE/UFRJ.

• Trabalhando com Teste de Software desde 2008.

• Diversas certificações em Teste de Software: CTFL,


CTFL-AT, CTFL-MBT, CTFL-AcT, CTAL-TA, CTAL-
TM, CTAL-TTA, CTAL-ST e CTAL-TAE.

2 Fundamentos do Teste de Software - Prof. Thiago Souza


Roteiro
} Introdução
} Qualidade do Produto de Software
} Verificação e Validação
} Processo de Teste de Software

3 Fundamentos do Teste de Software - Prof. Thiago Souza


Introdução
} Contexto dos sistemas de software
} Utilização de software
} Poucas empresas utilizavam software até a metade da década de 90.
} Atualmente, são raras as empresas que não possuem algum software
para realizar suas atividades.
} É comum que softwares apresentem falhas.

4 Fundamentos do Teste de Software - Prof. Thiago Souza


Introdução
} Falhas de software podem levar a:
} Perdas financeiras
} Perda de produtividade
} Perda de qualidade
} Perda de reputação
} Ações legais e custos associados
} E a consequências piores:
} Lesões corporais ou morte (acidentes aéreos).
} Desastres tecnológicos
} Mal funcionamento de um sistema de controle de mísseis.

5 Fundamentos do Teste de Software - Prof. Thiago Souza


Introdução
} Erro, defeito e falha

6 Fundamentos do Teste de Software - Prof. Thiago Souza


Introdução
} Defeitos ocorrem devido a...
} Falibilidade do analista, programador ou outro membro da
equipe (incluindo testadores).
} Pressão de tempo.
} Falhas de comunicação.
} Complexidade de código ou infraestrutura.
} Mudança de requisitos não documentados.
} Mudança de tecnologia.
} Processo de desenvolvimento imaturo.

7 Fundamentos do Teste de Software - Prof. Thiago Souza


Introdução
} Teste e qualidade
} Qualidade
} É o grau de atendimento de um produto às suas especificações e às
necessidades e expectativas do usuário ou consumidor.
} Teste é igual a qualidade?
} O teste por si só não constrói a qualidade do software.
} O teste tem a função de ajudar a medir a qualidade.
} O teste pode fornecer confiança na qualidade do software.
} Testes bem projetados e executados reduzem os riscos de falha.

8 Fundamentos do Teste de Software - Prof. Thiago Souza


Qualidade do Produto de Software
} Modelo de Qualidade do Produto de Software
} ISO 25010

9 Fundamentos do Teste de Software - Prof. Thiago Souza


O que é teste
} Definições
} A literatura apresenta várias definições
} “Testar é analisar um programa com a intenção de descobrir erros e
defeitos.” (Myers)
} “O teste de programas pode ser usado para mostrar a presença de
defeitos, mas nunca para mostrar a sua ausência.” (Dijkstra)
} O teste de software é um processo relacionado ao
desenvolvimento de software que tem como principal objetivo
revelar falhas por meio da análise dinâmica de programas
(ISO/IEC/IEEE 29119-1).

10 Fundamentos do Teste de Software - Prof. Thiago Souza


O que é teste
} Processo de Teste
} Visão geral (inspirado na ISO 29119)

11 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 1
} Teste demonstra a presença de defeitos
} O teste pode demonstrar a presença de defeitos, mas não pode
provar que eles não existem.
} O teste reduz a probabilidade de que os defeitos permaneçam em um
soSware, mas não prova que ele esteja perfeito.
} Não há sistema de soSware sem bugs.
¨ Defeitos podem não ser encontrados.
} Não podemos concluir que o sistema está completamente correto.

12 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 2
} Teste exaustivo é impossível
} Testar tudo (todas as combinações de entradas e pré-condições) não
é viável, exceto para casos triviais.
} Somente com testes exaustivos seria possível provar a ausência de
erros em um software, porém significaria um número infinito de
testes.
} Em vez do teste exaustivo, riscos e prioridades são levados em
consideração para aperfeiçoar a cobertura dos testes.

13 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 2
} Teste exausYvo é impossível

14 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 3
} Teste antecipado
} A atividade de teste deve começar o mais breve possível no ciclo de
desenvolvimento do software e deve ser focado em objetivos
específicos.
} O processo de teste deve ser executado paralelamente com o
desenvolvimento do software.

15 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 3
} Teste antecipado
} Modelo V

16 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 4
} Agrupamento de defeitos
} Um número pequeno de módulos contém a maioria dos defeitos
descobertos durante o teste.
} É necessário reagir de forma flexível, direcionando os testes para
privilegiar os pontos mais susceptíveis a defeitos.

17 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 5
} Paradoxo do pesYcida
} Pode ocorrer de um mesmo conjunto de testes que são repe[dos
várias vezes não encontrarem novos defeitos após um determinado
momento.
} Os casos de teste precisam ser frequentemente revisados e
atualizados.
¨ Ex.: Testes funcionais não podem encontrar bugs de desempenho.
} Analogia:
¨ Você pulveriza pes>cida na sua horta e as lagartas morrem, mas o
pes>cida não é efe>vo contra todas as pragas.
¨ Da mesma forma como os pes>cidas se tornam menos efe>vos, assim
ocorre com os testes.
} Experimente novas técnicas de teste.

18 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 5
} Paradoxo do pesticida

19 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 6
} Teste depende do contexto
} Testes são realizados de forma diferente conforme o contexto.
} Diferentes projetos, organizações e produtos têm diferentes
necessidades de teste.
} SoSwares de segurança crí[ca são testados diferentemente de um
soSware de comércio eletrônico.
¨ Ex.: SoBware de computador de bordo de aeronaves.

20 Fundamentos do Teste de Software - Prof. Thiago Souza


Os 7 princípios do teste
} Princípio 7
} A ilusão da ausência de erros
} Encontrar e consertar muitos defeitos não garante a satisfação do
usuário ou cliente.
} Muitos produtos com número baixo de defeitos identificados em
teste falharam em produção.
} Projetos de sucesso balanceiam suas forças competitivas em termos
de features, bem como o cumprimento de prazos e orçamento.

21 Fundamentos do Teste de Software - Prof. Thiago Souza


Verificação e Validação
} Verificação e Validação
} A avaliação da qualidade de um produto é dividida em:

22 Fundamentos do Teste de Software - Prof. Thiago Souza


Verificação e Validação
} Verificação
} Estática
} Revisões de software - preocupadas com a análise estática das
representações do sistema para descobrir problemas.
} Pode ser complementadas por alguma análise automática do texto de
origem de um sistema ou dos documentos associados.
} Dinâmica
} Teste de software - preocupado com a execução e observação do
comportamento do produto (verificação dinâmica).
} O sistema é executado com dados de teste e o seu comportamento
operacional é observado.

23 Fundamentos do Teste de Software - Prof. Thiago Souza


Verificação e Validação
} Validação
} Teste Alfa
} Teste operacional, simulado ou real, realizado por
usuários/consumidores em potencial ou por uma equipe de teste
independente e conduzido nas instalações do desenvolvedor, mas
fora da organização de desenvolvimento.
} É frequentemente u[lizado por “soSware off-the-shelf” (soSware de
prateleira/pacote) como forma interna de teste de aceite.

24 Fundamentos do Teste de Software - Prof. Thiago Souza


Verificação e Validação
} Validação
} Teste Beta
} Teste operacional realizado por usuários/consumidores
existentes/potenciais em um local externo, sem envolvimento dos
desenvolvedores, a fim de determinar se um componente ou sistema
satisfaz, ou não, as necessidades dos usuários/consumidores e se
encaixa dentro dos processos dos negócios.
} É frequentemente utilizado como uma forma de teste de aceitação
externo para o software off-the-shelf para assim obter feedback do
mercado.

25 Fundamentos do Teste de Software - Prof. Thiago Souza


Verificação e Validação
} Verificação estáRca
} Onde o código e demais documentos são examinados
} Revisões
¨ Revisão Informal
¨ Revisão Técnica ou Revisão por Pares
¨ Acompanhamento (Walkthrough)
¨ Inspeção
} Análise automá[ca de código (ex.: checkstyle)
} Pair Programming
} Verificação dinâmica
} Onde o código é executado
} Baseados em 3 dimensões de testes.

26 Fundamentos do Teste de Software - Prof. Thiago Souza


Dimensões do Teste
} Lei de Hetzel-Myers
} “Uma combinação de diferentes métodos de V&V supera
qualquer método simples sozinho.”
} Apesar de serem muito efetivas, inspeções não são o único
método de verificação.
} Myers, G.J. A Controlled Experiment in Program Testing and
Code Walkthroughs/Inspections. Comm. ACM 21, 9 (1978),
760–768.

27 Fundamentos do Teste de Software - Prof. Thiago Souza


Dimensões do Teste

Tipos de Teste
Testes Funcionais Técnicas de Teste
Testes Não-Funcionais Teste baseado em estrutura (caixa branca)
- Teste de Usabilidade Teste baseado em especificação (caixa preta)
- Teste de Desempenho
- Teste de Recuperação
- Teste de Segurança
- Teste de Portabilidade
- ...

28 Fundamentos do Teste de So;ware - Prof. Thiago Souza


Níveis de Teste
} Teste de unidade
} Testes realizados em uma unidade independente do produto.
} Estágio mais baixo da escala de teste.
} Aplicado nos menores componentes de código,
visando garantir que estes atendem as
especificações funcionais e de arquitetura.
} Geralmente realizado pelo desenvolvedor
que construiu a unidade.
} Geralmente utiliza técnicas caixa branca.

29 Fundamentos do Teste de Software - Prof. Thiago Souza


Níveis de Teste
} Teste de integração
} Como os componentes são construídos e testados
separadamente, ao serem acoplados deve-se verificar se eles
interagem corretamente.
} Acontece após os testes de unidade.
} Realizados dentro de um ambiente controlado.
} Geralmente realizados pelo desenvolvedor.

30 Fundamentos do Teste de Software - Prof. Thiago Souza


Níveis de Teste
} Teste de sistema
} Os testes de sistema têm foco no funcionamento do sistema
como um todo, para validar a exatidão e a perfeição na
execução das funções requeridas.
} Acontece após os testes de integração.
} Realizado dentro de um ambiente controlado.
} Realizado pela equipe de teste.
} Envolve testes especializados para verificar
todos os requisitos funcionais e
não-funcionais.

31 Fundamentos do Teste de Software - Prof. Thiago Souza


Níveis de Teste
} Teste de aceitação
} Último nível de testes antes da implantação do software em
ambiente de produção.
} Seu objetivo é verificar se o sistema tem condições de ser
implantado em produção, com base nos
critérios de aceitação.
} É de responsabilidade do cliente.
} Tem a finalidade de validar se o software
está apto a entrar em produção e executar
as funções a que se propôs.
} Geralmente realizado em ambiente de
homologação do Cliente.
32 Fundamentos do Teste de Software - Prof. Thiago Souza
Níveis de Teste

Unidades isoladas Unidades integradas


Aplicam-se testes de unidade Aplicam-se testes de integração

Sistema integrado Sistema pronto


Aplicam-se testes de sistema Aplicam-se testes de aceitação
33 Fundamentos do Teste de Software - Prof. Thiago Souza
Tipos de Teste
} Teste funcional (ou de funcionalidade)
} Sua meta é verificar se o software executa corretamente suas
funções, se a implementação das regras de negócio foi
apropriada e se o sistema é capaz de sustentar sua correta
execução por um período contínuo.
} Objetivos:
} Assegurar a funcionalidade do sistema, incluindo entrada de dados,
processamento e resposta.
} Verificar se os requisitos dos usuários estão implementados e se
atendem as necessidades dos usuários.
} Quando usar:
} Pode ser usado desde a fase de especificação de requisitos até a fase
de operação do sistema.

34 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de usabilidade
} O teste de usabilidade verifica a facilidade que o sojware
possui de ser claramente entendido e facilmente operado
pelos usuários.
} ObjeYvos:
} Verificar a facilidade de operação do sistema pelo usuário.
} Verificar a facilidade de entendimento das funções do sistema pelo
usuário, através da u[lização de manuais, help on-line, agentes e
assistentes eletrônicos, etc.
} Como usar:
} Executar diversas operações do sistema u[lizando a sua
documentação.

35 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de usabilidade
} Como medir “facilidade”?
} Lei de Nielsen-Norman
¨ “Usabilidade é quantificável.”
¨ Nielsen, J., Norman, D.A.: Usability on the Web isn’t a Luxury. Information Week
Online 1/14/2000. http://www.information- week.com/773/web.htm
} Medidas de usabilidade
¨ Taxa de sucesso: percentual de tarefas realizadas sem erros e dentro dos
limites de tempo estabelecidos.
¨ Tempo gasto: tempo gasto por cada participante do teste para completar
cada tarefa com sucesso (em minutos).
¨ Frequência de erros: quantidade e tipo de erros cometidos durante a
realização de uma tarefa.
¨ Incidentes de ajuda: quantidade e tipo de informações ou ferramentas
adicionais requisitadas.
¨ Quantidade de cliques e de movimentos do mouse.
36 Fundamentos do Teste de Software - Prof. Thiago Souza
Tipos de Teste
} Teste de usabilidade
} Layout lsico mpico

37 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de usabilidade
} Gravação de gestos e expressões faciais

38 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de usabilidade
} Exemplos de medidas de usabilidade

! !

39 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de usabilidade
} Rastreamento do olhar

Mapas de calor Caminhos sacádicos

40 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de desempenho
} O teste de desempenho (ou performance) mede e avalia o grau
em que um item de teste desempenha suas funções
designadas dentro de determinados limites de tempo e de
outros recursos (CPU, memória, disco, rede).
} Objetivos:
} Verificar se os critérios de desempenho estabelecidos estão sendo
atendidos.
} Identificar pontos de gargalo no sistema.
} Verificar o nível de utilização do hardware e software.
} Quando usar:
} Quando se deseja avaliar o desempenho de uma funcionalidade do
sistema ou de todo o sistema.

41 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de desempenho
} Subtipos (ISO/IEC/IEEE 29119-1:2013)
Teste de Carga Teste de Estresse Teste de Teste de Teste de Volume
Capacidade Resistência
Avaliar o Avaliar o Avaliar o nível no Avaliar se um item Avaliar a
comportamento de comportamento de qual o aumento de de teste pode capacidade do item
um item de teste um item de teste carga (de usuários, sustentar uma de teste processar
em condições em condições de transações, carga necessária volumes de dados
esperadas de carga carga acima dos armazenamento de continuamente por especificados
variável (uso baixo, requisitos de dados, etc.) um período de (usualmente no ou
típico e de pico). capacidade compromete a tempo próximos ao limite
antecipados ou capacidade de um determinado. máximo de
especificados ou da item de teste para capacidade
disponibilidade de sustentar o especificada) em
recursos abaixo dos desempenho termos de
requisitos mínimos requerido. capacidade de
exigidos. throughput,
capacidade de
42 Fundamentos do Teste de Software - Prof. Thiago Souza
armazenamento,
ou ambos.
Tipos de Teste
} Teste de contingência/recuperação
} A meta principal do teste de contingência é verificar se, após
uma falha, a sua recuperação é adequadamente executada,
garantindo a continuidade dos serviços.
} Utiliza como métrica o tempo médio de reparo (MTTR).
} Objetivos:
} Armazenar o backup dos dados em local seguro.
} Documentar os procedimentos de recuperação.
} Deixar claras as responsabilidades das pessoas em caso de um
desastre.
} Quando usar:
} Se a continuidade dos serviços for essencial para o negócio.
} Perdas devem ser estimadas (quanto vou perder por hora?).
43 Fundamentos do Teste de Software - Prof. Thiago Souza
Tipos de Teste
} Teste de segurança/vulnerabilidades
} A principal meta do teste de segurança é garantir que os dados
ou funções de um sistema possam ser acessados apenas por
atores autorizados a acessá-las.
} As formas de acesso indevido devem ser simuladas.
} Objetivos:
} Garantir que os dados do sistema estão protegidos adequadamente.
} Analisar as ameaças e vulnerabilidades (físicas e lógicas).
} Assegurar que os mecanismos de controle contra acessos indevidos
foram corretamente implementados.
} Quando usar:
} Quando a informação que circula através do software for de
importância fundamental para a organização.

44 Fundamentos do Teste de Software - Prof. Thiago Souza


Tipos de Teste
} Teste de conformidade
} Verificar se a aplicação foi desenvolvida seguindo os padrões,
procedimentos e guias da área de processos.
} As metodologias são usadas para aumentar a probabilidade de
sucesso do projeto, e portando devem ser testadas.
} Objetivos:
} Verificar se as metodologias de sistema estão sendo seguidas.
} Garantir as conformidades aos padrões da empresa.
} Avaliar se a documentação do sistema é consistente.
} Quando usar:
} Quando se quer medir o nível de aderência aos padrões.
} Quando se deseja identificar pontos falhos na metodologia.

45 Fundamentos do Teste de Software - Prof. Thiago Souza


Técnicas de Teste
} Teste estrutural
} Técnica de teste que avalia o comportamento interno do
componente de software.
} Também conhecido como Caixa Branca.
} Trabalha diretamente sobre o código-fonte.

46 Fundamentos do Teste de Software - Prof. Thiago Souza


Técnicas de Teste
} Teste baseado em especificação
} Utilizada quando o objetivo é verificar se os requisitos do
sistema e as especificações foram atendidas.
} São conduzidos na interface do software, sem preocupação
com a estrutura lógica interna do software.
} Também conhecido como Caixa Preta.

47 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
} Testes Caixa Preta
} Particionamento em classes de equivalência
} Análise de valor-limite
} Tabela de decisão
} Transição de estados
} Testes Caixa Branca
} Teste de sentença ou comando
} Teste de decisão
} Teste de fluxo de dados
} Teste de sequência de código linear e salto

48 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
} Caso de Teste
} Dados de entrada + resultados esperados (sob determinadas
condições)
} Dados de entrada: Login válido (“ght”) e senha válida (“ght123”)
} Resultado esperado: acesso liberado
} Procedimento de Teste
} Descrição dos passos necessários para exercitar um ou mais
casos de teste
} Usuário acessa a página de login da aplicação;
} Sistema exibe a página de login com os campos de texto “Login” e “Senha”,
além do botão “Confirmar”;
} Usuário informa dados válidos de login e senha e clica no botão “Confirmar”;
} Sistema exibe a sua página principal.

49 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
Classe de Equivalência
} Particionamento em Classes de Equivalência
Usada para reduzir o número de Casos de Teste a um nível controlável,
mantendo uma cobertura razoável.
~
=
Dividir todas as combinações possíveis em classes.

Exemplo: Em um sistema de gestão de contratos, a idade dos clientes varia de


18 a 120 anos.

Entrada Valores Classes Casos de Teste


Permitidos
Idade entre 18 e
Idade 120 18 a 120 Idade = 20

< 18 Idade = 10
> 120
Idade = 150

50 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
Análise de Valor-Limite
} Análise de Valor-Limite
 Análise de Valor-Limite é uma técnica de teste que explora os
limites dos valores para preparar Casos de Teste
 Um grande número de erros tende a ocorrer nos limites do
domínio
 Esta técnica complementa o particionamento em classes de
equivalência

Entrada Valores Classes Casos de Teste


Permitidos
Idade entre 18 e Idade = 18
Idade 120 18 a 120 Idade = 19
Idade = 119
Idade = 120

< 18 Idade = 17

> 120 Idade = 121

51 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios de Teste
} Tabela de Decisão

52 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Critérios de Teste

Curso # CT código nome Resultado


esperado
código: int
nome: String 1 3 200c Erro
2 28 39c Ok
código: 1 e 99 3 1 1c Ok
válidos: 1 e 99
inválidos: 0 e 100 4 98 39c Ok
nome: 1 a 40 caracteres 5 10 30c Ok
válidos: 1c e 40c
inválidos: null e 41c 6 1 55c Erro
7 0 40c Erro
8 13 50c Erro
9 102 50c Erro

53 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
} Transição de Estados

54 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
} Array Ortogonal (Todos-os-pares/All-pairs)
} Critério que visa diminuir a quantidade de casos de teste, por
meio da combinação de todos os pares de possíveis valores de
entrada.
} Exemplo
CPU Memória S.O.
i3 4GB Windows
i5 8GB Linux
i7 16GB MacOS
} Todas as combinações = 27
} Todos-os-pares = 9 combinações

55 Fundamentos do Teste de Software - Prof. Thiago Souza


Critérios para Seleção de Casos de Teste
} Array Ortogonal (Todos-os-pares/All-pairs)
} Todos-os-pares (All-pairs)
} I3, 4GB, Windows
} I3, 8GB, Linux
} I3, 16GB, MacOS
} I5, 4GB, MacOS
} I5, 8GB, Windows
} I5, 16GB, Linux
} I7, 4GB, Linux
} I7, 8GB, MacOS
} I7, 16GB, Windows

56 Fundamentos do Teste de Software - Prof. Thiago Souza


Teste Relacionado a Mudanças
} Teste de Confirmação (Reteste)
} Teste que executa casos de teste reprovados durante sua
última execução.
} Objetivos:
} Verificar o sucesso das ações corretivas.
} Quando usar:
} Sempre que um caso de teste anteriormente reprovado for liberado
para teste.

57 Fundamentos do Teste de Software - Prof. Thiago Souza


Teste Relacionado a Mudanças
} Teste de Regressão
} Tem como propósito garantir que os defeitos encontrados
foram corrigidos e que as correções ou inserções de novos
códigos em determinados locais do software não afetaram
outras partes inalteradas do produto.
} Objetivos:
} Verificar se as alterações realizadas geraram alguma inconsistência no
aplicativo ou em outros sistemas.
} Verificar se as funções previamente testadas continuam funcionando
após realização de mudanças.
} Determinar se dados e condições de teste permanecem atuais.
} Quando usar:
} Quando há o risco de que mudanças em uma parte do sistema
afetem outras partes inalteradas do sistema.
58 Fundamentos do Teste de Software - Prof. Thiago Souza
Teste e Qualidade de Software

Exercícios

Prof. Thiago Souza – thiago.souza@unigranrio.edu.br


Exercícios
1 - CESGRANRIO - 2007 - TCE-RO
O teste alfa (alpha test) é conduzido pelo:

a) cliente, no seu próprio ambiente.


b) cliente, no ambiente do desenvolvedor.
c) analista de teste, no ambiente do desenvolvedor.
d) analista de teste, no seu próprio ambiente.
e) desenvolvedor, no seu próprio ambiente.

60 Fundamentos do Teste de Software - Prof. Thiago Souza


Exercícios
1 - CESGRANRIO - 2007 - TCE-RO
O teste alfa (alpha test) é conduzido pelo:

a) cliente, no seu próprio ambiente.


b) cliente, no ambiente do desenvolvedor.
c) analista de teste, no ambiente do desenvolvedor.
d) analista de teste, no seu próprio ambiente.
e) desenvolvedor, no seu próprio ambiente.

61 Fundamentos do Teste de Software - Prof. Thiago Souza


Exercícios
2 - CESGRANRIO - 2010 - EPE
Um novo sistema de informação interno de uma empresa está sendo testado
por um grupo restrito de usuários, fora do ambiente dos desenvolvedores.
Isso caracteriza o teste

a) de unidade.
b) de usabilidade.
c) alfa.
d) beta.
e) de stress.

62 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
2 - CESGRANRIO - 2010 - EPE
Um novo sistema de informação interno de uma empresa está sendo testado
por um grupo restrito de usuários, fora do ambiente dos desenvolvedores.
Isso caracteriza o teste

a) de unidade.
b) de usabilidade.
c) alfa.
d) beta.
e) de stress.

63 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
3 - CESGRANRIO - 2008 - BNDES
No contexto de engenharia de software, testes de software podem ser
decompostos numa série de passos que devem ser executados
sequencialmente. Considerando a arquitetura de software convencional, o
primeiro passo deve ser o teste de

a) estresse.
b) integração.
c) sistema.
d) unidade.
e) validação.

64 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
3 - CESGRANRIO - 2008 - BNDES
No contexto de engenharia de software, testes de software podem ser
decompostos numa série de passos que devem ser executados
sequencialmente. Considerando a arquitetura de software convencional, o
primeiro passo deve ser o teste de

a) estresse.
b) integração.
c) sistema.
d) unidade.
e) validação.

65 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
4 - CESGRANRIO - 2007 - EPE
Devido ao aumento da demanda por aplicações que funcionem 24 horas por
dia na Internet, um software deve ser capaz de manter-se em operação após
uma determinada falha. A estratégia de teste que melhor garante essa
característica é o(a):

a) teste de estresse.
b) teste de recuperação.
c) teste unitário.
d) debugging.
e) simulação combinatória.

66 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
4 - CESGRANRIO - 2007 - EPE
Devido ao aumento da demanda por aplicações que funcionem 24 horas por
dia na Internet, um software deve ser capaz de manter-se em operação após
uma determinada falha. A estratégia de teste que melhor garante essa
característica é o(a):

a) teste de estresse.
b) teste de recuperação.
c) teste unitário.
d) debugging.
e) simulação combinatória.

67 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
5 - CESGRANRIO - 2010 - Petrobrás
Testar é uma disciplina de suma importância para a engenharia de software. A
literatura divide os tipos de testes em duas grandes categorias: teste de caixa preta e
teste de caixa branca. Sobre esta classificação, pode-se afirmar que

I - testes de interfaces são classificados como de caixa branca;


II - testes de caixa preta são também chamados de teste comportamental, onde o foco
são os requisitos funcionais do software;
III - testes de caixa preta são complementares aos testes de caixa branca, uma vez que
contemplam diferentes classes de erros.

É correto o que se afirma em


a) I, apenas.
b) I e II, apenas.
c) I e III, apenas.
d) II e III, apenas.
e) I, II e III.
68 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza
Exercícios
5 - CESGRANRIO - 2010 - Petrobrás
Testar é uma disciplina de suma importância para a engenharia de software. A
literatura divide os tipos de testes em duas grandes categorias: teste de caixa preta e
teste de caixa branca. Sobre esta classificação, pode-se afirmar que

I - testes de interfaces são classificados como de caixa branca;


II - testes de caixa preta são também chamados de teste comportamental, onde o foco
são os requisitos funcionais do software;
III - testes de caixa preta são complementares aos testes de caixa branca, uma vez que
contemplam diferentes classes de erros.

É correto o que se afirma em


a) I, apenas.
b) I e II, apenas.
c) I e III, apenas.
d) II e III, apenas.
e) I, II e III.
69 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza
Exercícios
8 - CESGRANRIO - 2008 – Petrobrás
Uma das técnicas empregadas no projeto de interfaces de sistemas é a condução de
testes de usabilidade, cujos resultados fornecem importantes indicadores para
melhorar a qualidade da interface. Os testes de usabilidade consistem em
a) apresentar o sistema para um grupo de foco e coletar a opinião dos participantes sobre a
interface, os conceitos e as metáforas utilizadas na mesma.
b) apresentar, para um usuário por vez, um protótipo da interface do sistema ou o próprio
sistema, e solicitar que o usuário realize algum tipo de tarefa, observando suas reações à
interface, erros cometidos, dificuldades e eficiência no cumprimento da tarefa.
c) distribuir um questionário para os usuários iniciais do sistema com perguntas sobre a
interface e mapear as respostas.
d) submeter o sistema a um software robot de teste e verificar os tempos de resposta a cada
padrão de navegação, comparando-os com os requisitos não funcionais do sistema.
e) utilizar um software robot de teste para fazer acessos aleatórios ao sistema, tentando usar
elementos da interface e registrando os erros encontrados.

70 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
8 - CESGRANRIO - 2008 – Petrobrás
Uma das técnicas empregadas no projeto de interfaces de sistemas é a condução de
testes de usabilidade, cujos resultados fornecem importantes indicadores para
melhorar a qualidade da interface. Os testes de usabilidade consistem em
a) apresentar o sistema para um grupo de foco e coletar a opinião dos participantes sobre a
interface, os conceitos e as metáforas utilizadas na mesma.
b) apresentar, para um usuário por vez, um protótipo da interface do sistema ou o próprio
sistema, e solicitar que o usuário realize algum tipo de tarefa, observando suas reações à
interface, erros cometidos, dificuldades e eficiência no cumprimento da tarefa.
c) distribuir um questionário para os usuários iniciais do sistema com perguntas sobre a
interface e mapear as respostas.
d) submeter o sistema a um software robot de teste e verificar os tempos de resposta a cada
padrão de navegação, comparando-os com os requisitos não funcionais do sistema.
e) utilizar um software robot de teste para fazer acessos aleatórios ao sistema, tentando usar
elementos da interface e registrando os erros encontrados.

71 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
9 - CESGRANRIO - 2008 - Petrobrás
Um importante aspecto da elaboração de casos de testes para um sistema em
desenvolvimento é a escolha dos valores de entrada e das saídas previstas dos casos de
teste. Escolhas baseadas apenas em valores típicos, em geral, são incapazes de revelar
todas as falhas da implementação. É necessário identificar conjuntos de valores que
possuam características comuns, do ponto de vista das funcionalidades a serem testadas,
como, por exemplo, "números negativos", "números com mais dígitos do que o previsto",
"strings sem brancos", "arrays de um só elemento", além de prever casos de teste cobrindo
a totalidade destes conjuntos, e projetar, para cada conjunto, casos de teste com valores
nos limites e próximos ao ponto médio do conjunto. Esses conjuntos são denominados

a) partições de equivalência.
b) grupos de controle.
c) espaços amostrais.
d) classes características.
e) intervalos de testes.

72 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
9 - CESGRANRIO - 2008 - Petrobrás
Um importante aspecto da elaboração de casos de testes para um sistema em
desenvolvimento é a escolha dos valores de entrada e das saídas previstas dos casos de
teste. Escolhas baseadas apenas em valores típicos, em geral, são incapazes de revelar
todas as falhas da implementação. É necessário identificar conjuntos de valores que
possuam características comuns, do ponto de vista das funcionalidades a serem testadas,
como, por exemplo, "números negativos", "números com mais dígitos do que o previsto",
"strings sem brancos", "arrays de um só elemento", além de prever casos de teste cobrindo
a totalidade destes conjuntos, e projetar, para cada conjunto, casos de teste com valores
nos limites e próximos ao ponto médio do conjunto. Esses conjuntos são denominados

a) partições de equivalência.
b) grupos de controle.
c) espaços amostrais.
d) classes características.
e) intervalos de testes.

73 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
12 - FGV - 2010 – BADESC
O teste de software que projeta casos de testes derivados do conhecimento
da estrutura e da implementação do software é conhecido por:

a) teste de releases.
b) teste caixa-branca.
c) teste caixa-preta.
d) teste de aceitação.
e) teste de integração.

74 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
12 - FGV - 2010 – BADESC
O teste de software que projeta casos de testes derivados do conhecimento
da estrutura e da implementação do software é conhecido por:

a) teste de releases.
b) teste caixa-branca.
c) teste caixa-preta.
d) teste de aceitação.
e) teste de integração.

75 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
13 - FCC - 2010 - TRT - 9ª REGIÃO (PR)
O teste de sistema que força o software a falhar de diversos modos e verifica
o retorno do processamento dentro de um tempo pré-estabelecido é um tipo
de teste de

a) Integração.
b) Estresse.
c) Recuperação.
d) Desempenho.
e) Segurança.

76 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
13 - FCC - 2010 - TRT - 9ª REGIÃO (PR)
O teste de sistema que força o software a falhar de diversos modos e verifica
o retorno do processamento dentro de um tempo pré-estabelecido é um tipo
de teste de

a) Integração.
b) Estresse.
c) Recuperação.
d) Desempenho.
e) Segurança.

77 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
14 - NCE-UFRJ - 2005 – BNDES
Considere as seguintes assertivas sobre o teste de sistema:

I- Teste de regressão é a execução de um conjunto de testes ainda não executados


previamente.
II- A validação do software é atingida por um conjunto de testes caixa branca que
demonstram a conformidade com os requisitos do sistema.
III- O tempo médio de reparo (MTTR) é uma métrica utilizada para avaliar a
conformidade do sistema nos testes de recuperação de falhas.

As assertivas corretas são:

a) somente I;
b) somente II;
c) somente III;
d) somente I e II;
e) I, II e III.
78 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza
Exercícios
14 - NCE-UFRJ - 2005 – BNDES
Considere as seguintes assertivas sobre o teste de sistema:

I- Teste de regressão é a execução de um conjunto de testes ainda não executados


previamente.
II- A validação do software é atingida por um conjunto de testes caixa branca que
demonstram a conformidade com os requisitos do sistema.
III- O tempo médio de reparo (MTTR) é uma métrica utilizada para avaliar a
conformidade do sistema nos testes de recuperação de falhas.

As assertivas corretas são:

a) somente I;
b) somente II;
c) somente III;
d) somente I e II;
e) I, II e III.
79 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza
Exercícios
15 - FEPESE - 2010 - SEFAZ-SC
Analise a definição abaixo.

“Teste de software que procura descobrir erros por meio da reaplicação


parcial dos testes a um programa modificado.”

Assinale a alternativa que cita corretamente o conceito ao qual se refere a


definição.

a) Teste de sistema
b) Teste de unidade
c) Teste de regressão
d) Teste de integração
e) Teste de requisitos

80 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
15 - FEPESE - 2010 - SEFAZ-SC
Analise a definição abaixo.

“Teste de software que procura descobrir erros por meio da reaplicação


parcial dos testes a um programa modificado.”

Assinale a alternativa que cita corretamente o conceito ao qual se refere a


definição.

a) Teste de sistema
b) Teste de unidade
c) Teste de regressão
d) Teste de integração
e) Teste de requisitos

81 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
16 - UFPR - 2010 - UFPR
Sobre os objetivos de teste de software, considere as seguintes afirmativas:

1. A atividade de teste é o processo de executar um programa com a intenção de


descobrir um erro.
2. A atividade de teste pode comprovar a ausência de erros.
3. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um
erro ainda não descoberto.
4. Um teste bem-sucedido é aquele que revela um erro não descoberto.

Assinale a alternativa correta.


a) Somente a afirmativa 3 é verdadeira.
b) Somente as afirmativas 2 e 4 são verdadeiras.
c) Somente as afirmativas 3 e 4 são verdadeiras.
d) Somente as afirmativas 1, 3 e 4 são verdadeiras.
e) As afirmativas 1, 2, 3 e 4 são verdadeiras.
82 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza
Exercícios
16 - UFPR - 2010 - UFPR
Sobre os objetivos de teste de software, considere as seguintes afirmativas:

1. A atividade de teste é o processo de executar um programa com a intenção de


descobrir um erro.
2. A atividade de teste pode comprovar a ausência de erros.
3. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um
erro ainda não descoberto.
4. Um teste bem-sucedido é aquele que revela um erro não descoberto.

Assinale a alternativa correta.


a) Somente a afirmativa 3 é verdadeira.
b) Somente as afirmativas 2 e 4 são verdadeiras.
c) Somente as afirmativas 3 e 4 são verdadeiras.
d) Somente as afirmativas 1, 3 e 4 são verdadeiras.
e) As afirmativas 1, 2, 3 e 4 são verdadeiras.
83 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza
Exercícios
17 - ESAF - 2010 – CVM
Teste de Equivalência de Classe é

a) É uma técnica que trabalha por dedução física.


b) É uma técnica que tem por objetivo primário reduzir o número de casos de
testes.
c) É uma técnica que trabalha por dedução indutiva.
d) É uma técnica que tem por objetivo primário ampliar o número de casos
de testes.
e) É uma técnica que tem por objetivo primário montar um conjunto de
regras de decisão a partir de uma tabela.

84 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
17 - ESAF - 2010 – CVM
Teste de Equivalência de Classe é

a) É uma técnica que trabalha por dedução física.


b) É uma técnica que tem por objetivo primário reduzir o número de casos de
testes.
c) É uma técnica que trabalha por dedução indutiva.
d) É uma técnica que tem por objetivo primário ampliar o número de casos
de testes.
e) É uma técnica que tem por objetivo primário montar um conjunto de
regras de decisão a partir de uma tabela.

85 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
19 - FGV - 2010 – FIOCRUZ
No que diz respeito aos sistemas de software, teste é um conjunto de atividades
que podem ser planejadas antecipadamente e conduzidas sistematicamente. Um
tipo I de teste se refere ao conjunto de atividades que garante que o software
implementa corretamente uma função específica, associado à construção do
produto de forma correta ou não, enquanto um tipo II se refere a um conjunto de
atividades diferente que garante que o software construído corresponde aos
requisitos do cliente, associado à construção do produto certo. Esses testes do
tipo I e II são denominados, respectivamente:
a) depuração e homologação.
b) homologação e aceitação.
c) aceitação e verificação.
d) verificação e validação.
e) validação e depuração.

86 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
19 - FGV - 2010 – FIOCRUZ
No que diz respeito aos sistemas de software, teste é um conjunto de atividades
que podem ser planejadas antecipadamente e conduzidas sistematicamente. Um
tipo I de teste se refere ao conjunto de atividades que garante que o software
implementa corretamente uma função específica, associado à construção do
produto de forma correta ou não, enquanto um tipo II se refere a um conjunto de
atividades diferente que garante que o software construído corresponde aos
requisitos do cliente, associado à construção do produto certo. Esses testes do
tipo I e II são denominados, respectivamente:
a) depuração e homologação.
b) homologação e aceitação.
c) aceitação e verificação.
d) verificação e validação.
e) validação e depuração.

87 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
20 - FCC - 2009 - TRT - 16ª REGIÃO (MA)
Há um tipo de teste que vislumbra a "destruição do programa" por meio de
sua submissão a quantidades, frequências ou volumes anormais que é o teste

a) de recuperação.
b) de configuração.
c) beta.
d) de desempenho.
e) de estresse.

88 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
20 - FCC - 2009 - TRT - 16ª REGIÃO (MA)
Há um tipo de teste que vislumbra a "destruição do programa" por meio de
sua submissão a quantidades, frequências ou volumes anormais que é o teste

a) de recuperação.
b) de configuração.
c) beta.
d) de desempenho.
e) de estresse.

89 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
21 - FCC - 2009 - SEFAZ-SP
Garantir que um ou mais componentes de um sistema combinados
funcionam corretamente é o objetivo do tipo de teste

a) de sistema.
b) de integração.
c) de configuração.
d) operacional.
e) funcional.

90 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza


Exercícios
21 - FCC - 2009 - SEFAZ-SP
Garantir que um ou mais componentes de um sistema combinados
funcionam corretamente é o objetivo do tipo de teste

a) de sistema.
b) de integração.
c) de configuração.
d) operacional.
e) funcional.

91 Técnicas de Verificação e Validação de Software - Prof. Thiago Souza

Você também pode gostar