Uploaded by Suyanne França

17-TesteSoftware

advertisement
2016
Testes
Teste de software, conceitos
1/
67
Testes em poucas palavras
“Teste somente sinaliza a presença de faltas, nunca a
sua ausência.”
E.W. Dijkstra
2016
Testes
2 / 67
Testes em poucas palavras
“O planejamento de testes é governado pela
necessidade de selecionar alguns poucos casos de teste
de um gigantesco conjunto de possíveis casos. Independentemente de quão cuidadoso você seja, você deixará
de incluir alguns casos relevantes. Independentemente
da perfeição e esmero do seu trabalho, você nunca
encontrará a última falta, e se encontrar, jamais o
saberá.”
Kaner, C.; Falk, J.; Nguyen, H.Q.;
2016
Testes
3 / 67
Testes em poucas palavras
Desenvolvimento incremental:
–desenvolve 1a. versão
–testa tudo o que existe até agora
–. . .
–desenvolve i-ésimo incremento
–testa tudo o que existe até agora
–repete para o próximo incremento
–Ah! Bobagem, não desenvolvo software de forma incremental
2016
Testes
4 / 67
Testes em poucas palavras
Manutenção:
–desenvolve sistema
–testa tudo o que existe até agora
–. . .
–desenvolve i-ésima alteração
–testa tudo o que existe até agora
–repete para o próxima alteração
(pelo menos deveria!!!)
(pelo menos deveria!!!)
Causas de alteração:
•25% correção de problemas encontrados
•05% melhorias de desempenho, interface, embelezamentos
•20% adaptação a novas leis, procedimentos, plataformas, …
•50% evolução -> mudanças na funcionalidade
2016
Testes
5 / 67
Testes em poucas palavras
–Os critérios de seleção de casos de teste
•são rigorosos?
•têm por base alguma regra bem definida?
–Os casos de teste selecionados vão realmente ser realizados?
•Todos eles?
•Vão ser testadas condições especiais?
–Rede lenta?
–Demanda muito grande?
–Pré condições ilegais?
–Interrupção antes de concluir?
–Dados, comandos e protocolos (seqüências de dados / comandos) errados?
–. . .
Sempre de novo, no caso de uma alteração?
Papai Noel existe?
2016
Testes
6 / 67
Testes em poucas palavras
Quantas faltas permanecerão desconhecidas?
–1 para cada 100 linhas
–1 para cada 1.000 linhas
–1 para cada 10.000 linhas,
•a melhor estatística é 0,8 / 10.000 linhas
Por falar nisso, pode-se falar em faltas por linha de
código?
–mais de 70% são faltas de especificação!
•estas são as mais caras de se corrigir
•variações de estimativas de custo: 1 x 5 (pequena); 1 x 100 (grande); já vi 1
x 1.000
–vai daí, vamos ter que modificar o que foi desenvolvido e testado...
2016
Testes
7 / 67
Testes em poucas palavras
Errare humanum est
–nós humanos somos falíveis mesmo quando procuramos fazer o
melhor que podemos
•o software conterá faltas
•as especificações conterão faltas
•as máquinas conterão faltas
•os operadores errarão
•o software de que dependemos conterá faltas
"If a problem has no solution, it may not be a problem, but
a fact - not to be solved, but to be coped with over time."
Shimon Peres
2016
Testes
8 / 67
Testes em poucas palavras
–Qual é o modelo de desenvolvimento, teste e manutenção que
melhor explica o mundo real?
•o conhecimento relativo à aplicação vai aumentar continuamente?
–o processo de desenvolvimento é um processo de crescimento, no sentido
de ocupação de espaço (domínio do problema)
–quando novos patamares de conhecimento são atingidos são geradas
solicitações de evolução
•o processo de desenvolvimento é um processo de aproximações
sucessivas?
–cometem-se erros que depois são corrigidos
•o processo de desenvolvimento é um processo evolucionário (ou de
maturação), no sentido Darwiniano do termo?
–sistemas persistem caso evoluam de modo que continuem atendendo às
necessidades crescentes ou cambiantes de seus usuários
–sistema que é usado é um que satisfaz o usuário
2016
Testes
9 / 67
Princípios básicos
Teste é um experimento controlado visando a
identificação de problemas.
–como conduzir os experimentos?
–como selecionar os dados?
–como identificar os resultados esperados?
–como confrontar resultados esperados com os resultados
observados?
–como replicar os experimentos?
•durante e após alterações
•durante e após evoluções ou incrementos
–como replicar, a partir dos relatos, as falhas ocorridas em
produção?
2016
Testes
10 / 67
Princípios básicos
–Para cada caso de teste é necessário comparar-se os resultados
obtidos com os resultados esperados
•oráculo: resultado esperado é calculado a partir da especificação usando
os dados selecionados para o caso de teste
•inversa: comparação pode ser indireta, exemplos
–[M]*[M]-1=[1]
–guarda espaço ocupado antes, [{insere , exclui}]* => mesmo espaço
ocupado que antes
•assertiva: o resultado obtido precisa satisfazer um conjunto de assertivas
•visual: o resultado obtido é examinado pelo testador para ver se está
satisfatório
–Deve ser registrada uma falha se forem diferentes em mais do
que o tolerado
•tolerância => vírgula flutuante
2016
Testes
11 / 67
Princípios básicos
Testes são
–caros e demorados
–pouco eficientes
•encontram poucas falhas a cada execução
–pouco eficazes
•estatísticas mostram que de maneira geral encontram somente cerca de
65% de todos os problemas identificados
–decorrente dos testes terem sido mal feitos?
–ou é uma propriedade intrínseca?
–devem ser projetados cuidadosamente
•visando assegurar eficiência e eficácia
2016
Testes
12 / 67
Princípios básicos
Se desenvolvemos módulos (programas, sistemas) corretos por
construção, por que testar?
–Nenhuma técnica de controle da qualidade assegura que um artefato
nunca gerará problemas.
–Técnicas
•inspeção
•teste
•argumentação
•prova formal
•certificação
–Modos
•verificação
•validação
•aprovação
It takes more time than you have to prove less than you would like.
2016
Testes
13 / 67
Princípios básicos
Atitude destrutiva ao testar
O objetivo do teste é encontrar problemas relevantes
–um teste que encontrou um problema, valeu a pena
•depois de eliminar o problema temos que retestar o artefato e esperamos
não encontrar outros problemas relacionados ou decorrentes do que foi
eliminado
–um teste que não encontrou um problema foi perda de tempo
•bem, não sejamos tão radicais!
•você tem certeza que não vai encontrar problemas? Tem como demonstrar
isso cabalmente?
•melhor: um teste que não encontrou problema acrescenta muito pouca
informação, já se encontrou problema, acrescenta muita
–Gerhart, S.L.; Yelowitz, L.; "Observations of fallibility in applications of modern programming
methodologies"; IEEE Transactions on Software Engineering 2(9); Los Alamitos, CA: IEEE
Computer Society; 1976; pags 195-207
2016
Testes
14 / 67
Princípios básicos
O objetivo de encontrar problemas é poder removê-los
de forma completa
–é a remoção da falta que gerou o problema que constitui a
melhoria da qualidade
Precisamos de um laudo adequado e que ajude a
responder:
–como replicar a falha?
–o que ocorreu e o que deveria ter acontecido?
–onde ocorreu?
–qual a causa real?
–como sei que foi removida completamente?
–quais os testes que não foram capazes de identificar a existência
do problema?
2016
Testes
15 / 67
Conceito chave: caso de teste
Texto associado a um requisito a ser testado, que
descreve:
–pré-condições de execução
–passos específicos do teste a ser executado
–resultados esperados e/ou pós-condições de execução
IDENTIFICADOR DO CASO DE TESTE: RF012
DESCRIÇÃO: Para fazer o Upload do Resumo o usuário deve
clicar...
PRE-CONDICOES:
Usuário está cadastrado no sistema e
usuário fez login no
sistema
2016
POS-CONDICOES:
Um link para o
Resumo submetido é
mostrado na tela de
Upload.
Testes
CRITÉRIO DE
SUCESSO:
Sistema realiza
upload em menos de
30 seg.
16 / 67
O que é um teste?
–O teste é realizado através de uma série de casos de
teste
•a massa de teste é o conjunto de casos de teste
–A confiabilidade do teste depende do critério de
seleção dos casos de teste
–Existem diversos critérios de seleção de casos de teste
•cada um tem um domínio de efetividade
2016
Testes
17 / 67
O que é um teste?
Controvérsia
–gerar um número grande de pequenos casos de teste?
–gerar um número pequeno de grandes casos de teste?
2016
Testes
18 / 67
Critério básico
Ao testar um módulo ou componente deve-se verificar
–para cada item da interface
•função: se este item se comporta conforme especificado
•dado global: se este item contém valores conforme especificado
–considerando as diversas categorias de estados que podem ser
assumidos pelo artefato
São quantos testes?
2016
Testes
19 / 67
Critério básico
–São itens da interface:
•funções globais exportadas
•dados globais exportados
•métodos públicos (protegidos?)
•dados públicos (protegidos?)
•arquivos criados, alterados, lidos
•interfaces com o usuário exibidas e obtidas
–comandos nas diversas réguas
–dados fornecidos pelo usuário
–mensagens enviadas ao usuário
–resultados apresentados ao usuário
–diálogos, menus, . . .
2016
Testes
20 / 67
Critério de seleção
É um método de escolha de casos de teste
–se obedecido gera um conjunto de casos de teste capaz de
identificar falhas causadas por uma determinada classe de faltas
Um critério de seleção de casos de teste deve ser
–válido:
•acusa falhas sempre que existam faltas no artefato sendo testado
–confiável:
•as falhas encontradas são indiferentes à escolha dos dados e das ações
desde que satisfaçam as condições dos casos de teste
–completo:
•segundo um padrão de completeza
2016
Testes
21 / 67
Processo de seleção
2016
Testes
22 / 67
Exemplo de estrutura
2016
Testes
23 / 67
Exemplo de modelo físico
2016
Testes
24 / 67
Exemplo de interface
typedef enum {
ARV_CondRetOK
ARV_CondRetNaoCriouRaiz
ARV_CondRetErroEstrutura
ARV_CondRetNaoEhFolha
ARV_CondRetArvoreNaoExiste
ARV_CondRetArvoreVazia
ARV_CondRetNohEhRaiz
ARV_CondRetNaoPossuiFilho
ARV_CondRetFaltouMemoria
} ARV_tpCondRet ;
=0,
=1,
=2,
=3,
=4,
=5,
=6,
=7,
=8
ARV_tpCondRet ARV_CriarArvore(
void ** refArvore ) ;
void
ARV_DestruirArvore( void ** refArvore ) ;
ARV_tpCondRet ARV_InserirEsquerda( void * refArvore , char * ValorParm ) ;
ARV_tpCondRet ARV_InserirDireita(
void * refArvore , char * ValorParm ) ;
ARV_tpCondRet ARV_ObterValor(
void * refArvore , char ** ValorParm ) ;
ARV_tpCondRet ARV_IrPai(
void * refArvore ) ;
ARV_tpCondRet ARV_IrNoEsquerda( void * refArvore ) ;
ARV_tpCondRet ARV_IrNoDireita(
void * refArvore ) ;
2016
Testes
25 / 67
Casos abstratos
2016
Testes
26 / 67
Casos semânticos
== Árvore inexistente
== Árvore vazia
== Árvore com raiz somente
== Destruição da raiz
== Raiz com um filho à esquerda somente
== Destruição de filho à esquerda
== Raiz com um filho à direita somente
== Destruição de filho à direita
== Raiz com dois filhos somente
== Destruição dos dois filhos
...
2016
Testes
27 / 67
Casos valorados + esperados
== Árvore inexistente
=IrDireita
NaoExisteArvore
== Árvore vazia
=CriarArvore
=IrDireita
ArvoreVazia
== Árvore com raiz somente, raiz == a
=InserirDireita
a
OK
=ObterValor
a
OK
=IrDireita
NaoPossuiFilhoDireita
=IrEsquerda
NaoPossuiFilhoEsquerda
=IrPai
NaoPossuiPai
== . . .
2016
Testes
28 / 67
Processo de teste
2016
Testes
29 / 67
Relato de falhas
–The point of testing is to find bugs.
–Bug reports are your primary work product. This is what people
outside of the testing group will most notice and most remember of
your work.
–The best tester isn’t the one who finds the most bugs or who
embarrasses the most programmers. The best tester is the one who
gets the most bugs fixed.
–Programmers operate under time constraints and competing
priorities. For example, outside of the 8-hour workday, some
programmers prefer sleeping and watching Star Wars to fixing bugs.
–A bug report is a tool that you use to sell the programmer on the
idea of spending his o her time and energy to fix a bug.
–Kaner, C.; Bug Advocacy: How to Win Friends and Stomp BUGs; 2000; Buscado em: 2003; URL:
www.kaner.com
2016
Testes
30 / 67
Tipos de teste
Teste de unidade
–Teste independente de uma unidade
•componente, módulo, classe, função?
–Foco: exame minucioso do código e da interface disponibilizada pela
unidade
–Exemplos de unidades
•classes
•widgets
•agentes
•páginas Web
•módulos
•componentes
•applets
•servlets
•aglets
2016
Testes
31 / 67
Tipos de teste
Teste de integração
–Testa a composição de unidades previamente testadas.
–Foco 1: exame minucioso do uso das interfaces entre os
componentes integrados
•parâmetros
•variáveis globais
•mensagens
•estados
–corotinas
•sincronização
•protocolos
•recuperação (roll back)
–Foco 2: testar o composto como se fosse uma unidade
2016
Testes
32 / 67
Tipos de teste
–teste da corretude procura encontrar diferenças entre o
especificado e o implementado
–teste da interface (funcional) verifica se a interface do componente
ou módulo permite a construção de programas que utilizem estes
artefatos sem requerer quaisquer alterações, adaptações ou
interfaces de conversão (wrappers)
–teste da adequação verifica se o construto resolve os problemas
que o usuário espera ver resolvidos
–teste da utilizabilidade (interface humana) verifica se o construto é
fácil de usar e de aprender a utilizar
2016
Testes
33 / 67
Tipos de teste
–teste da robustez verifica se o construto resiste a agressões
intencionais ou fortuitas
•“fail safe”, “graceful degradation”
–teste da segurança procura encontrar brechas de segurança que
permitam pessoas azaradas ou mal intencionadas a causar danos
–teste de invasão similar a teste de segurança, mas praticado para
invadir mesmo, usando uma postura de hacker
•“pen test”
2016
Testes
34 / 67
Tipos de teste
–teste da instalação verifica se o programa de instalação opera
corretamente
–teste da implantação verifica se o construto pode ser colocado em
correto funcionamento nas plataformas do usuário.
–teste da capacidade verifica se o construto é capaz de atender à
demanda esperada
–teste de exaustão (“stress test”) procura determinar os limites de
capacidade a partir dos quais o programa entra em colapso por
excesso de demanda, verifica também o comportamento quando
recursos exaurirem (ex. falta memória, ultrapassa o volume)
–teste de longa vida verifica se o construto pode ser utilizado
intensivamente por longos períodos (ex. 24 x 7) sem se deteriorar
2016
Testes
35 / 67
Tipos de teste
–Teste de desempenho
–Teste de escalabilidade
–Teste de compatibilidade com outros sistemas
–Teste de conversão
–Teste da documentação
–Teste do backup
–Teste da recuperação
–Teste do macaco :)
–. . .
2016
Testes
36 / 67
Modos de teste
Teste funcional
–teste caixa preta
–teste de aceitação
Teste estrutural
–teste caixa branca
–teste caixa cinza
Teste de regressão
Teste de desempenho
Teste de integridade
Teste de liberação
2016
Testes
37 / 67
Teste exploratório
É uma maneira de aprender a utilizar um novo sistema
através do uso
–cenários
–casos de uso
–transações
Realizado com essa intenção na realidade não é um
teste
2016
Testes
38 / 67
Rapid testing
Uma forma de teste exploratório
–especificação inexistente ou não confiável
Missão
–encontrar os principais problemas rapidamente
Capacitação
–testador em geral tem experiência e conhece a aplicação, sabe
então onde mais provavelmente se encontram os problemas
Risco
–não é um teste sistemático, portanto não serve como indicador da
qualidade do artefato
Colaboração
–procure usar pair testing
Não serve para atestar qualidade
2016
Testes
39 / 67
Teste ao utilizar
Foco
–na utilidade
•preciso disso?
•resolve de fato o meu problema?
•completamente?
–na utilizabilidade
•sem entraves
•ágil
•fácil de aprender a usar corretamente
•aspecto “bonito”
–no processo de trabalho do usuário
•dados precisam estar disponíveis na ordem que o usuário deseja e não na
ordem que o sistema espera
2016
Testes
40 / 67
Teste ao documentar
Ao redigir a documentação ou o help
–verificar se o documento corresponde exatamente a o que o
programa efetivamente faz
–ajustar um dos dois, ou ambos, caso haja discrepância
–melhor ainda: sempre que possível fazer a documentação exercitar
o artefato
–exatamente quer dizer: nem mais, nem menos
2016
Testes
41 / 67
Depuração
2016
Testes
42 / 67
Plano de teste
Identificação dos produtos do teste a serem entregues (deliverables)
–histórico de problemas registrados
•falhas, adaptações, evoluções, melhorias
–o próprio plano de teste
–projeto dos casos de teste
•objetivos específicos do teste
•evidência que os objetivos foram alcançados
•ex. cenários de teste
•ex. método de seleção utilizados
•ex. diagramas de cause e efeito
AQUI
–massas de teste
–logs de execução dos casos de teste
–relatórios de medição
–relatórios de falhas (laudo)
–relatório resumido
2016
Testes
43 / 67
Plano de teste
Introdução
–foco nos objetivos que motivaram o desenvolvimento
•melhoria da imagem
•redução de falhas operacionais
•aceleração do processo
•maior acuidade dos resultados
Definição dos requisitos de alto nível
–ex. sistema de registro e acompanhamento
–ex. sistema usando GUI
Identificação dos tipos de teste
–onde será utilizado o teste manual
–onde será utilizado o teste automatizado
–como será realizado o teste automatizado
2016
Testes
44 / 67
Plano de teste
Identificação dos critérios de conclusão dos testes
–ex. falhas por determinada unidade de tempo abaixo de X
–ex. esgotamento de recursos para o teste
–ex. todos testes automatizados são baseados em critérios de seleção
rigorosos e concluem corretamente
Estratégia de teste de regressão
–quais os testes que serão efetuados de novo
–matriz de reteste
–make de reteste
2016
Testes
45 / 67
Plano de teste
Organização da equipe de teste
–nível das pessoas
–habilitações, treinamento
–papéis, responsabilidades
–quem são as pessoas e quais os papéis que desempenham
Ambiente de teste
–espaço físico para o trabalho
–equipamentos
–ferramentas
–tecnologias
–material de apoio, treinamento
2016
Testes
46 / 67
Plano de teste
Identificação das precedências
•código
•projeto
•componentes precedentes
•disponibilidade de pessoas
•disponibilidade de ferramentas
Cronograma de teste
•coleta de informações
•planejamento
•projeto dos roteiros de teste
•desenvolvimento dos casos de teste
•execução dos testes
•integração
•teste de sistema
•teste de aceitação
•produção do resumo
2016
Testes
47 / 67
Plano de teste
Ferramentas de apoio aos testes
–quais são, inclusive a versão
–onde estão
–material de treinamento
Gerência de configuração
–inicialização, e.g. solicitação de alteração
–avaliação técnica
–avaliação do impacto sobre o negócio
–avaliação do impacto sobre a gestão do desenvolvimento
–acompanhamento dos testes
–procedimento de instalação ou divulgação
2016
Testes
48 / 67
Plano de teste
Sistema de registro e acompanhamento de problemas
–especialmente voltado para a etapa de teste
Procedimentos de composição de construto versionado
–ferramenta de controle de versão utilizada
Processo de decisão com relação a problemas registrados
–máquina de estados de evolução de uma FAP amarrada às ferramentas
Procedimentos de relato
–evolução do estado de progresso dos testes
–resumos dos testes
Procedimentos de aprovação
–quem aprova o que
–para cada produto do teste (deliverable)
2016
Testes
49 / 67
Plano de teste
Métricas a serem coletadas (GQM)
–objetivos da medição
•ex. reduzir o número de falhas em programas entregues
•ex. reduzir o esforço gasto em retrabalho desnecessário
–quais as perguntas que se relacionam com os objetivos
•ex. quantas falhas por dimensão x complexidade percebida foram detectadas em
produtos já entregues
•ex. quanto tempo é gasto em alteração de artefatos já desenvolvidos
•ex. qual o percentual deste tempo que seria desnecessário caso fossem adotados
princípios mais eficazes
–medições a realizar
•número de falhas reportadas após a aceitação
•dimensão do artefato
•complexidade percebida
Não meça só para colecionar medições!
Meça para identificar ou resolver um problema.
2016
Testes
50 / 67
Plano de teste
Exemplos de métricas
–natureza das causas de falhas
–distribuição das causas no tempo
–modos de observação das falhas
•ex. teste
•ex. uso
–classe das falhas, ex. desastre, grave, normal, aborrecimento
–distribuição de falhas por artefato
–tempo para eliminar completamente o problema
–esforço para eliminar completamente o problema
–volume de automação dos testes
–distribuição do esforço para diagnosticar problemas encontrados
–distribuição de uso dos recursos de apoio aos testes
–cobertura de código
–cobertura de seqüências de ativação
2016
Testes
51 / 67
Projeto de teste,
diagrama de transição
2016
Testes
52 / 67
Projeto de casos de teste
story
function
input
current
memory
output
updated
memory
1
click (customer)
click customer
button
1
enter( customer)
customer details entered
current customer database
confirmation
details screen
-
1
confirm( customer)
customer confirm button
clicked
current customer database
OK message
and start
screen button
updated customer
database
3
click( order)
orders button
clicked
-
new orders
screen
-
3
enter( order)
new order
details entered
current orders
database
confirmation
orders screen
3
confirm( order)
orders confirm
button clicked
current orders
database
Ok message
and start
screen button
updated orders database
3
quit()
click on return to start button
start screen
-
2016
new customer
screen
Testes
change risk
low
medium (nature of details
liable to
change)
low
low
high (nature of
details of orders liable to
change)
low
low
53 / 67
Projeto dos testes
Cada item de menu deve ser testado
–diagrama estado transição
•estados são condições estáticas
•transição são comandos, seleções, mensagens
•transições condicionais devem ser examinadas quanto à sua exibição
•cada caso de check box deve ser tratado
•list boxes devem ser tratados para 0, 1, 3 ou mais itens
2016
Testes
54 / 67
Projeto dos testes
Cada diálogo deve ser testado
–diagrama estado transição
•estados são condições estáticas
•transição são comandos, seleções, mensagens
•transições condicionais devem ser examinadas quanto à sua exibição
–testes típicos
•cada caso de check box deve ser tratado
•list boxes devem ser tratados para 0, 1 e 3 (ou mais) itens
•verificar a corretude dos controladores de integridade dos dados
•verificar a corretude de campos inicializados
•verificar a corretude de campos calculados
•verificar a compreensibilidade do diálogo
•verificar a agregação dos elementos
2016
Testes
55 / 67
Teste de programas OO
Teste em aplicações desenvolvidas usando OO
requerem muito esforço
–herança e amarração dinâmica são fontes de muitas falhas
–o elevado volume (número de itens) e a complexidade das
interfaces contribuem para dificultar os testes
–a esperada redução do esforço de teste devido ao reúso em
sistemas OO tem-se mostrado ilusória [Binder 1996]
–na realidade OO introduz muitas questões conduzindo a técnicas
de teste mais abrangentes e elaboradas
2016
Testes
56 / 67
Teste aplicações Web
Verifique a corretude dos instaladores
–todas as variáveis de ambientes e registry estão corretamente inicializadas
–examinar para cada variável de ambiente ou condição do ambiente (ex.
ODBC)
Verifique se as mensagens de erro informam corretamente o
problema observado
–devem ser evitados códigos tipo Ox81234
Verifique se o sistema operacional cliente, versão e service packs,
estão corretos
Verifique se a versão do browser instalada é a correta
Verifique se o browser está completamente instalado (e.g.
interpretador JavaScript, Java Applets)
...
2016
Testes
57 / 67
Teste aplicações Web
Verifique os parâmetros do browser
Verifique o comportamento com vários browsers
Verifique o comportamento com várias versões de um browser
Verifique o comportamento com vários tipos de periféricos
Verifique se todos os servidores estão operando
Verifique se todos os serviços requeridos estão operando
2016
Testes
58 / 67
Teste aplicações Web
Verifique os privilégios de acesso
Verifique completeza e corretude da versão de componentes, ex.
DLL
Verifique correto registro de componentes (COM, Java)
Verifique a corretude do DNS
Verifique a adequação da proteção estabelecida pelo firewall
Verifique problemas causados por linhas de transmissão lentas
Verifique a corretude dos processos executados em diferentes
máquinas
2016
Testes
59 / 67
Teste aplicações Web
Verifique as conseqüências de máquina servidora temporariamente
desconectada ou inoperante
Verifique versão e service packs dos sistemas operacionais dos
servidores
Verifique versão e service packs dos componentes servidores
Verifique a corretude dos parâmetros dos servidores
2016
Testes
60 / 67
Manutenção
Causas para a manutenção
–Melhoria (evolutiva)
•modifica a funcionalidade do artefato
•50%
–Perfectiva
•remove deficiências
•5%
–Adaptativa
•modifica o artefato sem afetar a sua funcionalidade
•20%
–Corretiva
•remove faltas
•25%
2016
Testes
61 / 67
Manutenção
Ações de manutenção
–adiciona artefato
–exclui artefato
–adiciona, altera, exclui elementos de artefato
•declaração e manipulação (acesso) de dados
•lógica e estrutura (refactoring?)
•processamento (cálculo, fórmulas)
•inicialização
•interface humano-computador
•interface de módulo
•documentação papel
•documentação help
•documentação tutoriais
•outros
2016
Testes
62 / 67
Níveis das propriedades
Nível
Freqüência
Risco
Prioridade
0
Nunca
Não tem
Nenhuma
1
Muito raro
Muito baixo
Muito baixa
2
Raro
Baixo
Baixa
3
Algumas vezes
Médio
Média
4
Freqüente
Alto
Alta
5
Muito freqüente
Muito alto
Muito alta
2016
Testes
63 / 67
Manutenção
Severidade do problema
–desastre
•provoca a quebra de equipamento, morte,
•destrói dados persistentes irrecuperáveis
•causa falhas graves em outros sistemas
–problema grave
•o resultado compromete o uso do artefato
•as funcionalidades afetadas são imprescindíveis
–problema
•o resultado compromete o uso do artefato
•as funcionalidades afetadas não são imprescindíveis
–podem ser temporariamente desativadas
–o problema pode ser contornado
–inconveniência
•o resultado não compromete o uso do artefato
2016
Testes
64 / 67
Bibliografia 1
–Holcombe, M.; Bogdanov, K.; Gheorghe, M.; "Functional Test Generation
for Extreme Programming"; Proceedings of the XP2001 Second
International Conference on Extreme Programming and Flexible Processes
in Software Engineering, Sardinia, Italy, 2001; pags 109-113; Buscado em:
19/08/2004; URL: http://www.dcs.shef.ac.uk/~wmlh/XPtest.pdf
–Kaner, C.; Falk, J.; Nguyen, H.Q.; Testing Computer Software;
International Thompson Computer Press; 1993
–Kaner, C.; Bug Advocacy: How to Win Friends and Stomp BUGs; 2000;
www.kaner.com (testing website) www.badsoftware.com (legal website)
–Kemerer, C.F.; Slaugther, S.; “An Empirical Approach to Studying Software
Evolution”; IEEE Transactions on Software Engineering 28(4); 1999; pags
493-509
–Lewis, W.E.; Software Testing and Continuous Quality Improvement; Boca
Raton: Auerbach; 2000
2016
Testes
65 / 67
Bibliografia 2
–Nguyen, H.Q.; “Testing Web-based Applications”; Software Testing &
Quality Engineering; 2000; pags 23-29; www.stqemagazine.com;
–Rätzmann, M.; Young, C.d.; Software Testing and Internationalization; Salt
Lake City, Utah: Lemoine International; 2003; Buscado em: 09/2003; URL:
www.lemoine-international.com
–Whittaker, J.A.; “What is software testing? And why is it so hard?”; IEEE
Software 17(1); Jan 2000; pags 70-79
2016
Testes
66 / 67
Related documents
Download