Buscar

Cont_online_09

Prévia do material em texto

1 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá 
 
 
Nesta aula, você irá: 
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; 
3. Avaliar o grau de confiabilidade do sistema em produção; 
4. Avaliar o índice de disponibilidade do sistema em produção; 
 
Introdução 
 A partir deste texto introdutório, você será capaz de entender melhor os conceitos 
estudados nesta aula, sendo capaz de relacionar o conteúdo que será aprendido ao contexto em 
que está inserido. 
 Nesta aula iremos estudar 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 possam causar danos e prejuízos à ela. 
 Iremos aprender também sobre a importância da medida de confiabilidade e da 
disponibilidade de um software. Veremos o conceito de confiabilidade, fazendo uma comparação 
ao conceito de disponibilidade. 
Estudaremos a medida de confiabilidade de software. 
Confiabilidade 
 
 
Disponibilidade 
 
 
Tipos de manutençã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. 
 Diferentes causas geram manutenções de tipos diferentes em um software em produção, e 
podem ser classificadas em: 
 Manutenção corretiva: Irá identificar e corrigir defeitos(Erros latentes). 
 Manutenção Adaptativa: Irá adaptar o software a novas tecnologias(TI/SI), metodologias, 
modelos de gestão, legislação. 
 Manutenção Perfectiva: Irá incluir novas funções(TI/DI) no software em produção, como: 
atender pedidos do usuário para modificar funções existentes e efetuar melhoramentos 
gerais. 
2 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá 
 
 Manutenção Preventiva: Irá melhorar a manutenibilidade ou a confiabilidade futura. 
 
Teste em manutenção de software 
 O teste de manutenção (Sylabbus,2007) é iniciado por: 
 Modificações no software 
 Migrações 
 Retiradas de software ou sistemas 
 
 Como já estudamos, essas 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. 
 Além de testar o que foi alterado, o teste de manutenção inclui também um teste de 
regressão massivo para as partes do sistema que não foram testadas. 
Teste de Regressão 
O teste de regressão é um teste seletivo, de um software que foi modificado ou já 
passou por iterações anteriores. Tem como propósito garantir que as falhas tenham sido 
reparadas e que as operações que funcionavam anteriormente não apresentem falhas 
após os reparos, ou seja, que as novas características adicionadas não tenham criado 
 problemas ou incompatibilidades em relação as versões anteriores ou com outros 
sistemas. 
O objetivo desse tipo de teste é verificar se as alterações realizadas geraram alguma 
inconsistência no aplicativo ou em outros sistemas. Nesse caso, aplicam-se as mesmas 
técnicas de testes já utilizados em testes, anteriormente, e que são executados, 
progressivamente, para verificar se alguma falha foi introduzida após as mudanças. 
 
 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 em todos ou alguns tipos de testes. 
 A determinação de como um sistema pode ser afetado por mudanças é chamada de 
análise de impacto e pode ser usada para ajudar a decidir quantos testes de regressão serão 
realizados. 
 
 Dependendo do tipo de manutenção podemos ter os seguintes tipos de teste: 
 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. Nesse caso, é indispensável a aplicação dos testes de validação de forma a 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. LEIA Teste de validação>>>> 
 Teste em manutenção perfectiva: Os testes de manutenção perfectiva se assemelham 
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 planejadas. 
3 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá 
 
 Teste em manutenção adaptativa: Os testes de manutenção adaptativa, por validar 
mudanças impositivas, quer legais, quer tecnológicas, mesmo com o 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. 
 Teste em manutenção preventiva: Já os testem em manutenção preventiva são mais 
previsíveis, pois, buscam identificar, antecipadamente, possíveis erros ou falhas no aplicativo que 
está sendo usado na empresa. vale ressaltar que esse tipo de teste não é muito usual. 
 
Confiabilidade e disponibilidade de software 
 Com o constante desenvolvimento da tecnologia, 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 conta disso, o software constitui a parte mais dispendiosa para a solução de um 
problema que envolve um computador. Consequentemente, desenvolver um software com 
qualidade 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. 
 
Mas o que é falha? 
Segundo Pressmam(2011), falha é a falta de conformidade com os requisitos dos 
softwares. 
 
 Vamos relembrar o que são requisitos de software? 
 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 
 
 
Requisitos de um software 
 Os requisitos de um software são sentenças que expressam as necessidades dos clientes 
e que condicionam a qualidade do software. Podem ser classificados em: 
1. Requisitos Funcionais: Estão diretamente ligados a funcionalidade do software. 
2. Requisitos Não Funcionais: Expressam restrições que o software deve atender ou 
qualidades específicas que o software deve ter. 
3. Requisitos Inversos: Estabelecemcondições que nunca podem ocorrer. 
4 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá 
 
 
 
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: 
 
Disponibilidade 
 A disponibilidade de um software 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. Disponibilidade de software é a probabilidade de um sistema, em determinado instante, 
ser operacional e fornecer os serviços requeridos. 
 
 Se um serviço especificado não for prestado, o sistema não estará se comportando de 
acordo com sua especificação. 
 A disponibilidade não depende do sistema em si, mas do tempo necessário para reparar os 
defeitos que tornam o sistema indisponível. 
5 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá 
 
 
 
Confiabilidade de Software 
 O conceito de Confiabilidade de Software baseia-se 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. 
Você sabia que diferente de outros fatores de qualidade a: 
 
 
Em termos estatísticos, a confiabilidade de software é definida como: 
“...a probabilidade de operação livre de falhas de um programa de computador num 
ambiente específico durante determinado tempo”(Musa et al, 1987, in Pressman (1995). 
 
Segurança 
 A segurança de um sistema é um atributo que reflete a capacidade do sistema de operar 
normal e anormalmente, sem ameaçar as pessoas ou o ambiente. 
 
Proteção 
 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 dado ao sistema.v 
 
Medida de confiabilidade de software 
 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 de um software: 
 
6 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá 
 
 O tempo médio entre falhas, MTBF, 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). 
O tempo médio é calculado, considerando-se a soma de duas medidas diretas: 
 MTTF – tempo médio de uso até a falha do software e 
 MTTR – tempo médio de reparo da falha no software. 
 
 
Portanto, quanto maior for o MTBF e o MTTF em relação ao MTTR, mais tempo o sistema 
ficou operativo. 
 
Medida de disponibilidade de software 
 
 Através de exemplo, mostrar que 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: 
MTTF / (MTTF + MTTR) 
Quanto mais próximo de 1 for a disponibilidade, mais produtivo foi o software no período 
 
 
 
Nesta aula, você: 
Compreendeu as técnicas e estratégias de teste na manutenção do sistema; 
Compreendeu as técnicas e estratégias de teste aplicados em sistemas em regime de produção; 
Conheceu o grau de confiabilidade de um sistema em produção; 
Conheceu o índice de disponibilidade de um sistema em produção. 
 
 
 
Tema: Ferramentas de teste de software 
1. Analisar, selecionar, contratar, implementar e avaliar ferramentas para teste de sistemas ou de programas. 
2. Analisar, selecionar, contratar, implementar e avaliar ferramentas para teste de sistemas em ambiente web e para 
teste de sistemas em regime de produção. 
 
7 
Aula 9: Teste de Software: Sistema em Produção - Estácio de Sá

Continue navegando