Menos teste e mais qualidade - como equilibrar essa equação?
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Menos teste e mais qualidade - como equilibrar essa equação?

on

  • 1,096 views

 

Statistics

Views

Total Views
1,096
Views on SlideShare
1,096
Embed Views
0

Actions

Likes
0
Downloads
17
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • It is also important to understand where most testing happens in the spectrum of general testing to the more technical specialist testing.The Generalist Testers are usually professional testers with no coding background. Often these testers are experts in the business process or tool that is being developed. On the opposite side of the spectrum is the Specialist. This is a tester with strong coding skills.A fun side note: Microsoft’s testers are usually converted developers and tend to be on the specialist side of the graph.Black-box testing is a method of testing software that tests the functionality of an application as opposed to its internal structures or workings (see white-box testing). Specific knowledge of the application's code/internal structure and programming knowledge in general is not required. Test cases are built around specifications and requirements, i.e., what the application is supposed to do. It uses external descriptions of the software, including specifications, requirements, and design to derive test cases. These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid inputs and determines the correct output. There is no knowledge of the test object's internal structure.White-box testing (a.k.a. clear box testing, glass box testing, transparent box testing, or structural testing) is a method of testing software that tests internal structures or workings of an application as opposed to its functionality (black-box testing). An internal perspective of the system, as well as programming skills, are required and used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs. It is analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT). While white-box testing can be applied at the unit, integration and system levels of the software testing process, it is usually done at the unit level. It can test paths within a unit, paths between units during integration, and between subsystems during a system level test. Though this method of test design can uncover many errors or problems, it might not detect unimplemented parts of the specification or missing requirements. White-box test design techniques include: Control flow testing Data flow testing Branch testing Path testingAPI testing (application programming interface) – is a specific type of White Box testing of the application focusing on public and private APIsLooking at this spectrum, where does most testing happen today? Where do most testing tools target today?

