SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Testando Aplicações DataSnap Andreano Lanusse Technical Lead Evangelist, Developer Relations
Agenda Arquitetura Melhores Práticas Testes baseados em Teste Unitário Demo
Multicamada - Conceito Divisão da aplicação em N camadas, geralmente são divididas em: Banco de dados Regras de Negócios (Servidor de Aplicação) Interface Cliente Vantagens deste modelo Fácil manutenção da aplicação Aplicação cliente contém configurações mínimas ou quase zero Mínima atualização da aplicação cliente Performance distribuída no servidor de banco de dados e de aplicação Redução de custo no investimento de hardware Alta performance entre Cliente e Servidor de Aplicação, suportando até conexões Dial-Up
DataSnap Arquitetura DataSnap Server Server Methods Database Accelerator ,[object Object]
 Connection Pooling
 Statement, MetaData CachingRemote/Server Data Modules Plain Objects Existing Delphi RDMs, No-COM ServerModules Method Parameters: ,[object Object]
 DB connection
 Scalar valuesDelphi DBX / ADO.NET Delphi / C++ Connection/Session management and RPC dispatching JSON/RPC messaging layer TCP/IP transport Delphi/C++ DBX Client ADO.NET ASP/Desktop
DataSnap Server Transport(socket/http) gerencia a criação e tempo de vida das threads ServerClass publica os servermethods para chamada dinãmica dos métodos DSServer gerencia a criação e tempo de vida dos transports e server classes Object Pooling Gerenciamento de memória - LyfeCicle Server (Singleton)  Todos os clientes compartilham uma única instância da classe servidora. Session (Statefull)  Cada cliente tem sua instância da classe no servidor Invocation (Stateless)  Novas instâncias de serverclass são criadas para cada chamada de um servermethod. Server Module contém servermethods, funciona como um TRemoteDataModule,  Suporta IAppServer
DataSnap Client App Cliente FILTER DBX ADO.NET DBXClient RESTfull Desktop/Web SQLServerMethod Classes Proxy DSProviderConnection Classes Proxy e Teste UnitTest Server Container
Testes - Caixa Preta vs Caixa Branca Caixa Preta Executados de maneira funcional, onde o testador não tem contado direto com o código do sistema, entende-se o sistema como uma caixa onde ao inserir valores de entrada, retorna valores de saída, geralmente estes testes são realizados por uma equipe específica de teste, que utiliza a especificação dada pelo cliente para fazer o roteiro de casos de teste. Caixa Branca Realizados diretamente no código e geralmente são feitos pelo implementador do sistema, um exemplo deste tipo de teste são os testes de unidade (unittesting).
Testes Teste de Unidade  Caixa Branca Teste de Integração  Caixa Branca e Preta Teste Funcional  Caixa Preta Teste de Aceitação  Caixa Preta Teste de Regressão  Caixa Branca e Preta Teste de Cobertura  Caixa Branca e Preta A partir do entendimento mais aprofundado sobre cada tipo de teste, é que pode-se obter uma forma mais prática e técnica de testar cada parte do sistema, a fim de garantir uma maior qualidade do software.
DataSnap – Teste de Unidade (UnitTesting) Delphi está integrado com Dunit Classes Proxy são facilmente integradas a UnitTest UnitTest funciona como uma aplicação cliente UnitTest em Delphi é a melhor opção, permite testar todos os tipos de retorno Você pode criar UnitTest em Java, PHP e outras linguagens, mas estará limitado a testar métodos baseados em JSON (RESTfull) Deve ser criado pelo desenvolvedor
UnitTest – Dados Utilizar dados mais próximos de produção Fontes de dados: Banco de Dados XML
Dicas Server Methods e Data Modules Server Methods Gerar teste unitário com base nas classes proxies Adequar os métodos para os testes Para cada server methods não necessariamente um método de teste Métodos de testes por funcionalidade Data Modules Envolvem DataSetProvider + SQLQuery, que não se encaixa neste modelo de testes Trabalhoso para codificar, tendo que investir muito tempo do desenvolvedor Teste Funcional irá cobrir as áreas de testes onde Data Modules são utilizados

Weitere ähnliche Inhalte

Was ist angesagt?

