SlideShare uma empresa Scribd logo
1 de 23
Testes Automatizados
Sandy Maciel
Christopher Alexander
-Notes on the Synthesis of Form, The
Timeless Way of Building
- A Pattern Language
 Encapsulamento
 Generalidade
 Equilíbrio
 Abstração
 Abertura
 Combinatoriedade
 Nome
 Exemplo
 Contexto
 Problema
 Solução
 1987 - Kent Beck e Ward Cunningham
 1995 - Erich Gamma, Richard Helm, Ralph
Jonshon e Jonh Vlissides
 Posteriormente, surgiram os outros padrões
- GoF
- GRASP
 Padrões de criação : relacionados à criação
de objetos
 Padrões estruturais : tratam das associações
entre classes e objetos.
 Padrões comportamentais : tratam das
interações e divisões de responsabilidades
entre as classes ou objetos.
 Especialista na Informação
 Criador
 Controlador
 Acoplamento fraco
 Alta coesão
 Polimorfismo
 Indireção
 Variações Protegidas
Padrão de projeto para organização de
testes funcionais
 Esse padrão propõe criar um objeto para
cada página web e utilizar a orientação
objeto, onde guardaremos em cada classe os
atributos e métodos (como campos e ações
de cada página).
 O primeiro teste, geralmente, é o mais
longo pois não temos nenhum objeto criado.
Objetos
 Maior independência entre os teste;
 Maior aproveitamento de código;
 Quantos mais testes são criados, mais
rápido fica a confecção de novos testes;
 Menor necessidade de refatorar ou debugar
código, pois defeitos aparecerão na
execução dos testes.
 http://www.dextra.com.br/page-objects-
padrao-de-projeto-para-organizacao-de-
testes-funcionais/

 WIKIPEDIA.COM
Padrões de Projeto
Padrões de Projeto

Mais conteúdo relacionado

Destaque

User Experience - UX
User Experience - UXUser Experience - UX
User Experience - UXSandy Maciel
 
Testes de Desempenho
Testes de DesempenhoTestes de Desempenho
Testes de DesempenhoSandy Maciel
 
Trello - Uma visão geral
Trello - Uma visão geralTrello - Uma visão geral
Trello - Uma visão geralSandy Maciel
 
Introdução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareIntrodução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareWillian Carminato
 

Destaque (6)

User Experience - UX
User Experience - UXUser Experience - UX
User Experience - UX
 
Testes de Desempenho
Testes de DesempenhoTestes de Desempenho
Testes de Desempenho
 
Trello - Uma visão geral
Trello - Uma visão geralTrello - Uma visão geral
Trello - Uma visão geral
 
android
androidandroid
android
 
Introdução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareIntrodução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de Software
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 

Semelhante a Padrões de Projeto

Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de ProjetoEduardo Mendes
 
pec-12-patterns-intro.ppt
pec-12-patterns-intro.pptpec-12-patterns-intro.ppt
pec-12-patterns-intro.pptssuser7025cf
 
Representação do conhecimento (rc)
Representação do conhecimento (rc)Representação do conhecimento (rc)
Representação do conhecimento (rc)iaudesc
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfAndreCosta502039
 
Testes de unidade
Testes de unidadeTestes de unidade
Testes de unidadeLucas pk'
 

Semelhante a Padrões de Projeto (9)

Padrões de design orientado a objetos
Padrões de design orientado a objetosPadrões de design orientado a objetos
Padrões de design orientado a objetos
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de Projeto
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
pec-12-patterns-intro.ppt
pec-12-patterns-intro.pptpec-12-patterns-intro.ppt
pec-12-patterns-intro.ppt
 
Sld 4
Sld 4Sld 4
Sld 4
 
Representação do conhecimento (rc)
Representação do conhecimento (rc)Representação do conhecimento (rc)
Representação do conhecimento (rc)
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
Testes de unidade
Testes de unidadeTestes de unidade
Testes de unidade
 
Design pattern
Design patternDesign pattern
Design pattern
 

Mais de Sandy Maciel

QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareSandy Maciel
 
Protagonismo feminino nos jogos
Protagonismo feminino nos jogosProtagonismo feminino nos jogos
Protagonismo feminino nos jogosSandy Maciel
 
Trabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopTrabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopSandy Maciel
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumSandy Maciel
 
Mercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarMercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarSandy Maciel
 
Jogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKJogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKSandy Maciel
 

Mais de Sandy Maciel (8)

QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
Protagonismo feminino nos jogos
Protagonismo feminino nos jogosProtagonismo feminino nos jogos
Protagonismo feminino nos jogos
 
Trabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopTrabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF Plop
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
Telegram Bot
Telegram BotTelegram Bot
Telegram Bot
 
Gamification
GamificationGamification
Gamification
 
Mercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarMercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficar
 
Jogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKJogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDK
 

Padrões de Projeto

Notas do Editor

  1. Padrões são melhores práticas formalizadas que o programador pode usar para resolver problemas comuns quando projetar uma aplicação ou sistema
  2. Encapsulamento: um padrão encapsula um problema ou solução bem definida. Ele deve ser independente, específico e formulado de maneira a ficar claro onde ele se aplica. Generalidade: todo padrão deve permitir a construção de outras realizações a partir deste padrão. Equilíbrio: quando um padrão é utilizado em uma aplicação, o equilíbrio dá a razão, relacionada com cada uma das restrições envolvidas, para cada passo do projeto. Uma análise racional que envolva uma abstração de dados empíricos, uma observação da aplicação de padrões em artefatos tradicionais, uma série convincente de exemplos e uma análise de soluções ruins ou fracassadas pode ser a forma de encontrar este equilíbrio. Abstração: os padrões representam abstrações da experiência empírica ou do conhecimento cotidiano. Abertura: um padrão deve permitir a sua extensão para níveis mais baixos de detalhe. Combinatoriedade: os padrões são relacionados hierarquicamente. Padrões de alto nível podem ser compostos ou relacionados com padrões que endereçam problemas de nível mais baixo.
  3. Nome: uma descrição da solução, mais do que do problema ou do contexto. Exemplo: uma ou mais figuras, diagramas ou descrições que ilustrem um protótipo de aplicação. Contexto: a descrição das situações sob as quais o padrão se aplica. Problema: uma descrição das forças e restrições envolvidos e como elas interagem. Solução: relacionamentos estáticos e regras dinâmicas descrevendo como construir artefatos de acordo com o padrão, freqüentemente citando variações e formas de ajustar a solução segundo as circunstâncias. Inclui referências a outras soluções e o relacionamento com outros padrões de nível mais baixo ou mais alto.
  4. Em 1987, a partir dos conceitos criados por Alexander, os programadores Kent Beck e Ward Cunningham propuseram os primeiros padrões de projeto para a área da ciência da computação O movimento ao redor de padrões de projeto ganhou popularidade com o livro Design Patterns: Elements of Reusable Object-Oriented Software, publicado em 1995. Os autores desse livro, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, são conhecidos como a "Gangue dos Quatro" (Gang of Four) ou simplesmente "GoF". Posteriormente, vários outros livros do estilo foram publicados, merecendo destaque Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, que introduziu um conjunto de padrões conhecidos como GRASP(General Responsibility Assignment Software Patterns).
  5. Os padrões "GoF" são organizados em 3 famílias : Padrões de criação : relacionados à criação de objetos Padrões estruturais : tratam das associações entre classes e objetos. Padrões comportamentais : tratam das interações e divisões de responsabilidades entre as classes ou objetos.
  6. Os padrões GRASP, sigla para General Responsibility Assignment Software Patterns (or Principles), consistem de um conjunto de práticas para atribuição de responsabilidades a classes e objetos em projetos orientados a objeto. Os padrões GRASP estão mais como uma ferramenta mental ou uma filosofia de design, mas que ainda assim são úteis para o aprendizado e desenvolvimento de um bom design de software. Note que alguns padrões GoF implementam soluções correspondentes com padrões GRASP. A principal obra sobre o assunto foi o livro "Utilizando UML e Padrões" 
  7. Padrões são melhores práticas formalizadas que o programador pode usar para resolver problemas comuns quando projetar uma aplicação ou sistema
  8. O mais importante sobre os padrões é que eles são soluções aprovadas. Cada catálogo inclui apenas padrões que foram considerados úteis por diversos desenvolvedores em vários projetos. Os padrões catalogados também são bem definidos; os autores descrevem cada padrão com muito cuidado e em seu próprio contexto, portanto será fácil aplicar o padrão em suas próprias circunstâncias. Eles também formam um vocabulário comum entre os desenvolvedores. Leia mais em: Conheça os Padrões de Projeto http://www.devmedia.com.br/conheca-os-padroes-de-projeto/957#ixzz3ERRKz83N
  9. Os padrões são um mapa, não uma estratégica. O conceito de utilizar os padrões de forma indiscriminada é conhecida como antipadrões  Existem duas noções de antipadrões: Aqueles que descrevem uma solução ruim para um problema que resultou em uma situação ruim; Aqueles que descrevem como se livrar de uma situação ruim e como proceder dessa situação para uma situação boa. Em suma um antipadrão constitui ao uso indevido dos padrões de projeto, ou o seu uso exagerado, o que pode ser constatado pela utilização de padrões impróprios para um determinado contexto, ou uso inadequadoo/957#ixzz3ERRt2ZVT
  10. O alvo principal do uso dos padrões de projeto no desenvolvimento de software é o da orientação a objetos. Como os objetos são os elementos chaves em projetos OO, a parte mais difícil do projeto é a decomposição de um sistema em objetos. A tarefa é difícil porque muitos fatores entram em jogo: encapsulamento, granularidade, dependência, flexibilidade, desempenho, evolução, reutilização e assim por diante. Todos influenciam a decomposição, freqüentemente de formas conflitantes Leia mais em: Conheça os Padrões de Projeto http://www.devmedia.com.br/conheca-os-padroes-de-projeto/957#ixzz3ERSN99U6
  11. Considerar como os padrões de projeto solucionam problemas de projeto. Examinar qual a intenção do padrão, ou seja, o que faz de fato o padrão de projeto, quais seus princípios e que tópico ou problema particular de projeto ele trata (soluciona). Estudar como os padrões se relacionam. Estudar as semelhanças existentes entre os padrões. Examinar uma causa de reformulação de projeto. Considerar o que deveria ser variável no seu projeto, ou seja, ao invés de considerar o que pode forçar uma mudança em um projeto, considerar o que você quer ser capaz de mudar sem reprojetá-lo.
  12. Ler o padrão por completo uma vez, para obter sua visão geral. Conhecer o padrão principalmente a sua aplicabilidade e conseqüências são importantes para que ele realmente solucione o seu problema; Estudar seções Estrutura, Participantes e Colaborações. Assegurando-se de que compreendeu as classes e objetos no padrão e como se relacionam entre si; Escolher os nomes para os participantes do padrão que tenham sentido no contexto da aplicação; Definir as classes. Declarar as interfaces, estabelecer os seus relacionamentos de herança e definir as variáveis de instância que representam dados e referências a objetos. Identifique as classes existentes na aplicação que serão afetadas pelo padrão e modifique-as; Defina os nomes específicos da aplicação para as operações no padrão. Os nomes em geral dependem da aplicação. Use as responsabilidades e colaborações associadas com cada operação como guia; Implemente as operações para suportar as responsabilidades e colaborações presentes do padrão. A seção de Implementação oferece sugestões para guiá-lo na implementação.
  13. hefhsfhshfsfhskjdfhskjfh
  14. hefhsfhshfsfhskjdfhskjfh
  15. hefhsfhshfsfhskjdfhskjfh
  16. hefhsfhshfsfhskjdfhskjfh
  17. hefhsfhshfsfhskjdfhskjfh
  18. hefhsfhshfsfhskjdfhskjfh
  19. hefhsfhshfsfhskjdfhskjfh