Teste de Software · PDF filequalidade ou o teste é de baixa qualidade? Tipos de teste:...

Click here to load reader

  • date post

    10-Nov-2018
  • Category

    Documents

  • view

    214
  • download

    0

Embed Size (px)

Transcript of Teste de Software · PDF filequalidade ou o teste é de baixa qualidade? Tipos de teste:...

  • Teste de SoftwareTeste de SoftwareApresentaoApresentao

    Prof Daves MartinsMsc Computao de Alto Desempenho

    Email: [email protected]

  • AgendaTeste de Software VV&T e Defeitos de SoftwareInspeo de SoftwareTeste UnitrioAnlise do Valor LimiteTeste com Objetos MockTeste de CoberturaTeste em Banco de DadosTeste de MutaoTeste de IntegraoTeste FuncionalParticionamento em Classes de EquivalnciaTeste de DesempenhoTeste em Web ServicesDesenvolvimento Dirigido pelo TesteIntegrao ContnuaControle de Defeitos

  • Consideraes Importantes

    Disciplina 72h/a

    Faltas - 25% - 18 faltas;

  • Avaliao

    T1 - Trabalhos: (10 trabalhos prticos) (100 pts)

    TF - Trabalho Final (120 pts)

    S - Seminrios (80 pts)

    A - Artigos (10 Artigos) Leitura e Resumo (10 pts extra)

    Nota Final = (T1 + TF + S )

    3

  • Referncias Bibliogrficas

    DELAMARO, M.E.; MALDONADO, J.C.; JINO, M. Introduo ao Teste de Software. Elsevier Editora, 2007.

    MYERS, G., BADGETT, T., THOMAS, T., SANDLER, C., The Art of Software Testing. Wiley; 3rd Edition, ISBN 978-1118031964. 2011.

  • Metodologia

    Aulas tericas e prticas, idealmente alternadas

    Seminrios ministrados pelos alunos

    Projeto de disciplina

  • Pensamentos Importantes!!!

  • Pensamentos Importantes!!!

  • Teste de Software

    O software sempre ser testado. Pode ser testadopor voc ou ser testado pelo seu cliente/usurio.

  • Teste de SoftwareProblemas ocorridos na utilizao de produtos de software, percebidos muitas vezes pelo usurio final, podem ser decorrentes de falta de qualidade no processo de desenvolvimento, onde tcnicas de inspeo e de testes so fortes aliadas na identificao precoce dos defeitos, melhorando a satisfao do usurio e minimizando os elevados custos associados a manutenes corretivas

    Uma das formas de melhorar a qualidade na construo de software a implementao de procedimentos de teste em todas as fases de seu ciclo de vida

  • Teste de SoftwareEntretanto, esta uma prtica pouco utilizada nas empresas, pois normalmente necessita de grande mo-de-obra e um esforo desregrado com resultados pouco favorveis em muitos casos

    Isso acontece, pois testes devem ser embasados em fundamentos lgicos, e no simplesmente voltados para execuo de funcionalidades aleatoriamente, em tentativas tendenciosas de encontrar defeitos

  • Teste de SoftwareNo possvel aplic-los exaustivamentePara aumentar sua eficcia, deve ser executado por equipes independentes

    Um bom teste:Possui alta probabilidade de encontrar um defeitoNo redundante abrangente o suficientePossui um nvel adequado de complexidade

  • Teste de SoftwareO teste uma atividade destrutiva, ao contrrio do desenvolvimento de software, que uma atividade construtiva

    Inexistncia de falhas: o software de altaqualidade ou o teste de baixa qualidade?

    Tipos de teste: unidade, cobertura, integrao,regresso, funcional, desempenho

    Teste Homologao (ou de Aceitao): aceitepelo usurio final

  • Teste de SoftwarePoucos programadores e analistas gostam deTeste

    Teste Alfa: executado na instalao do desenvolvedor pelo cliente

    Teste Beta: executado na instalao de um ou mais clientes pelo usurio final do software

    Casos de Uso devem considerar criticalidade efreqncia (Alta, Mdia, Baixa) para definir aprioridade do teste

  • Teste de SoftwareTcnica Funcional (Caixa-Preta): baseia-se na especificao do software para derivar os casosde testeParticionamento em Classes de EquivalnciaAnlise do Valor Limite

    Tcnica Estrutural (Caixa-Branca): baseia-se no conhecimento da estrutura interna da implementaoComplexidade Ciclomtica

  • Teste de Software

  • Teste de SoftwareDefeitos no Processo de DesenvolvimentoA maior parte de origem humanaQuanto antes a presena de um defeito for revelada, menor o custo de sua correo e maior a probabilidade de corrigi-lo corretamente

    Deve-se introduzir atividades de VV&T(Verificao, Validao e Teste) ao longo de todo o ciclo de desenvolvimento

  • Teste de Software

  • Teste de Software

  • 25

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

    Estratgia de testes

    Testes caixa branca

    Testes exploratrios

    Testes caixa preta

    Testes de vulnerabilidades

    Testes de Carga e Stress

    Testes Funcionais

    Testes baseados em cenrios Testes negativos

    Inspeo de Artefatos Doc.

    Verificao de Diagramas UML

    Validao de modelos ER

    Validao/Verificao de requisitos

    Rgua de Avaliao Fornecedores

    Testes unitrios

    A estratgia de testes faz parte da Metodologia dos testes !!!

    Testes de regresso

    Testes automatizados

  • 26

    Slide: 26

    O programa de certificao do Quality Assurance Institute (QAI) um dos mais aceitos internacionalmente.

    Existem dois tipos de certificao:1. CSTE (produto): preparao do ambiente de

    testes; planejamento de testes; test design; execuo de testes; automao; ferramentas; elaborao de relatrios; etc.

    2. CSQA (processo): estrutura de modelos de qualidade; definio de padres de prtica e controle de qualidade; construo, implementao e melhoria dos processos de qualidade; mtricas.

    Outras instituies outorgantes: International Software Testing Institute e American Society for Quality

    :.: Certificao Profissional:.: Certificao Profissional

  • 27

    Slide: 27

    :.: Papis & Responsabilidades:.: Papis & Responsabilidades

    Papel ResponsabilidadesGerente, Coordenador ou Lder de testes

    Viabiliza os recursos necessrios para um esforo de testes; conduz as atividades e as monitora em conformidade com o planejamento; Realoca recursos ao longo do ciclo.

    Analistas de Testes Planeja a estratgia e elabora casos de testes, baseando-se nos requisitos de negcio do SUT.

    Arquiteto de Testes Prepara toda infra estrutura necessria para se executar a estratgia de testes. Instala ferramenta, gera massa de dados, mede performance, etc.

    Executor de Testes Executa tudo o que est planejado. Figura-chave do ciclo de testes pois as ocorrncias encontradas por ele so os indicadores da qualidade do produto inspecionado.

  • Teste de SoftwareOutras categorias de testes em sistemas

    Recuperao: fora o software a falhar em diversassituaes e verifica a capacidade de recuperao doProduto

    Segurana: verifica se os mecanismos de proteoconstrudos para o sistema iro de fato proteg-lo dealguma utilizao ou intruso imprpria

    Stress: executa o sistema de forma a exigir recursosem quantidade, freqncia ou volume anormais

    Desempenho: avalia o desempenho do softwarequando integrado ao sistema. Normalmente estassociado ao teste de Stress

  • Teste de Software

  • Teste de Software

  • Planejamento dos TestesObjetivo: Planejar e definir o que ser feito ao longo dos testes antes quecomece a sua realizao efetiva

    Definir objetivosDefinir CronogramaAlocar PessoasDefinir RiscosEspecificar Casos e Procedimentos de Teste

  • Planejamento dos Testes

  • Atividade 1 Planejar Testes

    Ponto chave para o sucesso dos testesDeve estar relacionada ao planejamento do projetoEnvolve muitas tomadas de decises que devem ser analisadasbuscando-se encontrar as melhores opes, dado o contexto deum projetoSub-atividades:

    Caracterizao dos testes (escopo e objetivo)Definio dos Itens de Teste e Critrios de Aprovao dos ItensPlanejar estratgia a ser seguida (tcnicas, mtodos e ferramentas)Planejar Recursos Humanos e necessidade de treinamentosPlanejar Recursos FsicosDefinir Cronograma (em conformidade ao cronograma do projeto)Estimar CustosIdentificar Riscos

  • Artefato - 1 Planejar Testes (IEEE829)

  • Planejamento dos Testes

  • Atividade 2 Projetar Testes

    Objetivo: Especificar um refinamento da(s) abordagem(ns) de teste definida(s) no planejamento Identificar as caractersticas a serem testadas para cada item Projetar seus testes, identificando o conjunto de casos e procedimentos de teste a serem executados

    Sub-atividades: Detalhar estratgia de teste para cada item de teste e caracterstica a ser testada Identificar casos de procedimentos de teste Priorizar procedimentos de teste Especificar critrios de aprovao para cada caracterstica/item

  • Artefato - 2 Projetar Testes (IEEE829)

  • Planejamento dos Testes

  • Atividade 3 Especificar caso de TesteUm caso de teste descreve uma condio particular a ser testada e definido por valores de entrada, restries de uso e um resultado esperadoNessa atividade, cada caso de anteriormente deve ser especificado

    Sub-atividades (para cada caso de teste):Caracterizar o caso de testeEspecificar Entradas e Resultados EsperadosDefinir Recursos para o Caso de TesteEspecificar Restries de UsoDefinir Dependncias entre Casos de Teste

  • Artefato - 3 Especificar Caso de Teste (IEEE829)

  • Planejamento dos Testes

  • Atividade 4 Definir procedimento de teste

    Um procedimento de teste descreve os passos necessrios para a execuo de um ou mais casos de teste

    Cada procedimento precisa ser caracterizado com informaes sobre o seu objetivo e requisitos para a sua execuo, alm dos passos a serem seguidos durante os testes

    Sub-atividades (para cada procedimento de teste)Definir objetivos do procedimento de testeDefinir Requisitos para a Execuo do ProcedimentoDescrever PassosConstruir Procedimento de Teste

  • Artefato - 4 Definir procedimento de teste (IEEE829)

  • Teste de Software

  • Execuo dos TestesObjetivo:

    Execut