Qualidade de Software com Microsoft Visual Studio

2.468 visualizações

Publicada em

Workshop de Qualidade de software com Visual Studio dia 25 de outubro de 2013 no MTC, SP.

0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.468
No SlideShare
0
A partir de incorporações
0
Número de incorporações
980
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Caso de Teste: descreveumacondição particular a sertestadae é compost porvalores de entrada, restrições para suaexecução e um resultadooucomportamentoesperadoProcedimento de Teste: é a descrição dos passosnecessários para executar um ouvárioscasos;Critério de Teste: serve para selecionar e avaliarcasos de teste de forma a aumentar as possibilidades de provocarfalhasou, quandoissonãoocorre, estabelecer um nivel de confiançanacorreção; Ex: Cobertura dos Testes
  • We have release a significant set of capabilities in the 2010 release around testing and more specifically around integration of testing and development. Testers don’t often like to spend time in Visual Studio, so we build a rich WPF application ground up for the testers and non-technical users so they can use it easily and not have to interact with development tools. However the ALM integration ensures that developers benefit from the work the testers are doing while working in their IDE.All of the capabilities are based on Team Foundation Server which provides the single unified view of a teams effort across a software project. We have introduced several data collectors that provide key insights that developers often need to resolve bugs. These include the IntelliTrace data collector which provides developers the ability to move back in time to find out how a bug was encountered. Notably present is also the Test Impact collector which provides testers visibility into what new test cases need to be tested when code is changed by the developers. Lab Management is a set of integrated capabilities that can be used across the developer and testers that eliminates wasted cycles in setting up & tearing down machines, proving access to environment snapshots so developers can connect to test environments to debug issues and more. Test case management allows teams to better manage their testing effort, get traceability across requirements and also help teams adapt testing efforts to agile, water fall or other processes. Coded UI is a new test type that allows specialist testers to do UI automation and integrate that into the TFS build workflow.Web & Load Testing continue to be improved from our previous releases and provide teams that ability to do performance, load and stress testing and makes these tools more affordable so more people in the team can do such testing. Microsoft Test Runner allows generalist testers to execute their planned or exploratory tests and allows them log rich bugs with rich data that developers need. Lets take a quick peek at specific capabilities that help break the walls between dev & test and how lab management integration into ALM eliminates waste across build hand off
  • Integrated lab management democratizes virtualization into the application lifecycle by allowing quick set up and tear down of complex multi machine environments allowing developers and testers to test in production like environments. Integrated snap shot on bug empowers the testers to auto attach a link to the environment they are testing on allowing developers to easily recreate problems. Integration to the build work flow and extending the build activities allows teams to automate their builds such that they 1) Build their application, 2) Create or restore their environment to a clean known state 3) deploy the bits on clean state environment 4) execute automated unit and automation tests such that the entire build work flow is automated eliminating a lot of wasted cycles for teams while waiting for a build and understanding the quality of the build.
  • Qualidade de Software com Microsoft Visual Studio

    1. 1. Qualidade de Software com Microsoft Visual Studio
    2. 2. Quem Somos Adriano Bertucci Cleber Castro adriano.bertucci@konia.com.br Diretor Técnico cleber.castro@konia.com.br Coordenador de Qualidade Anderson Castro Marcus Garcia anderson.castro@konia.com.br Gestor Técnico marcus.garcia@konia.com.br Diretor Comercial
    3. 3. Qualidade uma necessidade Considerando que desenvolvimento de software representa 25% dos gastos em software, identificar a causa dos problemas e falhas nos projetos de desenvolvimento se torna uma necessidade.
    4. 4. Qualidade uma necessidade − O sucesso de um projeto de software pode ser definido por um triângulo: Tempo (Prazo) Orçamento (Custo) Funcionalidades Funcionalidade Qualidade Prazo Orçamento − Nos acostumamos em aceitar 2 dos 3 Consideramos isso sucesso? − Atualmente o triângulo se transformou em um quadrado; Qualidade é a quarta dimensão
    5. 5. Caminho para o sucesso... Ideia Solução
    6. 6. Como chegamos até aqui?
    7. 7. 1 Em 1983, uma III Guerra Mundial, quase teve início, devido a um bug no software de alerta Soviético. A falha fez com que o software mostrasse que os E.U.A. tinha lançado cinco mísseis. A nosso sorte, foi que o Tenente Coronel Stanislav Petrov, considerou que a informação estava errada e não ordenou o contra-ataque, evitando assim o inicio da III Grande Guerra.
    8. 8. 2 Em 1990, um bug numa central telefônica da AT&T deixou milhões de pessoas nos EUA sem comunicação de longa distância. O erro ocorreu num break do código C, que não foi testado corretamente. “IF YOU CANNOT TEST IT, DO NOT DO IT.”
    9. 9. 3 No primeiro lançamento da série Ariane 5, em 4 de junho de 1996, menos de um minuto após o lançamento, o foguete francês Ariane 501 se autodestruiu. A falha ocorreu devido a uma anomalia interna de software, que ocorreu durante a execução de uma conversão de dados de um número de 64 bits em ponto flutuante para um inteiro de 16 bits com sinal. O valor do número em ponto flutuante era maior do que poderia ser representado pelo inteiro de 16 bits com sinal. O resultado foi um operando inválido, que acabou gerando a falha.
    10. 10. 4 Alguns dos problemas e atrasos no lançamento do maior avião do mundo, o Airbus A380, foram as incompatibilidades das diferentes versões usadas do software de projeto e desenho mecânicos CATIA. Enquanto os sócios franceses utilizavam a última versão, a fábrica alemã não tinha ainda atualizado a mesma.
    11. 11. 5 Em 1998, um erro na navegação da nave espacial Mars Polar Lander fez com que ela voasse muito baixo e se espatifasse contra o solo. A falha foi devido a uma empresa terceirizada que confundiu o sistema de medidas americano e europeu.
    12. 12. 6 Uma falha na atualização do software empregado no Ministério do Trabalho e Pensões britânico, realizada pela empresa EDS, custou aos contribuintes mais de 1 bilhão de libras em 2004.
    13. 13. 7 O efeito do famoso bug do milênio e os bilhões gastos para evitar o temido desastre que felizmente não sucedeu.
    14. 14. 8 Explosão de um laptop da Dell em uma feira de negócios no Japão em 2006, diante da imprensa e das câmeras, registrando ao vivo, os relatos de consumidores da marca sobre acidentes do mesmo tipo ocorridos anteriormente.
    15. 15. 9 Um novo sistema de informática da poderosa Siemens para controlar a emissão de passaportes implantado em 1999 sem testes suficientes e sem pessoal qualificado para seu manejo, amargurou as férias de meio milhão de britânicos.
    16. 16. 10 Em 2007, uma simples placa de rede defeituosa não permitiu que parte dos 17.000 aviões do aeroporto de Los Angeles levantasse vôo.
    17. 17. “Rigorosos testes em sistemas e documentações podem reduzir os riscos de ocorrência de problemas no ambiente operacional, e contribui para a qualidade dos sistemas de software se os defeitos encontrados forem corrigidos antes de implantados em produção.” (Syllabus BSTQB, 2007) Os dez maiores desastres envolvendo TI, poderiam ter sido evitados com o teste de software.
    18. 18. Presente − Testador reporta um erro após passar horas coletando evidências de um problema. − Desenvolvedor diz que não tem informações suficientes. − Testador refaz os testes coletando mais evidências. − Desenvolvedor diz que não consegue reproduzir o erro em sua máquina.
    19. 19. Tendências
    20. 20. Futuro • Aplicações em ambientes complexos e distribuídos • Software + Serviços • Tecnologia Multi-Touch, Tables, Smarphones, etc.
    21. 21. Problemas • “Visibilidade do andamento do projeto” • “Não existe comunicação na equipe” • “Difícil conciliar necessidade do usuário com riscos” • “Modelos de desenvolvimento complexo” • “Soluções não são testadas”
    22. 22. Preço da qualidade?
    23. 23. Índices de sucesso em projetos Taxa de falha aceitável? − Baseado em tempo, orçamento e funcionalidades especificadas entregues, 68% dos projetos nunca foram colocados em produção ou foram cancelados. Extreme Chaos, The Standish Group International, Inc. – 2009 Acima do Custo estimado: 45% Acima do Prazo esperado: 63% Funcionalidades entregues: 67%
    24. 24. Impacto no desenvolvimento Desenvolvedores sentem-se desmotivados • Bug ping/pong • Falta de acesso a ambientes seguros • Tempo para preparação do ambiente excessivo Testadores não são respeitados • Preparar testes e ambiente consomem 30%-50% do ciclo de testes • Maioria dos defeitos fechados como “não-reproduzíveis”” • Ferramentas não integradas ao ciclo de desenvolvimento Impacto no negócio • Falta de agilidade para responder ameaças ou oportunidades • Alta taxa de falha em projetos • Quem sente “dor” é o usuário final
    25. 25. Qualidade de Software Pensando bem, o que é Qualidade de Software?
    26. 26. Qualidade de Software Qualidade de software envolve mais que uma eliminação de falhas que ocorreram durante o teste.
    27. 27. Qualidade de Software De acordo com a ISO-IEC-Standard 9126-1, os seguintes fatores pertencem a qualidade de software: • Funcionalidade • Confiabilidade • Usabilidade • Eficiência • Manutenibilidade • Portabilidade
    28. 28. O que fazer? • Padronizar • Arquitetar • Testar • Ter atitude • Capacitar • Organizar • Integrar • Fazer manutenção • Entregar rapidamente
    29. 29. Solução? ALM! • ALM (Application Lifecycle Management, Gerenciamento do Ciclo de Vida de Aplicações): • É a coordenação das atividades do ciclo de vida de desenvolvimento, incluindo requisitos, modelagem, desenvolvimento, construção, testes, manutenção e operações
    30. 30. Desenvolvedor Designer Profissional de Banco de Dados Arquiteto Testador Gerente de TI ou de Projetos Analistas de Negócios Relatório em Tempo Real     Defeitos – Bug Tracking Controle de Tarefas Requisitos de Negócios Controle de Versão Avançado  Metodologia & Processo de Desenvolvimento  Automação de Compilação (build)  Testes Web  Teste de Carga  Testes Unitários  Análise de Código  Documentação de Projeto  Ferramentas de Arquitetura  Ferramentas para Banco de Dados
    31. 31. Controle de Versão Processos Customizáveis Gestão de Requisitos Gestão de Projetos Automação de Build Gestão de Casos de Teste Rastreabilidade ponta-a-ponta Gestão de Laboratórios Dados Analíticos APIs EXTENSÍVEIS
    32. 32. Porque testar? Teste de Software
    33. 33. Conceitos Básicos Teste de Software
    34. 34. Testes - Conceitos
    35. 35. Testes - Conceitos • Caso de Teste • Procedimento de Teste • Critério de Teste
    36. 36. Segmentação dos testes Generalista Testes manuais Especialista Algumas scripts Scripts Scripts para setup do lab, massa dados Alguma experiência em código 70% dos testes ocorrem aqui Codificação Testes Maioria das automatizado ferramentas de testes foca aqui Grande experiência em código Caixa Preta Caixa Branca Testes API
    37. 37. Visual Studio 2013 Generalista Testes manuais Especialista Algumas scripts Scripts Codificação Grande experiência em código Scripts para setup do lab, massa dados Alguma experiência em código Testes automatizado Load Test Web Test Coded UI Test Unit Testing Microsoft Test Runner Gerenciamento de casos de teste Gerenciamento de laboratórios Coletores de dados (IntelliTrace™, Impacto de testes, Metricas…) Team Foundation Server Relatórios
    38. 38. Ciclo de Vida dos Testes Cenário Automação Planejamento Validação Especificação Execução
    39. 39. Ferramentas • Gestão/Planejamento de Testes • Testes manuais • Testes Unitários • Testes Funcionais de UI • WinForms, WPF, IE • Testes de Desempenho • Web sites • Carga / estresse
    40. 40. Testes Manuais Microsoft Test Manager
    41. 41. Execução e Automação • Ferramenta independente • Permite a execução de casos de teste • Coleta dados de sistema e logs de eventos • Captura imagens de tela e vídeos • Automatiza testes de aplicativos Windows Forms, WPF e Web
    42. 42. Microsoft Test Manager Testes Manuais na WEB
    43. 43. Gestão de Casos de Teste • Gestão de Testes Aperfeiçoada • Suporte para sistemas operacionais não-Windows com gestão de testes baseado na web • Crie ou gerencia Suítes e Planos de teste utilizando interface web • Desenvolvimento/Teste flexível (on-premises ou na nuvem) • Assinaturas MSDN agora incluem suporte a dev/test na nuvem
    44. 44. Gestão de Casos de Teste
    45. 45. Feedback do Usuário Feedback Client TFS
    46. 46. FeedBack Client TFS • Seu software esta pronto para ser testado pelo seu stakeholdersusuário final”Dono Produto”Diretor? • Você pode pedir revisão para fornecer vídeos, imagens, comentários e classificações • Seu feedback é capturado em Work Itens que você pode analisar e usar para criar um bug ou sugerir um novo item de backlog.
    47. 47. FeedBack Client TFS • Team Web Access (TWA) ( http://myserver:8080/tfs/DefaultCollection/MyProject )
    48. 48. Cobertura de Código Coded Coverage
    49. 49. Coded Coverage • O Coded Coverage permite visualizar o quanto do codigo foi coberto pelos testes executados e qual cobertura para cada “parte” do codigo. • Visual Studio Ultimate, Visual Studio Premium
    50. 50. Desempenho
    51. 51. Testes de Carga e Desempenho Com usuários virtuais ilimitados!
    52. 52. Teste de Carga na Nuvem • Teste de Carga utilizando nuvem • Use o Visual Studio Ultimate combina com Team Foundation Service para conduzir testes de carga utilizando agentes de teste instalados no Windows Azure • Escale testes de carga facilmente de dezenas para milhares de usuários sem a necessidade de configurar sua própria infraestrutura
    53. 53. Teste de Carga na Nuvem
    54. 54. Visual Studio 2013 Automação de Testes
    55. 55. Projetos de Teste
    56. 56. Coded UI Testes de Interface
    57. 57. Coded UI O Coded UI representa a automatização dos testes de UI (User Interface) Pode ser feito: • Manualmente • Como uma nova gravação; • A partir de uma gravação existente.
    58. 58. Coded UI – Configuração de Log C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDE Neste path localizar o arquivo QTAgent32.exe.config. Verifique antes de editar se o arquivo possui todas permissões de segurança para ler e gravar. <system.diagnostics> <switches> <!-- You must use integral values for "value". Use 0 for off, 1 for error, 2 for warn, 3 for info, and 4 for verbose. --> <add name="EqtTraceLevel" value="4" /> </switches> </system.diagnostics> Depois localize o bloco abaixo : <appSettings> <add key="EnableSnapshotInfo" value="true"/> <add key="EnableHttpLogger" value="true"/> </appSettings>
    59. 59. Web and Load Test Testes Funcionais
    60. 60. Web and Load Test Web and Load Testes são dois tipos de testes Web que podem ser realizados através do Visual Studio. Enquanto o Web Test grava as ações realizadas no ambiente web (através do brownser), o load test permite realizar o teste de carga do sistema, utilizando dos Web Tests Criados.
    61. 61. Windows 8.1 Testes de Apps
    62. 62. Teste de Apps • Suporte a Coded UI • Automatize teste de apps com Coded UI para aplicações XAML para Windows Store • Hub de Performance e Diagnóstico • O novo Hub de Performance e Diagnóstico dá ao desenvolvedor um único local para iniciar a identificação do problema e utilizar as ferramentas
    63. 63. Teste de Apps
    64. 64. Otimização de Apps
    65. 65. Otimização de Apps • Analisador de Responsividade de Interface • Resolva problemas de responsividade de interface e latência durante updates visuais da sua aplicação XAML ou HTML para Windows Store • Profiler de Consumo de Energia • Otimize o consume de energia de suas aplicações XAML e HTML para Windows Store
    66. 66. Profiler Consumo Energia 1. Nome Relatório 2. Time Line 3. Seleção da time line 4. Mudança de Potencia 5. Energia da rede(dados) 6. Total de consumo
    67. 67. Analisador de Responsividade de Interface
    68. 68. Analisador de Responsividade de Interface Parsing • Indica o tempo gasto na recuperação de recursos de aplicativos UI ,análise e XAML Layout • Indica o tempo gasto com o segmento que define elementos XAML. AppCode • Indica o tempo gasto com o aplicativo em execução (user), código que não está relacionado com a análise ou layout Xaml Other • Indica o tempo gasto com o segmento execução de código em tempo de execução XAML.
    69. 69. Science to Business Copyright – Direitos autorais Copyright © 2011-2013 Konia Tecnologia. Este documento é inédito e a advertência precedente é fixada para proteger Konia Tecnologia. no caso de publicação não autorizada. Todos os direitos reservados. Nenhuma parte deste documento pode ser reproduzida em qualquer forma, inclusive fotocópia ou transmissão eletrônica para qualquer computador, sem autorização prévia por escrito de Konia Tecnologia. As informações contidas neste documento são confidenciais e propriedade da Konia Tecnologia. e não podem ser usadas ou reveladas exceto quando expressamente autorizado por escrito por Konia Tecnologia.
    70. 70. Contatos Adriano Bertucci Cleber Castro adriano.bertucci@konia.com.br Diretor Técnico cleber.castro@konia.com.br Coordenador de Qualidade Anderson Castro Marcus Garcia anderson.castro@konia.com.br Gestor Técnico marcus.garcia@konia.com.br Diretor Comercial

    ×