Buscar

Teste de Software em Produção

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 5 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

Prévia do material em texto

Aula 9 – Teste de software: 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: 
 
 
Irá identificar e corrigir defeitos (erros latentes). 
 
 
Irá adaptar o software a novas tecnologias (TI/SI), metodologias, modelos de gestão, legislação. 
 
 
Irá incluir novas funções (TI/SI) no software em produção, como: atender pedidos do usuário para modificar 
funções existentes e efetuar melhoramentos gerais. 
 
 
Irá melhorar a manutenibilidade ou a confiabilidade futura. 
 
 
 
Teste em manutenção de software 
 
O teste de manutenção (Sylabbus,2007) é iniciado por: 
 
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. 
 
Atenção! 
 
Os testes de manutenção podem se tornar uma tarefa complicada, se as especificações do software estiverem 
desatualizadas ou incompletas 
 
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. 
 
09TS_doc01.pdf 
 
 
 
 
 
 
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? 
 
 
 
Vamos relembrar o que são requisitos de software? 
 
09TS_doc02.pdf 
 
ApresentandoumaTaxonomiadeRequisitos.pdf 
 
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 
 
 
 
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. 
 
 
 
 
 
 
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).

Outros materiais