rp2/plano de testes.doc · web viewrecomendar e descrever as estratégias de teste a serem...
TRANSCRIPT
UNIVERSIDADE FEDERAL DE PERNAMBUCOCURSO DE CIÊNCIA DA COMPUTAÇÃO
Plano de Testes
Sistema de Gerenciamento de Hospitais de Pronto Socorro
Autores:
Professor: Alexandre VasconcelosRecife, 24 de Abril de 2008
Eduardo Gade
Felipe Kühner
João Rufino
Nelson Gutemberg
Paulo Ricardo
Silvio Santos
Histórico de RevisõesData Versão Descrição Autor
<22/abr./08> <1.0> Release Inicial S.G.H.P.S.
Sumário
HISTÓRICO DE REVISÕES....................................................................................................................................1
1. INTRODUÇÃO................................................................................................................................................2
1.1. OBJETIVOS..............................................................................................................................................................21.2. ESCOPO.....................................................................................................................................................................21.3. IDENTIFICAÇÃO DE PROJETO......................................................................................................................3
2. REQUISITOS A TESTAR..............................................................................................................................4
2.1. TESTE DO BANCO DE DADOS.......................................................................................................................42.2. TESTE FUNCIONAL.............................................................................................................................................42.3. TESTE DO CICLO DE NEGÓCIOS..................................................................................................................42.4. TESTE DA INTERFACE DO USUÁRIO.........................................................................................................42.5. TESTE DE PERFORMANCE.............................................................................................................................42.6. TESTE DE CARGA................................................................................................................................................52.7. TESTE DE STRESS...............................................................................................................................................52.8. TESTE DE VOLUME.............................................................................................................................................52.9. TESTE DE SEGURANÇA E DE CONTROLE DE ACESSO......................................................................52.10. TESTE DE FALHA/RECUPERAÇÃO.............................................................................................................52.11. TESTE DE INSTALAÇÃO....................................................................................................................................62.12. TESTE DE INTEGRIDADE DE DADOS........................................................................................................6
3. ESTRATÉGIA DE TESTE..............................................................................................................................7
3.1. TIPOS DE TESTE..................................................................................................................................................73.1.1 TESTE DE INTEGRIDADE DE DADOS E DO BANCO DE DADOS..............................................73.1.2 TESTE DE FUNÇÃO....................................................................................................................................... 73.1.3 TESTE DO CICLO DE NEGÓCIO............................................................................................................... 83.1.4 TESTE DA INTERFACE DO USUÁRIO.................................................................................................... 83.1.5 TESTE DE PERFORMANCE........................................................................................................................ 83.1.6 TESTE DE CARGA........................................................................................................................................... 93.1.7 TESTE DE ESTRESSE................................................................................................................................. 103.1.8 TESTE DE VOLUME.................................................................................................................................... 103.1.9 TESTE DE SEGURANÇA E CONTROLE DE ACESSO......................................................................113.1.10 TESTE DE FALHA/RECUPERAÇÃO..................................................................................................... 113.1.11 TESTE DE INSTALAÇÃO........................................................................................................................... 12
3.2. FERRAMENTAS..................................................................................................................................................12
4. RECURSOS...................................................................................................................................................13
4.1 RECURSOS HUMANOS............................................................................................................................................134.2 RECURSOS DO SISTEMA........................................................................................................................................13
5. CRONOGRAMA...........................................................................................................................................14
1
1. INTRODUÇÃO
1.1. OBJETIVOS
Identificar informações do projeto já existentes e os componentes de software a serem testados;
Listar os requisitos que devem ser testados, descrição informal de alto nível.
Recomendar e descrever as estratégias de teste a serem empregadas, mostrando os tipos de teste que serão realizados e as ferramentas empregadas.
Identificar os recursos humanos e os recursos do sistema, provendo uma estimativa dos esforços de teste.
Mostrar o cronograma relativo aos estágios de teste. Listar os elementos resultantes do projeto de testes.
1.2. ESCOPO
O sistema será submetido a testes de unidade, integração e sistema. Os testes de unidade e integração irão lidar com a conectividade com o banco de dados, a qualidade da interface gráfica, a qualidade funcional do código criado e do controle de acesso e a integração de cada componente do sistema, enquanto que os testes de sistema servirão de ferramenta para avaliar o desempenho do sistema como um todo, verificando tempo de resposta, performance, eficácia e segurança, além da integração do software com o sistema operacional e da compatibilidade do software com os hardwares utilizados.
Para a execução dos testes serão utilizadas máquinas o mais idênticas possível, em termos de hardware, àquelas que serão implantadas em um hospital de pronto socorro, a fim de garantir a previsibilidade do desempenho e compatibilidade.
Os testes mais críticos serão os testes de banco de dados, que compõe a maior parte do sistema e os de desempenho.
1.3. IDENTIFICAÇÃO DE PROJETO
A tabela abaixo identifica a documentação e disponibilidade usada para desenvolver o plano de testes:
Documento Criado ou Disponível
Recebido ou Revisado
Especificação de Requisitos Sim Não Sim Não
Plano de Projeto Sim Não Sim Não
Modelo de Análise Sim Não Sim Não
Modelo de Projeto Sim Não Sim Não
Documento de Arquitetura Sim Não Sim Não
Protótipo Sim Não Sim Não
2
Manual do Usuário Sim Não Sim Não
Lista de Riscos Sim Não Sim Não
3
2. REQUISITOS A TESTAR
2.1. TESTE DO BANCO DE DADOS
Verificar se as informações dos usuários (pacientes e funcionários) podem ser inseridas, consultadas, atualizadas e removidas;
Verificar se departamentos podem ser inseridos, removidos ou atualizados;
Verificar se diagnósticos podem ser criados (inseridos), removidos ou alterados;
Verificar se exames podem ser inseridos, removidos,alterados; Verificar se pacientes, funcionários, exames, disgnósticos e
departamentos podem ser consultados; Verificar se as informações dos funcionários podem ser cadastradas pelo
administrador; Verificar se as informações dos pacientes podem ser cadastradas pelo
funcionário do pronto-socorro (recepcionista); Verificar se é possível obter as informações necessárias para gerar
relatórios.
2.2. TESTE FUNCIONAL
Verificar se o funcionário (recepcionista ou administrador) pode acessar o sistema por meio de seu login e senha;
Verificar se os relatórios são gerados corretamente; Verificar se a impressão dos relatórios está correta.
2.3. TESTE DO CICLO DE NEGÓCIOS
Verificar se o sistema não aceita CPF inválidos; Verificar se o sistema não aceita CRM inválidos; Verificar se o sistema não aceita COREN invállidos; Verificar se o sistema não aceita RG inválidos; Verificar se o sistema não aceita telefones inválidos; Verificar se o sistema não aceita CID inválidos; Verificar se o sistema não aceita salários abaixo do mínimo.
2.4. TESTE DA INTERFACE DO USUÁRIO
Verificar se é possível, através da navegação pelos casos de uso, acessar todas as interfaces gráficas, e que essas atendam ao padrão especificado e sejam de fácil manuseio;
Verificar se as palavras e expressões estão de acordo com as normas sintáticas e gramaticais;
Verificar a consistência das interfaces;
4
Verificar se as interfaces obedecem ao mesmo padrão.
2.5. TESTE DE PERFORMANCE
Verificar o tempo de resposta do sistema; Verificar o tempo de consulta e atualização; Verificar se o tempo para gerar relatórios não ultrapassa 120 segundos; Verificar o tempo para cadastrar funcionários e pacientes.
2.6. TESTE DE CARGA
Verificar o comportamento do sistema com 5 usuários; Verificar o comportamento do sistema com 20 usuários; Verificar o comportamento do sistema com 45 usuários; Verificar o comportamento do sistema com 60 usuários;
2.7. TESTE DE STRESS
Verifique o comportamento do sistema quando são inseridos vários dados de todos os tipos, fazendo diversos cadastros e atualizando muitas informações num curto período de tempo.
Verificar como o sistema se comporta quando há pouca memória disponível (vários outros aplicativos rodando paralelamente) e área pequena em disco.
2.8. TESTE DE VOLUME
Verificar a atuação do sistema quando se insere um grande volume de dados, tanto na visão do administrador quanto na do recepcionista.
Verifique se o sistema não cai, ou se ele não fica inoperante quando são colocadas muitas informações anexadas a objetos, por exemplo, vários exames em um diagnóstico.
Verifique se o sistema não carrega muito a máquina sobre o qual ele está sendo rodado, quando operando com um grande volume de dados.
2.9. TESTE DE SEGURANÇA E DE CONTROLE DE ACESSO
Verifique que usuários não cadastrados não podem consultar informações que são restritas a usuários cadastrados.
Verifique as restrições de visão dos dois tipos principais de usuário: Recepcionista e Administrador.
Verificar se todas as configurações de rede são feitas apenas pelo administrador.
Verificar se apenas o administrador pode fazer atualização e manutenção do sistema.
5
Verificar se as informações pessoais de cada cliente estão ocultas até mesmo de funcionários, vistas apenas por usuários especiais.
2.10. TESTE DE FALHA/RECUPERAÇÃO
Verifique o comportamento do sistema quando ele é forçado a falhar, baseado em diversos casos possíveis de falha, como a inserção de dados absurdos ou operações ilegais de baixo ou alto nível.
Verifique a adequação dos procedimentos de recuperação.
2.11. TESTE DE INSTALAÇÃO
Verifique se a instalação/desinstalação do sistema ocorre normalmente em diversas plataformas (portabilidade de hardware e software).
Verificar se qualquer terminal é capaz de rodar o SGHPS. Verifique se o espaço em disco que geralmente é disponível (usar dados
de observações) é capaz de armazenar todas os dados inseridos ou atualizados.
Verifique se a desinstalação ocorre de forma correta em todas as máquinas, isto é, removendo/mantendo todas as informações que o usuário requisitou.
Verifique se a GUI do instalador/desinstalador atende às necessidades de especificação e testes da GUI.
2.12. TESTE DE INTEGRIDADE DE DADOS
Verifique a corretude dos métodos de acesso à base de dados e a garantia das informações armazenadas.
6
3. ESTRATÉGIA DE TESTE
3.1. TIPOS DE TESTE
3.1.1 TESTE DE INTEGRIDADE DE DADOS E DO BANCO DE DADOS
Objetivo do Teste: Garantir que os métodos e processos de acesso ao banco de dados funcionam apropriadamente e mantendo a integridade dos dados.
Técnica:
Invocar cada método e processo de acesso ao banco de dados, alimentando cada um com dados ou requisições de dados válidos e inválidos.
Verificar se os dados foram inseridos como pretendido, se todos os eventos do banco de dados ocorreram apropriadamente e revisar os dados retornados para garantir que os dados corretos foram recuperados pelas razões corretas.
Critério de Finalização:
Todos os métodos e processos de acesso à base de dados funcionam como previsto e mantendo a integridade.
Considerações Especiais:
O teste pode necessitar de um ambiente de desenvolvimento ou drivers de SGBD para inserir ou modificar os dados diretamente na base de dadosProcessos devem ser invocados manualmenteBases de dados pequenas ou minimizadas (número de registros limitados) devem ser usados para aumentar a visibilidade de eventos não-aceitáveis.
3.1.2 TESTE DE FUNÇÃO
Objetivo do Teste: Garantir a funcionalidade apropriada do alvo do teste, incluindo navegação, entrada de dados, processamento, e recuperação.
Técnica:
Executar cada caso de uso, fluxo de caso de uso, usando dados válidos e inválidos, para verificar a ocorrência dos seguintes fatos:
Os resultados esperados ocorrem quando são usados dados válidos para o teste;
Se mensagens de erro ou avisos esperados são exibidos quando dados inválidos são usados.
Critério de Finalização:
Todos os testes planejados foram executados.Todos os defeitos identificados foram tratados.
Considerações Especiais:
Nenhuma
7
3.1.3 TESTE DO CICLO DE NEGÓCIO
Objetivo do Teste:Garantir que as regras de negocio sejam cumpridas, mantendo a integridade dos dados e das funções na realidade a qual o sistema se encontra.
Técnica:
Executar os casos de uso e fluxos de caso de uso, usando dados que obedeçam ou não as regras de negocio, para verificar a ocorrência dos seguintes fatos: Os resultados esperados ocorrem quando são usados dados validos
para o teste; As mensagens de erro ou aviso esperadas são exibidas são usados
quando dados invalido, e o sistema não persiste os dados que quebram as regras de negocio.
Critério de Finalização:
É verificado que o usuário não teve dificuldade em obter o que desejava.É verificado que cada janela permanece consistente com a versão de comparação ou dentro de padrões aceitáveis.
Considerações Especiais:
Nenhuma
3.1.4 TESTE DA INTERFACE DO USUÁRIO
Objetivo do Teste:
Verificar o seguinte: Objetos e características da janela, tais como menus, tamanho,
posição, estado e foco conformam-se aos padrões. A interface do sistema leva às funções e requisitos do negócio
apropriadamente Testar todas as funcionalidades da interface com usuário.,
verificando se ela possui um bom nível de usabilidade Verificar se a interface é adequada ao nível de conhecimento
dos usuários.
Técnica:
Testar interface com usuário leigo, e analisar a taxa de aprendizado deste no sistema.
Criar ou modificar os testes para cada janela para verificar a navegação e os estados de objeto apropriados para cada janela e objetos da aplicação.
Critério de Finalização:
É verificado que o usuário não teve dificuldade em obter o que desejava.É verificado que cada janela permanece consistente com a versão de comparação ou dentro de padrões aceitáveis.
Considerações Especiais:
Nenhuma
8
3.1.5 TESTE DE PERFORMANCE
Objetivo do Teste:
Verificar o tempo de respostas das operações e transições do sistema.Verificando o comportamento de performance do sistema para as transações designadas ou funções de negócio sob as seguintes condições:
Carga de trabalho normal antecipada Carga de trabalho no pior caso antecipada
Técnica:
Desenvolver procedimentos de Testes para Função ou Ciclo de Negócio.
Modificar os arquivos de dados para aumentar o número de transações ou os scripts para aumentar o número de iterações que ocorre a cada transação.
Scripts devem ser rodados em uma máquina (melhor caso para comparar um único usuário, uma única transação) e ser repetidas com múltiplos usuários(virtual ou real, ver Considerações Especiais abaixo).
Critério de Finalização:
Único usuário ou transação: finalização com sucesso dos scripts de testes sem nenhuma falha e dentro da alocação de tempo por transação esperada ou requisitada.Múltiplas transações ou usuários: finalização bem sucedida dos scripts de teste sem qualquer falha e dentro da alocação de tempo esperada ou requisitada.
Considerações Especiais:
Um teste abrangente de performance inclui ter uma carga de trabalho no servidor.Há vários métodos que podem ser usados para executar isso, incluindo:
“Direcionar transações” diretamente para o servidor, usualmente na forma de chamadas SQL.
Criar carga de usuário “virtual” para simular muitos clientes, normalmente várias centenas. Ferramentas de Emulação de Terminal Remoto (RTE) podem ser usadas para atingir essa carga. Essa técnica também pode ser usada para simular um rede congestionada.
Usar múltiplos usuários físicos, cada um rodando scripts de teste para gerar uma carga no sistema.
O teste de performance deve ser executado em uma máquina dedicada ou em um tempo dedicado. Isso permite controle total e mensuração precisa.As bases de dados usadas para o Teste de Performance devem ser ou do tamanho real ou proporcionalmente iguais.
3.1.6 TESTE DE CARGA
Objetivo do Teste: Verifique o tempo de resposta para as transações designadas ou casos de negócio sob condições variantes de carga de trabalho.
Técnica:
Use testes desenvolvidos para o Teste do Ciclo de Negócio ou Função.
Modifique os tipos de dados para aumentar o número de transações ou os testes para aumentar o número de vezes que cada transação ocorre.
Critério de Finalização:
Finalização bem sucedida dos testes sem qualquer falha e dentro da alocação de tempo aceitável.
9
Considerações Especiais:
O teste de carga deve ser executado em uma máquina dedicada ou em um tempo dedicado. Isso permite o controle total a e mensuração precisa.As bases de dados usadas para os testes de carga devem ou ser do tamanho real ou igualmente dimensionadas.
3.1.7 TESTE DE ESTRESSE
Objetivo do Teste:
Verificar a funcionalidade do sistema em situações limite, como várias transações no Banco de Dados e a utilização dos recursos com pouca memória e área em disco; Monitorar a perda de desempenho do sistema e as possíveis falhas durante estas cargas.
Técnica:
Segurança do Nível de Aplicação: Identifique e liste cada tipo de usuário e as funções ou dados para os quais cada tipo tem permissão.
Crie testes para cada tipo de usuário e verifique cada permissão criando transações específicos para cada tipo de usuário.
Modifique o tipo de usuário e repita os testes para os mesmos usuários. Em cada caso, verifique que funções ou dados adicionais estão corretamente disponíveis ou negados.
Acesso de Nível de Sistema: Ver Considerações Especiais abaixo.
Critério de Finalização:
Para cada tipo de ator conhecido as funções ou dados apropriados estão disponíveis, e todas as transações funcionam como esperado e rodam nos Testes de Função anteriores.
Considerações Especiais:
O Acesso ao sistema deve ser revisado ou discutido com o administrador de rede ou de sistema apropriado. Esse teste pode não ser necessário já que ele pode ser uma função da administração da rede ou sistema.
3.1.8 TESTE DE VOLUME
Objetivo do Teste: Acompanhar o funcionamento do sistema e o tempo de resposta sob condições variáveis de volume de dados.
Técnica: Criar rotinas de inserção automática de dados aleatórios e com volume de dados aleatórios.
Critério de Finalização:
O funcionamento normal ser verificado para qualquer volume suportado pelo banco de dados;Um tempo de resposta viável ser verificado em cada caso.
Considerações Especiais:
Entenda por tempo de resposta viável, aquele que pode ser aguardado por um usuário sem causar irritação. Aproximadamente 10s.
10
3.1.9 TESTE DE SEGURANÇA E CONTROLE DE ACESSO
Objetivo do Teste:
Segurança do Nível de Aplicação: Verifique que um ator pode acessar apenas aquelas funções ou dados para os quais o seu tipo de usuário tem permissão. Segurança do Nível de Sistema: Verifique que apenas aqueles atores com acesso ao sistema e aplicações têm permissão de acessá-los.
Técnica:
Segurança do Nível de Aplicação: Identifique e liste cada tipo de usuário e as funções ou dados para os quais cada tipo tem permissão; crie testes para cada tipo de usuário e verifique cada permissão criando transações específicos para cada tipo de usuário; modifique o tipo de usuário e repita os testes para os mesmos usuários. Em cada caso, verifique que funções ou dados adicionais estão corretamente disponíveis ou negados.
Acesso de Nível de Sistema: Ver Considerações Especiais abaixo.
Critério de Finalização:
Para cada tipo de ator conhecido as funções ou dados apropriados estão disponíveis, e todas as transações funcionam como esperado e rodam nos Testes de Função anteriores.Mediante as tentativas ilegais de acesso, o sistema se comportou de forma esperada.
Considerações Especiais:
O Acesso ao sistema deve ser revisado ou discutido com o administrador de rede ou de sistema apropriado. Esse teste pode não ser necessário já que ele pode ser uma função da administração da rede ou sistema.
3.1.10 TESTE DE FALHA/RECUPERAÇÃO
Objetivo do Teste:Verificar se as falhas ocorridas não prejudicam as funções do sistema e que, mediante a ocorrência de uma falha, o sistema consegue se recuperar a ponto de não comprometer a execução do sistema.
Técnica:
Utilizar os Casos de Teste projetados a fim de examinar como o sistema pode se recuperar facilmente e completamente de uma falha;
Forçar o sistema a falhar nas diversas funcionalidades e verificar se a recuperação é adequadamente executada.
Critério de Finalização:
O sistema se recupera facilmente e completamente de uma falha, sem comprometer as informações do sistema.
Considerações Especiais:
Utilizar um log a fim de registrar as atividades antes da falha e um registro de mensagens durante a falha.
11
3.1.11 TESTE DE INSTALAÇÃO
Objetivo do Teste:
Verifique que os alvos de teste instalam apropriadamente em cada configuração de hardware necessária sobre as seguintes condições:
Uma nova instalação, em um nova máquina, que nunca fora anteriormente instalada com o S.G.H.P.S.;
atualização, numa máquina onde o S.G.H.P.S. já fora previamente instalado, para a mesma versão;
atualização, numa máquina que já disponha do S.G.H.P.S. instalado, de uma versão mais velha.
Técnica:
Manualmente ou desenvolva scripts automatizados, para validar a condição da máquina alvo – novo S.G.H.P.S. nunca instalado; S.G.H.P.S. na mesma versão ou versão mais velha já instalada.
Começar ou executar a instalação Usando um subgrupo predeterminado de scripts de teste de
funções, rode as transações.Critério de
Finalização:As transações do S.G.H.P.S. executam de forma bem sucedida, sem falha.
Considerações Especiais:
Quais transações do S.G.H.P.S. devem ser selecionadas para abranger um teste de confiança de que a aplicação S.G.H.P.S. foi instalada de forma bem sucedida e que nenhum componente importante de software está faltando?Deve ser escolhido um conjunto de transações do sistema para serem testadas após a instalação;
As máquinas escolhidas para instalação/desinstalação devem apresentar configurações variadas, tentando alcançar ao máximo a realidade das máquinas existentes em um hospital de pronto-socorro.
3.2. FERRAMENTAS
As seguintes ferramentas serão empregadas para esse projeto:
Ferramenta Vendedor
Gerenciamento de Teste Rational RequisiteProRational Unified
Process
Rational
Projeto de Teste Rational Rose Rational
Gerenciamento de Projeto Microsoft Project
Microsoft Word
Microsoft
Ferramentas do SGBD Oracle SQL Developer Oracle
12
4. RECURSOS A seguir são apresentados os recursos humanos alocados para cada etapa dos testes. Em seguida são apresentados os recursos materiais necessários para elaboração e execussão dos testes descritos nos tópicos acima.
4.1 RECURSOS HUMANOS
Função Alocação Responsabilidades
Gerente de Teste, Gerente do Projeto de Teste Felipe Kühner
Supervisionar atividades. Gerenciar recursos. Gerar relatórios.
Testador Eduardo Gade
Gerar casos de teste. Classificar Casos de teste. Gerar plano de teste. Criar o modelo de teste.
Administrador do Sistema de Teste Nelson Gutemberg
Administra o ambiente de testes. Manter o ambiente em estado
operacional.
Gerente do Banco de Dados, Administrador do Banco de Dados Paulo Ricardo
Garantir o funcionamento do ambiente e dos recursos dos bancos de dados
Controlar dados de teste.
Designer João Rufino
Identificar e definir as operações, atributos, e associações das classes de teste.
Identificar e definir as classes de teste;
Implementador Silvio Santos
Implementar e executar os testes unitários e de módulos.
Implementar e executar os testes de OO e integração.
4.2 RECURSOS DO SISTEMA
Recursos do SistemaSistema de Gerenciamento de Bancos de Dados Oracle
Terminais Clientes 2 computadores conectados em LANRepositório de Testes 1 computador
13
5. CRONOGRAMA
Milestone Data de Início Data de Término
Planejar Teste 22/04/08 24/04/08
Projetar Teste 24/04/08 24/04/08
Implementar Teste 24/04/08 26/04/08
Executar Teste 26/04/08 28/04/08
Avaliar Teste 28/04/08 30/04/08
14