SlideShare uma empresa Scribd logo
“Qualidade de Software no século XXI”Bruno Elias PenteadoCoordenador de Qualidade de Software MStechMestre em Ciência da Computação – UNESPCertificações ISTQB CTFL e CTAL-TA, Micosoft Web Apps C#20/05/2011
Qualidade de Software no século XXIAgradecimentos
TópicosO que é qualidade? Fazer o que deveria fazer?Como identificar qualidade? Sob que ponto de vista? Usuários, devs, comprador?Quando a qualidade vale a pena. Exemplos: números mega-sena.Qualidade x prejuízosRiscosPiores bugs da história; bugs atuais (PSP e Maps quadrilha Bauru)Tipos de indústrias e os níveis exigidos de qualidade; Ética?Conceitos básicos sobre qualidadeControle de qualidade x testes: diminuição de riscoRequisitos funcionais x não-funcionaisMitos sobre qualidadeCusta caro; evolução dos custos; prevenção x detecçãoRequisitos de um testerFuturoGrandes Desafios da ComputaçãoTendências (TaaS, outsourcing, sistemas ubíquos, disponibilidade)Novas plataformas de desenvolvimento
Qualidade de Software no século XXITópicosO que é qualidade de software?Abrangência da qualidade de softwareMitos da qualidadePiores bugs da históriaO que nos espera
O que é Qualidade de Software?
O que é Qualidade de Software?QualidadeO que é um software com qualidade?Conformidade às exigências?De quem? Relativa
O que é Qualidade de Software?Atores na qualidade de softwareGerente projetoProgramadorTestadorUsuárioCliente
O que é Qualidade de Software?Ideias sobre qualidade de softwareDefeito zero é alta qualidadeGrande número de funções é alta qualidadeCodificação elegante é alta qualidadeAlto desempenho é alta qualidadeBaixo custo de desenvolvimento é alta qualidadeDesenvolvimento rápido é alta qualidadeFacilidade para o usuário é alta qualidade
O que é Qualidade de Software?O que é qualidade?Qualidade é valor para alguma pessoaVale o custo x benefício?Pagarão para ter seus requisitos atendidos?
O que é Qualidade de Software?Efeito “não tão ruim”Todos os softwares têm erro;Satisfação dos usuários;Preferência em relação ao concorrente;Software de qualidade?Vale a pena melhorar?
O que é Qualidade de Software?Qualidade?Caso:  Google MapsSIG com fotos de satélite de alta resoluçãoDetermina rotas de trânsito
O que é Qualidade de Software?Qualidade?Caso: Google MapsUsado também para o malJornal da Cidade: Bauru, 3/5/2011
Qualidade?
O que é Qualidade de Software?QualidadeNão significa ausência de erros!Muitos erros pode significar menor valorNão garante valor ao softwareExemplos?
O que é Qualidade de Software?QualidadeConformidade com requisitos não é suficiente!Requisito é o meio: fornecer valor para quem?Requisitos identificam as pessoas importantes?Requisitos capturam seus valores?
O que é Qualidade de Software?“Qualidade é valor para alguma pessoa disposta a pagar por seus benefícios”
Abrangência da Qualidade de Software
Abrangência da Qualidade de SoftwareQualidadeRiscoFator que pode resultar em conseqüências negativas futuras;Projeto: relacionado ao gerenciamento e ao controle do projeto;Produto: relacionado ao produto em fabricação
Abrangência da Qualidade de SoftwareProcesso  de Qualidade de SoftwarePrevenção: garantia por meio de processos;TreinamentoGrupo de SQAUso de lições aprendidasMelhoria de processoDetecção: controle por meio de testes;Compilação/análise de códigoRevisão por paresTeste AuditoriasDiminuição de riscos ao longo da produção
Abrangência da Qualidade de SoftwareTestesAté quando testar?Custo x benefícioVariação conforme indústria
Abrangência da Qualidade de SoftwareNíveis dos testesUnidade, Integração, Sistema, Aceitação
Abrangência da Qualidade de SoftwareTestesAbordagem para os testesMostrar que o sistema:Faz o que não deve fazer;Não faz o que deve fazer;
Abrangência da Qualidade de SoftwareTestesCasos de testeUma funcionalidade pode acarretar em centenas de casos de teste
Abrangência da Qualidade de SoftwareTestesExemplo de caso de teste
Abrangência da Qualidade de SoftwareProcesso - padrõesGeraisISO 9126 – Qualidade de produto de softwareISO 12207 – Qualidade do processo de softwareIEEE 829 – Documentação de testesIEEE 1028 – Revisão de softwareIEEE 1044 – Classificação de incidentesBS 7925 – Técnicas de teste(...)Específicos por indústriaDO-178B – software aviônicoFDA 21 – software médico(...)
Abrangência da Qualidade de SoftwarePadrão ISO 9126Requisitos funcionais e não-funcionais
Abrangência da Qualidade de SoftwarePadrão IEEE 829Documentação do processo de testes
Abrangência da Qualidade de SoftwareProcessoExemplos de modelos de melhoria de processoProdução de softwareCMMi – CapabilityMaturityModelintegationMPS.Br – Melhoria do Processo de Software BrasileiroTeste de softwareTMMi – TestMaturityModelintegrationTPI – TestProcessImprovement
Mitos
MitosMitosO testador é inimigo do desenvolvedor
MitosMitosTesters podem ser desenvolvedores menos qualificadosGoogle: Software Engineer in TestMicrosoft: Software DevelopmentEngineer in Test
MitosMitosQualidade custa caroDefinição econômica de qualidade:“É sempre mais barato fazer certo na primeira vez!”
MitosMitosQualidade leva muito tempoNunca se tem tempo para fazer da forma corretaSempre existe tempo para refazerA cada R$ 1,00 em desenvolvimento, de R$ 2,00 a R$ 3,00 são gastos com retrabalho
Bugs históricos
Bugs históricosO que é um bug?Primeiro bug: computador Mark II, na Universidade de Harvard (1945)
Bugs históricosMariner I – 1962Missão observar para o planeta VênusFórmula matemática foi equivocadamente transcrita para o computadorDesviou de seu curso e foi destruída 4 minutos após lançamentoPrejuízo: US$ 18,5 mi
Bugs históricosGasoduto soviético – 1982Supostamente, a CIA infiltrou um ‘cavalo de Tróia’ no sistema que controlava o gasoduto TransiberianoMaior explosão não-nuclear da históriaDetectado por satélites americanos
Bugs históricosTherac-25 – 1985/1987Dispositivo de terapia por radiação sobre células cancerosas falha e libera doses letais de radiação em vários consultórios médicosCondição de disputa no SO5 mortes, várias pessoas feridas
Bugs históricosPrimeiro vírus da Internet – 1987Estudante americano criou programa que afetou em um dia até 6.000 computadores;SO: UnixBuffer overflow: função getc() da linguagem C, no sistema UNIX, fazia leitura pela redePermitia acesso não autorizado
Bugs históricosQueda da rede AT&T - 1990Falha no software dos switches de longa distância ao receber certa mensagem de uma máquina vizinha114 switches reiniciando a cada 6 segundos60 mil pessoas ficaram sem ligações à distância por 9hCorreção: o software foi mudado para sua versão antiga
Bugs históricosMíssil Patriot – 1991Dhahran, IraqueErro de software no relógio do míssil: a cada 100 horas o relógio interno do sistema desviava um terço de segundoRecomendação era rebootar o sistema de tempos em temposResultado: 600 metros de erro na distância em uma interceptação28 soldados americanos mortos
Bugs históricosDivisão de pontos flutuantes nos processadores Pentium da Intel – 1993Erro em divisões dentro de uma faixa de números (erro ~0,006% no arrendondamento)3 a 5 milhões de peças com defeitoRecall para todos que quiseram trocarCustou à Intel US$ 475 milhões
Bugs históricosPing da Morte – 1995/96Primeiras versões do TCP/IPBuffer overflow: mensagem grande (maior que limite de 64KB)Problema na manipulação de erros na remontagem de um pingmal-formado trava SO´s (Windows, Unix, Macintosh, etc.)
Bugs históricosAriane 5 vôo 501 – 1996Foguete com código reutilizado do Ariane 4 (outro hardware);O processador primário do foguete sobrecarrega os motores que se desintegraram em 40 segundos;Overflow de inteiro: conversão de floatde 64-bits para inteiro 16-bits com sinal;Não tripulado (sem vítimas); prejuízo de US$ 370 milhões
Bugs históricosBug do milênio (Y2K) – 2000Datas com apenas 2 dígitos para o anoUma das maiores histerias da históriaAo virar o ano 2000, a preocupação era que contasse como 1900Entre US$ 300 e US$ 500 bi no mundo todoBug de 2038time_tem C  número de segundos a partir de 1/1/1970. Quando usado 4 bytes = 19/1/2038
Bugs históricosToyota Prius – 2010Problema no software do sistema ABS de freios – acelerador fica preso, dificultando desaceleraçãoRecall de 400.000 veículos~  US$ 2 bilhões de prejuízo, desvalorização de 15% nas açõesFonte: BBC, Computer World UK
Bugs históricosPlay Station Network - 2011Invasão do sistemaDados privados e de cartão de crédito de ~70 mi de pessoas foram roubadosGoverno japonês não deixou voltar até atingir nível de qualidade
Próximos bugs?
Próximos bugs?Qualidade de software nos dias de hojeRedes SociaisIdentidade on-line  PrivacidadeProtegidos pelas políticas definidas nos Termos de Serviço dos sitesE se hackearem sua conta de e-mail em seu celular?Geolocalização
Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:Informações (computador, browser,  termos)Estatísticas enviadas a 3os,  reusadas por patrocinadoresCriação de perfil, com propagandas perseguindo usuário
Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:Google salva histórico de buscasPodem ser requisitadas legalmente;Espiado por funcionário;Hackeado
Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:Indexação de conteúdo impróprioBullying, violação de direitos autorais, etc.Receita: links patrocinados / pageviewsGov. italiano condenou GoogleMídia como jornal ou televisão
Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:StreetViewGov. da Alemanha proibiuFere privacidade
Próximos bugs?Qualidade de software nos dias de hojeGoverno eletrônico	Como ter um design universal?Transparência dos dados
Próximos bugs?Qualidade de software nos dias de hojeUrna eletrônicaFabricante diz não ser seguraPossibilidade de boot pelo disco externoNão tem auditoria independenteUsava como SO: VirtuOS, Windows CE e agora Linux
Próximos bugs?Qualidade de software nos dias de hojeDispositivos móveisiPhone e Android armazenam sua localização
Próximos bugs?Então... software não é confiável?Limitação humanaPessoas não conhecem/dominam tudo;Pessoas tem habilidades, mas não são perfeitas;Pessoas cometem errosPressões por tempo, custoEspecificações incompletasManutenção em código“Grandes poderes trazem grandes responsabilidades”
O que nos espera
FuturoFuturoTópicos futurosQuais os assuntos mais promissores dentro da QS nos próximos anos?Novas plataformasQue novos tipos de software serão lançados nos próximos anos?
FuturoFuturoTópicos de pesquisaTest As A ServiceTeste baseado em riscoTestes ágeis
FuturoNovas plataformasDispositivos móveis: Tablets, smartphones, e-Readers, ...Interfaces mais naturais  uso em vários domíniosQual o padrão de uso? TV!PaperPhone
FuturoNovas plataformasCarrosE se seu carro se conectar à Internet?Sistemas multimídia embutidos de fábricaWindows EmbeddedAutomotiveDiferenciação por tecnologia
FuturoNovas plataformasCarrosE se seu carro se dirigir sozinho, auto-estacionar?Como testar?
FuturoNovas plataformasCarrosE se hackers desabilitarem seu freio?Quais testes são aplicáveis?Padrão AUTOSAR (AUTomotive Open System ARchitecture)
FuturoNovas plataformasSmartGridConsumo crescente de energia elétricaRisco de interrupçãoOtimização da distribuição, consumo e cobrança
FuturoNovas plataformasArquitetura multicoreComo os novos softwares tirarão proveito dessa arquitetura?Reescrever SO´s: vale a pena?Como testar?
FuturoNovas plataformasDispositivos médicosImplantes sofisticados  mini computadoresComo se proteger de ataques?Como testar?