2 Ads
2 Ads2 Ads
2 Adslcbj
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroRogério Moraes de Carvalho
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming LibraryMario Guedes
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5Rogério Moraes de Carvalho
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...Rogério Moraes de Carvalho
 
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...Rogério Moraes de Carvalho
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemRogério Moraes de Carvalho
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Rogério Moraes de Carvalho
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoreRogério Moraes de Carvalho
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Serverpichiliani
 
Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4Rogério Moraes de Carvalho
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSLMichel Alves
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...Rogério Moraes de Carvalho
 
Flex 2.0 com PHP e MySQL
Flex 2.0 com PHP e MySQLFlex 2.0 com PHP e MySQL
Flex 2.0 com PHP e MySQLelliando dias
 

Was ist angesagt? (20)

2 Ads
2 Ads2 Ads
2 Ads
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
Zephir
ZephirZephir
Zephir
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
 
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
 
J Meter
J MeterJ Meter
J Meter
 
Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSL
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
 
Flex 2.0 com PHP e MySQL
Flex 2.0 com PHP e MySQLFlex 2.0 com PHP e MySQL
Flex 2.0 com PHP e MySQL
 

Andere mochten auch

Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Python + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certoPython + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certoFernando Macedo
 
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesDelphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesMario Guedes
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Introdução FireDACAcesso multi-banco para Delphi e C++ BuilderIntrodução FireDACAcesso multi-banco para Delphi e C++ Builder
Introdução FireDAC Acesso multi-banco para Delphi e C++ BuilderDiego Rosa
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIFernando Camargo
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoFernando Macedo
 
Dados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnapDados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnapLanderson Gomes
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONMarcio Junior Vieira
 
Scaling Agile With SAFe (Scaled Agile Framework)
Scaling Agile With SAFe (Scaled Agile Framework)Scaling Agile With SAFe (Scaled Agile Framework)
Scaling Agile With SAFe (Scaled Agile Framework)Andreano Lanusse
 

Andere mochten auch (16)

Certificação Delphi
Certificação DelphiCertificação Delphi
Certificação Delphi
 
REST Servers in Delphi XE Using DataSnap
REST Servers in Delphi XE Using DataSnapREST Servers in Delphi XE Using DataSnap
REST Servers in Delphi XE Using DataSnap
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Python + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certoPython + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certo
 
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesDelphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões Regulares
 
RESTful com json
RESTful com jsonRESTful com json
RESTful com json
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 
API - Como fazer?
API - Como fazer?API - Como fazer?
API - Como fazer?
 
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Introdução FireDACAcesso multi-banco para Delphi e C++ BuilderIntrodução FireDACAcesso multi-banco para Delphi e C++ Builder
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful API
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
 
Exploring FireDAC
Exploring FireDACExploring FireDAC
Exploring FireDAC
 
Jquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-brJquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-br
 
Dados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnapDados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnap
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
Scaling Agile With SAFe (Scaled Agile Framework)
Scaling Agile With SAFe (Scaled Agile Framework)Scaling Agile With SAFe (Scaled Agile Framework)
Scaling Agile With SAFe (Scaled Agile Framework)
 

Ähnlich wie Testando aplicações DataSnap

ybr789try
ybr789tryybr789try
ybr789tryteste
 
Testes de software
Testes de softwareTestes de software
Testes de softwareteste
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosElias Nogueira
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceAlex Barbosa Coqueiro
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Teste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eTeste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eAlan Correa Morais
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerAlan Carlos
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015Renato Groff
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de testeMarcos Pessoa
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADCesar Romero
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Renato Groff
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 

Ähnlich wie Testando aplicações DataSnap (20)

ybr789try
ybr789tryybr789try
ybr789try
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal Performance
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Aula1
Aula1Aula1
Aula1
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Teste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eTeste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf e
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
 
Tees Final
Tees FinalTees Final
Tees Final
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 

Mehr von Andreano Lanusse

Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012
Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012
Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012Andreano Lanusse
 
Desenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XE
Desenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XEDesenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XE
Desenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XEAndreano Lanusse
 
Reasons to migrate to Delphi XE
Reasons to migrate to Delphi XEReasons to migrate to Delphi XE
Reasons to migrate to Delphi XEAndreano Lanusse
 
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchAndreano Lanusse
 
