Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Nesta aula, você irá: 1 - Compreender a necessidade de testes nas fases de construção de um sistema; 2 - Compreender a necessidade de testes nas diversas fases de vida de um sistema; 3 - Identificar testes físicos e testes teóricos; 4 - Distinguir teste de sistema de teste de programa; 5 - Desenvolver plano geral de teste em um software Aula 1: Importância do teste de software Antes de definirmos o que é teste de software vamos definir o conceito de teste: Operação técnica que consiste em determinar se uma ou mais características de um dado produto, processo ou serviço estão de acordo com um procedimento especificado (ISO/IEC 1991) Agora, vamos definir o conceito de teste de software. Existem diversas definições para testes de software: Avaliar se o software está fazendo o que deveria fazer, de acordo com os seus requisitos, e não está fazendo o que não deveria fazer; Processo de executar um programa ou um sistema com a intenção de encontrar defeitos (teste negativo) (Glen Myers – 1979); Qualquer atividade que, a partir da avaliação de um atributo ou capacidade de um programa ou sistema seja possível determinar se ele alcança os resultados desejados. (Bill Hetzel – 1988). 2 Uma estratégia de software deverá fornecer diretrizes para o profissional de teste e uma série de metas para o gerente. Emerson Rios nos dá uma visão histórica da execução dos testes de software: Demonstração - Décadas de 70: Garantir que o produto funcione; Testes feitos pelos desenvolvedores; Detecção - Década de 80/90: Garantir que o produto atenda aos requisitos; Testes feitos pelos desenvolvedores e usuários; Prevenção - Década de 90/00: Garantir que o produto funcione; atenda aos requisitos e não tenha defeito; Testes executados através de processos de testes; Testes feitos pelos desenvolvedores, usuários e testadores. ATENÇÃO: O Processo De Teste De Software O processo de teste de software deve se basear em uma metodologia aderente ao processo de desenvolvimento, com pessoal técnico qualificado, ambiente e ferramentas adequadas. Esta metodologia de teste deve ser o documento básico para organizar a atividade de testar aplicações no contexto da empresa. Assim como o processo de desenvolvimento de software, o teste de software também possui um ciclo de vida: 3 Planejamento: Elaboração e revisão da estratégia de teste e do plano de teste; Procedimentos Iniciais: Consiste na elaboração de um documento com o estabelecimento de um acordo entre as partes envolvidas no projeto de teste (usuário, representante do desenvolvimento, testes e produção) para definição dos seguintes assuntos: -objetivo do projeto de teste; -pessoal a ser envolvido; -as responsabilidades de cada um; -o plano preliminar de trabalho; -avaliação dos riscos; -os níveis de serviços acordados e -qualquer item considerado irrelevante. Especificação: elaboração e revisão dos casos de teste, "scripts"(no caso de ferramenta de automação de testes) e dos roteiros de Teste e execução dos testes de verificação da documentação do sistema (testes estáticos). Execução: execução dos testes planejados, conforme os Casos de Teste, "scripts" e dos roteiros de Testes com os correspondentes registros dos resultados obtidos; Entrega: conclusão do processo de testes, com a entrega do sistema para o ambiente de produção; Preparação: preparação do ambiente de teste, incluindo equipamentos, rede, pessoal, softwares e ferramentas. Revisão Das Etapas De Desenvolvimento De Um Software Segundo Pressman, um modelo genérico de desenvolvimento de software estabelece cinco atividades metodológicas: Comunicação: início do projeto e Levantamento das necessidades; Planejamento: Estimativas, cronograma e acompanhamento; Modelagem: análise, projeto; Construção: entrega, suporte e feedback; e Entrega: Entrega. suporte e feedback. Estas atividades podem estar caracterizadas por diferentes fluxos de processo. fluxos de processo 4 Como já falamos anteriormente, o processo de teste de software deve se basear em uma metodologia aderente ao processo de desenvolvimento. A imagem abaixo mostra como o ciclo de vida do projeto de teste deve interagir com o ciclo de vida do projeto de desenvolvimento Verificação Teste Unitário Teste de Integração 5 Teste de sistema Teste de aceitação Há muitas estratégias que podem ser utilizadas para testar um software. Uma das estratégias de teste, a preferida pela maioria das equipes, é a visão incremental do teste, começando com o teste das unidades individuais de programa, passando para os testes destinados a facilitar a integração de unidades e culminando com testes que usam o sistema concluído. Ao tratar os testes como um processo organizado e muitas vezes paralelo e integrado ao processo de desenvolvimento, os custos de manutenção serão reduzidos. Segundo Myers, o custo de correção de defeitos tende a aumentar quanto mais tarde o defeito é detectado. Defeitos encontrados durante a produção tendem a custar muito mais do que defeitos encontrados em modelos de dados e em outros documentos do projeto do software. Myers afirma ainda que: o OS testes unitários podem remover entre 30% e 50% dos defeitos dos programas; o Os testes de sistema podem remover entre 30% e 50% dos defeitos remanescente; o Desse modo, os sistemas podem ir para a produção ainda com aproximadamente 49% de defeitos; o Por último, as revisões de códigos podem reduzir entre 20% e 30% desses defeitos. Bugs,erros E Defeitos Segundo Pressman, o objetivo geral do controle de qualidade de software e da gestão da qualidade é eliminar problemas de qualidade no software. Tais problemas são conhecidos por diversos nomes: bugs, falhas, erros ou defeitos. Neste contexto, um erro é definido como um problema de qualidade encontrado antes do software ser liberado aos usuários finais. O defeito é um problema de qualidade encontrado depois de o software ter sido liberado aos usuários finais. Porém, na maioria das vezes os termos são utilizados como sinônimos devido à dificuldade de classificação dos termos. Mais informações em http://www.softwaredevelopment.ca/bugs.shtml Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor online utilizando os recursos disponíveis no ambiente de aprendizagem. http://www.alats.org.br/portal/missao-proposito.html http://www.bstqb.org.br/ Nesta aula, você: Compreendeu a necessidade de testes nas fases de construção de um sistema e nas fases de vida de um sistema; Identificou os testes físicos e testes teóricos; 6 Distinguiu teste de sistema de teste de programa; Desenvolveu plano geral de teste em um software. Próxima aula : Tema: Teste no projeto de sistema Assunto 1: compreender a necessidade de testes na especificação do projeto. Assunto 2: planejar testes no projeto de software. Assunto 3: implementar testes na especificação do projeto. Assunto 4: avaliar a aplicação de testes em projetos de software. Assunto 5: interagir com o usuário para a validação de testes no projeto. 1a Questão (Ref.: 201002230729) O processo de teste de software deve basear-se em uma metodologia aderente ao processo de desenvolvimento, com pessoal técnico qualificado, ambiente e ferramentas adequadas. Esta metodologiade teste deve ser o documento básico para organizar a atividade de testar aplicações no contexto da empresa. Assim como o processo de desenvolvimento de software, teste de software também possui um ciclo de vida. Qual das opções abaixo NÃO faz parte do ciclo de vida do teste de software? Especificação: Elaboração e revisão dos casos de teste , ¿scripts¿ ( no caso de ferramentas de automação de testes) e dos roteiros de Teste e execução dos testes de verificação da documentação do sistema (testes estáticos). Procedimentos iniciais: Consiste na elaboração de documento com o estabelecimento de um acordo entre as partes envolvidas no projeto de teste. Execução: Execução dos testes planejados conforme os Casos de Teste, ¿scripts¿ e dos roteiros de Teste com os correspondentes registros dos resultados obtidos. Entrega: conclusão do processo de testes com a entrega do sistema para o ambiente de produção. Codificação: É a conversão das representações do Projeto em uma seqüencia de instruções que formam um programa, sendo escrito numa linguagem de programação 2a Questão (Ref.: 201002195236) Uma equipe de Testes independente normalmente é formada exclusivamente por: Gerentes em geral, Analista de Teste, Usuário e Testador. Testador, Analista de Teste, Arquiteto de Teste e Líder do Projeto de Testes. Testador, Desenvolvedor, Analista de Teste e Arquiteto de Teste. Testador, Usuário, Líder do projeto de Teste e Arquiteto de Teste. Auditor, Desenvolvedor, Testador e Analista de Teste. 3a Questão (Ref.: 201002195303) Qual é a vantagem de usar testadores independentes? Teste Independente alivia os desenvolvedores de toda a responsabilidade pela qualidade. Você não necessita pessoas técnicas ou com o conhecimento do negócio nas equipes de teste. Equipes Independentes de Testes são muitas vezes mais eficientes na identificação de defeitos. O custo inicial é maior embora os resultados finais tendem a ser financeiramente melhores. As equipes independentes do teste são responsáveis para asseguram a conclusão do período de execução de teste.
Compartilhar