Mais conteúdo relacionado

Destaque

Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
Igor Takenami
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
crc1404
 
[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP
GUTS-RS
 
Homologação requisitos para validar sistemas erp
Homologação   requisitos para validar sistemas erpHomologação   requisitos para validar sistemas erp
Homologação requisitos para validar sistemas erp
Sérgio Caldeira
 
[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering
GUTS-RS
 
Desenvolvimento para iOS
Desenvolvimento para iOSDesenvolvimento para iOS
Desenvolvimento para iOS
Igor Takenami
 
Lean para potencializar a qualidade no software
Lean para potencializar a qualidade no softwareLean para potencializar a qualidade no software
Lean para potencializar a qualidade no software
Dionatan default
 
Introdução a Qualidade de Software
Introdução a Qualidade de SoftwareIntrodução a Qualidade de Software
Introdução a Qualidade de Software
Igor Takenami
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
Camilo Ribeiro
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
Ronney Moreira de Castro
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
rzauza
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução
Elaine Cecília Gatto
 

Destaque (13)

Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP
 
Homologação requisitos para validar sistemas erp
Homologação   requisitos para validar sistemas erpHomologação   requisitos para validar sistemas erp
Homologação requisitos para validar sistemas erp
 
[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering
 
Desenvolvimento para iOS
Desenvolvimento para iOSDesenvolvimento para iOS
Desenvolvimento para iOS
 
Lean para potencializar a qualidade no software
Lean para potencializar a qualidade no softwareLean para potencializar a qualidade no software
Lean para potencializar a qualidade no software
 
Introdução a Qualidade de Software
Introdução a Qualidade de SoftwareIntrodução a Qualidade de Software
Introdução a Qualidade de Software
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução
 

Semelhante a Qualidade de Software no século XXI

Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
Leonardo Molinari
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
Adriano Bertucci
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
Leinylson Fontinele
 
Software de impressão segura por biometria - Thiarlei - Impressão Gerenciada
Software de impressão segura por biometria - Thiarlei - Impressão GerenciadaSoftware de impressão segura por biometria - Thiarlei - Impressão Gerenciada
Software de impressão segura por biometria - Thiarlei - Impressão Gerenciada
Thiarlei Macedo
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introdução
Felipe Lyra
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
Valquíria Duarte D'Amato
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenharia
bruno2003sp
 
Segurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas ProfissionaisSegurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas Profissionais
Rubens Guimarães - MTAC MVP
 
Big Data e oportunidades de negócios
Big Data e oportunidades de negóciosBig Data e oportunidades de negócios
Big Data e oportunidades de negócios
Laboratorium
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
MarcosSilva941136
 
O computador - Apresentação Final
O computador  - Apresentação FinalO computador  - Apresentação Final
O computador - Apresentação Final
leolacerdac
 
QA Ninja Conference 2017
QA Ninja Conference 2017QA Ninja Conference 2017
QA Ninja Conference 2017
Igor Rosa Macedo
 
O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?
paxtecnologia
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Renato Leal
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
Claudete Florencio
 
Apps tecnologias e usos
Apps   tecnologias e usosApps   tecnologias e usos
Apps tecnologias e usos
Alexandre Oliveira
 
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Santhyago Gallao
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
Waldemar Roberti
 
Teste de software
Teste de software Teste de software
Teste de software
Allan Almeida de Araújo
 
Teste de software
Teste de softwareTeste de software
Teste de software
Rodrigo Cardoso Alves Fonte
 

Semelhante a Qualidade de Software no século XXI (20)

Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Software de impressão segura por biometria - Thiarlei - Impressão Gerenciada
Software de impressão segura por biometria - Thiarlei - Impressão GerenciadaSoftware de impressão segura por biometria - Thiarlei - Impressão Gerenciada
Software de impressão segura por biometria - Thiarlei - Impressão Gerenciada
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introdução
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenharia
 
Segurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas ProfissionaisSegurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas Profissionais
 
Big Data e oportunidades de negócios
Big Data e oportunidades de negóciosBig Data e oportunidades de negócios
Big Data e oportunidades de negócios
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
O computador - Apresentação Final
O computador  - Apresentação FinalO computador  - Apresentação Final
O computador - Apresentação Final
 
QA Ninja Conference 2017
QA Ninja Conference 2017QA Ninja Conference 2017
QA Ninja Conference 2017
 
O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Apps tecnologias e usos
Apps   tecnologias e usosApps   tecnologias e usos
Apps tecnologias e usos
 
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
Teste de software
Teste de software Teste de software
Teste de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 

Qualidade de Software no século XXI

  • 1. “Qualidade de Software no século XXI”Bruno Elias PenteadoCoordenador de Qualidade de Software MStechMestre em Ciência da Computação – UNESPCertificações ISTQB CTFL e CTAL-TA, Micosoft Web Apps C#20/05/2011
  • 2. Qualidade de Software no século XXIAgradecimentos
  • 3. TópicosO que é qualidade? Fazer o que deveria fazer?Como identificar qualidade? Sob que ponto de vista? Usuários, devs, comprador?Quando a qualidade vale a pena. Exemplos: números mega-sena.Qualidade x prejuízosRiscosPiores bugs da história; bugs atuais (PSP e Maps quadrilha Bauru)Tipos de indústrias e os níveis exigidos de qualidade; Ética?Conceitos básicos sobre qualidadeControle de qualidade x testes: diminuição de riscoRequisitos funcionais x não-funcionaisMitos sobre qualidadeCusta caro; evolução dos custos; prevenção x detecçãoRequisitos de um testerFuturoGrandes Desafios da ComputaçãoTendências (TaaS, outsourcing, sistemas ubíquos, disponibilidade)Novas plataformas de desenvolvimento
  • 4. Qualidade de Software no século XXITópicosO que é qualidade de software?Abrangência da qualidade de softwareMitos da qualidadePiores bugs da históriaO que nos espera
  • 5. O que é Qualidade de Software?
  • 6. O que é Qualidade de Software?QualidadeO que é um software com qualidade?Conformidade às exigências?De quem? Relativa
  • 7. O que é Qualidade de Software?Atores na qualidade de softwareGerente projetoProgramadorTestadorUsuárioCliente
  • 8. O que é Qualidade de Software?Ideias sobre qualidade de softwareDefeito zero é alta qualidadeGrande número de funções é alta qualidadeCodificação elegante é alta qualidadeAlto desempenho é alta qualidadeBaixo custo de desenvolvimento é alta qualidadeDesenvolvimento rápido é alta qualidadeFacilidade para o usuário é alta qualidade
  • 9. O que é Qualidade de Software?O que é qualidade?Qualidade é valor para alguma pessoaVale o custo x benefício?Pagarão para ter seus requisitos atendidos?
  • 10. O que é Qualidade de Software?Efeito “não tão ruim”Todos os softwares têm erro;Satisfação dos usuários;Preferência em relação ao concorrente;Software de qualidade?Vale a pena melhorar?
  • 11. O que é Qualidade de Software?Qualidade?Caso: Google MapsSIG com fotos de satélite de alta resoluçãoDetermina rotas de trânsito
  • 12. O que é Qualidade de Software?Qualidade?Caso: Google MapsUsado também para o malJornal da Cidade: Bauru, 3/5/2011
  • 14. O que é Qualidade de Software?QualidadeNão significa ausência de erros!Muitos erros pode significar menor valorNão garante valor ao softwareExemplos?
  • 15. O que é Qualidade de Software?QualidadeConformidade com requisitos não é suficiente!Requisito é o meio: fornecer valor para quem?Requisitos identificam as pessoas importantes?Requisitos capturam seus valores?
  • 16. O que é Qualidade de Software?“Qualidade é valor para alguma pessoa disposta a pagar por seus benefícios”
  • 18. Abrangência da Qualidade de SoftwareQualidadeRiscoFator que pode resultar em conseqüências negativas futuras;Projeto: relacionado ao gerenciamento e ao controle do projeto;Produto: relacionado ao produto em fabricação
  • 19. Abrangência da Qualidade de SoftwareProcesso de Qualidade de SoftwarePrevenção: garantia por meio de processos;TreinamentoGrupo de SQAUso de lições aprendidasMelhoria de processoDetecção: controle por meio de testes;Compilação/análise de códigoRevisão por paresTeste AuditoriasDiminuição de riscos ao longo da produção
  • 20. Abrangência da Qualidade de SoftwareTestesAté quando testar?Custo x benefícioVariação conforme indústria
  • 21. Abrangência da Qualidade de SoftwareNíveis dos testesUnidade, Integração, Sistema, Aceitação
  • 22. Abrangência da Qualidade de SoftwareTestesAbordagem para os testesMostrar que o sistema:Faz o que não deve fazer;Não faz o que deve fazer;
  • 23. Abrangência da Qualidade de SoftwareTestesCasos de testeUma funcionalidade pode acarretar em centenas de casos de teste
  • 24. Abrangência da Qualidade de SoftwareTestesExemplo de caso de teste
  • 25. Abrangência da Qualidade de SoftwareProcesso - padrõesGeraisISO 9126 – Qualidade de produto de softwareISO 12207 – Qualidade do processo de softwareIEEE 829 – Documentação de testesIEEE 1028 – Revisão de softwareIEEE 1044 – Classificação de incidentesBS 7925 – Técnicas de teste(...)Específicos por indústriaDO-178B – software aviônicoFDA 21 – software médico(...)
  • 26. Abrangência da Qualidade de SoftwarePadrão ISO 9126Requisitos funcionais e não-funcionais
  • 27. Abrangência da Qualidade de SoftwarePadrão IEEE 829Documentação do processo de testes
  • 28. Abrangência da Qualidade de SoftwareProcessoExemplos de modelos de melhoria de processoProdução de softwareCMMi – CapabilityMaturityModelintegationMPS.Br – Melhoria do Processo de Software BrasileiroTeste de softwareTMMi – TestMaturityModelintegrationTPI – TestProcessImprovement
  • 29. Mitos
  • 30. MitosMitosO testador é inimigo do desenvolvedor
  • 31. MitosMitosTesters podem ser desenvolvedores menos qualificadosGoogle: Software Engineer in TestMicrosoft: Software DevelopmentEngineer in Test
  • 32. MitosMitosQualidade custa caroDefinição econômica de qualidade:“É sempre mais barato fazer certo na primeira vez!”
  • 33. MitosMitosQualidade leva muito tempoNunca se tem tempo para fazer da forma corretaSempre existe tempo para refazerA cada R$ 1,00 em desenvolvimento, de R$ 2,00 a R$ 3,00 são gastos com retrabalho
  • 35. Bugs históricosO que é um bug?Primeiro bug: computador Mark II, na Universidade de Harvard (1945)
  • 36. Bugs históricosMariner I – 1962Missão observar para o planeta VênusFórmula matemática foi equivocadamente transcrita para o computadorDesviou de seu curso e foi destruída 4 minutos após lançamentoPrejuízo: US$ 18,5 mi
  • 37. Bugs históricosGasoduto soviético – 1982Supostamente, a CIA infiltrou um ‘cavalo de Tróia’ no sistema que controlava o gasoduto TransiberianoMaior explosão não-nuclear da históriaDetectado por satélites americanos
  • 38. Bugs históricosTherac-25 – 1985/1987Dispositivo de terapia por radiação sobre células cancerosas falha e libera doses letais de radiação em vários consultórios médicosCondição de disputa no SO5 mortes, várias pessoas feridas
  • 39. Bugs históricosPrimeiro vírus da Internet – 1987Estudante americano criou programa que afetou em um dia até 6.000 computadores;SO: UnixBuffer overflow: função getc() da linguagem C, no sistema UNIX, fazia leitura pela redePermitia acesso não autorizado
  • 40. Bugs históricosQueda da rede AT&T - 1990Falha no software dos switches de longa distância ao receber certa mensagem de uma máquina vizinha114 switches reiniciando a cada 6 segundos60 mil pessoas ficaram sem ligações à distância por 9hCorreção: o software foi mudado para sua versão antiga
  • 41. Bugs históricosMíssil Patriot – 1991Dhahran, IraqueErro de software no relógio do míssil: a cada 100 horas o relógio interno do sistema desviava um terço de segundoRecomendação era rebootar o sistema de tempos em temposResultado: 600 metros de erro na distância em uma interceptação28 soldados americanos mortos
  • 42. Bugs históricosDivisão de pontos flutuantes nos processadores Pentium da Intel – 1993Erro em divisões dentro de uma faixa de números (erro ~0,006% no arrendondamento)3 a 5 milhões de peças com defeitoRecall para todos que quiseram trocarCustou à Intel US$ 475 milhões
  • 43. Bugs históricosPing da Morte – 1995/96Primeiras versões do TCP/IPBuffer overflow: mensagem grande (maior que limite de 64KB)Problema na manipulação de erros na remontagem de um pingmal-formado trava SO´s (Windows, Unix, Macintosh, etc.)
  • 44. Bugs históricosAriane 5 vôo 501 – 1996Foguete com código reutilizado do Ariane 4 (outro hardware);O processador primário do foguete sobrecarrega os motores que se desintegraram em 40 segundos;Overflow de inteiro: conversão de floatde 64-bits para inteiro 16-bits com sinal;Não tripulado (sem vítimas); prejuízo de US$ 370 milhões
  • 45. Bugs históricosBug do milênio (Y2K) – 2000Datas com apenas 2 dígitos para o anoUma das maiores histerias da históriaAo virar o ano 2000, a preocupação era que contasse como 1900Entre US$ 300 e US$ 500 bi no mundo todoBug de 2038time_tem C  número de segundos a partir de 1/1/1970. Quando usado 4 bytes = 19/1/2038
  • 46. Bugs históricosToyota Prius – 2010Problema no software do sistema ABS de freios – acelerador fica preso, dificultando desaceleraçãoRecall de 400.000 veículos~ US$ 2 bilhões de prejuízo, desvalorização de 15% nas açõesFonte: BBC, Computer World UK
  • 47. Bugs históricosPlay Station Network - 2011Invasão do sistemaDados privados e de cartão de crédito de ~70 mi de pessoas foram roubadosGoverno japonês não deixou voltar até atingir nível de qualidade
  • 49. Próximos bugs?Qualidade de software nos dias de hojeRedes SociaisIdentidade on-line  PrivacidadeProtegidos pelas políticas definidas nos Termos de Serviço dos sitesE se hackearem sua conta de e-mail em seu celular?Geolocalização
  • 50. Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:Informações (computador, browser, termos)Estatísticas enviadas a 3os, reusadas por patrocinadoresCriação de perfil, com propagandas perseguindo usuário
  • 51. Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:Google salva histórico de buscasPodem ser requisitadas legalmente;Espiado por funcionário;Hackeado
  • 52. Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:Indexação de conteúdo impróprioBullying, violação de direitos autorais, etc.Receita: links patrocinados / pageviewsGov. italiano condenou GoogleMídia como jornal ou televisão
  • 53. Próximos bugs?Qualidade de software nos dias de hojeMecanismos de buscasEx. Google:StreetViewGov. da Alemanha proibiuFere privacidade
  • 54. Próximos bugs?Qualidade de software nos dias de hojeGoverno eletrônico Como ter um design universal?Transparência dos dados
  • 55. Próximos bugs?Qualidade de software nos dias de hojeUrna eletrônicaFabricante diz não ser seguraPossibilidade de boot pelo disco externoNão tem auditoria independenteUsava como SO: VirtuOS, Windows CE e agora Linux
  • 56. Próximos bugs?Qualidade de software nos dias de hojeDispositivos móveisiPhone e Android armazenam sua localização
  • 57. Próximos bugs?Então... software não é confiável?Limitação humanaPessoas não conhecem/dominam tudo;Pessoas tem habilidades, mas não são perfeitas;Pessoas cometem errosPressões por tempo, custoEspecificações incompletasManutenção em código“Grandes poderes trazem grandes responsabilidades”
  • 58. O que nos espera
  • 59. FuturoFuturoTópicos futurosQuais os assuntos mais promissores dentro da QS nos próximos anos?Novas plataformasQue novos tipos de software serão lançados nos próximos anos?
  • 60. FuturoFuturoTópicos de pesquisaTest As A ServiceTeste baseado em riscoTestes ágeis
  • 61. FuturoNovas plataformasDispositivos móveis: Tablets, smartphones, e-Readers, ...Interfaces mais naturais  uso em vários domíniosQual o padrão de uso? TV!PaperPhone
  • 62. FuturoNovas plataformasCarrosE se seu carro se conectar à Internet?Sistemas multimídia embutidos de fábricaWindows EmbeddedAutomotiveDiferenciação por tecnologia
  • 63. FuturoNovas plataformasCarrosE se seu carro se dirigir sozinho, auto-estacionar?Como testar?
  • 64. FuturoNovas plataformasCarrosE se hackers desabilitarem seu freio?Quais testes são aplicáveis?Padrão AUTOSAR (AUTomotive Open System ARchitecture)
  • 65. FuturoNovas plataformasSmartGridConsumo crescente de energia elétricaRisco de interrupçãoOtimização da distribuição, consumo e cobrança
  • 66. FuturoNovas plataformasArquitetura multicoreComo os novos softwares tirarão proveito dessa arquitetura?Reescrever SO´s: vale a pena?Como testar?
  • 67. FuturoNovas plataformasDispositivos médicosImplantes sofisticados  mini computadoresComo se proteger de ataques?Como testar?
  • 68. Recapitulando...O que é qualidade de software?Abrangência da qualidade de softwareMitos da qualidadePiores bugs da históriaO que nos espera
  • 69. Obrigado!“Qualidade de Software no século XXI”Bruno Elias Penteado bruno.penteado@mstech.com.brTwitter: @brunopenteadoEstamos contratando!curriculum@mstech.com.brTwitter: @_MStech