Baixe o app para aproveitar ainda mais
Prévia do material em texto
TESTES DE SOFTWARE E GERÊNCIA DE CONFIGURAÇÃO Priscila Gonçalves Identificação e planejamento da configuração Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Reconhecer a importância do gerenciamento de configuração no desenvolvimento de software. Listar itens de configuração. Descrever as etapas de identificação e planejamento da configuração. Introdução A gerência de configuração de software serve como base para outras áreas da engenharia de software. Por isso, é tratada como requisito de implementação em níveis iniciais de vários modelos de maturidade de processos de desenvolvimento, como CMMI-DEV, SPICE e MPS-Br. Segundo Sommerville (2011), a gerência de configuração é um con- junto de atividades de rastreamento e controle iniciadas quando um projeto de engenharia de software começa. Essas atividades terminam apenas quando o software sai de operação. Neste capítulo, você vai verificar a importância da gerência de con- figuração aplicada ao desenvolvimento de softwares. Você também vai ver como identificar e listar os itens de configuração. Além disso, vai conhecer as etapas de identificação e planejamento da configuração. A importância do gerenciamento de configuração Para começar, você precisa conhecer o conceito de gerenciamento de con- fi guração aplicado ao desenvolvimento de softwares. Considere o seguinte: a gestão de confi guração de software (software confi guration management — SCM) é uma atividade do tipo “guarda-chuva”, aplicada através de toda a gestão de qualidade. Como as mudanças podem ocorrer em qualquer ins- tante, as atividades SCM são desenvolvidas para (1) identifi car a alteração, (2) controlar a alteração, (3) assegurar que a alteração esteja sendo implementada corretamente e (4) relatar as alterações a outros interessados. [...] É um con- junto de atividades de rastreamento e controle iniciadas quando um projeto de engenharia de software começa e [que] termina apenas quando o software sai de operação (SOMMERVILLE, 2011). As atividades da gerência de configuração de software incluem: controlar e acompanhar as mudanças, registrar todas as evoluções do sistema e estabelecer e manter a integridade. Como você sabe, todas as alterações realizadas no desenvolvimento de um software devem ser controladas. Esse controle está diretamente atrelado à qualidade do software entregue. Assim, a gerência é parte essencial da gestão de qualidade (PRESSMAN; MAXIM, 2016). Itens de configuração Como você viu, o gerenciamento de confi guração aplicado ao desenvolvimento de softwares é baseado em um conjunto de atividades: controle de mudanças; controle de versões; integração contínua. Nas próximas seções, você vai conhecer melhor cada uma dessas ativi- dades, verificando como funcionam e quais são as ferramentas disponíveis para executá-las. Controle de mudanças O controle de mudanças colabora com o controle de versão e tem como foco avaliar, aceitar e aplicar as mudanças propostas. As mudanças ocorrem frequen- temente no decorrer do desenvolvimento do software e devem ser registradas, avaliadas e agrupadas de acordo com a prioridade da modifi cação solicitada. Trata-se de um item importante pois, diante das informações geradas a partir dos registros, da avaliação e das prioridades, é possível planejar o Identificação e planejamento da configuração2 escopo, os prazos e os custos de um projeto, mantendo a rastreabilidade desde a solicitação até a implantação e a disponibilização do produto. Entre as fer- ramentas disponíveis para executar o controle de mudança, estão: BitBucket, GitHub, Trac e Bugzilla. Controle de versão Quando ocorre a implementação de uma mudança, deve-se acrescentar o seu registro no histórico do incremento. Esse incremento é correspondente a uma confi guração (versão), ou seja, ao conjunto de itens que formam o software. Entre as funcionalidades do controle de versões, duas se destacam: viabilizar a edição concorrente nos arquivos, que ocorre quando duas ou mais pessoas estão trabalhando no mesmo código-fonte, por exemplo; e criar variações no projeto. O controle de versão é a principal atividade da gerência de configuração de software, pois é a ponte entre o controle de mudanças e a integração con- tínua. São exemplos de ferramentas utilizadas para o controle de versão: Git, Mercurial e SubVersion. No controle de versão, existem os branches (“ramos”). Eles permitem que execuções simultâneas de atividades diferentes, e até mesmo incompatíveis, ocorram. Por exemplo: a codificação em arquivos iguais, testes, etc. Existem três tipos de branches. Veja a seguir. Principal, também conhecido como trunk (SubVersion), master (Git) e default (Mercurial): trata-se do primeiro e mais importante, pois concentra as correções, melhorias e funcionalidades que deverão ser disponibilizadas na próxima versão entregue. Dedicado, também conhecido como feature branch: mantém de forma isolada as implementações demoradas e complexas, que não podem ser realizadas no trunk. Manutenção, também conhecida como branch release: é correspondente a uma versão liberada, em produção, que necessita de correção, porém sem alterar as funcionalidades. A Figura 1 mostra que o branch de manutenção é criado para manter a versão de produção. Note que as correções são realizadas no branch de manutenção e passadas para o trunk por merges (mesclagens). 3Identificação e planejamento da configuração Figura 1. Tipos de branches. Fonte: Dias (2016, documento on-line). Integração contínua Esse item de gerência de confi guração tem como objetivo verifi car se o software foi desenvolvido de acordo com os elementos registrados na confi guração. Ou seja, a integração é realizada por meio de scripts que deixam a construção, os testes e a coleta de métricas de qualidade automatizados. As ferramentas de integração contínua acompanham o controle de versão e disparam scripts a cada nova configuração registrada. São exemplos de ferramentas de integração contínua: Jenkins, Drone.io, CodeShip, entre outras. Etapas de identificação e planejamento da configuração A gerência de confi guração de software é fundamental para desenvolver softwares de qualidade. Para executá-la corretamente, você deve entender os conceitos, defi nir os processos, realizar a integração e utilizar as ferramentas disponíveis. Realizar o planejamento da configuração de software é de suma impor- tância, pois a maioria das rotinas são repetitivas. Para fazer um planejamento adequado, você precisa considerar alguns itens. Veja a seguir. Definição de atividades: é necessário determinar as atividades que serão executadas e a maneira como serão realizadas. Identificação e planejamento da configuração4 Termos utilizados: sem exceção, todos os envolvidos no planejamento devem entender tudo o que for relacionado à terminologia do conteúdo. Geralmente, é indicado incluir um glossário ao projeto para facilitar o entendimento. Recursos envolvidos: deve-se definir com antecedência as pessoas envolvidas, o tipo de hardware, o espaço e os sistemas utilizados. Cronograma: é preciso definir os prazos para cada etapa do planeja- mento inicial. Dentro da identificação e do planejamento da configuração, há algumas etapas a serem cumpridas para que o sucesso seja garantido. É o que você pode ver na Figura 2. Figura 2. Fluxograma das etapas de identificação e planejamento da gerên- cia de configuração. Baseline Repositório Controle de mudança e con�guração Estimativa de status de con�guração Treinamentos e recursos Identi�cação de marcos 5Identificação e planejamento da configuração A partir do plano de configuração, o programa de gerenciamento de confi- guração pode ser implantado. Para isso, deve-se seguir um escopo do processo, que é necessário para definir o que será feito no projeto. Existem métodos de identificação que conterão o detalhamento para a nomeaçãodos artefatos de pastas do produto de software. Tais métodos serão detalhados no documento do projeto. Um plano de gestão de configuração de software define a estratégia do projeto para a gestão de alterações. Por sua vez, o processo de controle de alterações produz requisições de alterações de software, relatórios e ordens de alteração de engenharia (PRESSMAN; MAXIM, 2016). Ele é composto por: documento de arquitetura; documento de implantação; plano de gerenciamento de configuração; documento de permissões de pastas e acessos por perfil; documento de controle de baselines; documento de negócio; plano do projeto; planilha de contagem de ponto de função; documento de processo de negócio; checklist de revisão técnica; relatório de revisão técnica; plano de teste; plano de resultado de teste; roteiros de teste; especificação de caso de uso. As baselines do projeto são definidas a cada mudança de fase do projeto, e uma delas é utilizada para o encerramento. As baselines tem quatro fases mais o encerramento. Veja: 1. Apresentação dos seguintes itens de configuração: documento de ar- quitetura, documento de implantação e plano de gerenciamento de configuração. 2. Apresentação dos seguintes itens: documento de permissões de pastas e acessos por perfil, documento de controle de baselines e documento de negócio. 3. Apresentação dos seguintes documentos: plano do projeto, planilha de contagem de ponto de função e documento de processo de negócio. Identificação e planejamento da configuração6 4. Apresentação dos seguintes documentos: checklist de revisão técnica, relatório de revisão técnica e plano de teste. 5. Encerramento: apresentação de todos os itens gerados anteriormente e do termo de encerramento. Em gerência de configuração de software, repositório é um conjunto de mecanismos e estruturas de dados que possibilita que a equipe de software gerencie as alterações. O detalhamento da estrutura do repositório é a etapa seguinte à das baselines. Nela, o documento do projeto é esmiuçado e dispo- nibilizado na pasta de gerência de configuração. No controle de configuração e mudança, são apresentados: o processo de solicitação de mudança, em que são descritos e submetidos os problemas e as mudanças, assim como a revisão e a disposição. o comitê de controle de mudança, com a descrição dos membros do comitê e dos procedimentos necessários para processar as solicitações de mudanças e aprovações. Na etapa de estimativa do status de configuração, existem as tarefas listadas a seguir. Processo de armazenamento e liberação do projeto: descrição das políticas de retenção e dos planos de backup, assim como de erros irreversíveis e recuperação. Nesse item, também é descrito o modo como a mídia deve ser mantida (se on-line ou off-line), o tipo de mídia e o formato. Esse processo também descreve o conteúdo do release, a quem é destinado e se há problemas conhecidos ou ainda instruções de instalação. Relatórios e auditorias: os relatórios são utilizados para avaliar a quali- dade do software em qualquer fase do seu ciclo de vida. São elaborados relatórios sobre os defeitos com base nas solicitações de mudança, fornecendo indicadores com a finalidade de alertar a administração e os desenvolvedores em relação a áreas prioritárias do desenvolvimento. Na etapa de identificação dos marcos, os internos devem ser percebidos. Os marcos do fornecedor são relacionados ao esforço da gerência de confi- guração do software ou projeto. Eles incluem detalhes sobre o momento em que o plano de gestão de configuração deve ser atualizado. 7Identificação e planejamento da configuração Os treinamentos e recursos fazem parte da etapa seguinte, em que são descritas ferramentas de software, pessoal e treinamento. Essas três catego- rias de recursos são requisitos para a implementação e a especificação das atividades de gerência de configuração. DIAS, A. F. Tipos de ramos do controle de versão. 2016. Disponível em: https://blog.pronus. io/posts/tipos-de-ramos-do-controle-de-versao/. Acesso em: 27 jun. 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson, 2011. Leituras recomendadas GERENCIAMENTO de configuração de software. [2010]. Disponível em: http://www. alexandresmcampos.adm.br/informatica/outros/gcs.htm. Acesso em: 27 jun. 2019. REIS, C. Caracterização de um processo de software para projetos de software livre. 2003. Dissertação (Mestrado em Ciências da Computação) – Instituto de Ciências Matemática e Computação, São Carlos, 2003. SCHACH, S. R. Engenharia de software: os paradigmas clássicos & orientado a objetos. 7. ed. Porto Alegre: AMGH, 2009. SCHWARTZ, J. I. Construction of software. In: HOROWITZ, E. Practical strategies for developing large systems. Menlo Park: Addison-Wesley, 1975. Identificação e planejamento da configuração8
Compartilhar