Você está na página 1de 16

 Sommerville, Ian.

Software
Engineering. Editora: Addison Wesley.
 Pressman, Roger S. Software
Engineering: A Practiotioner’s
Approach. Editora: McGraw-Hill.
Fernando Pedrosa – fpedrosa@gmail.com  RUP - www.wthreex.com/rup
 IEEE TC FTD/IFIP WG 10.4

Fernando Pedrosa Lopes 2

 Uma vez que o código fonte tenha  Durante os estágios iniciais do


sido gerado é necessário testar para desenvolvimento, um Engenheiro de
descobrir erros antes de entregar o Software executa todos os testes
software para o cliente  Entretanto, à medida que o processo
 O objetivo é projetar uma série de evolui, especialistas em testes podem
testes com máxima probabilidade de ser envolvidos
encontrar erros
 São utilizadas técnicas para:
◦ Testar a lógica interna dos componentes
◦ Testar as entradas e saídas das funções

Fernando Pedrosa Lopes 3 Fernando Pedrosa Lopes 4

 Corretiva  Falta (Fault)


◦ Causa de uma falha (aspecto físico)
◦ Correção de erros encontrados na
◦ Exemplo: código incorreto ou faltando, defeito de hardware
verificação ou na validação
 Erro (Error)
 Adaptativa ◦ Estado intermediário, de instabilidade (aspecto de
◦ Adaptação a mudanças externas informação)
◦ Pode resultar em falha, se propagado até a saída
 Melhoria (perfectiva)  Falha (Failure)
◦ Melhorias requeridas pelos usuários ◦ Incapacidade do software de realizar a função requisitada
(aspecto externo). Manifestação observável.
 Preventiva ou de reengenharia ◦ Exemplo: terminação anormal, restrição temporal violada
◦ Abordagem pró-ativa com foco na
melhoria da manutibilidade Falta Erro Falha
Fernando Pedrosa Lopes 5 Fernando Pedrosa Lopes 6

1
Como tornar os sistemas mais confiáveis?
 Prevenção de faltas
◦ Especificação rigorosa
◦ Proteção de Hardware
◦ Ambientes e linguagens apropriados
Universo Interno
(Hardware ou  Tolerância a falhas
Software)
◦ Replicação/Redundância
Pode ou não ocorrer

◦ Isolamento do componente faltoso


◦ Hot swapping
Estado de Instabilidade

Fernando Pedrosa Lopes 7 Fernando Pedrosa Lopes 8

(Min. Comunicações - CESPE 2008) (TRE/BA – CESPE 2010)


[109] Ao longo do desenvolvimento, artefatos produzidos podem ser [61] Segundo o IEEE, defeito é um ato inconsistente cometido por um
revisados, objetivando garantir que os mesmos apresentem, pelo indivíduo ao tentar entender determinada informação, resolver um
menos, a qualidade mínima especificada. Não apenas o código, mas problema ou utilizar um método ou uma ferramenta; erro é o
também outros artefatos podem ser revisados. Os defeitos encontrados comportamento operacional do software diferente do esperado pelo
pelas revisões referem-se à faltas (fault), enquanto os defeitos usuário, e que pode ter sido causado por diversas falhas; e falha é uma
encontrados por testes são falhas do software, pois testes avaliam a manifestação concreta de um defeito em um artefato de software, ou
qualidade comparando o comportamento esperado com o observado. seja, é qualquer estado intermediário incorreto ou resultado inesperado
na execução de um programa.

Fernando Pedrosa Lopes 9 Fernando Pedrosa Lopes 10

 É todo um processo de ciclo de vida  Refere-se ao conjunto de atividades


que deve ser aplicado em cada estágio que garantem que o software
do desenvolvimento do software implementa corretamente as funções
 Tem dois objetivos principais: especificadas
◦ O descobrimento de defeitos no sistema “ Estamos construindo o produto de forma correta? ”
◦ A avaliação sobre se o sistema é útil e “Are we building the Product Right?”
adequado em uma situação operacional  Principais atividades
 V&V não garante que o software está ◦ Inspeções (verificação estática)
livre de defeitos, mas apenas garante
◦ Testes (verificação dinâmica)
um certo nível de confiabilidade

Fernando Pedrosa Lopes 11 Fernando Pedrosa Lopes 12

2
 Refere-se ao conjunto de atividades (MPOG – ESAF 2008)
