23
Testes e Implantação

Testes e Implantação

Embed Size (px)

DESCRIPTION

Testes e Implantação. Teste de sistema. O teste de sistema é uma fase do processo de teste de software e de hardware em que o sistema já completamente integrado é verificado quanto a seus requisitos num ambiente de produção. - PowerPoint PPT Presentation

Citation preview

Testes e Implantação

Teste de sistema

O teste de sistema é uma fase do processo de teste de software e de hardware em que o sistema já completamente integrado é verificado quanto a seus requisitos num ambiente de produção.

O teste de sistema não se limita a testar somente requisitos funcionais, mas também requisitos não funcionais como a expectativa do cliente, e por isso

inclui também técnicas não funcionais de teste.

Testes de Software ≠ Garantia da Qualidade

Testar significa verificar e validar um ou mais artefatos; Garantir a qualidade significa disciplinar a verificação e validação deles

nos ciclos de produção e testes de software; Missão do time de teste: achar anomalias; Missão do time de Qualidade: não deixar que elas se repitam; Nas tratativas legais, o Analista de Qualidade é quem responde pela

qualidade do software, baseando-se nas métricas do time de testadores.

O Processo de Testes de SoftwareO Processo de Testes de Software

Visão Restrita Visão Abrangente

Um bom testador é um bom programador;

Testar significa mais gastos de recursos e tempo do projeto;

O testador só deve achar erros.

Um bom testador é aquele que domina as regras negociais do Sistema. (System Under Testing);

Testar significa investir para gastar menos;

Além de achá-los, o testador deve indicar como evitá-los e prevení-los.

5

Slide: 5

Processo de Software

Gerência eficaz e controle das atividades

Processo de Software

muito bem definido

pessoas

procedimentos

ferramentas Req usuários

Req. desenvolvedor

Req. organização

:.: :.: Processo de SoftwareProcesso de Software

6

Slide: 6

ProcessoProcesso ProdutoProduto

RequerimentosRequerimentos

AnáliseAnálise

DesenhoDesenho

CodificaçãoCodificação Testes de Unidade

Testes de Unidade

Testes de Sistema

Testes de Sistema

Testes de Aceitação

Testes de Aceitação

Testes de Integração

Testes de Integração

testeteste

testeteste

testeteste

testeteste

docdoc

docdoc

docdoc

docdoc

:.: :.: Um bom modelo de produçãoUm bom modelo de produção

Registrar/monitorar erros

Analisar todos os requisitos

Produzir métricas

Formular indicadoresde qualidade

:.: :.: O Processo de Testes de SoftwareO Processo de Testes de Software

São premissas dos testes de software:

7

Todos os testes devem ser rastreáveis até a sua origem, que são os requisitos negociais;

Planeje sempre. Cerca de 60% das falhas ocorrem na concepção do produto; Crie casos de testes genéricos; Testes não têm fim. Eles apenas provocam um “ponto de corte” ! Processos inteligentes (e eficientes) são independentes de ferramentas; Antes de executar um esforço de testes defina bem os papéis e responsabilidades;

:.: :.: O Processo de Testes de SoftwareO Processo de Testes de Software

Dicas úteis:

8

:.: :.: O Processo de Testes de SoftwareO Processo de Testes de Software

Tipos de testes mais comuns:

• Funcionais: verificam se o SUT está agindo conforme os requisitos negociais projetados inicialmente;

• Baseados em cenários: é uma boa estratégia para abranger a maior parte dos requisitos negociais do SUT;

• Testes negativos: são atividades que tentam contradizer a natureza para qual aquela funcionalidade foi projetada;

• Testes de caixa-preta: valida somente a entrada e a saída de um processo, não importando o que acontece dentro dele;

• Performance: são atividades que avaliam o desempenho do SUT ou de um componente de acordo com parâmetros balisadores de aceitabilidade (requisitos não funcionais);

