Desenvolvimento de Software de Qualidade através de Testes Automatizados Paulo Cheque Cursos de.

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Plug-ins Orientado a Testes
Advertisements

Test Driven Development por Johann Gomes e Thaís Moura.
REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado.
1 Test Driven Development John Jonathan da Silva /
Testes de Interface de Usuário AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Do NADA ao MONUMENTAL ao ÁGIL Marco Santiago [ março | 2009 ] Baseado no material de Paulo Pereira.
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Hugo Corbucci.
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Mariana Bravo.
Estratégias de Escrita de Testes Automatizados Paulo Cheque Cursos de Verão 2010 Licença: Creative.
Introdução a Testes Automatizados AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Padrões de Testes Automatizados Curso de Verão IME/USP Hugo Corbucci
Desenvolvimento de Software de Qualidade através de Testes Automatizados Fabio Kon e Paulo Cheque Departamento de Ciência de Computação IME/USP 9/2/2009.
Testes Automatizados Paulo Cheque 27/01/2009 Verão 2009.
Desenvolvendo Software com Qualidade e Agilidade Hugo Corbucci AgilCoop DCC - IME - USP
Qualidade de Código Mantendo o seu Projeto de Software Livre sob Controle Antonio Terceiro Junho/2009 softwarelivre.org/terceiro.
Sistema Web para Gerenciamento SNMP de Impressão Terceirizada da FURB Rodrigo Antonio Müller Orientador: Francisco Adell Péricas.
EA976 – Engenharia de Software AULA 4 Desenvolvimento Ágil.
Refatoração: Melhorando código existente AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Introdução a Testes Automatizados Cursos de Verão 2008 – IME/USP Paulo Cheque.
Testes Automatizados e Bancos de Dados Paulo Cheque Cursos de Verão 2010 Licença: Creative Commons:
EA976 – Engenharia de Software AULA 30 Manutenção Pós-Entrega.
Tracking – Acompanhamento de Projetos Ágeis Curso de Verão 2007 – IME/USP Danilo Sato & Mariana Bravo.
Recuperação de Arquitetura de software Servidores de aplicação J2EE Michelet del Carpio 22/9/ DSL.
Programação Extrema e outras práticas para elaboração de software Hugo Corbucci AgilCoop DCC - IME - USP
Qualidade de Software Aula 5 Prof. Dr. Luís Fernando Garcia
Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2008 – IME/USP Mariana Bravo & Hugo Corbucci.
ITIL (Information Technology Infrastructure Library) Profª Cynara Carvalho.
SOFTWARE DE GERENCIAMENTO DE LIBERAÇÃO E ATUALIZAÇÃO DE VERSÃO EDUARDO SIEMANN ORIENTADOR: JHONY ALCEU PEREIRA.
Introdução à Programação eXtrema (XP) Cursos de Verão IME/USP Mariana Bravo e Hugo Corbucci Departamento de Ciência da Computação.
 1. Introdução e Objetivos  2. Fundamentação Teórica  3. Especificação do Sistema  4. Desenvolvimento e Operacionalidade  5. Resultados e Conclusões.
Testes de Unidade Curso de Verão IME/USP Hugo Corbucci
Lucas F. Arantes. Sobre o Moodle Após trabalhar com WebCT na universidade de Curtin University – Australia 1999 iniciou o desenvolvimento do protótipo.
Implantando um ERP com sucesso Sistemas de Gestão Integrada - ERP Juliana Maria Lopes Alexandre Moya João Roberto Magazoni 27LI – Julho 2005.
Desenvolvimento Dirigido por Testes (TDD)
Qualidade de Software Aula 4
Família Crystal e Iconix
Olá sou Willian Marques, natural de Minas Gerais que atualmente mora na cidade São Paulo. Programador.
RESPOSTAS A INCIDENTES E PLANO DE CONTINUIDADE DE NEGÓCIOS
Desenvolvimento Ágil de Software
Capítulo 3 Desenvolvimento Ágil de Software
Benefícios das Novas Tecnologias em Relações com Investidores
Planta Manaus. Planta Manaus Planta Manaus Agenda: Qualidade hoje e amanha Atendimento de Demanda Melhoria dos Custos Inovação Nova Estrutura Organizacional.
Prof. Me. Christiano Lima Santos
PROCESSOS DE GERENCIAMENTO DE PROJETOS
Desafio Embalagem Desenvolvedores:
Testes de Usabilidade.
Gustavo Trauttmann, Willian Jardim e Jean Stragalinos.
Orientanda: Ana Paula Joslin de Oliveira
Processos de Design de IHC
Fatores e Métricas de Qualidade
Workshop Agile tdd - Test Driven development
Desenvolvimento de Software de Qualidade através de Testes Automatizados 09/02/2009 Verão h.
Testes de Software - CCT0103
Revisão Requisitos e Casos de Uso
Desenvolvimento em Camadas
GSI030 – engenharia de software
MBA em Gestão de Projetos
Metodologias de Desenvolvimento de Software Orientado a Objetos
Capítulo 8 Testes de Software
GSI030 – engenharia de software
Gerência de Configuração
Regras de negócio loucas e imprevisíveis
A Importância da Segurança de Endpoints Jymmy Barreto Mestre pelo Centro de Informática - UFPE.
Programação eXtrema Desenvolvendo Software com Qualidade e Agilidade
Conceitos gerais de Usabilidade e Navegabilidade
Apresentação dos Softwares REP Fábio Rocha
S.O.L.I.D.
Conceitos de S.O.L.I.D. com músicas do Tim Maia
ADASOFT SERVIÇOS E TECNOLOGIA Sabemos fazer. Fazemos acontecer!
Desenvolvimento orientado a teste, isso funciona mesmo?
Transcrição da apresentação:

