SlideShare uma empresa Scribd logo
1 de 24
Testando sua arquitetura…
Antes ou depois da
implementação?!
Antônio Carlos
Segundo o padrão ISO/IEEE 1471-2000,
“Arquitetura é a organização fundamental de um
sistema incorporada em seus componentes, seus
relacionamentos com o ambiente, e os princípios
que conduzem seu design e evolução.”
O que é arquitetura de software?
● Segurança
● Confiabilidade
● Tolerância a falhas
● Portabilidade
● Desempenho
● Manutenibilidade
● Usabilidade
● Dependências externas
Principais aspectos arquiteturais
Propriedade Métrica
Desempenho Transações por segundo
Tempo de resposta por requisição
Tempo de carregamento da tela
Usabilidade Tempo de treinamento necessário
Tempo de execução de uma rotina
Confiabilidade Tempo médio para falhas
Probabilidade de falhas
Disponibilidade
Segurança Número de vulnerabilidades conhecidas
Número de ameaças conhecidas
Probabilidade de ataques
● Verificação
○ Estamos construindo “certo” o produto?
● Validação
○ Estamos construindo o produto “certo”?
V & V
Antes
● Visa descobrir defeitos o mais cedo possível;
● Visa a melhoria da qualidade dos artefatos;
● Evitar retrabalho;
Revisões técnicas
Segundo McGraw Hill (1998)
● Cada seção de inspeção remove de 60 a 65% dos
defeitos
● Quando combinados com práticas de testes esse
número pode subir para 90%
Revisões técnicas
● Reuniões informais para avaliação de artefatos
● Não existem restrições quanto à discussão sobre
validação dos defeitos e/ou solução
● Apresentação dos artefatos e avaliação prática
Walkthroughs
● Checklist de avaliação preparados por pessoas com
conhecimento técnico
● Reuniões são realizadas para identificar os artefatos
Checklists
● Um especialista na área valida o artefato
● O processo de desenvolvimento deve considerar a
validação
● Especialista interno ou externo
Parecer do especialista
Depois
● Teste de segurança
○ SQLInjection
○ DDoS
○ Teste de penetração
● Ferramentas
○ SQLMap
○ Nikto2
○ Wapiti
○ Brutos
Segurança
● Teste de instalação
● Teste operacional
Portabilidade
Desempenho
● Teste de performance
● Ferramentas
○ JMeter
○ LoadUI
● Complexidade Ciclomática
● Coesão e acoplamento
● hints
● Ferramentas
○ Sonar
○ PlatoJS
Manutenibilidade
● Teste de integração
● Ferramentas
○ JUnit
○ NUnit
○ PHPUnit
Dependências externas
Então, antes ou depois?
Custo de manutenção de software
Segundo Martin & McClure (1984):
● Manutenção contabiliza quase 67% dos custos totais;
● 20% do orçamento de manutenção é para corrigir
defeitos;
● 25% é gasto para adaptar a um novo ambiente;
● 6% é gasto para corrigir documentação;
● 4% é gasto com problemas de performance; e
● 42% é gasto com solicitação de usuário.
Custo de manutenção de software
Obrigado!
acarlossw@gmail.com

Mais conteúdo relacionado

Mais procurados

Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de softwareJeronimo Zucco
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoraçãoguest23778e
 
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Luiz Ladeira
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberKamilla Queiroz Xavier
 
Tech talkrubocop
Tech talkrubocopTech talkrubocop
Tech talkrubocopLocaweb
 
DevSecOps - Workshop do Bem
DevSecOps - Workshop do BemDevSecOps - Workshop do Bem
DevSecOps - Workshop do BemBruno Dantas
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de softwareAriane Izac
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017Ismael
 
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de TestesTDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de TestesSandro Giacomozzi
 

Mais procurados (12)

Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de software
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011
 
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saber
 
Tech talkrubocop
Tech talkrubocopTech talkrubocop
Tech talkrubocop
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
DevSecOps - Workshop do Bem
DevSecOps - Workshop do BemDevSecOps - Workshop do Bem
DevSecOps - Workshop do Bem
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de software
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017
 
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de TestesTDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
 

Semelhante a Testando arquitetura antes/depois

Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScriptTaller Negócio Digitais
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de SoftwareJeronimo Zucco
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Qa test roadsec-bh - testes de segurança, não comece pelo fim!
Qa test   roadsec-bh - testes de segurança, não comece pelo fim!Qa test   roadsec-bh - testes de segurança, não comece pelo fim!
Qa test roadsec-bh - testes de segurança, não comece pelo fim!Welington Monteiro
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaFernando Celarino
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 