[13-B] Demonstrar ao desenvolvedor e ao cliente que o software
que garantem que o software atende aos requisitos é uma meta de validação do software.
construído implementa o que o cliente (IPEA - CESPE 2008)
[85] A verificação assegura que o produto, como fornecido, irá atender o seu
realmente desejava uso pretendido, ou seja, que se está construindo o produto certo. E a validação

“Estamos construindo o produto certo?” confirma que os produtos de trabalho refletem de forma apropriada os
requisitos que foram especificados, ou seja, que se está construindo o produto
“Are we building the Right Product?” corretamente.
(TRT5 - CESPE 2009)
 Principais atividades [75] A diferença entre verificação e validação reside no fato de que a primeira
se refere ao conjunto de atividades que garante que o software realiza
◦ Homologação, Testes de Aceitação (beta) corretamente uma função específica, enquanto a segunda refere-se a um
◦ Revisões, etc. conjunto diferente de atividades que garante que o software que foi construído
é rastreável às exigências do cliente.

Fernando Pedrosa Lopes 13 Fernando Pedrosa Lopes 14

(MPU - FCC 2007)


[56] Considere as informações abaixo em relação ao desenvolvimento
de sistemas: Garantia da Qualidade Controle da Qualidade
I. executar um software com o objetivo de revelar falhas, mas que não
prova a exatidão do software. Focada no processo Focada no produto
II. correta construção do produto.
Orientada a prevenção Orientada a detecção
III. construção do produto certo.
Correspondem corretamente a I, II e III, respectivamente, Exemplos: metodologias Exemplos: checagem de
e padrões de requisitos, testes de
a) validação, verificação e teste.
desenvolvimento software, etc.
b) verificação, teste e validação. Garante que os
Garante que você está
c) teste, verificação e validação. resultados do seu
fazendo as coisas da
d) validação, teste e verificação. trabalho estão de acordo
maneira correta
e) teste, validação e verificação com o esperado

Fernando Pedrosa Lopes 15 Fernando Pedrosa Lopes 16

(SERPRO - CESPE 2010)

 Alguns autores não diferenciam estas [98] A garantia de qualidade tem como objetivo testar os produtos de
software de modo a identificar, relatar e remover os defeitos encontrados,
atividades enquanto o controle da qualidade provê a gerência sênior da organização

 Para Sommerville inclui Validação e com a visibilidade apropriada sobre o processo de desenvolvimento.
(STJ – CESPE 2008)
Verificação de Produtos, além dos [97] Um processo de gerenciamento da qualidade do projeto tipicamente
Processos adequados visa garantir e controlar a qualidade. No controle da qualidade, são
executadas atividades planejadas e sistemáticas visando garantir que o
 Para Pressman inclui um espectro projeto empregará os processos necessários para atender aos requisitos. Por

amplo de atividades, tais como sua vez, a garantia da qualidade, diferentemente do controle de qualidade,
monitora resultados do projeto a fim de determinar se eles estão de acordo
padronização, revisões, testes, etc. com os padrões relevantes de qualidade e procura identificar meios para
eliminar as causas de resultados que sejam insatisfatórios.

Fernando Pedrosa Lopes 17 Fernando Pedrosa Lopes 18

3
 Se preocupa com a análise estática
dos artefatos do sistema
 Envolve pessoas examinando os
produtos de trabalho com o objetivo
de encontrar anomalias e defeitos
 Pode ser suplementada por
ferramentas CASE de análise estática

Fernando Pedrosa Lopes 19 Fernando Pedrosa Lopes 20

 Inspeções e Testes são técnicas  Inspeções não necessitam da


complementares e não opostas execução do sistema, portanto podem
 Muitos defeitos podem ser encontrados ser aplicadas antes da implementação
durante uma inspeção - testes podem
 Podem ser aplicadas a qualquer
mascarar erros e necessitar de várias
execuções representação do sistema
 Inspeções não podem checar requisitos não ◦ Requisitos
funcionais (desempenho, usabilidade, etc.) ◦ Projeto,
 Inspeções checam a conformidade com a ◦ Código, etc.
especificação e não com as reais  Têm se mostrado uma técnica efetiva
necessidades do cliente para se descobrir erros no programa

Fernando Pedrosa Lopes 21 Fernando Pedrosa Lopes 22

 Inspeções aumentam o custo do  São abordagens formais para


processo de desenvolvimento, no documentar as revisões do código
início  A intenção é de detecção de defeitos,
 As equipes devem ser bem informadas apenas (e não correção)