Desenvolvimento de Software de Qualidade através de Testes Automatizados Paulo Cheque Cursos de Verão 2010 Licença: Creative Commons: Attribution-Share Alike 3.0 Unported

2 Erros de Software Erros de software custam cerca de US$59,5 bi à economia dos Estados Unidos Fonte: NIST/

3

4 Como Melhorar a Qualidade? Identificação de erros: Departamentos de Homologação Controle de Qualidade Análises Formais Feedback de usuários: Versões alfa e beta Produção Prevenção de erros Desenvolvimento com qualidade

5 Como utilizar o tempo? “Inspecionar para procurar defeitos é desperdício, inspecionar para prevenir defeitos é essencial” Shigeo Shingo Objetivos: Reduzir tempo gasto com depuração Aumentar tempo gasto com verificação

6 Práticas de Verificação Abordagens tradicionais Revisão de código Inspeção de documentos Testes manuais Abordagens caras e complexas Análises formais Abordagens ágeis Programação em pares Testes Automatizados

7 Testes Manuais Difícil de repetir, lentos e chatos Poucos casos de testes simples Executado poucas vezes Documentação inexistente ou obsoleta Erros de regressão

8 Testes Automatizados TODOS testes podem (devem) ser executados a qualquer momento Certificação do que foi testado Seguro para manutenção Reprodutibilidade: facilita identificação de erros Casos complexos

9 História (1/2) Até 1956 – Orientado a depuração – Orientado a demonstração – Orientado a destruição – Orientado a avaliação 1988-???? - Orientado a prevenção (1988)

10 História (2/2) 1959/1963 – NASA: Projeto espacial Mercúrio 1989 – FIT-Like Framework 1991 – Taligent Framework 1994 – SUnit 1998 – JUnit 2002 – Test Driven Development by Example

11 Hoje

12 Hoje...  Java/Maven  Ruby/Rails  Groovy/Grails  Scala/Lift 

13 Tendências Muitos software livres de qualidade Diversidade de ferramentas DSL para testes Otimização dos testes Grades Computacionais (Selenium-Grid) Testes Contínuos (JunitMax) Novas métricas: cobertura, testabilidade … Estratégias, padrões e anti-padrões Geração de casos de testes

14 Academia e Indústria Pesquisas em métodos ágeis Pesquisa em automação de testes Cursos Internet: Blogs, wikies, listas, forums

15 Pesquisa: AgilCoop - CNPq

16 Resistência Mudanças culturais são difíceis de serem realizadas Pessoas não aceitam mudanças com tranquilidade, mesmo quando há falhas recorrentes com o trabalho Falta de evidência que novos métodos funcionam servem de desculpa É necessário testar (ágil, testes) na prática!

17 Métodos Ágeis e Testes Automatizados Desenvolvimento incremental Manutenção constante Refatorações Design incremental Pequenos releases Foco no time Código compartilhado Integração contínua Involvimento real com clientes e usuários

18 Software Livre Time Donos de projetos Colaboradores Contribuições Distantes Pessoas desconhecidas Heterogêneas É seguro sem testes automatizados?

19 Qualidade?

20 Software de Qualidade Correção Robustez Eficiência Segurança Durabilidade Flexibilidade Portabilidade Manutenibilidade Beleza Usabilidade Acessibilidade...

21 Correção Evitando StackOverFlow Qualquer erro é desastroso

22 Eficiência Desempenho/Estresse/Carga Como simular manualmente grande quantidade de dados/usuários? Como medir o tempo? Quando buscar gargalos? A maioria das ferramentas de testes automatizados fornecem o tempo de execução.

23 Segurança Atualização de servidores precisa executar todos os testes novamente Mudanças de queries, interface... precisa executar todos os testes novamente Erros de regressão são testados? precisam ser!

24 Durabilidade Software sem manutenção morre “Não mexe porque está funcionando” “Não funciona mas acho melhor deixar assim pois se formos mexer piora” Erros inibem os usuários Ciclo de erros de regressão corrige um erro e adiciona mais três

25 Usabilidade Teste de interface Ainda há poucas ferramentas Heurísticas de Interação Humano-Computador

26 Portabilidade Sistemas Operacionais, Navegadores...

27 Flexibilidade TDD: Test-Driven Development/Design Single Responsibility Principle (SRP)‏ Open Closed Principle (OCP)‏ Liskov Substitution Principle (LSP)‏ Interface Segregation Principle (ISP)‏ Dependency Inversion Principle (DIP)‏

28 Robustez Confiabilidade para mudanças Testes em diversas plataformas Maior Flexibilidade

29 Manutenibilidade Refatoração / Otimização Correção Adição de novas funcionalidades Não encosta no que está funcionando! É só colocar um if(obj != null)!

30 Acessibilidade Testes de interface Teclado Mouse Testes de layout Tamanho das letras

31 Beleza Designers trabalham com a interface Layout

32 Recapitulando Testes Manuais Testes Automatizados História Métodos Ágeis Software Livre Qualidade

33 Palavras Finais “Qualquer funcionalidade sem testes automatizados não existe” Kent Beck

34 Contato Licença: Creative Commons: Attribution-Share Alike 3.0 Unported