Ci&T SPIN – Campinas - 2009 Equipe de testes em projetos com CI e TDD.

Slides:



Advertisements
Apresentações semelhantes
Agilidade em um Contexto Hostil
Advertisements

Behaviour-Driven Development em Ruby
Desenvolvimento de Plug-ins Orientado a Testes
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Implantação e implementação de recursos do SQL Server 2005 Publicado em: dezembro de 2005 Migração para o SQL Server 2005 na Microsoft.
Débora da Silva Orientadora: Maria Inés Castiñeira
Análise e Projeto de Sistemas I
Tópicos Motivação para teste Por que algumas empresas não testam
Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.
FACULDADE DOS GUARARAPES
Desenvolvimento Guiado por Testes
O que é ? Subversion (ou svn) é um sistema de controle de versão criado para substituir o CVS. Ele permite que você recupere versões antigas de seus arquivos,
Engenharia de Software
Tutorial Coordenador de Curso no Moodle Política de Segurança da Informação Paulo Fernando da Silva Tracker Segurança da Informação
Gerência de Configuração
Gerência de Configuração de Software
Internet Computadores Interligados pelo mundo inteiro. Arquitetura Cliente – Servidor Esta é a Arquitetura que rege o mundo da internet. Quando você acessa.
Test-Driven Development
TRIBUNAL DE JUSTIÇA DE PERNAMBUCO DIRETORIA DE INFORMÁTICA Workshop de Testes PROSOFT Setembro/ 2010 Daniel Leitão Juliana Xavier.
Linguagem Técnica II Testes Automatizados Aula 04 Prof
Aferindo a qualidade do serviço com testes de desempenho Igor Abade V.
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
Engenharia de Software
Ciclo de Vida de Sistemas e
Visão Geral PRO.NET.
Introdução a Computação Trabalho Final PUC Minas – São gabriel
O Fluxo de Implementação
Concurrent Versions System Leandro Augusto de Oliveira
Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida.
Branch & Merge Claudio Leite.
Test Driven Development por Johann Gomes e Thaís Moura.
Objetivos das Atividades de Implementação • Implementar as classes do modelo de projeto em termos de componentes (código fonte ou executável, etc.) •
Fabíola Guerra Nakamura Vitor Alcântara Batista
Tribunal de Justiça de Pernambuco
Um Framework Para Testes
MVP Virtual Conference 2013
Henrique Gabriel Gularte Pereira
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
1 Test Driven Development John Jonathan da Silva /
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Tutorial de Utilização.
METODOLOGIAS ÁGEIS TESTES UNITÁRIOS.
The Avengers Testers Team. Diraci Junior Trindade da Silva Analista de Qualidade CWI Software Coordenador do GUTS-rs
Paulo Oliveira – phslfo Victor Acioli - vaca 11/05/2010.
Especificação em Projeto de Sistemas
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE – PDS VALIDAÇÃO.
S ISTEMA DE C ONTROLE DE V ERSÃO : B AZAAR Carolina Ramalho Priscilla Gonçalves.
André Silva Rodrigues Diretor de Tecnologia. O que é subversion? Como subversion funciona? 12/4/2015WorkSet Indo 2 Introdução.
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Automação de Testes de Software
Conceitos Básicos Introdução.
SCRUM Processo de Desenvolvimento de Software
 O que são ‘drivers do computador’ ? (no sentido de arquivos que permitem que o sistema operacional acesse os recursos de hardware)  Drivers são arquivos.
José de Arimatea - jarn José Luiz - jlcn 20/01/2013.
Apresentação Fábrica IESolutions
© 2013 IBM Corporation Walter Farias – IBM Client Technical Professional DevOps Entrega contínua de inovação orientada à software.
O que é Domain Driven Design Especificação Design Refactor Testes Quanto tempo isso leva?
Engenharia de Software
Backlog Lílian.
Automação de Testes: Ferramentas e Aplicação com Integração Contínua, Tipos e Exemplos Rogério dos Reis Brito
Controle de Versão com SubVersion
CVS – Gerenciamento de Versões
Universidade Federal de Pernambuco Integração Contínua Rafael Vanderlei de Souza 13/10/2008 Programa de Mestrado em Ciência da Computação.
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Ferramentas e Tecnologias para o Trabalho Distribuído e Colaborativo
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína XP (EXTREME PROGRAMMING) Pós-Graduação em Engenharia de Software Metodologias.
Gerência de Configuração Processo, Mantis, Plano e Auditoria.
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Utilizando subversion como controle de versão
Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza 06/12/2008 Programa de Mestrado em Ciência.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Transcrição da apresentação:

Ci&T SPIN – Campinas Equipe de testes em projetos com CI e TDD

Gabriela Patuci Experiência de 5 anos em Testes de Software Analista de Testes na Ci&T Campinas Formada em TI pela UNICAMP Cursando disciplinas de mestrado na UNICAMP

Agenda CI – O que é? CI – Benefícios CI – Por que usar? CI – Exemplo de Fluxo de Atividades TDD – O problema TDD – Testes Tradicionais X TDD TDD – Como fazer? TDD – Correção de Bugs Dúvidas Referências CI (Continuous Integration)

O que é? Prática do Desenvolvimento de Software onde os membros do time integram seu trabalho frequentemente (várias integrações diárias). Cada integração é verificada em uma build automática (incluindo testes) para detectar erros de integração o mais rápido possível.

CI (Continuous Integration) Benefícios Redução de riscos; Maior facilidade para encontrar e remover erros; Feedback mais rápido para novas features; Ambiente mais colaborativo no ciclo de desenvolvimento;

CI (Continuous Integration) Por que usar? Mantém um único repositório do código; Automatiza a build; Todo mundo faz commit todo dia; Mantem a build rápida; Testes feitos num clone do ambiente de produção; Fica fácil para qualquer um ter a última versão executável; Todos podem ver o que está acontecendo; Desenvolvimento automatizado.

CI (Continuous Integration) Exemplo de Fluxo de Atividades: 1. O desenvolvedor cria o código. 2. Comita o código. 3. Um script procura por todo o código comitado, gera uma build e a instala na CI Machine. Durante este processo, os testes unitários são rodados. 4. Se tudo estiver ok, o engenheiro deve adicionar uma tag ao arquivo (QA tag), senão, corrigir o código e voltar ao passo 2.

CI (Continuous Integration) Exemplo de Fluxo de Atividades: 5. Um push no ambiente de QA (QA build) é feito automaticamente ao fim do dia, ou quando for solicitado. Um script procura por todos os arquivos comitados e com a QA tag e gera a build. 6. Após a build ser gerada, solicita-se a um QA Engineer para instalar a build no ambiente de QA. 7. Depois da instalação, o QA Engineer pode começar seus testes. 8. Se bugs (P1 or P2) forem abertos, eles devem ser corrigidos durante a sprint. Se tudo estiver ok, a última QA build pode ser instalada em produção.

TDD (Test Driven Development) Barato Bom Rápido O Problema

NO SILVER BULLET TDD (Test Driven Development)

No entanto, com a Atividade de Testes... - Mais barato, - Mais rápido, - Melhor! TDD (Test Driven Development)

Apenas com Testes Tradicionais: Design Implementação Teste TDD (Test Driven Development)

Usando TDD: Design Implementação Testes TDD (Test Driven Development)

Como Fazer? - Design : Descobrir o que vc realmente precisa. - Testes : Escreva um teste que expresse o que foi decidido na etapa de Desing. - Implementação : Escreva o código. - Testes : Rode o teste criado. Este teste DEVE passar. TDD (Test Driven Development)

Escreva uma vez, Rode muitas! - Escreva os testes, - Guarde em local de fácil acesso, - Rode frequentemente (um click), - Não devem ter mais interferência, - Armazene os resultados (logs). TDD (Test Driven Development)

Correção de BUGS Abertura de Bugs Correção dos Bugs Testes TDD (Test Driven Development)

TDD em Correção de Bugs - Pegue um pedaço de código (que está quebrando), - Crie um teste no qual ele deva passar (baseado nos requisitos), - Rode o teste (este teste NãO vai passar), - Corriga o código para passar neste teste, - Rode o teste novamente (agora SIM!) TDD (Test Driven Development)

- Kirrily Robert Referências

? Dúvidas

Obrigado! Ci&T is a symbol of innovation in outsourcing

Copyright (C) Ci&T Software S.A. – Todos os direitos reservados. Todos os nomes e produtos são usados apenas com o propósito de identificação e são marcas registradas de seus respectivos proprietários.