Integração contínua, testes e qualidade

diagrama_CI

"In my early days in the software industry, one of the most awkward and tense moments of a software project was integration. Modules that worked individually were put together and the whole usually failed in ways that were infuriatingly difficult to find. Yet in the last few years, integration has largely vanished as a source of pain for projects, diminishing to a nonevent.",
by Martin Fowler in "Continuous Integration: Improving Software Quality and Reducing Risk".

Nos últimos anos, tem-se assistido a uma transformação nas práticas de desenvolvimento, no sentido de se integrar o software produzido com maior frequência, com excelentes resultados.

De forma sumária, pode-se definir o conceito de integração contínua como uma prática de desenvolvimento de software onde os membros de uma equipa integram o seu trabalho frequentemente, pelo menos uma vez por dia. Cada integração é verificada por um sistema automatizado (incluindo testes), permitindo detectar erros de integração mais rapidamente.

Um sistema de integração contínua não é apenas um sistema de geração de artefactos de software de forma regular ou contínua. Um verdadeiro sistema de integração contínua inclui, entre outros, aspectos como:

  • Automatizar testes (unitários, de carga, de integração e funcionais, etc.) e analisar a sua cobertura;
  • Analisar a qualidade do código fonte produzido, de acordo com conjuntos de métricas que permitam validar as melhores práticas de desenvolvimento de software ;
  • Analisar a quantidade e a qualidade da documentação produzida, bem como a sua evolução;
  • Analisar a qualidade e evolução dos sistemas de build dos projectos, e sua evolução;
  • Avaliar a complexidade geral do projecto e sua evolução;
  • Detectar duplicações de código e pontos susceptíveis de refactorização, bem como pontos de modificação mais difícil;
  • Etiquetar as diferentes versões do código produzido e associá-las aos artefactos executáveis produzidos.

A Linkare acredita que um bom sistema de integração contínua permite:

  • Aumentar a qualidade do software produzido;
  • Incentivar as boas práticas no desenvolvimento de software;
  • Reduzir o risco, o esforço, o tempo e por conseguinte os custos do desenvolvimento e manutenção;
  • Aumentar a confiança dos stakeholders no projecto e a sua visibilidade.

Por estes motivos, a Linkare tem investido na aquisição de competências na customização e integração de aplicações para suporte a sistemas de integração contínua, testes e qualidade de software, incluindo entre outras as seguintes aplicações: integração contínua (Hudson),  qualidade de software (SONAR), sistemas de controlo de versões (SVN, CVS, Mercurial), sistemas de build (Ant, Maven), gestão de não conformidades (Bugzilla) ...

 

Referências:

Em resultado deste investimento, a Linkare tem adoptado sistemas de integração contínua nos projectos a cargo da sua equipa interna, mas também nos clientes com equipas de desenvolvimento de  software. Neste último caso, refira-se o Instituto de Informática da Segurança Social.


Para mais informações contacte-nos
 


Bookmark and Share