e ter acesso a especificações precisas  Defeitos podem ser
 Padrões organizacionais devem ser ◦ Lógicos (caminhos incorretos, cálculos
bem definidos errados, etc.)
 A gerência pode utilizar os achados de
◦ Anomalias no código (variáveis não
inicializadas, laços incompletos, etc.)
inspeção para avaliar (culpar)
◦ Não conformidade com padrões
indivíduos
Fernando Pedrosa Lopes 23 Fernando Pedrosa Lopes 24

4
Procedimento:  Inspeções de código automatizadas
 Um resumo do sistema é apresentado à utilizam Analisadores Estáticos
equipe de inspeção ◦ São ferramentas CASE que analisam o
 Código e documentos associados são
código fonte do sistema
◦ Buscam e relatam erros em potencial
distribuídos à equipe com antecedência
◦ São bastante efetivos como um auxílio às
 A inspeção acontece e os erros
inspeções, mas não a substituem
descobertos são anotados, de acordo  Têm um melhor custo-benefício para
com um checklist linguagens fracamente tipadas, onde o
 Uma nova inspeção pode ser necessária
compilador detecta poucos erros

Fernando Pedrosa Lopes 25 Fernando Pedrosa Lopes 26

 Exemplos de possíveis análises: (STJ - CESPE 2008)


[73] Inspeções e walkthroughs podem fazer parte de um processo de
◦ Análise de controle de fluxo verificação e validação, sendo realizadas por equipes cujos membros têm
 Checa a codificação de loops, código papéis definidos. Quando da inspeção de um código, uma lista de
inalcançável, etc. verificação de erros (checklist) é usada. O conteúdo da lista tipicamente
independe da linguagem de programação usada.
◦ Análise de dados
 Detecta variáveis não inicializadas, variáveis (TSE - CESPE 2006)
que nunca são utilizadas, etc. [63-A] Inspeções e walkthroughs podem ser usadas para revisar artefatos.
◦ Análise de interfaces Uma walkthrough requer mais tempo de preparação dos revisores do que
uma inspeção, também exige que seja feito o acompanhamento das
 Checa a consistência de declarações de
soluções dos problemas identificados e a coleta de métricas associadas à
rotinas e procedimentos e como são revisão.
utilizados

Fernando Pedrosa Lopes 27 Fernando Pedrosa Lopes 28

(TSE - CESPE 2006)


[63-B] Em uma inspeção, os participantes têm papéis definidos. O
moderador conduz reuniões e os inspetores devem, durante as reuniões,
descrever os problemas identificados e soluções para os mesmos.

(DETRAN - CESPE 2009)


[97] O processo de validação tem por objetivo estabelecer com os clientes
confiança quanto ao funcionamento adequado de um software. Enquanto
inspeções de software ou revisões por pares são consideradas validação
estática, o teste consiste em uma técnica dinâmica de validação de
software. Os termos estático ou dinâmico são relativos à necessidade ou
não do software ser executado.

Fernando Pedrosa Lopes 29 Fernando Pedrosa Lopes 30

5
 Processo de executar um programa
com o objetivo de encontrar erros.
 Um bom caso de teste é aquele que
tem alta probabilidade de achar um
erro ainda não descoberto. O processo de testes não pode
 Um teste de sucesso é aquele que garantir que o software está livre de
descobre um erro ainda não erros, ele pode apenas mostrar que
descoberto. erros e defeitos de software estão
presentes.

Fernando Pedrosa Lopes 31 Fernando Pedrosa Lopes 32

 Testes devem ser rastreáveis aos  Testes exaustivos não são possíveis
requisitos do cliente ◦ É impossível executar todos os caminhos
 Testes devem ser planejados muito existentes em um programa
antes de serem executados  Para terem o máximo de efetividade,
 O princípio de Pareto se aplica a Testes testes devem ser, preferencialmente,
◦ 80% dos erros vão acontecer em 20% dos conduzidos por terceiros
componentes
 Testes devem começar “pequenos” e
progredir para pedaços maiores

Fernando Pedrosa Lopes 33 Fernando Pedrosa Lopes 34

 Um bom teste deve ter alta


probabilidade de encontrar erros
 Um bom teste não deve ser redundante
◦ Todo teste deve ter um propósito diferente
 Um bom teste deve ser “representativo”
na sua classe
 Um bom teste não deve ser nem muito
simples nem muito complexo [Pressman]

Fernando Pedrosa Lopes 35 Fernando Pedrosa Lopes 36

