Apresentação do Nuno Caneco sobre Utilização de Mock Objects em Testes Unitários na 29a Reunião Presencial da Comunidade NetPonto em Lisboa (http://netponto.org).
Tuga it 2016 improving your application performanceNuno Caneco
This document discusses ways to improve application performance for a project involving 5 developers and 1 tester building a web, desktop, and mobile application over 18 sprints using .NET and SQL Server. It recommends preparing the database with indexes, stored procedures, and filegroups; fine-tuning the production database; learning about Entity Framework best practices like using stored procedures and lazy loading; using caching; optimizing for RAM usage; logging configuration; and considering scalability, performance, and architecture in technical choices.
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
O documento discute a importância dos testes de software para garantir a qualidade e evitar bugs caros. Ele explica que testes devem ser realizados em três momentos: antes do desenvolvimento, durante o desenvolvimento e depois que o software é implantado. O documento também fornece exemplos de como práticas ágeis e testes automatizados podem melhorar a qualidade e reduzir custos.
O documento discute a arquitetura Elixir Umbrella para desenvolver aplicações desacopladas sem a complexidade de microserviços. A estrutura permite dividir uma aplicação em múltiplos projetos/apps independentes, com cada um focado em uma responsabilidade e comunicando-se através de mensagens. Dois projetos testados tiveram suas estruturas implementadas em uma semana cada, mostrando a viabilidade da abordagem.
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
1) O documento discute a arquitetura de microserviços, como decompor uma aplicação monolítica em serviços independentes e como eles se comunicam.
2) Apresenta os benefícios da arquitetura de microserviços como escalabilidade independente, deploy autônomo e equipes focadas, mas também desafios como integração e falhas.
3) Exemplifica a decomposição de uma loja virtual em microserviços como pedidos, produtos, preços e estoque que se comunicam via REST ou mensageria.
Moacir Casemiro apresenta suas credenciais e experiência em arquitetura e gestão de software, incluindo certificações como MCP, MCAD, MCTS e MCPD. Ele fornece seus contatos e detalhes sobre palestras e treinamentos sobre padrões de projeto, MVC e ASP.NET MVC.
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
O documento discute conceitos de front-end como MVC, MVP, MVVM e AngularJS. Explica que MVC separa a interface do usuário em Model, View e Controller, enquanto MVP usa Presenter no lugar de Controller. MVVM usa ViewModel para manter a View e Model sincronizados. AngularJS usa MVW, onde qualquer padrão pode ser usado.
O documento discute a importância da qualidade de software e como alcançá-la. Apresenta os desafios comuns entre testadores e desenvolvedores e como a automação de testes com ferramentas como o Visual Studio podem ajudar a superá-los, melhorando a comunicação, reprodutibilidade de defeitos e agilidade.
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o Scrum e o Team Foundation Server 2012, podem ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.
Tuga it 2016 improving your application performanceNuno Caneco
This document discusses ways to improve application performance for a project involving 5 developers and 1 tester building a web, desktop, and mobile application over 18 sprints using .NET and SQL Server. It recommends preparing the database with indexes, stored procedures, and filegroups; fine-tuning the production database; learning about Entity Framework best practices like using stored procedures and lazy loading; using caching; optimizing for RAM usage; logging configuration; and considering scalability, performance, and architecture in technical choices.
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
O documento discute a importância dos testes de software para garantir a qualidade e evitar bugs caros. Ele explica que testes devem ser realizados em três momentos: antes do desenvolvimento, durante o desenvolvimento e depois que o software é implantado. O documento também fornece exemplos de como práticas ágeis e testes automatizados podem melhorar a qualidade e reduzir custos.
O documento discute a arquitetura Elixir Umbrella para desenvolver aplicações desacopladas sem a complexidade de microserviços. A estrutura permite dividir uma aplicação em múltiplos projetos/apps independentes, com cada um focado em uma responsabilidade e comunicando-se através de mensagens. Dois projetos testados tiveram suas estruturas implementadas em uma semana cada, mostrando a viabilidade da abordagem.
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
1) O documento discute a arquitetura de microserviços, como decompor uma aplicação monolítica em serviços independentes e como eles se comunicam.
2) Apresenta os benefícios da arquitetura de microserviços como escalabilidade independente, deploy autônomo e equipes focadas, mas também desafios como integração e falhas.
3) Exemplifica a decomposição de uma loja virtual em microserviços como pedidos, produtos, preços e estoque que se comunicam via REST ou mensageria.
Moacir Casemiro apresenta suas credenciais e experiência em arquitetura e gestão de software, incluindo certificações como MCP, MCAD, MCTS e MCPD. Ele fornece seus contatos e detalhes sobre palestras e treinamentos sobre padrões de projeto, MVC e ASP.NET MVC.
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
O documento discute conceitos de front-end como MVC, MVP, MVVM e AngularJS. Explica que MVC separa a interface do usuário em Model, View e Controller, enquanto MVP usa Presenter no lugar de Controller. MVVM usa ViewModel para manter a View e Model sincronizados. AngularJS usa MVW, onde qualquer padrão pode ser usado.
O documento discute a importância da qualidade de software e como alcançá-la. Apresenta os desafios comuns entre testadores e desenvolvedores e como a automação de testes com ferramentas como o Visual Studio podem ajudar a superá-los, melhorando a comunicação, reprodutibilidade de defeitos e agilidade.
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o Scrum e o Team Foundation Server 2012, podem ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.
O documento discute a viabilidade e demonstração da automação de testes com QTP. Aborda conceitos como planejamento da automação, análise de viabilidade, ferramentas de automação e uma demonstração prática com QTP. O documento fornece diretrizes para uma automação de testes bem-sucedida.
O documento discute a estratégia de testes utilizando a "Pirâmide de Testes Invertida" em quatro projetos de um instituto de inovação. Foi utilizado o framework Behat para criar cenários de testes em linguagem natural que foram automatizados. Lições aprendidas incluem facilidade em identificar bugs, mas também alto tempo de execução e manutenção dos testes. Ações futuras incluem definir estratégia de testes em conjunto e investir em outros níveis de testes.
O documento discute conceitos de testes de unidade, incluindo: (1) a importância de testes automatizados para prevenir erros; (2) as abordagens de TDD e BDD para guiar o desenvolvimento por testes; (3) diferentes tipos de testes como unitário, de integração e de interface do usuário. O documento também fornece uma demonstração de testes unitários com XUnit e Moq.
O documento descreve a estratégia de testes adotada pelo CESAR, conhecida como "Pirâmide de Testes Invertida", com foco em testes de interface do usuário e integração. A estratégia trouxe benefícios como detecção precoce de bugs e documentação, porém enfrentou desafios como tempo de execução longo e manutenção custosa. Melhorias futuras incluem reduzir testes manuais e end-to-end e fortalecer testes de unidade e integração.
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
O documento discute a importância da qualidade de software e do gerenciamento do ciclo de vida de aplicações (ALM) para garantir a qualidade. Ele apresenta desafios comuns em projetos de software, como a falta de gerenciamento de requisitos e dispersão de ferramentas. A solução proposta é o uso do ALM para integrar as atividades do ciclo de vida, desde requisitos até operações, e melhorar a comunicação entre times.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, explicando sua arquitetura Model-View-Controller e características como roteamento, modelos, controladores e views.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, discutindo sua arquitetura MVC, rotas, modelos, controladores, views e helpers HTML.
Apresentação sobre Automação de Teste de Software no 3° BRATESTE - Seminário Brasileiro de Teste de Software em 18/06/2010
Esta apresentação contém material teórico sobre Automação de Teste, Geração de Frameworks de Automação de Teste, como definir a arquitetura da automação e um hands on com Selenium
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
O documento apresenta uma abordagem para construir rapidamente um microserviço Java usando modelagem em UML textual (TextUML) e geração de código. Apresenta uma aplicação exemplo de reembolso de despesas modelada em TextUML e discute como entidades, relacionamentos, ações e outros elementos seriam mapeados para código Java usando JPA, JAX-RS e outras tecnologias. A solução proposta visa aumentar a produtividade reduzindo o tempo de desenvolvimento inicial.
Curso sobre AngularJS, tratando deste ambiente e ferramentas modernas de desenvolvimento até o desenvolvimento de uma aplicação usando AngularJS. Curso em duas partes.
No final foram desenvolvidas duas aplicações que podem ser vistas nos links:
https://github.com/alvarowolfx/shopping-list
https://github.com/alvarowolfx/ng-pokedex
Este documento discute testes unitários, apresentando suas vantagens e desvantagens, ferramentas como JUnit e Mockito, e exemplos de como implementar testes unitários. O objetivo é validar o funcionamento correto de unidades de código e evitar regressões de forma a tornar o desenvolvimento mais confiante.
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
O documento lista 10 ferramentas para melhorar a qualidade do software, incluindo ferramentas para análise de código, detecção de código duplicado, extração de métricas, geração de testes automatizados, análise de cobertura de código, monitoramento de aplicações em produção e geração de relatórios. A qualidade do software é fundamental para o sucesso do DevOps para entregar valor aos clientes de forma rápida e contínua.
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
O documento discute a importância dos testes automatizados para entrega contínua e DevOps. Ele explica diferentes tipos de testes como testes unitários, de serviço e de interface do usuário e ferramentas para cada um. Também aborda tópicos como pirâmide de testes, antipadrões, cobertura de código e testes de mutação.
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
A importância de testes de software já deveriam ser um consenso entre times de desenvolvimento. Contudo ainda há profissionais que não compreendem o valor deles, um dos motivos é que de fato muitos softwares possuem testes mas continuam a apresentar bugs a cada entrega. Isso ocorre porque é comum os testes garantirem o funcionamento do código, mas não das funcionalidades como um todo. Na apresentação será abordado como equilibrar testes unitários, de componentes e de integração organizando-os através de uma visão mais direcionada ao negócio, features e histórias do que apenas ao código implementado.
O documento apresenta uma sessão sobre ASP.NET MVC, discutindo os objetivos do framework MVC, os principais conceitos como Model, View e Controller, e como o ASP.NET MVC RC1 implementa este padrão. O documento também compara ASP.NET MVC com ASP.NET Web Forms e fornece demonstrações práticas do framework.
1. O documento discute estratégias para automação de testes de software, comparando testes manuais e automatizados e abordando considerações importantes para a implantação e manutenção de testes automatizados.
2. É apresentada uma introdução sobre testador vs desenvolvedor de testes, record e codificação, escopo de automação e o "universo D" de metodologias como TDD e BDD.
3. O valor da automação é discutido, assim como pontos para identificar o que automatizar versus não automatizar, considerações para a impl
O documento discute conceitos básicos de arquitetura de software, incluindo definições de arquitetura, tipos de visões arquiteturais e padrões comuns. Também aborda processos para projetar uma arquitetura, como Attribute-Driven Design (ADD) e a importância de considerar atributos de qualidade.
Revisa conceitos de Orientação a Objetos. Revisa conceitos de Padrões de Projeto.
Apresenta um breve histórico da evolução da arquitetura de software. Mostra a importância que a escolha do padrão arquitetural exerce na construção de software. Demonstra de maneira prática e em forma de experimento, um projeto de software Java que tenha sido aplicado os padrões arquiteturais adotados no mercado de trabalho, habilitando os alunos a definirem e utilizarem os padrões arquiteturais.
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Comunidade NetPonto
Continuous Delivery is a key enabler of fast release cycles, fast feedback and high performance. Most of what we know on how to do CD is mainly oriented towards server software, where we control the environment. For desktop applications, distributed to uncontrolled environments things can get a little tricky, and the application size can be a problem.
Enabling CD for our desktop applications has changed the way we develop software in many aspects. In this presentation, we’ll talk about how we implemented CD to distribute our applications in an incremental manner and talk about many of the discoveries we made along the way.
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Comunidade NetPonto
Já tiveste ideias brilhantes para uma app? Queres colocar isso em prática? Então esta sessão é para ti!
O App Studio da Microsoft é um serviço para facilitar e acelerar o desenvolvimento de aplicações para Windows Phone e Windows 8.1. Nesta sessão, a Sara vai apresentar o App Studio, onde vai criar uma app e lhe vai adicionar diversas funcionalidades, como por exemplo: feed the notícias de um blog, canal de Youtube, feed de uma página de Facebook, entre outras funcionalidades.
E uma vez que o App Studio é extensível e porque código não podia faltar, a Sara irá apresentar um exemplo de como extender o código, adicionando o feed do Twitter.
Mais conteúdo relacionado
Semelhante a Utilização de Mock Objects em Testes Unitários
O documento discute a viabilidade e demonstração da automação de testes com QTP. Aborda conceitos como planejamento da automação, análise de viabilidade, ferramentas de automação e uma demonstração prática com QTP. O documento fornece diretrizes para uma automação de testes bem-sucedida.
O documento discute a estratégia de testes utilizando a "Pirâmide de Testes Invertida" em quatro projetos de um instituto de inovação. Foi utilizado o framework Behat para criar cenários de testes em linguagem natural que foram automatizados. Lições aprendidas incluem facilidade em identificar bugs, mas também alto tempo de execução e manutenção dos testes. Ações futuras incluem definir estratégia de testes em conjunto e investir em outros níveis de testes.
O documento discute conceitos de testes de unidade, incluindo: (1) a importância de testes automatizados para prevenir erros; (2) as abordagens de TDD e BDD para guiar o desenvolvimento por testes; (3) diferentes tipos de testes como unitário, de integração e de interface do usuário. O documento também fornece uma demonstração de testes unitários com XUnit e Moq.
O documento descreve a estratégia de testes adotada pelo CESAR, conhecida como "Pirâmide de Testes Invertida", com foco em testes de interface do usuário e integração. A estratégia trouxe benefícios como detecção precoce de bugs e documentação, porém enfrentou desafios como tempo de execução longo e manutenção custosa. Melhorias futuras incluem reduzir testes manuais e end-to-end e fortalecer testes de unidade e integração.
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
O documento discute a importância da qualidade de software e do gerenciamento do ciclo de vida de aplicações (ALM) para garantir a qualidade. Ele apresenta desafios comuns em projetos de software, como a falta de gerenciamento de requisitos e dispersão de ferramentas. A solução proposta é o uso do ALM para integrar as atividades do ciclo de vida, desde requisitos até operações, e melhorar a comunicação entre times.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, explicando sua arquitetura Model-View-Controller e características como roteamento, modelos, controladores e views.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, discutindo sua arquitetura MVC, rotas, modelos, controladores, views e helpers HTML.
Apresentação sobre Automação de Teste de Software no 3° BRATESTE - Seminário Brasileiro de Teste de Software em 18/06/2010
Esta apresentação contém material teórico sobre Automação de Teste, Geração de Frameworks de Automação de Teste, como definir a arquitetura da automação e um hands on com Selenium
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
O documento apresenta uma abordagem para construir rapidamente um microserviço Java usando modelagem em UML textual (TextUML) e geração de código. Apresenta uma aplicação exemplo de reembolso de despesas modelada em TextUML e discute como entidades, relacionamentos, ações e outros elementos seriam mapeados para código Java usando JPA, JAX-RS e outras tecnologias. A solução proposta visa aumentar a produtividade reduzindo o tempo de desenvolvimento inicial.
Curso sobre AngularJS, tratando deste ambiente e ferramentas modernas de desenvolvimento até o desenvolvimento de uma aplicação usando AngularJS. Curso em duas partes.
No final foram desenvolvidas duas aplicações que podem ser vistas nos links:
https://github.com/alvarowolfx/shopping-list
https://github.com/alvarowolfx/ng-pokedex
Este documento discute testes unitários, apresentando suas vantagens e desvantagens, ferramentas como JUnit e Mockito, e exemplos de como implementar testes unitários. O objetivo é validar o funcionamento correto de unidades de código e evitar regressões de forma a tornar o desenvolvimento mais confiante.
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
O documento lista 10 ferramentas para melhorar a qualidade do software, incluindo ferramentas para análise de código, detecção de código duplicado, extração de métricas, geração de testes automatizados, análise de cobertura de código, monitoramento de aplicações em produção e geração de relatórios. A qualidade do software é fundamental para o sucesso do DevOps para entregar valor aos clientes de forma rápida e contínua.
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
O documento discute a importância dos testes automatizados para entrega contínua e DevOps. Ele explica diferentes tipos de testes como testes unitários, de serviço e de interface do usuário e ferramentas para cada um. Também aborda tópicos como pirâmide de testes, antipadrões, cobertura de código e testes de mutação.
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
A importância de testes de software já deveriam ser um consenso entre times de desenvolvimento. Contudo ainda há profissionais que não compreendem o valor deles, um dos motivos é que de fato muitos softwares possuem testes mas continuam a apresentar bugs a cada entrega. Isso ocorre porque é comum os testes garantirem o funcionamento do código, mas não das funcionalidades como um todo. Na apresentação será abordado como equilibrar testes unitários, de componentes e de integração organizando-os através de uma visão mais direcionada ao negócio, features e histórias do que apenas ao código implementado.
O documento apresenta uma sessão sobre ASP.NET MVC, discutindo os objetivos do framework MVC, os principais conceitos como Model, View e Controller, e como o ASP.NET MVC RC1 implementa este padrão. O documento também compara ASP.NET MVC com ASP.NET Web Forms e fornece demonstrações práticas do framework.
1. O documento discute estratégias para automação de testes de software, comparando testes manuais e automatizados e abordando considerações importantes para a implantação e manutenção de testes automatizados.
2. É apresentada uma introdução sobre testador vs desenvolvedor de testes, record e codificação, escopo de automação e o "universo D" de metodologias como TDD e BDD.
3. O valor da automação é discutido, assim como pontos para identificar o que automatizar versus não automatizar, considerações para a impl
O documento discute conceitos básicos de arquitetura de software, incluindo definições de arquitetura, tipos de visões arquiteturais e padrões comuns. Também aborda processos para projetar uma arquitetura, como Attribute-Driven Design (ADD) e a importância de considerar atributos de qualidade.
Revisa conceitos de Orientação a Objetos. Revisa conceitos de Padrões de Projeto.
Apresenta um breve histórico da evolução da arquitetura de software. Mostra a importância que a escolha do padrão arquitetural exerce na construção de software. Demonstra de maneira prática e em forma de experimento, um projeto de software Java que tenha sido aplicado os padrões arquiteturais adotados no mercado de trabalho, habilitando os alunos a definirem e utilizarem os padrões arquiteturais.
Semelhante a Utilização de Mock Objects em Testes Unitários (20)
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Comunidade NetPonto
Continuous Delivery is a key enabler of fast release cycles, fast feedback and high performance. Most of what we know on how to do CD is mainly oriented towards server software, where we control the environment. For desktop applications, distributed to uncontrolled environments things can get a little tricky, and the application size can be a problem.
Enabling CD for our desktop applications has changed the way we develop software in many aspects. In this presentation, we’ll talk about how we implemented CD to distribute our applications in an incremental manner and talk about many of the discoveries we made along the way.
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Comunidade NetPonto
Já tiveste ideias brilhantes para uma app? Queres colocar isso em prática? Então esta sessão é para ti!
O App Studio da Microsoft é um serviço para facilitar e acelerar o desenvolvimento de aplicações para Windows Phone e Windows 8.1. Nesta sessão, a Sara vai apresentar o App Studio, onde vai criar uma app e lhe vai adicionar diversas funcionalidades, como por exemplo: feed the notícias de um blog, canal de Youtube, feed de uma página de Facebook, entre outras funcionalidades.
E uma vez que o App Studio é extensível e porque código não podia faltar, a Sara irá apresentar um exemplo de como extender o código, adicionando o feed do Twitter.
O padrão MVVM é o padrão de desenvolvimento recomendado para aplicações Windows Phone. E para ajudar na implementação desde padrão existem vários toolkits que facilitam o processo de desenvolvimento.
Nesta sessão a Sara irá mostrar como usar o toolkit MVVM Light e o Cimbalino Windows Phone Toolkit, dois toolkits muito poderosos para a implementação do padrão MVVM. Para tal irá construir alguns exemplos durante a sessão como:
- obter a localização;
- lançar a aplicação da câmara que permitirá tirar fotografias;
- lançar a aplicação do telefone que permitirá efetuar chamadas;
- obter o identificador univoco do telefone;
- escrever texto e images no isolated storage.
Deep dive into Windows Azure Mobile Services - Ricardo CostaComunidade NetPonto
O documento resume uma apresentação sobre Windows Azure Mobile Services. Apresenta os principais recursos como dados, autenticação, código no lado do servidor, APIs personalizadas, controle de versão, agendador e notificações. Inclui demonstrações destes recursos.
The power of templating.... with NVelocity - Nuno CanceloComunidade NetPonto
O documento descreve uma reunião presencial realizada em 23 de novembro de 2013. Apresenta informações sobre patrocinadores do evento e datas de próximas reuniões. O documento também resume uma palestra sobre NVelocity, incluindo sua sintaxe e diretivas.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Com o ASP.NET SignalR passamos a ter o poder da comunicação em real-time através de mecanismos de push. O SignalR utiliza um conjunto de tecnologias e técnicas para permitir que o servidor envie informação para um ou mais clientes. Estes clientes podem ser tão diferentes quanto um cliente HTML + Javascript, uma aplicação WPF ou mesmo uma app a ser executada no iOS.
Vamos explorar estas potencialidades em um conjunto de exemplos práticos onde poderemos perceber:
Quais as técnicas e tecnologias que suportam o SignalR;
Quão simples é criar um cliente capaz de fazer comunicação em real-time;
Quais plataformas já suportam o SignalR;
Além disso poderemos discutir quais as áreas de aplicabilidade desta tecnologia.
Nesta sessão vamos analisar as características deste serviço fazer uma breve introdução à arquitectura que a suporta. Iremos verificar as considerações que devem ser tidas em conta na criação e utilização deste tipo de armazenamento, analisando o impacto que as decisões tomadas têm no que respeita a performance e objectivos de escalabilidade.
Serão ainda mostrados alguns exemplos de utilização em cenários distintos, incluindo algumas optimizações que se podem fazer para melhorar a performance.
Comunidade NetPonto, a comunidade .NET em Portugal!
http://netponto.org
Nesta sessão é objetivo mostrar as novas funcionalidade do HTML5, bem como a integração com tecnologias existentes.
Nesta sessão vão ser abordadas as diferenças existentes entre o HTML 4 e o HTML 5, vai ser possível perceber quais são as novas funcionalidades, novos controlos, integração com tecnologias existentes (CSS e Javascript). Vamos também discutir como fazer offline, ligações ao servidor para enviar ou receber informação e como utilizar o Canvas e o SVG para desenhar em HTML.
Comunidade NetPonto, a comunidade .NET em Portugal!
http://netponto.org
Nos dias de hoje, onde trabalhamos em "internet time", com o paragdima da cloud e onde a economia nos obriga a fazer mais com menos, o "Time to Market" torna-se um fator diferenciador entre o sucesso e o falhanço de um projeto de software.
Esta sessão aborda alguns métodos e ferramentas que nos ajudam a automatizar processos de build e deployment, que podem tornar-se dolorosos e até impeditivos no avanço para a meta final de um projeto de software, de modo a que nos possamos focar nas atividades que acrescem valor ao nosso produto.
Nomeadamente, serão apresentados exemplos práticos da aplicação das tecnologias Microsoft como o MSBuild, Web Deploy, web.config transformations, web.config parametrizations e ainda, a utilização do servidor de builds Jenkins para implementar a automação de builds e deployments.
Comunidade NetPonto, a comunidade .NET em Portugal!
http://netponto.org
The document summarizes a presentation about the OData protocol given by Jorge Gonçalves and Manuel Costa. OData provides a standardized way to expose and consume data via RESTful web services. It allows data from various sources to be unlocked and queried using HTTP, JSON, and other web technologies. The presentation covered the basics of OData, how to create and consume OData services using .NET, and various OData client options for JavaScript, Excel, and LightSwitch. Questions from attendees were invited at the end.
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComunidade NetPonto
A apresentação discute como desenvolvedores podem compartilhar código entre aplicativos Windows Store e Windows Phone usando bibliotecas portáteis de classes e o padrão MVVM. Ela também discute ferramentas como Portable Class Libraries e bibliotecas que facilitam o desenvolvimento multiplataforma.
Case studies about Layout & View States & Scale in Windows 8 Store AppsComunidade NetPonto
Este documento resume uma apresentação sobre layouts, estados de visualização e resoluções de tela em aplicativos Windows Store. A apresentação discute como personalizar layouts usando estilos, alterar estados de visualização com o Visual State Manager e lidar com diferentes resoluções de tela. Também fornece exemplos de como alterar cores e bordas selecionadas em uma ListView.
Este documento resume uma apresentação sobre programação orientada a aspectos (AOP) usando a ferramenta Postsharp. Ele introduz os conceitos fundamentais de AOP e Postsharp, incluindo aspectos base, multicast e providers. Demonstra recursos como tempo de vida e escopo de aspectos e fornece referências adicionais.
Apresentação do João Pedro Martins sobre Dinâmica e Motivacao de Equipas de Projecto na 28a Reunião Presencial da Comunidade NetPonto em Lisboa (http://netponto.org).
Apresentação do Marco Silva sobre a utilização de KnockoutJS com ASP .NET MVC 3 na 28a Reunião Presencial da Comunidade NetPonto em Lisboa (http://netponto.org).
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
O documento apresenta exemplos de logs de uma aplicação SVN que registam as ações dos utilizadores no repositório. São apresentadas duas formas de fazer logging: de forma errada, apenas registando mensagens de erro, e de forma correta, usando uma biblioteca de logging estruturada e gravando logs de diferentes níveis. É explicado como a instrumentação e testes automatizados ajudam a detetar e corrigir problemas mais rapidamente.
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteComunidade NetPonto
Apresentação do C. Augusto Proiete sobre como podemos desenvolver aplicações Metro style para o Windows 8 e tirar partido das novas APIs introduzidas com o Windows Runtime (WinRT), na 2a Reunião Presencial da Comunidade NetPonto (http://netponto.org) no Porto.
Video desta apresentação:
http://www.youtube.com/watch?v=8-njK3WjZtY
This document summarizes a presentation on ASP.NET Web API given by Pedro Félix. The presentation introduced ASP.NET Web API, describing its programming model based on HTTP and focus on building APIs exposed via the web. It also covered the architectural components involved, including routing, controllers, request/response handling, and extensibility points.
4. Nuno Caneco
Consultor Sénior na |create|it|
Áreas de interesse:
• SOA e Integração
• WCF
• desenvolvimento core
• Dependency Injection.
5. Agenda
• Unit tests
• Mocking frameworks
• Demo
• Considerações de arquitectura
• Dicas
6. Testes e mais testes…
Testes de performance Testes de sistema
Testes de carga Testes de usabilidade
Testes de aceitação Testes funcionais
Testes unitários Testes de segurança
Testes de integração
7. Testes unitários
• Objectivo:
– Testar a lógica de um método de forma isolada, tendo
em conta os vários inputs possíveis e tendo em
atenção casos de fronteira e valores inválidos.
• Características:
– Repetíveis
– Idempotentes
– Não depender de outros testes
– Inócuos
8. Exemplo
[TestClass]
public class SaleRecordsReaderTest
{
private SaleRecordsReader GetReader()
{
return new SaleRecordsReader();
}
[TestMethod]
public void ListSaleRecordTest()
{
var reader = GetReader();
var saleRecords = reader.ListSaleRecords();
Assert.IsNotNull(saleRecords);
Assert.IsTrue(saleRecords.Count > 0);
}
}
9. Alguns impedimentos e dificuldades
• UI: É difícil de testar código de interface
– HTML/Javascript
• Acessibilidade
– dos métodos: private, protected
– da classe: internal
• Dependências
– Persistência: BD, Lista de SharePoint
– Sistemas externos
– Utilização de providers: Membership providers, …
• Classes binded a determinados contextos
– Ex.: CodeBehind de páginas .ASPX
10. Mitos
• “O meu código é perfeito!! Não é preciso testar.”
• “Não vale a pena fazer testes unitários. Basta clicar naquele link e
pronto… Está testado!”
• “O projecto precisa de tempo para fazer testes unitários”
• “Eh pá… tenho que ter uma BD com dados de teste…”
• “Tenho muitas dependências. Não é possível abstrair-me dos
sistemas externos”
11. Mitos
• “O meu código é perfeito!! Não é preciso testar.”
• “Não vale a pena fazer testes unitários. Basta clicar naquele link e
pronto… Está testado!”
• “O projecto precisa de tempo para fazer testes unitários”
• “Eh pá… tenho que ter uma BD com dados de teste…”
• “Tenho muitas dependências. Não é possível abstrair-me dos
sistemas externos”
12. Motivação
Sistema
Serviços
Business
DAL/RAL
Sistemas externos
BD
13. Mocks com unit tests
In object-oriented programming, mock objects are
simulated objects that mimic the behavior of real
objects in controlled ways.
A computer programmer typically creates a mock object to test the
behavior of some other object, in much the same way that a car
designer uses a crash test dummy to simulate the dynamic behavior of
a human in vehicle impacts.
http://en.wikipedia.org/wiki/Mock_object
14. Estratégia de implementação
1. Gerar mock
– Usar framework de mocking para gerar mocks das dependências da classe a
testar
2. Substituir dependência pelo mock
– Inicializar classe a ser testada com o mock em substituição da implementação
“real”
3. Programa o comportamento do mock
– Programar os mocks para retornar determinados outputs em função dos inputs
• Valores de retorno
• Excepções
4. Aferir o comportamento da classe em teste
15. E que tal um exemplo?
CustomerManager
ICustomerReader IInvoiceReader
CustomerReader InvoiceReader
16. E que tal um exemplo?
CustomerManager
ICustomerReader IInvoiceReader
CustomerReader InvoiceReader
17. E que tal um exemplo?
CustomerManager
ICustomerReader IInvoiceReader
CustomerReader InvoiceReader
18. E que tal um exemplo?
CustomerManager
ICustomerReader IInvoiceReader
CustomerReader InvoiceReader
19. E que tal um exemplo?
CustomerManagerTest CustomerManager
ICustomerReader IInvoiceReader
CustomerReader InvoiceReader
20. E que tal um exemplo?
CustomerManagerTest CustomerManager
ICustomerReader IInvoiceReader
CustomerReaderMock CustomerReader InvoiceReader invoiceReaderMock
21. E que tal um exemplo?
CustomerManagerTest CustomerManager
ICustomerReader IInvoiceReader
CustomerReaderMock CustomerReader InvoiceReader invoiceReaderMock
22. E que tal um exemplo?
CustomerManagerTest CustomerManager
ICustomerReader IInvoiceReader
CustomerReaderMock CustomerReader InvoiceReader invoiceReaderMock
23. E que tal um exemplo?
CustomerManagerTest CustomerManager
ICustomerReader IInvoiceReader
CustomerReaderMock CustomerReader InvoiceReader invoiceReaderMock
Os mocks substituem as classes reais no contexto de um teste unitário
24. O objectivo
• Evitar dependências
– Dados (base-de-dados, configuração, …)
– Estado de sistemas externos (CRM, ERP, …)
– Contas de utilizador
– Setup de ambientes com dados de teste
• Testar vários cenários de negócio e condições de
fronteira
– Nulos, valores inválidos, decisões em função de valores
específicos
25. Aplicabilidade
• A todo o código C# que seja testável
–Serviços WCF
–Aplicações MVC
–Aplicações WPF
–…
29. Considerações de arquitectura
• É necessário fazer override do método .Equals() para os
objectos de input dos métodos
• Construtor que receba as interfaces das dependências
• Todas as dependências devem ser declaradas como
interfaces
– Usar “Ctrl+R, I” para gerar interfaces automaticamente
• É conveniente que os testes herdem de uma classe base
que contém os mocks
30. Dependency Injection
• Substituição das dependências é
automática
• Evita múltiplos construtores das classes a
testar
• Código de inicialização do container fica na
classe base de testes
33. Dicas
• Classe de teste junto à classe testada
– Ajuda a lembrar que existem testes
– Utilizar #if para não compilar testes em Release
• Mock das fronteiras da aplicação
– Permite atingir coverage elevada com menor número de testes
• Usar uma classe base para declarar os mocks
• Usar dependency injection
– Permite injectar automaticamente os mocks numa classe base
– Evitando a repetição da criação dos mocks pelas várias classes de teste
34. Prós e contras
+ confiança no código Testes têm que ser mantidos
+ confiança em O código pode ter que ser
refactorizações estruturado para ser testável
Minimiza testes funcionais Nem todo o código é testável
Utilização de mocks
“descomplica” testes unitários
Execução automatizada com
integração contínua
39. Próximas reuniões presenciais
• 26-05-2012 – Maio
• 02-06-2012 – Junho (Coimbra)
• 16-06-2012 – Junho
• 21-07-2012 – Julho
Reserva estes dias na agenda! :)
Questões à audiência:Quemjá usou testes unitários?Quem AINDA usa testes unitários?Os testes unitários do projecto estão a passar?Quem usa técnicas de mocking?
Passamos a vida a testar as nossas aplicaçõesTestes dependem deDimensão da aplicaçãoCriticidade para o negócioExposição da aplicação…
Testes unitários:“quando entra o porco, sai a salsicha”Testes unitários: isolados, completos e condições de fronteiraTestes unitários vs testes de integração vsframework de testes unitários
Com certeza estão familiarizados, mas para dar enquadramento:
Levantar discussão sobre os mitos “Os mocks vêm ajudar”“pelo menos nos que não envolvem o ego dos programadores )PERGUNTA À AUDIÊNCIA: Revêem-se nestas afirmações?Preparar para motivação dos mocks
Levantar discussão sobre os mitos “Os mocks vêm ajudar”“pelo menos nos que não envolvem o ego dos programadores )PERGUNTA À AUDIÊNCIA: Revêem-se nestas afirmações?Preparar para motivação dos mocks
Passando a falar em mocksEstamos a construir um sistemaP.ex. 3 camadasQue necessita de componentes externasConstruimos classesE relações entre elasQueremos testar uma classeTestes unitários: testar a classe de forma isolada
O objectivo dos mocks é substituir dependências por objectos simulados que imitam uma dependência real
Preparar para demo
REFERIR QUE DEMO ESTÁ NO GITHUB
O teste unitário de cada classe utilizar mocks das dependências directas dessa classe.Abordagem mais purista
Mockar as fronteiras do sistema permite maximizar a coverageImplementar testes nas camadas superiores da aplicaçãoImplementar menor número de testes
Estas dicas são discutíveisResultam da minha experiência pessoalNão são verdade absoluta