Semelhante a Testando arquitetura antes/depois (20)

DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScript
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Segurança em Desenvolvimento de Software
Segurança em Desenvolvimento de SoftwareSegurança em Desenvolvimento de Software
Segurança em Desenvolvimento de Software
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de Software
 
Software Seguro
Software SeguroSoftware Seguro
Software Seguro
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Iscte security events workshop multicert-pt2
Iscte security events workshop   multicert-pt2Iscte security events workshop   multicert-pt2
Iscte security events workshop multicert-pt2
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeis
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
Qa test roadsec-bh - testes de segurança, não comece pelo fim!
Qa test   roadsec-bh - testes de segurança, não comece pelo fim!Qa test   roadsec-bh - testes de segurança, não comece pelo fim!
Qa test roadsec-bh - testes de segurança, não comece pelo fim!
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Agile mobile testing
Agile mobile testingAgile mobile testing
Agile mobile testing
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estrutura
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 

Testando arquitetura antes/depois

  • 1. Testando sua arquitetura… Antes ou depois da implementação?! Antônio Carlos
  • 2. Segundo o padrão ISO/IEEE 1471-2000, “Arquitetura é a organização fundamental de um sistema incorporada em seus componentes, seus relacionamentos com o ambiente, e os princípios que conduzem seu design e evolução.” O que é arquitetura de software?
  • 3. ● Segurança ● Confiabilidade ● Tolerância a falhas ● Portabilidade ● Desempenho ● Manutenibilidade ● Usabilidade ● Dependências externas Principais aspectos arquiteturais
  • 4.
  • 5. Propriedade Métrica Desempenho Transações por segundo Tempo de resposta por requisição Tempo de carregamento da tela Usabilidade Tempo de treinamento necessário Tempo de execução de uma rotina Confiabilidade Tempo médio para falhas Probabilidade de falhas Disponibilidade Segurança Número de vulnerabilidades conhecidas Número de ameaças conhecidas Probabilidade de ataques
  • 6. ● Verificação ○ Estamos construindo “certo” o produto? ● Validação ○ Estamos construindo o produto “certo”? V & V
  • 7.
  • 8.
  • 10. ● Visa descobrir defeitos o mais cedo possível; ● Visa a melhoria da qualidade dos artefatos; ● Evitar retrabalho; Revisões técnicas
  • 11. Segundo McGraw Hill (1998) ● Cada seção de inspeção remove de 60 a 65% dos defeitos ● Quando combinados com práticas de testes esse número pode subir para 90% Revisões técnicas
  • 12. ● Reuniões informais para avaliação de artefatos ● Não existem restrições quanto à discussão sobre validação dos defeitos e/ou solução ● Apresentação dos artefatos e avaliação prática Walkthroughs
  • 13. ● Checklist de avaliação preparados por pessoas com conhecimento técnico ● Reuniões são realizadas para identificar os artefatos Checklists
  • 14. ● Um especialista na área valida o artefato ● O processo de desenvolvimento deve considerar a validação ● Especialista interno ou externo Parecer do especialista
  • 16. ● Teste de segurança ○ SQLInjection ○ DDoS ○ Teste de penetração ● Ferramentas ○ SQLMap ○ Nikto2 ○ Wapiti ○ Brutos Segurança
  • 17. ● Teste de instalação ● Teste operacional Portabilidade
  • 18. Desempenho ● Teste de performance ● Ferramentas ○ JMeter ○ LoadUI
  • 19. ● Complexidade Ciclomática ● Coesão e acoplamento ● hints ● Ferramentas ○ Sonar ○ PlatoJS Manutenibilidade
  • 20. ● Teste de integração ● Ferramentas ○ JUnit ○ NUnit ○ PHPUnit Dependências externas
  • 21. Então, antes ou depois?
  • 22. Custo de manutenção de software
  • 23. Segundo Martin & McClure (1984): ● Manutenção contabiliza quase 67% dos custos totais; ● 20% do orçamento de manutenção é para corrigir defeitos; ● 25% é gasto para adaptar a um novo ambiente; ● 6% é gasto para corrigir documentação; ● 4% é gasto com problemas de performance; e ● 42% é gasto com solicitação de usuário. Custo de manutenção de software