NF.1. Teste de fiabilidade e disponibilidade de sistemas baseados

Propaganda
Teste de Fiabilidade e
Disponibilidade de Sistemas
Baseados em Software
António Mota – [email protected]
José Duarte – [email protected]
FEUP 2006
Índice

Conceitos

Quantificações

Modelos e Métodos Estatísticos

Automação de Testes

Ferramentas
Conceitos



Fiabilidade: capacidade de um sistema de
software desempenhar as suas funções sob
determinadas condições num determinado
período de tempo.
Disponibilidade: grau com que um sistema de
software é operacional e acessível quando o seu
uso é solicitado.
Fiabilidade contribui para a disponibilidade
Quantificações


Escala: de 0 a 1
Unidades:
Fiabilidade: tempos de execução do CPU
 Disponibilidade: tempo convencional


Fórmulas:
Fiabilidade (MTBF) = MTTF + MTTR
 Disponibilidade = MTBF / (MTBF + MTTR)

Modelos e Métodos Estatísticos


Não é possível testar tudo…
Fiabilidade e disponibilidade estimadas através de
modelos e métodos estatísticos

Modelo que estime a utilização operacional esperada e o
ambiente operacional do sistema. Exemplos:


Perfil Operacional
Modelo de Uso

Método estatístico que permita analisar os dados de teste e
criar um conjunto de conclusões estatisticamente válidas
sobre fiabilidade e disponibilidade

Modelo de crescimento que permita definir um momento de
paragem nos testes
Modelos – Perfil Operacional



Definições:

Caracterização quantitativa do modo de uso do sistema e do ambiente
esperado para a sua execução

Especificação das classes de entrada e da probabilidade da sua ocorrência
Resultado:

Amostra do espaço de entrada de acordo com padrões de utilização

Probabilidade de ocorrência de cada operação (caso de uso) que o sistema
suporte
Utilidade:

Possibilita a posterior definição de casos de teste estatisticamente
correctos a partir da população amostrada

É eficiente: identifica as falhas de acordo com o número de vezes que elas
ocorrem, diminuindo rapidamente a sua intensidade
Modelos – Perfil Operacional

Metodologia
1.
2.
3.
4.
5.
Desenvolvimento do perfil do cliente
Estabelecimento do perfil do utilizador
Definição do perfil do modo do sistema
Desenvolvimento do perfil funcional
Desenvolvimento do perfil operacional
NÍVEL DE
ABSTRACÇÃO
Modelos – Perfil Operacional
1. Desenvolvimento do perfil do cliente


O perfil do cliente é o conjunto completo de
grupos de clientes e as probabilidades de
ocorrência a eles associados
A melhor medida da probabilidade associada a um
determinado grupo de clientes é a proporção de
uso que ele representa
Modelos – Perfil Operacional
2. Estabelecimento do perfil do utilizador


O perfil do utilizador é o conjunto de grupos de
utilizadores e as probabilidades de ocorrência a eles
associados
Pode-se derivar o perfil do utilizador a partir do
perfil do cliente estudando os vários grupos de
clientes e identificando os utilizadores que cada um
contém
Modelos – Perfil Operacional
3. Definição do perfil do modo do sistema



O modo do sistema é o conjunto de funções ou
operações que, por conveniência, são agrupadas
para análise do comportamento da execução
O perfil do modo do sistema é o conjunto de
modos de sistema e a probabilidade de ocorrência
a eles associados
Para cada modo do sistema, é necessário
desenvolver um modo operacional e, por vezes,
funcional
Modelos – Perfil Operacional
4. Desenvolvimento do perfil funcional


O desenvolvimento do perfil funcional requer que
se divida cada modo do sistema em funções
necessárias para os suportar
O perfil funcional é composto pela lista dessas
funções e pela probabilidade associada a cada uma
delas
Modelos – Perfil Operacional
5. Desenvolvimento do perfil operacional


Função ≠ Operação
Deve ser compreendida a natureza do espaço de
entrada do programa através do desenvolvimento de
uma lista detalhada de variáveis de entrada e das
probabilidades associadas a cada uma delas
Modelos – Modelo de Uso

Metodologia
1.
2.
Identificação do ambiente, grupos de utilizadores e
modos de utilização esperados
Criação de um grafo
1.
2.
3.
Nós: Estados de utilização
Arcos: Estímulos que causem a transição entre estados
Atribuição de probabilidades a cada transição. O
conjunto de probabilidades das transições define a
distribuição de utilização sobre o domínio de
entrada
Métodos Estatísticos


Usam a amostra representada pelo perfil
operacional para desenvolver conclusões acerca
da população de todos os cenários de uso
Concentram os recursos de teste nas partes do
sistema que provavelmente serão mais usadas,
tornando o sistema mais fiável do ponto de vista
do utilizador
Modelos de Crescimento




Surge em complemento do perfil operacional e
dos métodos estatísticos
Prevê quando, e se, um determinado nível de
fiabilidade poderá ser atingido
Oferece uma visão do progresso da qualidade do
software ao longo do tempo
Tipos de modelo
Estático
 Básico
 Poisson

Automação de Testes

A habilidade de uma suite de testes revelar erros
diminui à medida que vai sendo usada


Criar constantemente novas suites de teste, que
continuem a ser estatisticamente válidas…
A criação manual de suites de testes não é viável
para a maioria dos sistemas reais

Automatizar essa criação…
Ferramentas - Utilidade


Visualização das previsões de fiabilidade através
de Diagramas de Blocos de Fiabilidade, análise
de Árvore de Falhas, entre outros…
Previsão e optimização da perfomance de um
sistema quanto à sua disponiblidade através de
técnicas de simulação de Monte Carlo, entre
outras…
Ferramentas - Requisitos




Conformidade com as principais metodologias
standard
Permitir tranferir os dados entre os vários
módulos
Combinar modelos com o projecto
Os seus programas devem permitir customizar a
aplicação do utilizador (de forma integrada)
Ferramentas - Exemplos





HARP - Hybrid Automated Reliability Predictor
Isograph Reliability Workbench
ITEM ToolKit
Relex Reliability Studio
Reliability & Maintenance Analyst
Referências

"Practical Software Testing", Ilene Burnstein, Springer-Verlag, 2003

“Automated Testing with an Operational Profile”, Robert Binder,
Software Reliability Engineering, 2004, http://www.softwaretechnews.com/stn81/atop.html

“A New Reliability and Availability Strategy for Communications
Servers in Next Generation Networks”, Motorola, 2005,
http://www.motorola.com/mot/doc/5/5854_MotDoc.pdf

“How To Measure Software Reliability, And How Not To…”,
Littlewood, http://portal.acm.org/citation.cfm?id=803188

“More Reliable, Faster, Cheaper Testing with Software Reliability”,
John Musa, http://www.softwaretechnews.com/stn3-2/reliability.html
Download