6
 Abordagem Funcional (“caixa preta”)  Baseada em prés e pós condições
◦ Focada nas entradas e saídas especificadas  Geralmente utilizada nas etapas posteriores
nos requisitos funcionais da disciplina de testes
 Abordagem Estrutural (“caixa branca”)  Busca erros nas seguintes categorias (dentre
◦ Focada nas estruturas internas dos outras):
procedimentos do sistema ◦ Funções incorretas ou inexistentes
◦ Erros de comportamento ou desempenho
 Abordagem Mista (“caixa cinza”) ◦ Erros de inicialização e término, erros de interface
◦ É um meio termo entre caixa preta e branca  Principais técnicas: testes baseados em
◦ Algum conhecimento sobre as estruturas grafos, matriz ortogonal, análise de valores
internas é utilizado para executar testes limítrofes, particionamento de equivalências
mais “bem informados”
Fernando Pedrosa Lopes 37 Fernando Pedrosa Lopes 38

 Graph-based testing methods


 Toda aplicação é construída por
“objetos” Menu de
seleção A seleção do menu gera Janela do

 A técnica identifica todos estes objetos


de Novo Documento
(tempo de geração < 1.0 seg)
Arquivo

e gera gráficos para representá-los


 Os objetos e relacionamentos são
Atributos:
Dimensão: config default
testados para descobrir erros e
Contém
ou preferência
Fundo: branco
comportamentos inesperados
Texto do
Documento Cor do texto: cor default
ou preferência

Fernando Pedrosa Lopes 39 Fernando Pedrosa Lopes 40

 Técnica baseada em dividir o domínio  Como guia, deve-se considerar


de entradas de um programa em entradas do tipo:
classes de dados ◦ Faixa de Valores
 Cada classe de dados é chamada de  1 partição válida, 2 inválidas
“partição de equivalência” ◦ Valor específico
 1 partição válida, 2 inválidas
 Casos de Teste são gerados
◦ Conjunto específico de valores
considerando cada partição de
 1 partição válida, 1 inválida
equivalência ◦ Entrada booleana
 1 partição válida, 1 inválida

Fernando Pedrosa Lopes 41 Fernando Pedrosa Lopes 42

7
Exemplos (faixas de valores)  É sabido que a maioria dos erros
acontece nos limites do domínio de
entrada, e não no “centro”
 Os testes devem ser gerados
considerando esses valores “limítrofes”
◦ Números máximos e mínimos
◦ “Um a mais do que o máximo”
◦ “Um a menos do que o mínimo”
 É utilizada em conjunto com a técnica de
Particionamento de Equivalência

Fernando Pedrosa Lopes 43 Fernando Pedrosa Lopes 44

(TRE/BA - CESPE 2010) (TRT5 - CESPE 2008)


[79] Teste funcional é uma técnica para se projetar casos de teste na qual [74] Entre os tipos de testes de caixa preta, encontram-se o teste baseado
o programa ou sistema é considerado uma caixa-preta e, para testá-lo, em grafos; o particionamento de equivalência; a análise de valor-limite; e
são fornecidas entradas e avaliadas as saídas geradas. o teste de matriz ortogonal.

(CEF - CESPE 2010) (MPOG - ESAF 2008)


[57-C] Relativamente ao modelo de caixa-cinza, o teste de software caixa- [13-C] o particionamento de equivalência é uma maneira estratégica de
preta apresenta maior dependência no trabalho entre implementador e aplicar testes de software.
testador.

(CEF - CESPE 2010)


[57-D] O teste de software caixa-preta, relativamente ao modelo de caixa-
cinza, apresenta maior dependência de conhecimento a respeito dos
programas-fontes a serem testados.

Fernando Pedrosa Lopes 45 Fernando Pedrosa Lopes 46

 Os testes são gerados a partir de uma  Objetivos (continuação)


análise dos caminhos lógicos ◦ Realizar todas as decisões lógicas para
possíveis de serem executados valores falsos e verdadeiros
 É necessário conhecimento do ◦ Executar laços dentro dos valores limites
funcionamento interno dos ◦ Avaliar as estruturas de dados internas
componentes do software  Principais técnicas
◦ Testes de caminhos
 Objetivos
◦ Testes de estruturas de controle (laços,
◦ Garantir que todos os caminhos
estruturas condicionais, etc.)
independentes de um módulo sejam
executados pelo menos uma vez ◦ Complexidade ciclomática (métrica)

