Este documento descreve um processo de integração contínua multiplataforma implementado no Instituto Nokia de Tecnologia para um projeto piloto utilizando Java, .NET e Scrum. O processo automatizou a compilação, execução de testes e distribuição do software em diferentes plataformas usando Hudson, Ant, MSBuild e ferramentas de teste. Isso melhorou a qualidade e reduziu defeitos de integração.
O documento discute o uso de Test Driven Development (TDD) e Integração Contínua no desenvolvimento de software. Ele apresenta os benefícios dessas técnicas, como aumento de produtividade e qualidade do software. O documento também descreve o processo de configurar um servidor de integração contínua para automatizar builds e testes durante o desenvolvimento.
Plano do projeto de software SIGEM - Sistema de gestão de materiaisMarcos Pessoa
Este documento apresenta o plano de projeto de software para produtos da Lacertae SW. Ele descreve o escopo, funcionalidades, requisitos, estimativas, riscos, cronograma e controles de qualidade do projeto de desenvolvimento de um sistema de gestão de materiais para uma universidade.
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
O documento discute ferramentas de código aberto que ajudam a implementar práticas recomendadas pela metodologia eXtreme Programming (XP) em projetos Java, como integração contínua e testes de unidade. Ele apresenta o framework JUnit para automação de testes de unidade e ferramentas como Ant, CVS e CruiseControl para automação do build, versionamento e integração contínua.
O documento discute integração contínua, incluindo seus conceitos, benefícios e pré-requisitos. A integração contínua envolve construir e testar automaticamente o software sempre que novas mudanças são implementadas para garantir que o software esteja sempre em um estado funcional. Isso ajuda a detectar bugs cedo e manter o software de alta qualidade. Pré-requisitos incluem controle de versão, builds automatizados e testes automatizados.
GCS - Aula 07 - Sistemas de Controle de VersõesMisael Santos
O documento discute gestão de configuração de software e controle de versões. Ele explica conceitos como versionamento, ações como check-in, check-out e merge, ferramentas como CVS e Subversion, e estratégias como branching e tagging.
Qualidade de Software: Teste de softwareAlex Camargo
O documento discute os conceitos básicos e tipos de testes de software, incluindo: (1) testes de caixa branca como teste de unidade e integração, (2) testes de caixa preta como teste funcional, de aceitação e exploratório, e (3) testes de caixa cinza como teste de regressão e cobertura. O documento também descreve os papéis da equipe de teste, como gerente, arquiteto e testador.
“Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver multiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler
Integração contínua - Prática de desenvolvimentoMario Mendonça
Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.
O documento discute o uso de Test Driven Development (TDD) e Integração Contínua no desenvolvimento de software. Ele apresenta os benefícios dessas técnicas, como aumento de produtividade e qualidade do software. O documento também descreve o processo de configurar um servidor de integração contínua para automatizar builds e testes durante o desenvolvimento.
Plano do projeto de software SIGEM - Sistema de gestão de materiaisMarcos Pessoa
Este documento apresenta o plano de projeto de software para produtos da Lacertae SW. Ele descreve o escopo, funcionalidades, requisitos, estimativas, riscos, cronograma e controles de qualidade do projeto de desenvolvimento de um sistema de gestão de materiais para uma universidade.
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
O documento discute ferramentas de código aberto que ajudam a implementar práticas recomendadas pela metodologia eXtreme Programming (XP) em projetos Java, como integração contínua e testes de unidade. Ele apresenta o framework JUnit para automação de testes de unidade e ferramentas como Ant, CVS e CruiseControl para automação do build, versionamento e integração contínua.
O documento discute integração contínua, incluindo seus conceitos, benefícios e pré-requisitos. A integração contínua envolve construir e testar automaticamente o software sempre que novas mudanças são implementadas para garantir que o software esteja sempre em um estado funcional. Isso ajuda a detectar bugs cedo e manter o software de alta qualidade. Pré-requisitos incluem controle de versão, builds automatizados e testes automatizados.
GCS - Aula 07 - Sistemas de Controle de VersõesMisael Santos
O documento discute gestão de configuração de software e controle de versões. Ele explica conceitos como versionamento, ações como check-in, check-out e merge, ferramentas como CVS e Subversion, e estratégias como branching e tagging.
Qualidade de Software: Teste de softwareAlex Camargo
O documento discute os conceitos básicos e tipos de testes de software, incluindo: (1) testes de caixa branca como teste de unidade e integração, (2) testes de caixa preta como teste funcional, de aceitação e exploratório, e (3) testes de caixa cinza como teste de regressão e cobertura. O documento também descreve os papéis da equipe de teste, como gerente, arquiteto e testador.
“Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver multiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler
Integração contínua - Prática de desenvolvimentoMario Mendonça
Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.
Qualidade de Software: Ferramentas de apoioAlex Camargo
O documento apresenta ferramentas de apoio ao desenvolvimento de software, incluindo Redmine para gerenciamento de projetos, Git para controle de versões e Read the Docs para documentação. Exemplos e exercícios são fornecidos para demonstrar o uso de cada ferramenta.
[1] O documento discute a filosofia de desenvolvimento de software e validação de software, com foco na qualidade do software. [2] Ele explica que a qualidade do software começa na fase de projeto e não pode ser testada, mas sim validada através do ciclo de vida do software. [3] O ciclo de vida do software inclui fases como definição, projeto, desenvolvimento, teste, instalação e manutenção.
Este documento apresenta os conceitos e ferramentas de sistemas de controle de versão, com foco no GIT. Apresenta os principais conceitos de VCS, como repositórios, commits e ramificações. Discute as características e comandos básicos do GIT e faz uma comparação com outros sistemas como Subversion, ClearCase e Mercurial. Por fim, apresenta um estudo de caso sobre o uso do GIT em um projeto de software.
O documento discute a entrega contínua. Ele apresenta os princípios da entrega contínua, incluindo a criação de um processo repetível e confiável para entrega de software, automação de tudo o que for possível, e envolvimento de todos os envolvidos no processo de entrega.
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
O documento discute tendências e dicas para o desenvolvimento de software. Ele aborda tópicos como por que desenvolver software é difícil, motivos de falha em projetos, linguagens populares, boas práticas como teste e integração contínua, metodologias ágeis, tendências como computação em nuvem e NoSQL e por fim dicas para desenvolvedores.
Fundamentos Engenharia de Software.pptxRoberto Nunes
O documento fornece uma visão geral da engenharia de software, discutindo sua definição, objetivos, evolução histórica, desafios, práticas e mitos relacionados. É apresentada uma introdução aos principais conceitos, incluindo processos de software, métodos, ferramentas CASE e perfis profissionais.
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
Slides do Minicurso ministrado pela ToolsCloud na Globalcode. Para se inscrever nas proximas turmas, acesse:
http://www.globalcode.com.br/gratuitos/minicursos/minicurso-introducao-a-alm-open-source
Para experimentar as ferramentas apresentadas no minicurso, você pode utilizar o ambiente de demonstração da ToolsCloud:
https://demo.toolscloud.net
User: toolscloud
Password: toolscloud
ToolsCloud -- As ferramentas que os desenvolvedores adoram, na nuvem!
Solução complete de ALM, open source e sem stress. Começe a usar no seu projeto hoje!
http://www.toolscloud.com
Este documento resume uma aula sobre processos de software. Apresenta conceitos como processo de software, modelos de processo de desenvolvimento de software, modelos de ciclo de vida como cascata e iterativos, além de linguagens, métodos e ferramentas CASE. O objetivo é introduzir os alunos aos principais elementos envolvidos no desenvolvimento de software.
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma ágil e com qualidade. Primeiro, explica os benefícios e desafios de micro serviços e abordagens de evolução e migração de legados. Em seguida, detalha estratégias como extrair dependências, transformar funcionalidades em serviços e usar Docker. Por fim, discute a importância da automação de testes funcionais e não funcionais para garantir a qualidade durante e após a migração.
O documento apresenta uma solução de Application Lifecycle Management (ALM) open source composta por ferramentas como Redmine, Subversion/Git, Maven, Nexus, Hudson/Jenkins. A pilha ALM descrita permite gerenciar todo o ciclo de vida de desenvolvimento de software de forma integrada e com baixo custo.
O documento descreve o processo Open Unified Process, que aplica uma abordagem iterativa e incremental ao ciclo de vida do desenvolvimento de software. O processo é baseado em princípios ágeis e foca na colaboração entre membros da equipe. Ele define fases como Iniciação, Elaboração, Construção e Transição, além de utilizar micro-incrementos e iterações para entregar valor de forma contínua.
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
1. O documento discute sobre ferramentas de gerenciamento do ciclo de vida de aplicações (ALM) de código aberto.
2. Ele apresenta diversas ferramentas como Redmine para gerenciamento de requisitos, Subversion/Git para controle de versão, Maven para build e dependências, Hudson para integração contínua e Nexus para gerenciamento de componentes.
3. O documento explica como essas ferramentas podem ser usadas em conjunto para implementar um sistema ALM completo de forma gratuita e de código aberto.
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
O documento discute a importância da qualidade de software e as técnicas para gerenciamento da qualidade, incluindo CMM, CMMI, MPS.BR e testes. A qualidade é essencial para a competitividade e requer processos bem definidos ao longo de todo o ciclo de desenvolvimento.
O documento discute técnicas para evoluir sistemas legados, incluindo redocumentação, refatoração, engenharia reversa e reengenharia. A rejuvenescimento de software é apresentada como uma estratégia para melhorar a qualidade do software e reduzir custos de manutenção ao longo do tempo.
O documento descreve a crise do desenvolvimento de software nas décadas de 1960 a 1980, citando problemas como demanda maior que a capacidade de desenvolvimento e maus projetos. Também apresenta modelos de processo como o ciclo de vida clássico, prototipagem e espiral, destacando seus benefícios e limitações.
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixCris Fidelix
Este documento descreve vários modelos de processos de desenvolvimento de software (PDS), incluindo:
1) O Método Crystal foca na gestão de pessoas e comunicação efetiva, variando de acordo com o tamanho da equipe e riscos do projeto.
2) O Rational Unified Process (RUP) utiliza UML, é baseado em casos de uso e centrado em arquitetura.
3) Clean Room é aplicado para softwares críticos e requer especificações formais devido à sua alta qualidade e baixo número de erros.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
O Visual Studio Summit 2016 é o maior evento sobre Visual Studio realizado no Brasil que está chegando a 5ª edição voltado para desenvolvedores de software que tem o objetivo de promover networking, apresentar tendências e principais estratégias atuais ligadas ao desenvolvimento de software na plataforma Microsoft usando Visual Studio, Azure e mobilidade. Durante o Keynote Ramon Durães abordou o tema transformação digital e DevOps.
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
O documento discute a automação de testes de software e a integração contínua. Ele apresenta diferentes tipos de testes que podem ser automatizados, como fumaça, unitário e de regressão. Ferramentas como Selenium e Hudson são descritas para auxiliar na automação e integração contínua. A integração contínua é definida como a prática de integrar frequentemente códigos desenvolvidos e executar testes automatizados para garantir a qualidade do software.
Qualidade de Software: Ferramentas de apoioAlex Camargo
O documento apresenta ferramentas de apoio ao desenvolvimento de software, incluindo Redmine para gerenciamento de projetos, Git para controle de versões e Read the Docs para documentação. Exemplos e exercícios são fornecidos para demonstrar o uso de cada ferramenta.
[1] O documento discute a filosofia de desenvolvimento de software e validação de software, com foco na qualidade do software. [2] Ele explica que a qualidade do software começa na fase de projeto e não pode ser testada, mas sim validada através do ciclo de vida do software. [3] O ciclo de vida do software inclui fases como definição, projeto, desenvolvimento, teste, instalação e manutenção.
Este documento apresenta os conceitos e ferramentas de sistemas de controle de versão, com foco no GIT. Apresenta os principais conceitos de VCS, como repositórios, commits e ramificações. Discute as características e comandos básicos do GIT e faz uma comparação com outros sistemas como Subversion, ClearCase e Mercurial. Por fim, apresenta um estudo de caso sobre o uso do GIT em um projeto de software.
O documento discute a entrega contínua. Ele apresenta os princípios da entrega contínua, incluindo a criação de um processo repetível e confiável para entrega de software, automação de tudo o que for possível, e envolvimento de todos os envolvidos no processo de entrega.
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
O documento discute tendências e dicas para o desenvolvimento de software. Ele aborda tópicos como por que desenvolver software é difícil, motivos de falha em projetos, linguagens populares, boas práticas como teste e integração contínua, metodologias ágeis, tendências como computação em nuvem e NoSQL e por fim dicas para desenvolvedores.
Fundamentos Engenharia de Software.pptxRoberto Nunes
O documento fornece uma visão geral da engenharia de software, discutindo sua definição, objetivos, evolução histórica, desafios, práticas e mitos relacionados. É apresentada uma introdução aos principais conceitos, incluindo processos de software, métodos, ferramentas CASE e perfis profissionais.
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
Slides do Minicurso ministrado pela ToolsCloud na Globalcode. Para se inscrever nas proximas turmas, acesse:
http://www.globalcode.com.br/gratuitos/minicursos/minicurso-introducao-a-alm-open-source
Para experimentar as ferramentas apresentadas no minicurso, você pode utilizar o ambiente de demonstração da ToolsCloud:
https://demo.toolscloud.net
User: toolscloud
Password: toolscloud
ToolsCloud -- As ferramentas que os desenvolvedores adoram, na nuvem!
Solução complete de ALM, open source e sem stress. Começe a usar no seu projeto hoje!
http://www.toolscloud.com
Este documento resume uma aula sobre processos de software. Apresenta conceitos como processo de software, modelos de processo de desenvolvimento de software, modelos de ciclo de vida como cascata e iterativos, além de linguagens, métodos e ferramentas CASE. O objetivo é introduzir os alunos aos principais elementos envolvidos no desenvolvimento de software.
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma ágil e com qualidade. Primeiro, explica os benefícios e desafios de micro serviços e abordagens de evolução e migração de legados. Em seguida, detalha estratégias como extrair dependências, transformar funcionalidades em serviços e usar Docker. Por fim, discute a importância da automação de testes funcionais e não funcionais para garantir a qualidade durante e após a migração.
O documento apresenta uma solução de Application Lifecycle Management (ALM) open source composta por ferramentas como Redmine, Subversion/Git, Maven, Nexus, Hudson/Jenkins. A pilha ALM descrita permite gerenciar todo o ciclo de vida de desenvolvimento de software de forma integrada e com baixo custo.
O documento descreve o processo Open Unified Process, que aplica uma abordagem iterativa e incremental ao ciclo de vida do desenvolvimento de software. O processo é baseado em princípios ágeis e foca na colaboração entre membros da equipe. Ele define fases como Iniciação, Elaboração, Construção e Transição, além de utilizar micro-incrementos e iterações para entregar valor de forma contínua.
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
1. O documento discute sobre ferramentas de gerenciamento do ciclo de vida de aplicações (ALM) de código aberto.
2. Ele apresenta diversas ferramentas como Redmine para gerenciamento de requisitos, Subversion/Git para controle de versão, Maven para build e dependências, Hudson para integração contínua e Nexus para gerenciamento de componentes.
3. O documento explica como essas ferramentas podem ser usadas em conjunto para implementar um sistema ALM completo de forma gratuita e de código aberto.
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
O documento discute a importância da qualidade de software e as técnicas para gerenciamento da qualidade, incluindo CMM, CMMI, MPS.BR e testes. A qualidade é essencial para a competitividade e requer processos bem definidos ao longo de todo o ciclo de desenvolvimento.
O documento discute técnicas para evoluir sistemas legados, incluindo redocumentação, refatoração, engenharia reversa e reengenharia. A rejuvenescimento de software é apresentada como uma estratégia para melhorar a qualidade do software e reduzir custos de manutenção ao longo do tempo.
O documento descreve a crise do desenvolvimento de software nas décadas de 1960 a 1980, citando problemas como demanda maior que a capacidade de desenvolvimento e maus projetos. Também apresenta modelos de processo como o ciclo de vida clássico, prototipagem e espiral, destacando seus benefícios e limitações.
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixCris Fidelix
Este documento descreve vários modelos de processos de desenvolvimento de software (PDS), incluindo:
1) O Método Crystal foca na gestão de pessoas e comunicação efetiva, variando de acordo com o tamanho da equipe e riscos do projeto.
2) O Rational Unified Process (RUP) utiliza UML, é baseado em casos de uso e centrado em arquitetura.
3) Clean Room é aplicado para softwares críticos e requer especificações formais devido à sua alta qualidade e baixo número de erros.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
O Visual Studio Summit 2016 é o maior evento sobre Visual Studio realizado no Brasil que está chegando a 5ª edição voltado para desenvolvedores de software que tem o objetivo de promover networking, apresentar tendências e principais estratégias atuais ligadas ao desenvolvimento de software na plataforma Microsoft usando Visual Studio, Azure e mobilidade. Durante o Keynote Ramon Durães abordou o tema transformação digital e DevOps.
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
O documento discute a automação de testes de software e a integração contínua. Ele apresenta diferentes tipos de testes que podem ser automatizados, como fumaça, unitário e de regressão. Ferramentas como Selenium e Hudson são descritas para auxiliar na automação e integração contínua. A integração contínua é definida como a prática de integrar frequentemente códigos desenvolvidos e executar testes automatizados para garantir a qualidade do software.
O documento discute DevOps e integração contínua na Microsoft Azure. Ele explica o que é DevOps, seus quatro pilares principais e como ferramentas como o Visual Studio Team Services, Web Apps e GIT podem ser usadas com a Azure para habilitar práticas ágeis como build e deploy automáticos.
Sbqs 2010 Processo de Teste de Software para ScrumEliane Collins
Este documento descreve a experiência de um projeto que utilizou automação de testes com Scrum. Ferramentas como Selenium foram usadas para automatizar casos de teste funcionais e encontrar defeitos de interface, principalmente entre navegadores. A automação proporcionou cobertura total de funcionalidades, encontrou novos problemas e economizou tempo na geração de relatórios.
O documento discute integração contínua, incluindo o que é, por que usar, ferramentas, testes, build, servidor de integração contínua e deploy. A integração contínua envolve integrar e testar código frequentemente para encontrar e corrigir bugs rapidamente e entregar atualizações de software de forma rápida e frequente. Ferramentas como Jenkins automatizam o processo de integração contínua.
DevOps é um movimento que prega a maximização da comunicação entre equipes de desenvolvimento e operações, além da automação da infraestrutura e monitoração do software. Isso traz benefícios como agilidade nos testes e ambientes confiáveis. Na abordagem DevOps, os testadores contribuem automatizando testes e infraestrutura, melhorando a qualidade e velocidade de entrega de software.
O GitLab é um gerenciador de repositórios baseado em Git. Suas ferramentas incluem um wiki, um gerenciador de tarefas e um pipeline de CI/CD, etc. O GitLab é similar ao GitHub, porém, por ser open source, pode ser armazenado em infraestrutura própria, além da versão em nuvem do mesmo, podendo ter repositórios públicos e privados.
GitLab Runner, o GitLab permite que você use o Runner, que é um projeto open source que é usado para executar os jobs e enviar os resultados de volta para o GitLab. Ou seja, ele nos permite buildar sem a necessidade de nenhuma instalação externa.
Veremos uma introdução de como tudo isso funciona.
DevOps é um movimento que prega a maximização da comunicação entre equipes de desenvolvimento e operações, além da automação da infraestrutura e monitoração de software. Isso traz benefícios como agilidade nos testes e ambientes confiáveis. Na abordagem DevOps, testadores contribuem automatizando testes e infraestrutura, melhorando a qualidade e velocidade de entrega de software.
O documento discute os conceitos e ferramentas de DevOps. Ele explica que DevOps visa alinhar processos entre equipes de TI para entregas rápidas através de configurações padronizadas e agilidade nas mudanças. Em seguida, descreve conceitos como integração contínua, delivery contínua e infraestrutura como código, além de ferramentas como Puppet, Git, Docker, Jenkins, Elasticsearch/Logstash/Kibana, JMeter e Vault.
A integração contínua é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho frequentemente, normalmente ao menos uma vez ao dia, para evitar erros e garantir que o software esteja funcionando a qualquer momento. Ferramentas como o CruiseControl automatizam o processo de compilação e teste sempre que novas alterações são integradas no código, fornecendo benefícios como menor esforço para integrar código e menor potencial de erros.
Roteiro
- O que é Entrega Contínua e DevOps?
- O que é Integração Contínua?
- Erros Comuns em Entrega de Software;
- Princípios de Entrega Contínua;
- Práticas em Arquitetura de Software;
1) O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma gradual e evolutiva.
2) É apresentada uma estratégia de extrair funcionalidades do monolito e transformá-las em serviços independentes de forma incremental, começando pelas dependências comuns.
3) O documento também discute a importância de automação de testes, principalmente testes funcionais entre serviços (End2End), no contexto da migração e adoção de micro serviços.
Brateste 2013: Testes Agile em Processos Agileananegrello
O documento discute os desafios de realizar testes em processos ágeis e como a virtualização de serviços pode ajudar a superar esses desafios. Ele explica que configurar ambientes de teste manualmente consome muito tempo e atrasa o desenvolvimento. A virtualização permite automatizar a configuração do ambiente de teste e integrar os testes de forma contínua, melhorando a colaboração entre times e permitindo que defeitos sejam encontrados e corrigidos mais rápido.
TDC 2013 7 Dicas para acelerar os testesFelipe Freire
1. O documento apresenta 7 dicas para acelerar os testes de software e entregar resultados efetivos, incluindo: dar foco aos testes mais críticos, antecipar a execução dos testes, versionar todos os artefatos, flexibilizar os ambientes de testes na nuvem, virtualizar serviços e ambientes, automatizar corretamente os testes e testar múltiplas configurações para aplicativos móveis.
Teste Contínuo de Integração e Virtualização de ServiçosRationalBrasil
1) O documento discute como garantir melhor qualidade de software através da evolução de testes para gerenciamento inteligente da qualidade, apresentando a solução IBM Rational de virtualização em testes.
2) A solução de virtualização em testes da IBM Rational permite a criação de serviços virtuais para simular sistemas e dependências durante os testes, reduzindo custos e riscos.
3) Ao capturar e modelar o comportamento dos sistemas, a solução possibilita testes contínuos e integrados em diferentes ambientes ao longo do cic
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseLuana Lobão
Artigo apresentado no X SBQS (2011)
Resumo: Este artigo descreve a experiência de desenvolver e aplicar um processo de teste para Data Warehouse visando o controle da qualidade de informações importantes em bancos de dados analíticos que servem de apoio às decisões. Durante o desenvolvimento de um Data Warehouse, os dados são manipulados de outras fontes de dados e possivelmente renormalizados, se ocorrer um erro durante esse processo as informações resultantes estarão comprometidas. Para reduzir esse risco, um processo de teste foi proposto, implementado e executado, os resultados obtidos mostraram os benefícios de utilizar técnicas de teste para prevenção de defeitos, reduzindo custos com correção e garantindo a integridade da informação.
O documento apresenta os conceitos e desafios da entrega de software, a visão da IBM para DevOps e como a computação em nuvem e a entrega contínua podem ajudar a superar esses desafios. A agenda inclui tópicos como desafios da entrega de software, DevOps, computação em nuvem, desenvolvimento para nuvem e entrega contínua na nuvem.
O documento apresenta os conceitos de Integração Contínua e como o CruiseControl.NET pode ser usado para implementá-la em projetos .NET. A Integração Contínua automatiza a compilação do código, execução de testes e geração de artefatos sempre que há novas alterações no código-fonte, melhorando a qualidade e produtividade. O CruiseControl.NET verifica periodicamente um repositório de código-fonte por novas alterações e dispara builds, armazenando logs e resultados para que os desenvolvedores possam cor
O documento discute os conceitos de CI/CD, como automação contínua do ciclo de vida de aplicações, incluindo testes, entrega e implantação. Também aborda como implementar CI/CD na prática com ferramentas como Jenkins, Docker Swarm e Github, destacando que requer processo de desenvolvimento eficiente, equipe madura e infraestrutura de monitoramento.
Semelhante a Implantação de Ambiente de Integração contínua para projeto que usa Java e C (20)
O documento discute práticas ágeis para testes móveis. Apresenta desafios como a variedade de dispositivos e a urgência do mercado. Recomenda práticas como colaboração entre times, teste de aceitação antecipado e automação de testes para permitir o desenvolvimento ágil de aplicativos móveis.
Teste para dispositivos móveis apresentação pra ufam -elianeEliane Collins
Este documento apresenta informações sobre testes para dispositivos móveis, incluindo ferramentas como Robotium e MonkeyRunner. O documento discute desafios e boas práticas para automação de testes em aplicativos móveis, além de apresentar exemplos práticos de uso das ferramentas Robotium e MonkeyRunner.
Scrum gathering Paris 2013 - test automation strategy for Scrum ProjectsEliane Collins
This document discusses test automation strategies and practices for Scrum projects. It describes four case studies of different test automation approaches used by teams. The key lessons were that separate testing and development teams led to lack of collaboration and knowledge sharing. The most successful strategy involved developers and testers working together to automate unit, integration and system tests using tools like JUnit and FitNesse. Having the team collocated and doing pair programming for test automation resulted in improved coverage, fewer bugs found per story, and motivation to learn new solutions. The conclusion is that collaboration is important for successful agile test automation.
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012Eliane Collins
Este documento discute testes de software ágil, definindo testes de software, comparando processos tradicionais e ágeis, explorando o papel do testador ágil e desafios do teste ágil.
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsEliane Collins
1. The document describes an iterative software testing process used for Scrum and Waterfall projects at the Nokia Technology Institute.
2. The process involves test planning, specification, execution and reporting using open source tools like TestLink, Mantis, Selenium, and Marathon. Automated tests were created to test web and desktop applications.
3. The process was applied to two projects - a customer survey system using Scrum and a factory production monitoring system using Waterfall. Test activities were broken into iterations to prioritize testing of key features. Automation helped improve test coverage, efficiency and catch defects earlier.
Ast 2012 - Practices for Test Automation in Scrum ProjectsEliane Collins
This document discusses software test automation practices in agile development environments based on an industry experience report. It describes two projects where automated testing was implemented, including challenges faced and lessons learned. The key lessons are that collaboration between testers and developers is essential for test automation success, testing tools must fit the test strategy and agile method, and automation of different test layers can reduce risks if implemented early.
Strategies for agile software test automationEliane Collins
The document discusses strategies for agile software test automation based on an industrial experience. It describes three strategies used: 1) testers automating unit and system tests, 2) developers automating unit tests and testers automating system tests, and 3) a collaborative strategy where automation tasks are shared. The collaborative strategy was found to have the most benefits, including improved test automation, early security and load testing, intense team collaboration, and knowledge sharing. Lessons learned are that collaboration supports agile test automation success and automation should be layered, simple, reusable and maintainable.
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
1. Simpósio Brasileiro de Qualidade de Software - SBQS
QUALIDADE
Instituto Nokia de Tecnologia Unit Test
Bug
Sucess
INdT
Melhoria no Desenvolvimento Ágil com Implantação
de Processo de Integração Contínua Multiplataforma
para Java e .NET
AGILIDADE
SELENIUM
Verificação Hudson
Eliane Collins, Thiago Falcão, Rafael Cunha e Vicente Lucena
SCRUM Curitiba, Jun 2011
2. Agenda
1. Introdução
2. Contexto do Ambiente
3. Processo
Multiplataforma de
Integração Contínua
4. Execução e Resultados
5. Conclusão
Company Confidential
4. INTRODUÇÃO
Crescente adoção de metodologias ágeis para o
desenvolvimento de software.
Técnicas e estratégias estão sendo pesquisadas para garantir a
qualidade e confiabilidade dos sistemas desenvolvidos.
A integração contínua se destaca ganhando importância por
proporcionar informações que dizem respeito à qualidade
durante o desenvolvimento de maneira automática e contínua.
Company Confidential
4
5. INTRODUÇÃO
O Processo de Integração Contínua é a prática no onde toda
equipe deve integrar seu trabalho sempre a cada alteração.
Cada integração é verificada, testes unitários e de aceitação
são executados para detectar defeitos o mais rápido possível.
É possível reduzir problemas de integração, controlar versões
estáveis do sistema e permitir que o time desenvolva
rapidamente um software coeso
Company Confidential
5
6. INTRODUÇÃO
Vantagens conhecidas da Integração Contínua:
A redução de riscos obtida através da detecção e correção de defeitos
mais cedo.
Automação de processos manuais e repetitivos (compilação,
integração de base de dados, teste, inspeção, distribuição e feedback).
Permitir uma melhor visibilidade de projeto (estatísticas reais e
recentes fornecidas nos relatórios gerados ).
Verificações automáticas de cobertura, validação de padrões de
design de código e padronização.
Company Confidential
6
9. CONTEXTO DO AMBIENTE
Instituto Nokia de Tecnologia – INdT
É uma instituição independente e sem fins lucrativos comprometida
com a realização de pesquisa e desenvolvimento de soluções
tecnológicas através do desenvolvimento de aplicações, novas
tecnologias e conceitos.
A área onde a experiência foi desenvolvida foi Tecnologias de Produto
e Manufatura (PMT).
Company Confidential
9
10. CONTEXTO DO AMBIENTE
SCRUM
Metodologia ágil e flexível, centrada no trabalho em equipe;
Utilizada para o desenvolvimento incremental e iterativo de
qualquer produto
Company Confidential
10
11. CONTEXTO DO AMBIENTE
Projeto Piloto
Realizar a manutenção preventiva de equipamentos que são
utilizados ininterruptamente na produção de uma fábrica de produtos
eletrônicos.
O sistema deveria se comunicar com equipamentos da linha de
produção.
Evitar a substituição prematura de uma peça ou a parada de linha de
produção devido ao desgaste intensivo do equipamento.
Diminuir os custos com a manutenção dos equipamentos de
produção.
Comunicar-se com outros sistemas de produção, com isso utilização
de diferentes tecnologias em seu desenvolvimento.
Company Confidential
11
12. CONTEXTO DO AMBIENTE
Projeto Piloto
3 módulos de desenvolvimento: um cliente web na plataforma Java
usando um servidor JBoss;
O segundo e o terceiro: um webservice e um serviço na plataforma
.NET executando em um servidor Internet Infomation Services (IIS).
Os módulos necessitavam comunicar-se entre si.
Necessária a realização da integração entre os módulos.
Não era interessante que cada integrante da equipe executasse os
testes unitários em todo o sistema.
Se perderia muito tempo com erros de integrações e testes manuais.
Company Confidential
12
14. PROCESSO Multiplataforma de Integração Contínua
O processo deveria fazer parte da metodologia ágil Scrum.
Primeira Etapa: Avaliar frameworks de integração contínua
disponíveis no mercado.
CruiseControl.Net:
Ferramenta proprietária e difícil configuração em xml.
Não possui muitos pluggins.
Hudson
Company Confidential
14
15. PROCESSO Multiplataforma de Integração Contínua
Hudson Vantagens:
Ferramenta livre,.
Interface amigável e simples de configurar
Configuração do ambiente de teste – segundo sprint
Possui plug-ins, os quais facilitaram a integração com outros
softwares e plataformas que seriam usados no projeto.
Junit
Nunit
Subversion (SVN)
MSBuild.
Selenium
…
Company Confidential
15
17. PROCESSO Multiplataforma de Integração Contínua
Para o módulo do sistema em Java, foi utilizado Apache Ant.
Criado um XML responsável por compilar todo o código escrito em
Java, executar os testes unitários usando JUnit, empacotar o arquivo, e
finalmente enviá-lo para o servidor JBoss através da ferramenta
Hudson.
Para o módulo do sistema na plataforma .NET foi utilizado o
Microsoft MSBuild.
Criado um arquivo MSBuild responsável por compilar o código escrito
em .NET, executar os testes unitários usando NUnit, e finalmente,
executar a distribuição.
Distribuição: Republicar e reiniciar a nova versão do webservice no
servidor IIS, como também republicar e reiniciar a nova versão do
serviço Windows.
Company Confidential
17
18. PROCESSO Multiplataforma de Integração Contínua
As duas plataformas trabalhavam paralelamente e
integradas por causa das várias compilações, testes e
distribuições diárias.
Quando ocorriam erros de compilação no servidor de
integração contínua a correção ou retorno era prioritário
Impedimentos não poderiam ser gerados para não
atrapalhar o desenvolvimento do restante da equipe.
Company Confidential
18
19. PROCESSO Multiplataforma de Integração Contínua
Arquitetura do Processo de Integração Contínua
Multiplataforma:
Company Confidential
19
21. Execução do Processo e Resultados
Sprint Planning
A estimativa das estórias levavam em consideração a codificação dos
testes unitários e a integração do código tanto para o módulo .NET
como para o módulo Java.
Sprint
Os desenvolvedores codificavam os testes unitários usando JUnit e
Mockito para a plataforma Java e NUnit e MOQ para a plataforma .NET.
Ao final de cada dia, o time tinha que enviar o código trabalhado para
o repositório (SVN)
Hudson detectava e executava os scripts do Ant, no caso do módulo
Java e MSBuild no caso do módulo .NET
Compilavam, executavam os testes, empacotavam o código e
enviavam a versão do software estável para o servidor de destino
Company Confidential
21
22. Execução do Processo e Resultados
Quando a ferramenta Hudson detectava falhas em qualquer passo
desse processo, o script (Ant ou MSBuild) era interrompido.
A versão não era enviada para o servidor de destino e todo time
recebia um e-mail com o relatório sobre as falhas encontradas.
É possível visualizar e das ações executadas por cada membro do
time, identificando o autor de cada mudança.
Company Confidential
22
23. Execução do Processo e Resultados
Resultados
No fim do Sprint obtinha-se uma entrega de software estável para ser
validada pela equipe de teste para validar o critério de aceitação.
Em 10 Sprints de projeto foram geradas 140 builds para o módulo
Java e 283 builds para o módulo .NET.
Company Confidential
23
24. Execução do Processo e Resultados
Resultados
Conforme o processo era executado, a cobertura de testes aumentava
e a incidência de falhas no software diminuía.
Isso ocorreu porque o ambiente automatizado propiciou mais
facilidade na confecção e execução de testes unitários e com isso
aumentar a qualidade do código gerado.
Company Confidential
24
25. Execução do Processo e Resultados
Resultados Atuais
Integração com a ferramenta de cobertura de código.
Company Confidential
25
26. Execução do Processo e Resultados
Resultados Atuais
Integração com a Ferramenta Selenium para testes de aceitação
automáticos.
Company Confidential
26
28. CONCLUSÃO
Este processo de integração contínua possibilitou testes automatizados,
uma distribuição rápida e versões do software atualizadas e estáveis.
Os desenvolvedores das plataformas Java e .NET ficaram focados somente
no desenvolvimento em sua respectiva tecnologia.
A equipe de testes foi beneficiada, pois as versões de software para teste
se tornaram mais estáveis e sem defeitos de integração e implementação.
Melhorias: Evoluir o ambiente para inspeção e padronização do código. E
melhorar a automação dos testes de aceitação.
Company Confidential
28