Integrando Skype em aplicações Delphi
Integrando Skype em aplicações DelphiIntegrando Skype em aplicações Delphi
Integrando Skype em aplicações DelphiAndreano Lanusse
 

Mehr von Andreano Lanusse (7)

Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012
Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012
Desafios na Gestão de Equipes Virtuais - Agile Brazil 2012
 
Delphi Certification
Delphi CertificationDelphi Certification
Delphi Certification
 
Desenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XE
Desenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XEDesenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XE
Desenvolvendo aplicações para iPhone/iPad e Linux com Delphi Prism XE
 
Reasons to migrate to Delphi XE
Reasons to migrate to Delphi XEReasons to migrate to Delphi XE
Reasons to migrate to Delphi XE
 
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
 
Delphi Prism 2011
Delphi Prism 2011Delphi Prism 2011
Delphi Prism 2011
 
Integrando Skype em aplicações Delphi
Integrando Skype em aplicações DelphiIntegrando Skype em aplicações Delphi
Integrando Skype em aplicações Delphi
 

Testando aplicações DataSnap

  • 1. Testando Aplicações DataSnap Andreano Lanusse Technical Lead Evangelist, Developer Relations
  • 2. Agenda Arquitetura Melhores Práticas Testes baseados em Teste Unitário Demo
  • 3. Multicamada - Conceito Divisão da aplicação em N camadas, geralmente são divididas em: Banco de dados Regras de Negócios (Servidor de Aplicação) Interface Cliente Vantagens deste modelo Fácil manutenção da aplicação Aplicação cliente contém configurações mínimas ou quase zero Mínima atualização da aplicação cliente Performance distribuída no servidor de banco de dados e de aplicação Redução de custo no investimento de hardware Alta performance entre Cliente e Servidor de Aplicação, suportando até conexões Dial-Up
  • 4.
  • 6.
  • 8. Scalar valuesDelphi DBX / ADO.NET Delphi / C++ Connection/Session management and RPC dispatching JSON/RPC messaging layer TCP/IP transport Delphi/C++ DBX Client ADO.NET ASP/Desktop
  • 9. DataSnap Server Transport(socket/http) gerencia a criação e tempo de vida das threads ServerClass publica os servermethods para chamada dinãmica dos métodos DSServer gerencia a criação e tempo de vida dos transports e server classes Object Pooling Gerenciamento de memória - LyfeCicle Server (Singleton)  Todos os clientes compartilham uma única instância da classe servidora. Session (Statefull)  Cada cliente tem sua instância da classe no servidor Invocation (Stateless)  Novas instâncias de serverclass são criadas para cada chamada de um servermethod. Server Module contém servermethods, funciona como um TRemoteDataModule, Suporta IAppServer
  • 10. DataSnap Client App Cliente FILTER DBX ADO.NET DBXClient RESTfull Desktop/Web SQLServerMethod Classes Proxy DSProviderConnection Classes Proxy e Teste UnitTest Server Container
  • 11. Testes - Caixa Preta vs Caixa Branca Caixa Preta Executados de maneira funcional, onde o testador não tem contado direto com o código do sistema, entende-se o sistema como uma caixa onde ao inserir valores de entrada, retorna valores de saída, geralmente estes testes são realizados por uma equipe específica de teste, que utiliza a especificação dada pelo cliente para fazer o roteiro de casos de teste. Caixa Branca Realizados diretamente no código e geralmente são feitos pelo implementador do sistema, um exemplo deste tipo de teste são os testes de unidade (unittesting).
  • 12. Testes Teste de Unidade  Caixa Branca Teste de Integração  Caixa Branca e Preta Teste Funcional  Caixa Preta Teste de Aceitação  Caixa Preta Teste de Regressão  Caixa Branca e Preta Teste de Cobertura  Caixa Branca e Preta A partir do entendimento mais aprofundado sobre cada tipo de teste, é que pode-se obter uma forma mais prática e técnica de testar cada parte do sistema, a fim de garantir uma maior qualidade do software.
  • 13. DataSnap – Teste de Unidade (UnitTesting) Delphi está integrado com Dunit Classes Proxy são facilmente integradas a UnitTest UnitTest funciona como uma aplicação cliente UnitTest em Delphi é a melhor opção, permite testar todos os tipos de retorno Você pode criar UnitTest em Java, PHP e outras linguagens, mas estará limitado a testar métodos baseados em JSON (RESTfull) Deve ser criado pelo desenvolvedor
  • 14. UnitTest – Dados Utilizar dados mais próximos de produção Fontes de dados: Banco de Dados XML
  • 15. Dicas Server Methods e Data Modules Server Methods Gerar teste unitário com base nas classes proxies Adequar os métodos para os testes Para cada server methods não necessariamente um método de teste Métodos de testes por funcionalidade Data Modules Envolvem DataSetProvider + SQLQuery, que não se encaixa neste modelo de testes Trabalhoso para codificar, tendo que investir muito tempo do desenvolvedor Teste Funcional irá cobrir as áreas de testes onde Data Modules são utilizados
  • 16. Build automatizado e Integração Continua Delphi e MSBuild Extensão .dproj está no formato padrão msbuild Múltiplas configurações de build no projeto Executado através de linha de comando Teste Unitário Integrado ao Delphi Opção de execução GUI ou linha de comando Algumas ferramentas para unificar e automatizar o processo de build Final Builder  http://www.finalbuilder.com/ Hudson  http://wiki.hudson-ci.org/
  • 17. Demo Teste Unitário em aplicação DataSnap simples Teste Unitário baseado em dados dinâmicos Teste Unitário e cenários diversos Teste Unitário em aplicações DataSnap complexas
  • 18. Perguntas EDN – Embarcadero Developer Network http://edn.embarcadero.com/br (Artigos e Vídeos) Trial Download http://www.embarcadero.com/downloads Código fonte disponível para download http://cc.embarcadero.com/Item/27391
  • 19. Dados para Contato Email:Andreano.Lanusse@embarcadero.com Blog:http://www.andreanolanusse.com Twitter:http://twitter.com/andreanolanusse