Fernando Pedrosa Lopes 47 Fernando Pedrosa Lopes 48

8
 Métrica que fornece uma medida (SERPRO – CESPE 2010)
[85] Com relação ao emprego de técnicas para a realização de testes
quantitativa da complexidade lógica de um de software, é correto afirmar que haverá maior diminuição da
programa dependência de acesso às especificações arquiteturais de um
sistema se o testador empregar a técnica de caixa-branca (white-
 Quando usada no contexto de testes caixa
box), em vez das técnicas de caixa-cinza (gray-box) e de caixa-
branca, denota o número de caminhos preta (black-box).
possíveis dentro de um módulo
◦ Nos dá uma idéia do limite superior necessário! (CEF - CESPE 2010)
[57-B] O aumento na medida de complexidade ciclomática de um
programa introduz mudanças significativas no refinamento de uma
abordagem do tipo caixa-preta.

Fernando Pedrosa Lopes 49 Fernando Pedrosa Lopes 50

(CEF – CESPE 2010)


[57-E] À medida que avança o nível de integração dos módulos de um
software, mais viável se torna a adoção do método de caixa-branca
para desenho do teste de software.

(CEF – CESPE 2010)


[57-A] Para aderência à abordagem de software caixa-branca, podem
ser empregados testes de fluxo de controle e de dados, que não são
apoiadores diretos em testes de caixa-preta.

(MPOG - ESAF 2008)


[13-D] O teste estrutural é uma estratégia que se baseia na análise da
especificação de um programa para ajudar na seleção de casos de
teste.

Fernando Pedrosa Lopes 51 Fernando Pedrosa Lopes 52

 Os testes geralmente são agrupados  Primeiro nível de testes, onde


de acordo com o momento no qual componentes individuais são testados
eles são executados ou pelo nível de para assegurar que os mesmos
especificidade do teste operam de forma correta
 Componentes podem ser:
◦ Métodos individuais dentro de um objeto
◦ Classes com vários atributos e métodos
◦ Componentes que tenham sua estrutura
interna bem conhecida
 Ferramenta mais utilizada (Java): JUnit

Fernando Pedrosa Lopes 53 Fernando Pedrosa Lopes 54

9
 Framework de código aberto, que  Classe a ser testada
provê o ambiente necessário para ◦ Calculadora.java
testar códigos em Java  Classe contendo os casos de teste
 A maioria das IDEs (Eclipse, Netbeans, ◦ É quem realmente executa os testes na
JDeveloper, etc.) incorpora-o dentro classe a ser testada
do seu ambiente, tornando o uso mais ◦ CalculadoraTest.java
fácil  Chamador (driver) dos testes
◦ Chama as classes contendo os testes
◦ Normalmente é utilizado automaticamente
através das IDE’s

Fernando Pedrosa Lopes 55 Fernando Pedrosa Lopes 56

Classe a ser testada


(PETROBRAS - CESGRANRIO 2010)
[13-A] A utilização de testes unitários faz com que seja desnecessária
a fase de testes de aceitação, pois é garantido que o software passou
por todos os testes de funcionamento necessários.

(PETROBRAS - CESGRANRIO 2010)


[13-B] A utilização de testes unitários ajuda a verificar se alterações
introduzidas por um dos membros de uma equipe de tamanho médio
ou grande não causaram efeitos colaterais em módulos de outros
membros da equipe.

Classe contendo os
casos de teste
Assertiva

Fernando Pedrosa Lopes 57 Fernando Pedrosa Lopes 58

(SERPRO - CESPE 2010)  Integra e testa os componentes de um


[83] A atividade de teste unitário de software é, conforme os modelos de
ciclo de vida de software vigentes, realizada de forma mais eficaz no sistema com o objetivo de encontrar
escopo de implementação e da construção de software - nas quais a problemas durante suas interações
codificação de uma unidade executável de software é feita -, quando
 Integração Top-Down
comparada à situação em que o teste unitário é realizado
simultaneamente ao teste de integração. ◦ Desenvolve o esqueleto do sistema e o preenche
com os componentes do sistema
(TRE/MT - CESPE 2010)  Integração Bottom-Up
[40-A] JUnit é um framework open-source (arcabouço livre) para escrever
e executar testes automaticamente, sem necessidade de escrever código
◦ Integra os componentes de infraestrutura e depois
adicional. adiciona componentes funcionais
 Para facilitar a localização de erros, sistemas
