INTEGRAÇÃO CONTINUA
Por: eduardamaia17 • 27/4/2018 • 4.072 Palavras (17 Páginas) • 273 Visualizações
...
As metodologias ágeis surgiram como uma resposta a esses problemas. De acordo com Soares (2004), o termo “ágil” se deve ao fato da metodologia não ser orientada a documentação. Isso não significa que a documentação não tenha importância, ela apenas aparece em plano secundário, ficando o enfoque primário nos indivíduos e interações, software executável, colaboração do cliente e resposta rápida para mudanças [SOARES 2004].
Dentre as várias metodologias ágeis existentes, Scrum e XP (Extreme Programming) são as mais difundidas. Esta última possui características relevantes como a abordagem incremental do software, a frequente interação com o cliente e o feedback constante das atividades que estão sendo realizadas [KOSCIANSKI e SOARES 2007].
Entre as práticas utilizadas por esta metodologia destaca-se o teste e a Integração Contínua, onde há foco na validação do projeto durante todo o desenvolvimento do software [SOARES 2004]. Ferramentas que suportam metodologias ágeis já existem, e efetuam o controle das métricas de cada equipe, de cada desenvolvedor e executam a divisão das tarefas e a integração e testes [SOARES 2004].
-
Integração Contínua
Integração continua é uma prática utilizada no desenvolvimento de software onde os desenvolvedores integram o trabalho frequentemente. Cada integração é examinada por uma build automatizada (incluindo os testes) para que os erros de integração possam ser detectados rapidamente [FOWLER 2006].
É um método muito eficaz para o ganho de tempo em junção de funcionalidades. Para a sua utilização, é desejável utilizar um sistema de controle de versão centralizado, como por exemplo, o Git [ROCHA 2014]. O objetivo desse controle é facilitar o trabalho em equipe, que e é essencial para metodologias ágeis. [FOWLER, 2006].
Também são importantes os testes automatizados para que seja possível a análise de erros. De acordo com Fowler (2006), para uma boa integração, além dos testes e do controle de versão, a automatização das builds é um ponto crucial. A ferramenta ANT, por exemplo, realiza essa automatização [ROCHA 2014] . A partir do momento em que se tem um controle de versão centralizado, testes e builds automatizadas, podemos então realizar a integração, a qual irá unir todos estes itens para trabalhar em conjunto [ROCHA 2014].
-
Testes
Teste de software é a execução de um conjunto de verificações que determinam se o sistema desenvolvido atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado (NETO, 2014).
Testes de caixa branca e testes de caixa preta são as técnicas mais difundidas de teste de software (SCOTT, 2012). A técnica de caixa branca avalia o comportamento e os aspectos internos da aplicação [PRESSMAN 2005]. O teste unitário é um exemplo de caixa branca cujo seu principal foco é avaliar cada pequena parte do código separadamente, procurando por falhas na lógica desenvolvida [ROCHA 2001].
A técnica de caixa preta não necessita do acesso ao código fonte, pois são verificadas as funcionalidades da aplicação auxiliando na identificação de falhas na interface e nos comandos realizados pelo usuário, bem como erros de comportamento ou desempenho [SCOTT 2012]. O teste de aceitação, simula as operações de rotina do sistema de modo a verificar se o seu comportamento está de acordo com o solicitado, é um exemplo de teste de caixa preta [NETO 2014].
-
Desenvolvimento
Este trabalho visa aplicar a Integração Contínua numa aplicação Web, utilizando um sistema de controle de versão, para que cada integrante da equipe implemente seus códigos, uma ferramenta de integração para realizar o monitoramento do processo de desenvolvimento, além da implementação de testes automatizados.
- Aplicação Web
A aplicação desenvolvida para a realização dos testes simula o controle de um estacionamento. Este controle utiliza a linguagem PHP, juntamente com HTML, JavaScript , CSS, e o sistema gerenciador de banco de dados MySQL.
As ferramentas utilizadas para o desenvolvimento foram EasyPHP e Sublime Text 2. Nos computadores onde os códigos eram elaborados, o Git foi instalado para efetuar a transferência das modificações no ambiente integrado. Através da ferramenta Git o controle das versões do software também pode ser verificado.
O acesso na página do sistema criado é realizado através de um ambiente web. O usuário pode utilizar o navegador de sua preferência, desde que este seja compatível com as ferramentas citadas anteriormente. É aconselhável verificar se o JavaScript é suportado pelo navegador, caso contrário, a aplicação não funcionará corretamente.
Utilizando os novos conceitos e bibliotecas que visam a maior interatividade do usuário com os sistemas web, a interface ilustrada na Figura 1 foi elaborada.
[pic 1]
Figura 1. Página Inicial do sistema web de controle de estacionamento desenvolvido
A página está organizada em divs [LEMON 2005], as quais permitem organizar e estilizar os conteúdos separadamente. Cada div está utilizando o atributo “id” (W3SCHOOLS, 2014). Este atributo realiza a identificação e a unicidade de cada elemento do código [W3SCHOOLS 2014]. Por exemplo, a vaga nº 1 pode ser identificada pelo id “v1”, e o carro nº 3 pelo id “c3”.
É importante ressaltar a criação de duas divs: a que possui id “carros”, e que possui id ”vagas”. Na div id “carros” foram agrupados todos os carros existentes na interface. Da mesma forma, na div id “vagas”, todas as vagas existentes foram agrupadas.
Esta organização em conjunto permite a manipulação de todas as vagas ou de todos os carros de uma só vez. Para isso, é necessário utilizar como referência os ids definidos para o grupo, como por exemplo, id “vagas”. Também é possível trabalhar com uma única vaga ou um único carro, basta ter como referência os ids de cada elemento, como por exemplo, id “v1”, a qual faz menção apenas para a vaga nº 1.
O diferencial deste sistema foi forma do uso do JavaScript para controlar a interface. Os métodos draggable e droppable da biblioteca jQuery tornaram possíveis as interações de arrastar e soltar os carrinhos para preencher vagas, ou para
...