• Load/Stress: é a estratégia utilizada para averiguar a suportabilidade da infraestrutura do SUT (rede, middleware, RDBMS, etc.). O teste de stress nada mais é do que o ponto limite da carga utilizada no esforço do teste e suportada pela infraestrutura;

• Teste exploratório: sua finalidade é reconhecer as características do protótipo e tentar provocar a ocorrência de anomalias;

• Teste de vulnerabilidade: com o advento da Internet tornou-se atividade estratégica, pois verifica os limites do SUT com relação às atividades de XSS, Cross-Scripting, sobrecarga de níveis de serviço;

• Testes automatizados: são viáveis quando os requisitos do SUT são maduros e estáveis;

• Testes de regressão: aplicável quando um coponente do SUT sofre alteração. Portanto é necessário retestar todas as integrações periféricas daquele componente.

9

Melhores práticas de testesMelhores práticas de testes

Requisito é a base do teste

Não se pode testar aquilo que não se sabe; Clientes sempre mudam os requisitos; Uso de protótipos não pode ser desculpa para não documentar requisitos; Interfaces gráficas abrangem unicamente requisitos funcionais de alto nível, sem

detalhes, sem regras de negócios; Usuários não sabem o que querem até terem algo paupável.

Melhores práticas de testesMelhores práticas de testes

É fácil de configurar: customizar uma funcionalidade conforme as necessidades do usuário deve ser uma tarefa fácil para ele;

Está em conformidade com os requisitos que o cliente pediu. É eficiente: recursos de infraestrutura atendem a performance da funcionalidade

(processador, memória, discos e linhas de comunicação); Seja expandível: recursos que permitam a utilização de objetos e componentes de

estrutura funcional para compor os novos requisitos de sistema (isso é ideal para a perfeita manutenção do software);

Tenha flexibilidade: procedimento que permite a mudança do software em ambientes diferentes. Ex.: mudança de Banco de Dados;

Tenha integridade: que é a habilidade do software proteger a ele mesmo via permissionamento de níveis de acesso.

Um bom software é aquele que….

Tenha interoperabilidade: que é a capacidade de trocar dados com outcros software's;

Seja de fácil manutenção: reutilização de componentes, parametrização, orientação a objetos e todas as demais técnicas que organizam e facilitem a vida do programador;

Seja gerenciável: que é a habilidade de gerenciar os recursos de alocação, gestão de conteúdo e configuração;

Seja seguro: que é a capacidade do software executar uma funcionalidade sem causar condições inseguras;

Seja fácil de usar: é a facilidade que o software pode ser aprendido e operado;

Seja verificável: é a capacidade de verificar que o software está trabalhando corretamente.

Melhores práticas de testesMelhores práticas de testes

Execute casos de testes positivos e negativos Testes positivos: é qualquer atividade que aponta a validação de um requisito.

Supõe-se que o dado entrado é válido e ele será processado através dos caminhos normais;

Testes negativos: é o processo de execução de um programa com a intenção de encontrar erros. Supõe-se que o dado entrado é inválido e ele será processado através da manipulação errada dos caminhos funcionais;

14

• Baseie os cenários de teste de regressão em: Análise de impacto

Quando um requisito é modificado, quais são os componentes afetados com a mudança ?

Quando um componente é modificado, quais os requisitos que devem ser retestados novamente ?

Este tipo de análise começa no desenvolvimento com os programadores e continua durante a fase dos testes

Análise de risco

• Ferramentas de Capture/Playback podem ser muito útil (inclusive para automatizar os testes de regressão).

Execute testes de Regressões mais Abrangentes

:.: :.: Melhores práticas de testesMelhores práticas de testes

15

Em desenvolvimentoEm teste

Em teste

Em homologação

Em homologaçãoEm produção

O ciclo de testesO ciclo de testes

O ciclo de testesO ciclo de testes