Menos teste e mais qualidade - como equilibrar essa equação? Presentation Transcript

  • 1. Menos Teste e Mais Qualidade:Como equilibrar essa equação?
  • 2. Sobre o Palestrante• Igor Abade (@igorabade) – Microsoft MVP, Visual Studio ALM – Referência nacional em Team Foundation Server (TFS)• Sócio-diretor da Lambda3 – Consultoria ALM/TFS, Agilidade/Scrum, Arquitetura – Desenvolvimento de Sistemas – Treinamentos – Parceira Microsoft Gold ALM
  • 3. Menos teste, maisMenos Teste, Mais Qualidade qualidade Como equilibrar a equação?
  • 4. Menos teste?!?!• Teste custa caro Não tenho orçamento para montar um time – Novos times de testes – Maior tempo de projeto• Desenvolvedores Testes de unidade? Sem chance! Meu cliente não sempre testaram vai pagar para meu time trabalhar dobrado!• “Sempre entreguei meus projetos” No final meu cliente vai• Afinal, preciso testar tudo de novo mesmo... mesmo testar?
  • 5. Por que testar software?Bugs em software custam àeconomia dos EUA um valorestimado de US$ 59,5 bilhões [1] Na média, desenvolvedores profissionais cometem de 15 a 50 erros a cada mil linhas de código que eles escrevem [2]Em 2009, projetos cancelados custaramUS$ 67 bilhões; atrasos em outros projetoscustaram mais US$ 21 bilhões [3] [1] http://web.archive.org/web/20090610052743/http://www.nist.gov/public_affairs/releases/n02-10.htm [2] Code Complete, 2nd Edition - http://cc2e.com/ [3] Standish Group, “The Chaos Report”- http://www.standishgroup.com/newsroom/chaos_2009.php
  • 6. Por que testar? Exemplos práticos• USS Yorktown, SmartShip – Tripulante digitou 0 num campo de um formulário – “Divide By Zero” desligou a propulsão – Parado na água por 2h45min• Ariane 5, vôo 501 – Reaproveitou código do Ariane 4, mas seguiu caminho diferente devido a mudanças – Conversão de 64bit para 16bit causou overflow – Sem tratamento de exceções (melhor desempenho)• F-22 Raptor – Em operação no Japão pela primeira vez – Cruzou Linha Internacional de Data. Computadores travaram – Tempo bom permitiu seguir os petroleiros ao Havaí
  • 7. Controle de Qualidade de Software
  • 8. Controle de Qualidade de Software• Teste é só um dos aspectos• Envolve processo de desenvolvimento Depois• É preciso garantir Durante qualidade em três Antes momentos:
  • 9. Controle de Qualidade: Antes• Tudo começa com processo de desenvolvimento• “Fazer o certo, do jeito certo, na hora certa” – Desenvolvimento Ágil – Gestão de Requisitos – Arquitetura / Design
  • 10. Desenvolvimento Ágil: O Manifesto ÁgilIndivíduos e interação entre eles mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. www.manifestoagil.com.br
  • 11. Práticas Ágeis Otimizar todo o fluxo Foco na otimização de todo o processo de negóciosLean Cultura ágil, mindset e práticas Eliminar desperdícioAgile Respeitar as pessoas, foco principalmente em P&DScrum Framework de gestão ágil de projetos Papéis e cerimônias, melhoria contínua dos times, entrega rápida, limitar trabalho à capacidade XP Práticas de engenharia Trazer qualidade para dentro do desenvolvimento – Automação, integração contínua, revisão por pares etc.
  • 12. Scrum• Iterativo• Comunicação• Auto- organizado• Define – Papéis – Artefatos – Eventos
  • 13. Elementos do Scrum Scrum Master Product Owner Team
  • 14. Planejamento Ágil no TFS “11”
  • 15. Gestão de Requisitos: Storyboarding
  • 16. Arquitetura: Diagrama de Camadas
  • 17. Controle de Qualidade: Durante• Qualidade durante construção do código – Testes de Unidade – Análise de Código – Automação de Testes – Integração Contínua• Processo de Testes – Testes Manuais – Gestão de Laboratório
  • 18. XP: Extreme Programming
  • 19. TDD: Test-driven Development
  • 20. CI: Continuous Integration• Integração Contínua é uma prática• Integrar código cedo e com frequência, para evitar “Integration Hell"• Objetivo final é “parar e consertar” o mais cedo possível
  • 21. Testes de Unidade
  • 22. Processo de TestesGeneralista EspecialistaTeste Manual Poucos scripts Muitos scripts Programação Conhecimento avançado de Cria scripts Algum Desenvolve programação 70% dospara configurar testes conhecimento ferramentas Maioria das rotinas de acontecem aqui ambiente, criar de mira aqui automação de dados programação testes Testes de “Caixa Preta” Testes de “Caixa Branca” Testes API
  • 23. Execução e Automação de Testes• Microsoft Test Manager – Planejamento, gestão e execução de casos de teste – Coleta dados de sistema e logs de eventos – Captura imagens de tela e vídeos – Fast-forward para aplicativos Windows Forms, WPF e Web
  • 24. Automação de Testes de UI• CodedUI Tests – Gravador de Ações – Geração a partir de casos de teste manuais – Scripts resilientes – .NET (C#, VB) – Windows Forms, WPF, Web (IE & Firefox), outras plataformas
  • 25. Gestão de Laboratórios• Laboratórios Virtuais• Automação de Implantação• Bibliotecas de VMs
  • 26. Microsoft Test Manager
  • 27. Relatório: Requisitos Implementados
  • 28. Relatório: Evolução dos Testes
  • 29. Controle de Qualidade: Depois• Aplicação em produção – Detecção de Erros – Captura Detalhada – Relatórios e Bugs
  • 30. Teste de Carga• Geração de Carga• Testes / Monitoramento de Servidores (Web, SQL…)• Carga Distribuída• Usuários ilimitados
  • 31. IntelliTrace: Depuração Histórica
  • 32. System Center 2012 Operations Manager• Monitoramento em tempo real de aplicações – Solução de problemas na sessão do usuário – Coleta de dados de exceções Javascript• Monitoração de desempenho a partir da perspectiva do browser – HTTP, AJAX, JavaScript• Degradação de Desempenho – Tamanho de HTML, imagens, scripts, CSS – Latência de rede, desempenho do servidor• Informações Estatísticas – Contadores por aplicação, página, IP – Tempo médio de execução no cliente, falhas/seg, etc.
  • 33. Intellitrace
  • 34. Custo dos Bugs Implantação Custo dos bugs TestesDesenvolvimento Fase do software
  • 35. MSDN / TechNethttp://msdn.microsoft.com/pt-br/http://technet.microsoft.com/pt-br/• Biblioteca & Artigos Técnicos (do Brasil)• Downloads/Galeria (SDKs, Code samples, documentação)• Social Network – pergunta um IT Pro• Como trabalhar com Microsoft Products• TechNet Wiki – voz da experiência e como fazer• Learn, learn, learn
  • 36. @IgorAbadeblog.lambda3.com.br/L3/IgorAbade