Buscar

Aula 9 TSW

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

21/11/2016
1
TESTES DE SOFTWARE – AULA 9
Prof. Ulisses Sperle Graça
Rio de Janeiro, outubro de 2011
TESTE DE SOFTWARE 
EM SISTEMA EM PRODUÇÃO
21/11/2016
2
1. Compreender técnicas e estratégias de teste na
manutenção do sistema;
2. Compreender técnicas e estratégias de teste aplicados
em sistemas em regime de produção;
4. Avaliar o grau de confiabilidade do sistema em produção;
5. Avaliar o índice de disponibilidade do sistema em
produção;
3
OBJETIVOS DESTA AULA
Estudaremos os testes de manutenção (corretiva,
perfectiva, adaptativa e preventiva) que um sistema em
produção poderá sofrer. É importante ressaltar que estes
tipos de testes de software aplicados na manutenção de
sistemas em produção demandam cuidados adicionais,
notadamente quanto à corretitude e ao tempo reduzido para
realizar os testes, depurar os erros e validar os resultados,
uma vez que os sistemas são ativos da empresa e suas
interrupções podem causar danos e prejuízos à empresa.
4
INTRODUÇÃO
21/11/2016
3
Estudaremos também sobre a importância da medida de
confiabilidade e da disponibilidade de um software.
Veremos que o conceito de confiabilidade se baseia na
execução do sistema em determinada unidade de tempo
sem falhas. Enquanto que o conceito de disponibilidade se
baseia na oferta do software em determinada unidade de
tempo, considerando-se, proporcionalmente, o tempo útil de
uso e o tempo de reparo de falhas.
5
INTRODUÇÃO
6
INTRODUÇÃO
índice de 
falhas
curva real
curva idealizada
tempo
mudança
21/11/2016
4
A manutenção de software existente pode ser responsável
por mais de 70% de todo o esforço despendido por um
setor de desenvolvimento de sistemas.
A porcentagem pode aumentar a medida que mais software
é produzido ou de acordo com o contexto organizacional.
7
INTRODUÇÃO
A natureza intrínseca da mudança é subjacente a todo o
trabalho de software. A mudança é inevitável quando se
constroem sistemas baseados em computador, já que os
processos empresariais mudam e se renovam cada vez
mais rápido levando à um ciclo de vida dos produtos cada
vez menor.
Outro fator importante: algumas estatísticas apontam que
para cada três vezes que fazemos uma manutenção, em
uma delas adicionamos um erro por falha nossa.
8
INTRODUÇÃO
21/11/2016
5
Uma das metas principais da Engenharia de Software é a
de facilitar a acomodação das mudanças, reduzir a
quantidade de esforço despendido em manutenção e
aumentar a qualidade das tarefas associadas à
Manutenção de Software.
9
INTRODUÇÃO
Independentemente do domínio da aplicação, tamanho ou
complexidade, o software continuará a evoluir com o tempo.
Após seu desenvolvimento um sistema pode ficar
operacional, ou seja, em produção por anos ou até mesmo
décadas. Porém durante este período o próprio sistema ou
seu ambiente operacional podem ser corrigidos,
modificados ou completados.
10
TIPOS DE MANUTENÇÃO
21/11/2016
6
Diferentes causas geram manutenções em um software em
produção, e podem ser classificadas em:
� Manutenção Corretiva;
� Manutenção Adaptativa;
� Manutenção Perfectiva;
� Manutenção Preventiva.
11
TIPOS DE MANUTENÇÃO
Manutenção Corretiva:
A manutenção Corretiva irá identificar e corrigir defeitos
(erros latentes).
� inclui o diagnóstico e a correção de um ou mais erros
não descobertos na fase de teste do software;
� uma grande quantidade desses erros indica que o
software não foi testado adequadamente;
� esse tipo de manutenção não deveria ocorrer.
12
TIPOS DE MANUTENÇÃO
21/11/2016
7
Manutenção Adaptativa:
Necessária para ajustar o sistema/programa às novas
tecnologias, metodologias, modelos de gestão, legislação e
etc.
� hardware (processadores, periféricos e etc.)
� software (linguagens, sistemas operacionais etc.)
13
TIPOS DE MANUTENÇÃO
Manutenção Perfectiva – irá incluir novas funções
(ampliações) no software em produção, como:
Para atender a solicitações do usuário quanto a melhorias,
novas funções, mudança de contexto organizacional e etc.
É o tipo responsável que mais requer manutenção.
14
TIPOS DE MANUTENÇÃO
21/11/2016
8
Manutenção Preventiva:
Modificações para melhorar a confiabilidade, a manutenibi-
lidade futura ou para futuras ampliações.
15
TIPOS DE MANUTENÇÃO
Para entender as características da manutenção de um
software devemos considerar:
- Manutenção Estruturada versus Não Estruturada;
- Custos associados à Manutenção;
- Problemas associados à manutenção;
16
CARACTERÍSTICAS DA MANUTENÇÃO
21/11/2016
9
17
CARACTERÍSTICAS DA MANUTENÇÃO
Pedido de
Manutenção
Pedido de
Manutenção
Configuração
Avaliar o projeto
Modificar o projeto
Planejar a 
Abordagem
Recodificar
Revisão
Teste e 
Lançamento
Teste e 
Lançamento
Avaliar o código
Recodificar
Revisão
?
Manutenção Estruturada Manutenção Não Estruturada
Manutenção Não Estruturada
� Se o único elemento disponível do software for o
código-fonte, a atividade inicia-se por uma penosa
avaliação do código;
� Frequentemente a documentação interna é ruim;
� Diversas características do software, como por exemplo
restrições de projeto, são difíceis de ser verificadas e
acabam mal interpretadas;
18
CARACTERÍSTICAS DA MANUTENÇÃO
21/11/2016
10
Manutenção Não Estruturada (cont.)
� As mudanças feitas são difíceis de ser avaliadas.
� Testes de Regressão são impossíveis de ser realizados
por não existir nenhum registro de teste.
� Esforço perdido e frustração
19
CARACTERÍSTICAS DA MANUTENÇÃO
Manutenção Estruturada
� Ocorre como resultado de aplicação anterior de uma
metodologia de engenharia de software, iniciando-se por
uma avaliação do projeto;
� O impacto das modificações ou correções exigidas é
avaliada e uma abordagem é planejada;
20
CARACTERÍSTICAS DA MANUTENÇÃO
21/11/2016
11
Manutenção Estruturada (cont.)
� Usando-se técnicas adequadas, o projeto é modificado
e revisado. Um novo código-fonte pode ser desenvolvido,
testes de regressão são levados a efeito.
� Embora a existência de uma metodologia não garanta
uma manutenção isenta de problemas, a quantidade de
esforço é reduzida e a qualidade da mudança ou correção é
aumentada.
21
CARACTERÍSTICAS DA MANUTENÇÃO
Custos da manutenção:
O custo da manutenção tem aumentado nos últimos anos
em proporção aos outros gastos do orçamento do software;
Custos intangíveis da manutenção:
� Insatisfação do cliente quanto à demora no atendimento;
� Redução da qualidade devido à introdução de novos
erros;
� Descontentamento das pessoas destinadas à tarefa.
22
CARACTERÍSTICAS DA MANUTENÇÃO
21/11/2016
12
Custos intangíveis da manutenção: (cont.)
� Oportunidade de desenvolvimento que é postergada
ou perdida porque os recursos disponíveis estão na
tarefa de manutenção;
� Drástica diminuição de produtividade se comparada
à construção de um software;
23
CARACTERÍSTICAS DA MANUTENÇÃO
Problemas associados à manutenção:
A maioria dos problemas remete-se a deficiências na
maneira segundo o qual o software foi planejado e
desenvolvido.
A falta de controle e disciplina nas atividades de
desenvolvimento da engenharia de software quase sempre
se traduz em problemas durante a manutenção.
� Vamos pagar muito mais agora o que não quisemos
gastar anteriormente.
24
CARACTERÍSTICAS DA MANUTENÇÃO
21/11/2016
13
Problemas associados à manutenção:
� A documentação do sistema não existe ou é muito ruim;
� As mudanças e correções realizadas no sistema não 
estão adequadamente documentadas;
� Frequentemente é difícil ou impossível rastrear o 
processo através do qual o software foi criado;
� Muitas vezes é difícil entender o programa “de outra 
pessoa”;
25CARACTERÍSTICAS DA MANUTENÇÃO
Problemas associados à manutenção: (cont.)
� A “outra pessoa”, quase sempre, não está por perto para 
explicar o programa;
� A maioria dos sistemas não é projetada para sofrer 
mudanças;
� A manutenção não é vista como um trabalho muito 
glamouroso. 
26
CARACTERÍSTICAS DA MANUTENÇÃO
21/11/2016
14
O teste de manutenção (Sylabbus,2007) é iniciado por:
� Modificações no software;
� Migrações;
� Retiradas de software ou sistemas.
27
TESTE EM MANUTENÇÃO
Como vimos, estas modificações podem ser inclusões de
melhorias planejadas, ou seja, uma nova versão do
software, podem ser mudanças corretivas e emergenciais,
ou ainda mudanças de ambiente, como atualização em
sistema operacional ou banco de dados, e correções
(“patches”) para expor e encontrar vulnerabilidades do
sistema operacional.
28
TESTE EM MANUTENÇÃO
21/11/2016
15
Além de testar o que foi alterado, o teste de manutenção
pode incluir também um teste de regressão para as partes
do sistema que não foram testadas especificamente.
O escopo do teste de manutenção está relacionado ao risco
da mudança, o tamanho do sistema existente e o tamanho
da mudança.
Dependendo da mudança, o teste de manutenção pode ser
feito em todos ou apenas em alguns módulos do sistema, e
podem ser aplicados todos ou alguns tipos de testes.
29
TESTE EM MANUTENÇÃO
A determinação de como um sistema pode ser afetado por
mudanças é chamado de análise de impacto, e pode ser
usado para ajudar a decidir quantos testes de regressão
serão realizados.
Os testes de manutenção pode se tornar uma tarefa
complicada se as especificações do software estiverem
desatualizadas ou incompletas.
30
TESTE EM MANUTENÇÃO
21/11/2016
16
Dependendo do tipo de manutenção podemos ter os
seguintes tipos de teste:
� Teste em manutenção corretiva;
� Teste em manutenção perfectiva;
� Teste em manutenção adaptativa;
� Teste em manutenção preventiva.
31
TESTE EM MANUTENÇÃO
Teste em manutenção corretiva
Os testes de manutenção corretiva de um software em
produção são os mais exigidos uma vez que se trabalha
sobre um produto com vícios de construção, o que pode
demandar esforço significativo para identificação e correção
adequada do erro.
32
TESTE EM MANUTENÇÃO
21/11/2016
17
Teste em manutenção corretiva (cont.)
Neste caso é indispensável a aplicação dos testes de
validação (seu objetivo é avaliar a conformidade do
software com os requisitos e especificações analisadas e
revisadas nas etapas iniciais do projeto).
Isto evitará possível propagação ou derivação de erro pela
correção realizada e levando em consideração que tudo
isso deverá ocorrer em diminuto espaço de tempo.
33
TESTE EM MANUTENÇÃO
Teste em manutenção perfectiva
Os testes de manutenção perfectiva se assemelha ao teste
na construção do software, pois testa-se novas funções,
incluídas pelo usuário, que serão iniciadas no sistema,
podendo ser planejada.
34
TESTE EM MANUTENÇÃO
21/11/2016
18
Teste em manutenção adaptativa
Os testes de manutenção adaptativa, por validar mudanças
impositivas quer legais, quer tecnológicas, mesmo com
tempo limitado, são previsíveis, podendo, assim como a
perfectiva e a preventiva, serem planejadas, o que facilita a
atividade de teste de software.
35
TESTE EM MANUTENÇÃO
Teste em manutenção preventiva
Já os testes em manutenção preventiva é o mais previsível,
pois busca identificar, antecipadamente, possíveis erros ou
falhas no aplicativo que está sendo usado na empresa.
Vale ressaltar que este tipo de teste não é muito usual.
36
TESTE EM MANUTENÇÃO
21/11/2016
19
Com o constante desenvolvimento da TI, os sistemas
computacionais têm sido requisitados em quase todas as
áreas da atividade humana.
Essa crescente dependência em relação ao software tem
conscientizado os usuários, que cada vez mais exigem
softwares confiáveis.
Por isso o software constitui a parte mais dispendiosa para
a solução de um problema que envolve a TI.
37
Confiabilidade e Disponibilidade
Consequentemente desenvolver um software com qualida-
de tem exigido um enorme esforço na atividade de teste.
Os problemas de confiabilidade e disponibilidade podem
quase sempre ser associados a defeitos de projeto ou de
implementação.
Antes de estudarmos sobre a confiabilidade e
disponibilidade de um software, precisamos compreender o
conceito de falha.
38
Confiabilidade e Disponibilidade
21/11/2016
20
Segundo Pressman(2011), falha é a falta de conformidade
com os requisitos de software.
Requisitos de software � são sentenças que expressam
as necessidades dos clientes e que condicionam a
qualidade do software. Podem ser classificados em:
� Funcionais: Estão diretamente ligados a funcionalidade
do software.
� Não Funcionais: Expressam restrições que o software
deve atender ou qualidades específicas que o software
deve ter.
� Inversos: Estabelecem condições que nunca podem
ocorrer.
39
Confiabilidade e Disponibilidade
Existem diferentes tipos de falhas que podem ser
problemáticas ou catastróficas. Enquanto uma
determinada falha pode ser corrigida em segundos, outras
necessitarão de horas ou até mesmo meses para serem
corrigidas.
É importante considerar também que às vezes a correção
de uma falha pode resultar na introdução de outros erros
que resultarão em outras falhas.
40
Confiabilidade e Disponibilidade
21/11/2016
21
Componentes dos sistemas que estão sujeitos a falhas:
Hardware: Erros de fabricação;
Final de sua vida útil.
Software: Especificação, projeto ou implementação;
Operadores humanos;
Falha ao operar o sistema.
41
Confiabilidade e Disponibilidade
Dimensões da confiança de um software
A confiança de um sistema, segundo Sommerville (2003) , é
uma propriedade do sistema que equivale a sua
integridade, ou seja, é o grau de confiança dos usuários de
que o sistema operará como eles esperam e não “falhará”
em uso normal.
Existem quatro dimensões principais de confiança:
42
Confiabilidade e Disponibilidade
21/11/2016
22
43
Confiabilidade e Disponibilidade
Fonte: Sommerville, 2003
Se baseia na oferta do software em determinada unidade
de tempo, considerando-se, proporcionalmente, o tempo útil
de uso e o tempo de reparo de falhas.
É a probabilidade de que um programa esteja operando de
acordo com os requisitos em determinado ponto do tempo.
Disponibilidade = MTTF x 100%
(MTTF + MTTR)
A medida de disponibilidade é bem mais sensível ao
MTTR, que é uma medida indireta da capacidade de
manutenção do software.
44
Disponibilidade
21/11/2016
23
Se um programa deixar de funcionar repetidamente, pouco
importa se outros fatores de qualidade de software são
aceitáveis.
Confiabilidade é definida como a probabilidade de operação
livre de falhas de um programa de computador num
ambiente específico durante determinado tempo.
45
Confiabilidade
O conceito de confiabilidade de software se baseia na
execução do sistema em determinada unidade de tempo
sem falhas.
A confiabilidade do produto de software é influenciada pelo
processo de software utilizado para desenvolver o produto.
Um processo orientado no sentido de evitar defeitos poderá
desenvolver um sistema confiável.
46
Confiabilidade
21/11/2016
24
Quando o software é usado como parte do controle de
Ambientes Críticos, as falhas tornam-se muito mais
difíceis de serem detectadas, podendo resultar em
significativos danos e até perda de vidas.
É uma atividade que se concentra na identificação e
avaliação de casualidades em potencial que possam
exercer um impacto negativo sobre o software e fazer com
que todo o sistema falhe.
47
SEGURANÇA DE SOFTWARE
Se as casualidades puderem ser identificadas, é possívelespecificar características de projeto que as eliminem ou
controlem. Um processo de modelagem e análise é levado
a efeito. Inicialmente, as casualidades são identificadas e
dispostas por categorias, criticidade e risco.
Logo que as casualidades são identificadas e analisadas,
os requisitos relacionados à segurança podem ser
especificados.
A especificação pode conter uma lista de eventos
indesejáveis e as respostas desejadas a esses eventos.
48
SEGURANÇA DE SOFTWARE
21/11/2016
25
A proteção de um sistema é uma avaliação do ponto em
que o sistema protege a si mesmo de ataques externos.
Erros no desenvolvimento de um sistema podem levar a
falhas de proteção.
Sem um nível razoável de proteção, a disponibilidade, a
confiabilidade e a segurança do sistema poderão ser
comprometidas se ataques externos provocarem algum
dano ao sistema.
49
PROTEÇÃO
Um meio simples de se medir a confiabilidade de um software 
é observar o tempo para a ocorrência da próxima falha.
Métricas que podem ser utilizadas para medir a confiabilidade:
50
Medida de Confiabilidade
•Tempo médio de ocorrência
de falhas
•Tempo médio até a ocorrência 
de falhas
•Tempo médio de reparo 
Métrica do número 
de falhas do sistema
•Taxa de ocorrência de falha.
•Probabilidade de falha sob 
demanda 
Métricas de tempo ou
número de transações
21/11/2016
26
O tempo médio entre falhas, MTBF (mean time between
failure), representa o tempo esperado para a ocorrência da
próxima falha, ou seja, é o tempo durante o qual o software
funciona sem falhas (Delamare&Maldonado&Jino, 2007).
É calculado considerando-se a soma de duas medidas:
MTTF (mean time to failure) – tempo médio de uso até a
falha do software e
MTTR (mean time to repair) – tempo médio de reparo da
falha no software.
51
Medida de Confiabilidade
MTBF = MTTF + MTTR
MTBF – tempo médio de ocorrência de falhas (mean time 
between failure)
MTTF – tempo médio até a ocorrência de falha (mean time 
to failure)
MTTR – tempo médio de reparo (mean time to repair)
Portanto, quanto maior for o MTBF e o MTTF em relação ao
MTTR mais tempo o sistema ficou operativo.
52
Medida de Confiabilidade
21/11/2016
27
Tempo gasto para reparar ou reiniciar o sistema
A medida de disponibilidade de software considera as
medidas MTTF e MTTR, sendo mais sensível ao MTTR ou
seja, tempo de correção da falha, pois a disponibilidade é
obtida através de:
Disponibilidade = MTTF x 100%
(MTTF + MTTR)
Quanto mais próximo de 1 for a disponibilidade mais
produtivo foi o software no período.
53
Medida de Disponibilidade

Continue navegando