Preparação dos testesObjetivo: preparar todas as informações e artefatos necessários para um efetivo e eficiente processo de testes. Isto inclui levantar as especificações de uso, estabelecer as classe e desenhar um modelo flexível para o processo de testesPlanejando os testesObjetivo: identificar a estratégia e procedimentos que melhor se adaptem à metodologia de desenvolvimento garnatindo a eficiência e eficácia dos testes. Esta etapa está em paralelo ao desenho do sistema e inclui: recursos, responsabilidades e objetivo dos testes; identificação de riscos e prioridades e identificação de entidades que serão ou não testadas.

O ciclo de testesO ciclo de testes

Desenhando os testes Objetivo: definir os casos de teste, dados e procedimentos que estarão em

conformidade com os requisitos iniciais. Esta etapa envolve planejamento estratégico próativo que detecte possíveis falhas. A definição dos testes deve primar pela simplicidade e baixo custo de execução.

Executando os testes Objetivo: Baseado nos casos de teste definidos na etapa anterior a execução será

dinamizada de maneira que se descubra um número maior de falhas.

Análise do resultado dos testesObjetivo: Pra aprimorar o processo produtivo, nesta etapa são coletadas analisadas as evidências geradas pela etapa anterior.

Implantação

O objetivo da implantação é o de produzir com sucesso lançamentos de produtos e

entregar o software para seus usuários finais. É a fase do ciclo de vida de um software (programa computacional, documentação e

dados), no contexto de um Sistema de Informação, que corresponde textualmente à passagem do software para a produção.

Como definir um diagrama de implantação?

Dê um nome capaz de comunicar seu propósito. Organize seus elementos de modo que os itens que são semanticamente

afins fiquem próximos fisicamente. Use notas e cores como indicações visuais para chamar atenção para itens

importantes. Distribua os elementos de forma a minimizar o cruzamento de linhas. Escolha um pequeno conjunto de ícones comuns e use-os de forma

consistente Deve ter Foco na comunicação de um aspecto da visão estática de

implantação de sistema. Conter somente os elementos essenciais à compreensão desse aspecto. Fornecer detalhes consistentes com seu nível de abstração

Atividades implantação

Liberação A atividade de liberação segue-se ao fim do processo de desenvolvimento. Ela inclui

toda as operações para prepara uma versão executável do software e transferi-la para a produção. Então, ela deverá determinar os recursos requeridos para operara-lo na produção e o conjunto de informações que devem ser coletadas para as posteriores atividades do processo de implantação.

Processo de Gerenciamento de Liberação e Implantação. O gerenciamento de liberação é o processo responsável pelo planejamento,

programação e controle de movimentação das liberações para os Ambientes de Teste e Produção. O objetivo principal do Gerenciamento de Liberação é garantir que a integridade do Ambiente de Produção seja protegida e que os componentes corretos sejam liberados. O Gerenciamento de Liberação é parte do Processo de Gerenciamento de Liberação e Implantação

Atividades implantação

Ativação Ativação é a atividade que inicia o componente executável do software. Para

sistemas simples, isto envolve a utilização de alguns comandos para a execução. Para sistemas complexos, isto pode envolver os sistemas de suporte estarem prontos para uso.

No desenvolvimento de grandes softwares, o trabalho de copia de software é tipicamente instalado no servidor de produção no ambiente de produção. Outras versões de entregas de software devem ser instaladas nos ambiente de teste e ambiente de recuperação de desastre.

Desativação Adaptação A atividade de adaptação é também um processo para modificar um sistema de

software que estava previamente instalado. Ele difere de atualização nas quais as adaptações são instaladas por eventos tais como uma mudança no ambiente de produção, enquanto estas atualizações são mais freqüentemente iniciadas por produtos de software remotos.

Atividades implantação

Desinstalação Desinstalação Consiste na remoção de um sistema que não é mais necessário. Ela

também envolve algumas re-configurações em outros sistemas de software de forma a remover os arquivos e dependências deste sistema.

Retirar Por fim, um sistema de software é marcado como obsoleto e os processos

suportados por ele estão fora de uso. Este é o fim do ciclo de vida do produto de software.

Slide: 23

Dúvidas ?????