Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade IV – Gerenciamento do Testware 15 – Conceito do Testware Unidade IV Avaliação de Software Prof. Ulisses Sperle Graça Abr/2013 2 Da mesma forma que existe uma gestão de software, deve existir uma gestão equivalente ao testware, ou seja, todos os cuidados existentes no desenvolvimento de software devem existir no desenvolvimento de componentes que objetivam a automação dos procedimentos de testes. Ao contrário do que se imagina, as atividades de testes não podem ser encaradas como uma tarefa passageira que pode ser realizada sem controle ou padrão. Igualmente ao software, o testware tem significativo valor porque pode ser reutilizado sem incorrer em um novo custo de redesenvolvimento a cada execução. Fazendo uma Reflexão 3 Da mesma forma que os engenheiros de hardware produzem o hardware e os engenheiros de software produzem software, os engenheiros de teste produzem o testware. Testware são todos os produtos gerados nas fases de verificação e validação, onde incluem-se todas as formas de documentações, automações e relatórios produzidos. São as checklists, o planejamento e especificações de testes, as rotinas automatizadas de execução, os casos de testes, a massa de testes e os relatórios finais de validação. Perder uma rotina de teste automatizada ou uma especificação de teste é tão crítico quanto perder uma especificação de negócios ou um código fonte. Entendendo o conceito de Testware 4 Um software necessita de um conjunto de equipamentos e de um conjunto de programas para ser utilizado, a esta combinação damos o nome de infraestrutura. Durante todo o processo de desenvolvimento, cada fase possui uma missão diferente, requerendo uma configuração de hardware e software adequada a esses objetivos. Cada ciclo de vida do software (desenvolvimento, teste e produção) requer uma infraestrutura diferenciada, necessitando de um local físico distinto, ao qual chamamos de ambiente. Ambiente é um local físico onde existe uma infraestrutura de hardware e software adequada a uma determinada missão. Testware aplicado nos vários ambientes 5 Ambiente de Desenvolvimento Ambiente Teste e Homologação Ambiente de Produção Em Teste Em Desenvolvimento Em Produção Em Homologação Ciclo de Vida do Software Gestão de ambientes Testware aplicado nos vários ambientes 6 Tem como missão maior fornecer toda a infraestrutura necessária de hardware e software para a confecção de um novo software, que deve estar disponível à equipe de desenvolvimento, ou seja, analistas e programadores. Esse ambiente deve ser segmentado em duas partes: Uma para atender às necessidade da equipe de desenvolvimento outra para as necessidades de testes desta mesma equipe. Neste segmento voltado exclusivamente aos testes, deverão ser aplicados os testes de unidade e de integração, que poderão ser aplicados pela própria equipe de desenvolvimento ou uma equipe independente de testes. Ambiente de Desenvolvimento 7 Como estes testes exigem um alto grau de conhecimento da arquitetura do software a ser testado, é mais natural que os testes fiquem sendo inicialmente de responsabilidade da própria equipe de desenvolvimento. Porém, a experiência demonstra que os testes realizados por uma equipe externa permitem maior nível de eficiência e cobertura, além de possibilitar um alto grau de automação dos testes. Se não existem grandes restrições orçamentárias, uma equipe de teste independente é extremamente recomendável. Ambiente de Desenvolvimento 8 Ambiente de Desenvolvimento Ambiente de Teste e Homologação Desenvolvimento Fontes Estrutura Interna Teste Unidade Integração Categoria Funcional Usabilidade Teste: Sistema Categoria: Funcional Carga Performance Instalação Segurança Teste: Aceitação Categoria: Aceite Formal Alpha-Teste Em desenvolvimento Em Teste Em Homologação Ambiente de Desenvolvimento 9 Esse ambiente tem como missão fornecer toda a infraestrutura necessária para a realização dos testes de requisitos do software, que deve estar disponível exclusivamente para essa finalidade, de forma a garantir um ambiente ideal de simulação. Sua infraestrutura deve contemplar um ambiente muito semelhante ao de produção para possibilitar o maior número possível de testes nas condições mias próximas de um ambiente real. Principais testes: Desempenho Volume Carga Segurança Ambiente de Teste e Homologação 10 Esse ambiente deve contemplar um conjunto de hardware e software construídos com a finalidade de interagir com o software de forma automatizada, possibilitando a execução e conferência de forma flexível e otimizada. Sempre que for necessário importar massas de dados de produção com o propósito de integrá-las ao processo de testes, é recomendável aplicar técnicas de criptografia nas informações, impossibilitando que os dados tornem-se de conhecimento dos profissionais que atuam neste ambiente. Ambiente de Teste e Homologação 11 Ambiente de Teste e Homologação Ambiente de Produção Teste: Sistema Categoria: Funcional Carga Performance Instalação Segurança Teste: Aceitação Categoria: Aceite Formal Alpha-Teste Teste: Aceitação Categoria: Beta-Teste Produção Em Teste Em Homologação Em produção Ambiente de Teste e Homologação 12 Nesse ambiente ocorrem todos os testes de sistema que validam os requisitos de software levantados, como os requisitos funcionais, segurança, performance, entre outros. Os testes são realizados com as técnicas de caixa preta, nas quais não se requer um conhecimento interno do software. Os testes de aceite (formal e alpha-teste), que são executados pelos próprios usuários finais, também são realizados nesse ambiente, pois possuem infraestrutura muito semelhante a que será encontrada no ambiente de produção. Os usuários são convidados a manipular a “nova-versão” do software, simulando as operações do dia a dia. Ambiente de Teste e Homologação 13 Tem como missão fornecer toda a infraestrutura necessária para que o produto desempenhe as funcionalidades para as quais foi projetado. É nesse ambiente que o software produz os resultados esperados, ou seja, todas as operações aqui são “reais”, representando todas as transações de negócios realizadas pelo cliente. Deve ser altamente controlado e seguro de invasões. Através do número de erros identificados, podemos mensurar o quanto está sendo efetivo o esforço do processo de qualidade do software, comparando com os níveis de defeitos que ocorriam antes da implantação desse processo. Ambiente de Produção 14 Ambiente de Teste e Homologação Ambiente de Produção Teste: Sistema Categoria: Funcional Carga Performance Instalação Segurança Teste: Aceitação Categoria: Aceite Formal Alpha-Teste Teste: Aceitação Categoria: Beta-Teste Produção Em Teste Em Homologação Em produção Ambiente de Produção 15 Através dos erros ocorridos no ambiente de produção, a equipe de testes planejará um conjunto de novos casos de testes, evitando que esses erros sejam reincidentes, melhorando a confiabilidade do produto ao longo do tempo. Nesse ambiente são realizados os chamados Beta-testes (fase final do processo de homologação do software),onde apenas um grupo selecionado de usuários terá acesso a uma “nova- versão” do produto que ainda está sob o comando da equipe de testes. Ambiente de Produção 16 Para que possam ser realizados os testes de software, toda uma infraestrutura deve ser levantada de forma a possibilitar a criação de um ambiente de testes adequado a cada sistema. O baseline é o resultado do esforço de criação de um ambiente inicial pronto para sofrer o processamento dos testes planejados. São várias atividades que resultam em sua construção: Ponto de Corte: é recomendável que a base de dados do ambiente de teste seja obtida do ambiente de produção. Isto possibilita uma imediata familiarização com as informações do ambiente, facilitando no planejamento dos casos de testes. O ponto de corte é a atividade de “congelamento” das informações do ambiente de produção, a ser realizada em data preestabelecida. Gerenciando o Baseline 17 Critérios de Redução e Limpeza: muitas vezes, a base de dados obtida no ponto de corte é muito grande, não sendo necessária a migração total das informações. Para isso, são definidos critérios para a redução e limpeza sem que isso prejudique o planejamento e a conferência das informações. Criptografia: Alguns dados de produção podem ser sigilosos e não poderiam ser identificados. Informações adicionais: Durante o planejamento dos testes, algumas informações deverão ser incorporadas à massa de dados de forma a criar artificialmente alguns cenários que não estão adequadamente representados na massa criada. Seleção de Componentes: Identificar todos os componentes necessários para a execução do software (são arquivos ou mesmo referências, parâmetros etc.). Gerenciando o Baseline 18 A cada execução dos testes, as informações contidas no banco de dados tornam-se obsoletas, uma vez que as condições iniciais são modificadas pela própria execução dos testes. O baseline, torna-se um instrumento adequado para recuperar a condição inicial dos testes, sendo necessário ser restabelecido sempre que iniciarmos um novo ciclo de validação. Gerenciando o Baseline Componentes Base de Dados Ambiente de Produção Componentes Base de Dados Baseline Ponto de Corte Redução e Limpeza Informações Adicionais Criptografia Seleção de Componentes Unidade V – Gestão das Ferramentas de Apoio 19 – Gestão das Ferramentas Unidade V Avaliação de Software Prof. Ulisses Sperle Graça Abr/2013 20 A utilização de ferramentas em um processo de qualidade de software é tão interessante quanto empregar ferramentas de apoio ao desenvolvimento. O emprego de testes manuais só é recomendável quando não existir uma alternativa no mercado. Estas ferramentas são denominadas CAST (Computer-Aided Software Testing). Como os testes de verificação são baseados, na maioria das vezes, em documentos de requisitos e especificações, sua automação torna-se extremamente complexa. Mesmo assim, um conjunto de ferramentas poderá auxiliar na elaboração e gerenciamento de checklists a serem aplicados. Fazendo uma Reflexão 21 Em relação aos testes de validação, o ideal é criar um ambiente de testes altamente automatizado. Isso irá refletir em uma redução de custos, melhor controle e confiabilidade do processo, maior flexibilidade, além de aumentar a efetividade do próprio processo. As chances de sucesso na identificação de erros são mais significativas quando empregamos ferramentas de testes. Fazendo uma Reflexão 22 São ferramentas que apoiam o processo de planejamento dos trabalhos de testes, definindo escopos, abordagens, recursos, agendando reuniões e programando atividades. Geralmente estão apoiadas na coleta inicial de requisitos de software, possibilitando dimensionar o esforço e complexidade envolvidos no processo de desenvolvimento. Essas ferramentas também auxiliam no processo de documentação inicial, possibilitando gerar planejamentos padronizados e na elaboração de estimativas de tempo e custos, além de dimensionar as equipes de acordo com o tempo disponível. Ferramentas de Planejamento de Testes 23 Análise de Criticidade Essas ferramentas apoiam o processo de priorização de sistemas, identificando quais devem ser testados inicialmente, possibilitando direcionar esforços de forma eficiente, gerando resultados em curto espaço de tempo. Permite estimar tempo, custos e equipes através da análise da complexidade de cada software, baseando-se nos requisitos a serem cumpridos. Gerador de Documentos Ferramentas que facilitam o processo de documentação, através da utilização de parametrizações e modelos de documentos. Gerenciam as versões de modelos e possibilitam organizar um workflow de preparação, elaboração, inspeção e aceite de cocumentos. Ferramentas de Planejamento de Testes 24 Essas ferramentas apoiam o processo de verificação do software, ou seja, auxiliam nas revisões de documentos e inspeções técnicas que podem ser aplicadas em todas as etapas do processo de desenvolvimento. Análise de Complexidade Desenvolvedores experientes sabem que em 20% do código estão 80% dos problemas. Essas ferramentas auxiliam a identificar onde estão as áreas mais complexas e, consequentemente, quais possuem maior risco de introduzir novos erros. Também auxiliam a quantificar o esforço e os custos dos testes a serem empregados. Ferramentas de Revisões e Inspeções 25 Compreensão de Código Auxiliam na atividade de inspecionar códigos-fonte, possibili- tando avaliar a aderência a padrões de programação estabelecidos pela organização, como: padrões de nome, utilização de rotinas corporativas, nível de comentários, entre outros. Também identifica variáveis não utilizadas, sub-rotinas não acionadas, APIs incompatíveis com determinados S.O. em que a aplicação irá rodar, entre outras características. Análise Sintática e Semântica São ferramentas que localizam erros na sintaxe e na semântica dos comandos empregados no código, os quais o compilador não acusaria. Ferramentas de Revisões e Inspeções 26 As ferramentas de modelagem auxiliam no processo de construção e documentação de como serão testados todos os requisitos de negócio. Possibilitam registrar os procedimentos de testes a cada cenário estabelecido e o processo de conferência dos dados. As ferramentas de automação dos testes possibilitam o desenvolvimento de scripts automatizados, de forma a viabilizar um processo de teste com as atividades de entrada e conferência de valores totalmente automatizados. Ferramentas de Modelagem e Automação 27 Modelagem de testes Auxilia no processo de planejamento e construção dos testes, identificando os diversos cenários estabelecidos para cada requisito a ser testado, estabelecendo um conjunto de procedimentos a serem executados para cada cenário indicado, definindo como os testes se comportarão. Determina as informações que devem ser empregadas em cada procedimento de teste, atingindo o menor nível de detalhamento. É um processo mental, sendo que nenhuma ferramenta substituirá a experiência e abstração de um bom analista de testes, porém estas ferramentas auxiliam na estruturação das ideias facilitando a compreensão das decisões a serem tomadas. Ferramentas de Modelagem e Automação 28 Gerador de Massa de Dados Gera automaticamente uma massa de dados baseada no planejamento dos testes e critérios estabelecidos de forma a garantir uma massa diferenciada para cada dia e nas circunstâncias desejadas. Automatizador de Scripts O processo de automação requer ferramentas que possibilitem a interação entre as rotinas automatizadase os softwares a serem testados. Também requer que estas ferramentas possuam recursos de conferência automática, possibilitando capturar valores em tela, arquivos, relatórios ou mesmo em BD. Dessa forma, essas ferramentas automatizarão não somente as atividades de entrada, como o processo de conferência. Ferramentas de Modelagem e Automação 29 As ferramentas de execução e conferência possibilitam o gerenciamento e o controle no processo de execução, reexecução e medição dos testes planejados, de forma a possibilitar a integração entre as demais fases, de forma executar somente os testes selecionados no planejamento. Executor de Scripts Essas ferramentas estão sempre integradas aos software de planejamento de testes e desenvolvimento de scripts, de forma a executar os procedimentos na ordem e frequência preestabelecidas. Permite a gestão do ciclo de testes como um todo, como o controle de execução da cada caso de testes, o controle da reexecução dos testes e os desvios de testes provocados por erros inesperados. Ferramentas de Execução e Conferência 30 Análise de Cobertura Possibilita estabelecer uma métrica de cobertura do teste através do monitoramento das linhas de código executadas. Os testes caixa branca requerem este tipo de ferramenta, pois possibilita visualizar áreas de código não cobertas pelos testes em execução. Testadores de Memória Auxiliam no processo de detecção de problemas relacionados ao uso e alocação de memória pela aplicação. Trata-se de um ponto sensível em sistemas cliente-servidor, pois podem deixar o software instável. As ferramentas devem ser específicas para cada ambiente. As melhores ferramentas da categoria são simples de usar e com preços acessíveis. Ferramentas de Execução e Conferência 31 Simuladores e Medidores de Performance Nessa categoria é impossível conceber a ideia de realizar testes sem empregar ferramentas específicas. É impraticável, por exemplo, simular a consulta simultânea de mil usuários em uma determinada situação, ou a visita de 500 internautas à home-page de sua empresa, sem a utilização efetiva de ferramentas. Essas ferramentas estão diretamente ligadas aos testes de sistema, como mos testes de carga, volume e performance. Ferramentas de Execução e Conferência 32 Essas ferramentas apoiam atividades que não estão diretamente ligadas ao processo de testes, porém garantem que determinados itens fundamentais desse processo estão sendo gerenciados. Ferramentas de Suporte aos Testes 33 Gerenciamento de Defeitos Essa ferramenta também é conhecida por outros nomes: gerenciamento de erros, gerenciamento de problemas, registro de ocorrências, controle de incidências etc. Seu objetivo é acompanhar e controlar os erros identificados durante o ciclo de vida do software e monitorá-los até sua solução final. Essas ferramentas permitem parametrizações de forma a customizar um workflow de resolução de problemas para melhor adaptar-se à estrutura do usuário. Essas ferramentas produzem um grande número de indicadores de qualidade, como percentual de erros por severidade, análise da eficiência da resolução de problemas, distribuição de erros por fase do processo, entre outros. Ferramentas de Suporte aos Testes 34 Gerenciamento de configurações Permite controle e coordenação das mudanças efetuadas em documentações, fontes e ambientes físicos. Sua maior contribuição é estabelecer relações entre diversos artefatos e identificá-los através de um único controle de versão, dessa forma, não é possível acessar documentos de determinada versão enquanto estamos modificando fontes de uma versão anterior. Essas ferramentas são largamente empregadas nos ambientes de desenvolvimento e produção, sendo adequado utilizar-se da mesma ferramenta para o gerenciamento do testware. Ferramentas de Suporte aos Testes
Compartilhar