[40-C] A classe AssertEquals(a,b) compara dois valores. O teste é
devem ser integrados gradualmente
executado com sucesso se a.equals(b).

Fernando Pedrosa Lopes 59 Fernando Pedrosa Lopes 60

10
(IPEA - CESPE 2008)
Teste [58] Os testes de integração verificam se os componentes do sistema
Componente
funcionam em conjunto, se os componentes são chamados
corretamente e se os componentes transferem dados corretos via suas
interfaces. Nesses testes, os componentes são testados interligados;
podem ser necessários drivers e stubs para simular componentes
ainda não implementados; e, em sistemas de software orientados a
objeto, os stubs podem ser classes.

(TRE/PR - CESPE 2009)


[83] Nos testes de integração, realizados antes dos testes unitários, os
componentes são construídos e testados separadamente.

Fernando Pedrosa Lopes 61 Fernando Pedrosa Lopes 62

 Ao final dos testes de integração, o  É virtualmente impossível para o


software está consolidado e iniciam-se desenvolvedor prever como o software
os testes de aceitação será utilizado pelo usuário
 A finalidade é demonstrar a  São necessários testes conduzidos pelo
conformidade com os requisitos de cliente nas instalações do
software desenvolvedor
 O ambiente utilizado deve ser o mais  O desenvolvedor anota os erros e
próximo possível do ambiente real problemas que possam ocorrer
 Os mais comuns são Testes Alfa ou  Acontece em ambiente controlado
Beta
Fernando Pedrosa Lopes 63 Fernando Pedrosa Lopes 64

 É conduzido em um ou mais locais do  Software é apenas um elemento de


cliente, pelo usuário final do produto todo um sistema computacional maior
 O desenvolvedor geralmente não está  É necessário testá-lo no ambiente
presente operacional, onde são considerados
 O usuário anota todos os problemas ◦ Hardware e Pessoas
que possa encontrar e os envia para o ◦ Processos e informações
desenvolvedor frequentemente ◦ Outros sistemas, etc.
 Acontece em ambiente real  São conduzidos em um ambiente
completo e integrado, por várias
pessoas (não só os desenvolvedores)

Fernando Pedrosa Lopes 65 Fernando Pedrosa Lopes 66

11
(TRE/MT - CESPE 2010)
[39-D] O teste alfa é conduzido pelo cliente em seu ambiente de uso final.

(TSE - CESPE 2006)


[55-C] Os testes são realizados em várias fases de um desenvolvimento.
Testes de unidade são de baixo nível, testes de sistema são executados
após os de integração, testes beta empregam apenas desenvolvedores.

(EPE – CESGRANRIO 2010)


[43] 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.

Fernando Pedrosa Lopes 67 Fernando Pedrosa Lopes 68

 Cada vez que um módulo é adicionado  O termo é usado em várias áreas e


ao sistema, o software muda refere-se ao primeiro teste realizado
◦ Novas entradas e saídas surgem depois de integrar os componentes
◦ Podem ser executados novos caminhos  Em Software, é aplicado após cada
◦ A lógica de controle muda montagem (build) do produto para
 Teste de regressão visa a executar um verificar sua funcionalidade básica
subconjunto de testes que já foram  O intuito deve ser o de encontrar erros
executados com o intuito de garantir que têm a maior probabilidade de
que as mudanças não propagaram atrasar o projeto (show stopper errors)
efeitos indesejados

Fernando Pedrosa Lopes 69 Fernando Pedrosa Lopes 70

 Muitos sistemas devem se recuperar  Tem o objetivo de verificar que


de falhas e voltar ao processamento mecanismos de proteção
dentro de um tempo pré-estabelecido implementados no sistema irão, de
 Teste de recuperação força o software fato, protegê-lo de ataques
a falhar de várias formas e verifica que  O testador tenta penetrar no sistema
a recuperação foi feita de forma  Dado tempo suficiente, um teste de
adequada segurança irá penetrar o sistema
 A recuperação pode ser automática ou ◦ É papel do desenvolvedor do sistema
manual assegurar que isto custe mais caro que os
ganhos obtidos

Fernando Pedrosa Lopes 71 Fernando Pedrosa Lopes 72

12
 Inicialmente, testes caixa branca e caixa  Pode ocorrer durante todos os
preta tem o intuito de testar o sistema sob estágios de testes
condições normais
 Visa a garantir que o sistema atende
 Testes de carga visam a confrontar
