Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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.
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.
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
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
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.
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
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
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
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.
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
Classe contendo os
casos de teste
Assertiva
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.
11
(TRE/MT - CESPE 2010)
[39-D] O teste alfa é conduzido pelo cliente em seu ambiente de uso final.
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.
encontrou erros)
Teste Execução dos
casos
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.
A) I e II.
B) I e III.
C) II e V.
D) III e IV.
E) IV e V.
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
É 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 5
Fluxo Básico
Fluxo Básico
Fluxo Alternativo 3
É 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
15
Na prática, teríamos uma lista de TC’s parecida com isso...
16