Hinweis der Redaktion

  1. Server connectionsMiddle-tier connectivity solutionSingle client side driver (100% Object Pascal)DB vendor clients installed on middle tierEnables middle tier connection, command caching.Easy to create new transports (ie Http(s), SSL/TLS, etc)Server Method Memory ManagementTDSServerClass.LifeCycle property controls the creation and destruction of server class instancesTDSLifeCycle.Server. Singleton. All clients share single server class instance.TDSLifeCycle.Session. Statefull. Each client has its own server class instance.TDSLifeCycle.Invocation. Stateless. New server class instance is created for every invocation of a server method.TDSServerClass events OnCreateInstance and OnDestroyInstance can be used for custom server class instance lifecycle managementServer methodsRemote method invocation for DelphiSimple. No IDL, just regular Delphi methodsPublic methods on any TPersistent class including TServerModule and TRemoteDataModule
  2. TSQLServerMethod componentSimilar to TSQLStoredProcAllows server method to be used like a stored procStrongly typed client classesClient proxy generator that provides strongly typed classes to call server methodsTDSProviderConnection componentDS2009 replacement for TDCOMConnection, TSocketConnection, etc
  3. Os testes de caixa-preta mais comuns são o teste funcional e o teste de aceitação, que é semelhante ao teste funcional, a diferença é que esse teste é executado diretamente pelo cliente. Há também os testes mistos, que tanto são de caixa-branca quanto de caixa-preta, que são os testes de regressão e de integração.Os testes de regressão devem ser realizados sempre que o sistema sofrer alterações consideráveis que podem gerar bugs, geralmente é necessário re-executar todo o roteiro de teste criado para o teste funcional, desde que o sistema não seja muito grande.O teste de integração é importante para garantir que os dados não se perdem entre a camada de apresentação e a camada de negócio. Para realizar estes testes é necessário que o testador verifique tanto os documento de design de baixo nível como de alto nível.Há também um teste muito importante, que é o teste de cobertura ou estrutural, este teste tem a finalidade de verificar se o roteiro de teste executado, tanto nos testes de unidade quanto nos testes funcionais, estão abrangendo 100% do código implementado. Há ferramentas que auxiliam na execução destes testes, como por exemplo, um plugin para o Eclipse IDE, o EmmaCoverage.