programas com situações anormais
aos níveis de desempenho e tempo de
◦ Têm caráter destrutivo resposta acordados com o usuário e
◦ Até onde ele aguenta? definidos nos requisitos
 Podem ser estressados
◦ Memória (vários objetos criados)
◦ I/O (muitas interrupções por segundo)
◦ Disco (busca por dados), etc.

Fernando Pedrosa Lopes 73 Fernando Pedrosa Lopes 74

 Avalia o sistema do ponto de vista do (PRODEST - CESPE 2006)


[101] O XP é um processo que visa a um desenvolvimento ágil e
usuário final portanto não recomenda os testes de unidade, pois eles consomem
muitos recursos. Durante o desenvolvimento, o primeiro teste
 Enfatiza o seguinte: recomendado é o smoke test que foca os detalhes de funcionamento.
◦ Fatores humanos O smoke test é realizado após as unidades serem integradas. Após o
smoke test, é realizado o teste de sistema.
◦ Estética
◦ Consistência na interface do usuário (TRT16 - FCC 2009)
◦ Ajuda online e contextual [48] Há um tipo de teste que vislumbra a “destruição do programa” por
meio de sua submissão a quantidades, frequências ou volumes
◦ Assistentes e agentes (wizards) anormais que é o teste
◦ Documentação do usuário
(A) de recuperação. (B) de configuração. (C) beta. (D) de desempenho.
◦ Material de treinamento (E) de estresse.

Fernando Pedrosa Lopes 75 Fernando Pedrosa Lopes 76

 É o processo que resulta na remoção


de um erro encontrado
2
1
3
 Ocorre como uma consequência de
um teste de sucesso (um teste que Casos de

encontrou erros)
Teste Execução dos
casos

 Envolve formular uma hipótese sobre


Testes
adicionais Causas
suspeitas Resultados
o comportamento do sistema e testar Testes de regressão

essa hipótese para achar os erros Correções 4


Causas
identificadas

Fernando Pedrosa Lopes 77 Fernando Pedrosa Lopes 78

13
 Força Bruta (TRE/MT - CESPE 2010)
[43] Existem várias maneiras de se depurar (debug) programas.
◦ Popula-se o sistema com escritas ao console para Algumas delas envolvem conhecimento, prática e bom senso do
tentar encontrar algum traço de erro durante a programador. Acerca de pontos que são importantes para depurar
execução programas, julgue os itens a seguir.
◦ É o método menos eficiente de todos
I É possível encontrar falhas nos programas por meio da reprodução do
 Backtracking erro em testes.
◦ Começando a partir de onde o erro ocorreu, II Quanto maior a entrada de dados nos testes, mais simples é encontrar
deve-se rastrear o código manualmente até a o problema e mais fácil é encontrar a solução da falha.
fonte do erro III Em um programa modular, o processo de encontrar falhas requer
uma menor variação de informações de entrada, de modo que o
 Eliminação de causa programador possa encontrar o módulo com erros.
◦ Uma “hipótese de causa” é elaborada e os dados IV A passagem de parâmetros para variáveis auxiliares evita o uso de
relacionados ao erro são utilizados para prová-la Break points.

Fernando Pedrosa Lopes 79 Fernando Pedrosa Lopes 80

V A análise estruturada é a melhor maneira de encontrar erros


em programação orientada a objetos.

Estão certos apenas os itens

A) I e II.
B) I e III.
C) II e V.
D) III e IV.
E) IV e V.

Fernando Pedrosa Lopes 81 Fernando Pedrosa Lopes 82

 Define metas e objetivos dos testes no  Tem a finalidade de identificar e


escopo da iteração (ou projeto) comunicar as condições específicas
 Explicita a abordagem adotada, os nas quais as funcionalidades serão
recursos necessários e os produtos testadas
liberados  Define um conjunto de:
 Determina a estrutura (framework) na ◦ Entradas de teste
qual os papéis de testes funcionarão ◦ Condições de execução
 Assim como em outros documentos, é
◦ Resultados esperados
necessário ganhar a aprovação e
aceitação dos envolvidos
Fernando Pedrosa Lopes 83 Fernando Pedrosa Lopes 84

14
 Descrição do Caso de Teste  Pontos de Controle
◦ Descreve o objetivo e o escopo do teste ◦ Identifica os pontos em que pode ocorrer mudança
Condições de execução: do fluxo de controle
 Pré-Condições  Resultados esperados
◦ É o estado obrigatório do sistema antes do início ◦ Condições observáveis esperadas após a execução
do teste do teste. Pode incluir resposta positivas e
negativas (erros, falhas, etc.)
 Entradas
◦ Estímulos específicos aplicados durante o teste
 Pós-condições
◦ Estado ao qual o sistema deve retornar para
 Pontos de observação permitir a execução dos testes subsequentes
◦ Observações específicas a serem feitas

Fernando Pedrosa Lopes 85 Fernando Pedrosa Lopes 86

 É necessário desenvolver casos de teste para  Após cada caminho possível do caso de uso
cada cenário do caso de uso mostrado, é possível identificar cenários do
 Cenário (instâncias caso de uso através da combinação do fluxo
do caso de uso): básico com fluxos alternativos
caminhos que
percorrem o fluxo
Cenário 1 Fluxo Básico

Cenário 2 Fluxo Básico Fluxo Alternativo 1

básico, alternativo, Cenário 3 Fluxo Básico Fluxo Alternativo 1 Fluxo Alternativo 2

de exceção, etc. Cenário 4

Cenário 5
Fluxo Básico

Fluxo Básico
Fluxo Alternativo 3

Fluxo Alternativo 3 Fluxo Alternativo 1

Cenário 6 Fluxo Básico Fluxo Alternativo 3 Fluxo Alternativo 1 Fluxo Alternativo 2

Cenário 7 Fluxo Básico Fluxo Alternativo 4

Cenário 8 Fluxo Básico Fluxo Alternativo 3 Fluxo Alternativo 4

Fernando Pedrosa Lopes 87 Fernando Pedrosa Lopes 88

É possível obter casos de teste para  Com estas informações, podemos especificar
cada cenário através da identificação da alguns casos de teste para o fluxo alternativo
condição específica que causará a número 3
execução deste cenário ID de Caso de
Teste
Cenário Condição Resultado Esperado

Exemplo (fluxo alternativo 3): TC x Cenário 4


Passo 2 - Valor da Retirada > Saldo da Retorna ao Passo 2 do fluxo
Conta básico
“Ocorrerá esse fluxo de eventos se o valor digitado no
Passo 2 acima, "Digitar o Valor da Retirada" for maior que Passo 2 - Valor da Retirada < Saldo da Não executa o Fluxo Alternativo
o saldo atual da conta. O sistema exibirá uma mensagem
TC y Cenário 4
Conta 3, segue o fluxo básico

de aviso e, depois, retornará ao Passo 2 do fluxo básico


"Digitar o Valor da Retirada" acima, onde o cliente do TC z Cenário 4
Passo 2 - Valor da Retirada = Saldo da Não executa o Fluxo Alternativo

banco poderá digitar um novo valor de retirada”


Conta 3, segue o fluxo básico

Fernando Pedrosa Lopes 89 Fernando Pedrosa Lopes 90

15
Na prática, teríamos uma lista de TC’s parecida com isso...

SAD/PE (CESPE 2010)


[56] A respeito do plano de teste, um registro do processo de
planejamento de testes de software, assinale a opção correta.

A) O processo de planejamento de testes é usualmente descrito em um


plano de testes.
B) Um plano de teste de software é um registro da execução de um caso
de teste de software.
C) A automação de um teste de integração é mais facilmente
empreendida que a de um teste de módulo.
D) A produção de scripts de teste deve preceder a eventual construção
de casos de teste.
E) Ao se inspecionar o conteúdo de um plano de testes, devem-se
encontrar, entre outras, as seguintes descrições: escopo de testes,
abordagens de teste, recursos para realização dos testes e
cronograma das atividades de teste a serem realizadas.

Fernando Pedrosa Lopes 91 Fernando Pedrosa Lopes 92

[1] - [109] C, [61] E


[2-A] - [13-B] E, [85] E, [75] C, [56] C
[2-B] - [98] E, [97] E
[3] - [73] E, [63-A] E, [63-B] E, [97] C
[4] - [79] C, [57-C] E, [57-D] E, [74] C, [13-C] E
[5] - [85] E, [57-B] E, [57-E] E, [57-A] C, [13-D] E
[6] - [13-A] E, [13-B] E, [83] C, [40-A] E, [40-C] E
[7] - [58] C, [83] E
[8] - [39-D] E, [55-C] E, [43] D
[9] - [101] E, [48] E
[10] - [43] B
[11] - [56] E

Fernando Pedrosa Lopes 93 Fernando Pedrosa Lopes 94

16

Você também pode gostar