Teste como Serviço (TaaS) na Computação em Nuvem

Documentos relacionados
Introdução a Computação em Nuvem

Introdução a Computação em Nuvem

Sistemas Operacionais II

Universidade Federal de Pernambuco

Computação em nuvem (Cloud Computing)

BD e Cloud Gerenciamento de. Dados na Nuvem

COMPUTAÇÃO EM NUVEM E PROCESSAMENTO MASSIVO DE DADOS Conceitos, tecnologias e aplicações

Segurança da Informação

Computação móvel na nuvem Grover E. Castro Guzman Computação Móvel MAC5743 IME-USP

INFRAESTRUTURA PARA CLOUD COMPUTING VISANDO INTEROPERABILIDADE E DISPONIBILIDADE. Charles Boulhosa Rodamilans Edson Toshimi Midorikawa

Adoção da Computação em Nuvem pelo Setor Público: Como evitar o Aprisionamento em Provedores de Serviços e Plataformas de Nuvem?

Escalonamento de Aplicações BoT em Ambiente de Nuvem

DESCOBERTO. (Glen Myers)

Desenvolvimento de Software de Qualidade através de Testes Automatizados

Cloud Computing. Prof. Marcio R. G. de Vazzi Analista De sistemas Especialista em Gestão Mestrando em Educação

Introdução ao Desenvolvimento de

Adicionando Flexibilidade e Agilidade na Rede do SERPRO com Virtualização das Funções de Rede

OpenStack. Conheça a plataforma Cloud Open Source

Implantação automatizada de composições de serviços web de grande escala

HUGO SANTIAGO PERES AUTOMATIZANDO TESTES DE SOFTWARE COM SELENIUM

Carlos Eduardo de Carvalho Dantas

Teste de Software. Roberta Coelho

INTERNET DAS COISAS NAS NUVENS

Nuvem e Virtualização Redes Programáveis

Nuvem Computacional da UFABC

O Uso de Infraestruturas de Computação em Nuvem Para

Autoescalonamento de máquinas virtuais baseado em séries temporais e thresholds.

Arquitetura de Software: Introdução

Um guia passo a passo para colocar aplicativos COBOL na nuvem. Implante em ambientes virtuais e na nuvem com o Visual COBOL

Experiência de Implantação de um Processo de Desenvolvimento de Software no Banco Central do Brasil

Computação em Nuvens

Sistemas Operacionais de Redes Windows. Ricardo Kléber

Desenvolvimento de Software de Qualidade através de Testes Automatizados

Computação em Grid e em Nuvem

Arquitetura de Software: Introdução

Serviços em Cloud Computing

UNIVERSIDADE FEDERAL DEPERNAMBUCO

Como uma arquitetura de nuvem flexível e escalável com OpenShift trouxe maior eficiência e agilidade à T.I.

O papel do QA (Testador) em um time Ágil. #caipiraagil2017

Quando Distribuir é bom

Teste de software. Engenharia de software Profª karine sato da silva

Economize com o SAP na Plataforma Sky.One/AWS. Aumentando a Performance, Disponibilidade e a Segurança do ERP com Otimização de Custos

Gerenciamento e Interoperabilidade de Redes. Computação em Nuvem

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

Desconstruindo Monolitos. Como construir micro serviços Delphi com agilidade e qualidade

Pontos Críticos na Especificação de Serviços Computação em Nuvem

Servidor de Armazenamento em Nuvem

Introdução PARTE I. VISÃO GERAL

PADRÃO DE TECNOLOGIA DE INFRAESTRUTURA DE TIC. VMware vrealize Application Services

Silvio Fernando Vieira Correia Filho Paulo Henrique dos Santos

MANGUE Métricas e Ferramentas para Avaliação Automática da Qualidade de Código-Fonte Paulo R. M. Meirelles IME-USP

Trilha Cloud Computing

Informática. Cloud Computing e Storage. Professor Márcio Hunecke.

Resumo. Palavras-Chave

Guia Combina sobre Computação na Nuvem: tire aqui todas as suas dúvidas

Tópicos Especiais em Redes - TER. Cloud Computing. Prof. Dayvidson Bezerra Contato:

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

AVISO Nº 02 - RETIFICAÇÃO. A Companhia de Processamento de Dados do Estado do Rio Grande do Sul PROCERGS, torna público, por este Aviso, o que segue:

Introdução a Teste de Software

Micro Serviço desacoplamento arquitetura

Avanços e Perspectivas do Projeto Integrade na UFMA

Programação Orientada a Objetos

Desenvolvimento Java com ferramentas IBM

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA GABRIEL BOJKO LUIZ OTÁVIO OYAMA

PALESTRA. Quebrando Paradigmas e focando em Resultados. Palestrante: Breno Costa Professor do IBGP

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática

Requisitos do sistema para o Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Todos os direitos reservados.

VIRTUALIZAÇÃO DE REDE: VISÃO DA OI. Forum Integrado de Tecnologia e Inovação 2015

Arquitetura de sistemas distribuídos

Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambientes de Computação em Nuvem baseados em Containers

LATAM TAM WEBINAR SERIES. Fourth Edition of TAM webinar

Felipe de Andrade Batista. Microservice Architecture: A Lightweight Solution for Large Systems in the Future

OPORTUNIDADES: Analista de Sistemas Sênior

Requisitos do sistema para o Qlik Sense. Qlik Sense September 2017 Copyright QlikTech International AB. Todos os direitos reservados.

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

Banco Inter Projeto Transformação Digital. Belo Horizonte, 28 de novembro 2018

CLOUD COMPUTING: O USO DA PLATAFORMA AWS E ARMAZENAMENTO NO AMAZON S3.

Quando Distribuir é bom

CARACTERÍSTICAS Interface intuitiva. Em pouco tempo você está ambientado com o software;

Engenharia de Software

Curso online de Aplicações. Híbridas. Plano de Estudo

Computação na Nuvem em aplicações móveis. Arthur Casals Vinícius Nascimento Silva

por parte dos usuários dos sistemas de computação se tornou menos necessária e a popularidade desse tipo de linguagem diminuiu. Mais recentemente, a

Designing Data Intensive Applications

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Alessandro Jannuzi Open Source Lead

Copyright 2012 EMC Corporation. Todos os direitos reservados.

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Servidores. Um Servidor, em redes de computadores, nada mais é que um host da rede capaz de oferecer um determinado serviço a outros hosts da redes.

Engenharia de Software

JaBUTi/Crab: Ferramentas para Testes e Métricas de Software

Estratégias de Teste de Software

Pós-Graduação em Computação Distribuída e Ubíqua

c) poupar capital e aumentar recursos financeiros para a atividade fim da organização;

Sistema Operacionais II. Aula: Virtualização

Uma Nova Abordagem para o Cálculo de Balanço Hídrico Climatológico

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Transcrição:

Teste como Serviço (TaaS) na Computação em Nuvem Ricardo Ramos de Oliveira ICMC-USP E-mail: ricardoramos@icmc.usp.br Orientador: Prof. Dr. Adenilso da Silva Simao 1/64

Apresentação Ricardo Ramos de Oliveira Doutorando em Ciência da Computação ICMC-USP São Carlos - SP Professor de Computação IFSULDEMINAS Poços de Caldas - MG Áreas de Pesquisa: Teste como Serviço (TaaS) Computação em Nuvem 2/64

Agenda 1 Testes de Aceitação do Usuário (UAT) 2 Automatização de Testes com o Selenium e o JUnit 3 Computação em Nuvem 4 - Teste como Serviço (TaaS) na Nuvem 5 - Projeto de Doutorado 3/64

Teste de Aceitação do Usuário (UAT) Test GUI 4/64

Fases de Teste de Software 5/64

Teste de Aceitação do Usuário (UAT) Satisfazer os requisitos e processos de negócios conforme as necessidades dos usuários; Manual x Automatizado Manual - custo, tempo, esforço e muito tedioso; Automatizado - preciso, eficaz, eficiente e confiável. Um dos principais objetivos do teste de software é automatizar o máximo possível as tarefas de teste; 6/64

Teste de Aceitação do Usuário (UAT) Principais características dos testes UAT (Test GUI): 1 - Teste ponta a ponta (end-to-end - E2E); 2 - Regras de Negócio (Não só a interface) 3 - Defeitos de regressão (Desenvolvimento X Implantação); 4 Simular as ações dos usuários; 5 Testes mais próximos da aplicação em produção; 7/64

Teste de Aceitação do Usuário (UAT) Principais características dos testes UAT (Test GUI): 6 Permite encontrar erros arquiteturais e 7 - Problemas de configuração ou do ambiente de teste; 8 A falta de testes cross-browser pode resultar em problemas de funcionalidade. 8/64

Automatização de testes com o Selenium e JUnit 9/64

Selenium 10/64

Selenium Webdriver 2.0 Criado pela ThoughtWorks 2004 O que é o Selenium? Conjunto de ferramentas de software open source: Selenium IDE plugin Firefox Selenium Webdriver API de automação de navegadores Automatização dos testes de aplicações web 11/64

Selenium WebDriver 2.0 Versões do Selenium Webdriver: Selenium 1.0 RC - Primeira versão Selenium 2.0 Webdriver Appium mobile - camada intermediária entre o webdriver e uma aplicação mobile (Webdriver para mobile) 12/64

Selenium WebDriver 2.0 Principais Características Selenium é baseado em JavaScript partir do navegador; Operações de localização interface do usuário; O usuário pode acompanhar a execução dos testes e conferir os resultados ao mesmo tempo em que instrui os navegadores para testar as aplicações web. de executa a elementos de 13/64

Selenium Webdriver 2.0 Funcionamento básico do Selenium: 14/64

JUnit 15/64

Framework JUnit JUnit é um framework open source para escrever testes automatizados em Java; Facilita o desenvolvimento e execução de testes; Já vem instalado e configurado nas principais IDEs; O JUnit também pode ser utilizado para a automatização de testes de aceitação do usuário (UAT). 16/64

Framework JUnit Exemplos de Teste com o JUnit 17/64

Framework JUnit Exemplos de Teste com o JUnit 18/64

Selenium e JUnit Comunicação entre o Junit e o Selenium 19/64

Computação em Nuvem 20/64

Computação em Nuvem 21/64

Computação em Nuvem Um dos componentes chave da computação em nuvem é a virtualização; Abstrai as características físicas do hardware (Máquinas Virtuais). Figura: Virtualizacao: a) paravirtualização e b) clustering

Computação em Nuvem Computação em Nuvem Uma das principais vantagem: Escalabilidade; Contratar recurso sob demanda: alocação e desalocação; (De forma dinâmica sem a intervenção de um ser humano...) Pagamento por uso (pay-per-use). OBS: É por meio da elasticidade que eu consigo reduzir os custos e otimizar a utilização dos recursos computacionais

Computação em Nuvem Tipos de Esclabilidade Figura: Exemplo de Escalabilidade Horizontal Figura: Exemplo de Escalabilidade Vertifical

Computação em Nuvem Computação em Nuvem 3 modelos de serviço e 4 abordagens de implantação. Os modelos de serviço são compostos por: Software como Serviço (SaaS) Plataforma como Serviço (PaaS) Infraestrutura como Serviço (IaaS) Termo XaaS Everthing as a Service: Database as a Service, Framework as a Service, Hardware as a Service, MDE as a Service...

Computação em Nuvem Computação em Nuvem Figura: Exemplos de modelos de serviços na computação em nuvem

Computação em Nuvem Tipos de Nuvem Modelo de Implantação

Computação em Nuvem Tipos de Nuvem Modelo de Implantação

Computação em Nuvem Tipos de Nuvem Modelos de Implantação

Teste como Serviço (TaaS) na Computação em Nuvem

Contexto Figura: Diferentes Plataformas e Browsers

Contexto Figura: Teste de Múltiplas Plataformas

O que é TaaS? O Teste como Serviço (TaaS) é definido como uma ferramenta de teste que é oferecida como um serviço para verificação e validação das funcionalidades do sistema por meio da internet; Realizar a fase de testes do processo de desenvolvimento de software na nuvem; Economia entre 50% a 70% do custo com testes de software.

O que é TaaS? Reduzir os custos dos testes multiplataforma; Computação em Nuvem (Otimização dos recursos); Teste como Serviço (TaaS) Executa testes multiplataformas Infraestrutura de Nuvem

Vantagens do TaaS As principais vantagens do uso do modelo de Teste como Serviço (TaaS) são: 1 - Redução de custos (com infraestrutura servidores, memória e processamento); 2 - Ambiente de teste elástico; 3 - Testes automatizados sob demanda; 4 - Alta disponibilidade; 5 - Modelo de pagamento por uso (pay-per-use). (Conta de água e energia elétrica)

Desvantagens do TaaS As principais desvantagens do (TaaS) são: 1 - Problemas de segurança 2 - Ausência de padrões 3 - Mau planejamento 4 - Desperdício de recurso

Tipos de TaaS Existem vários tipos de TaaS (Funcionais e Não Funcionais): Testa a parte funcional do layout e não o layout propriamente dito).

Usuários de TaaS

Funcionamento do TaaS Teste como Serviço (TaaS) Figura: Interação Fornecedor-Consumidor (TaaS)

Funcionamento do TaaS

Funcionamento do TaaS Os TaaS utilizam o Selenium Grid

Funcionamento do TaaS Selenium Grid ICMC-USP (Core TaaS) http://www.labes.icmc.usp.br:6144/grid/console

Características dos TaaSs Características de TaaS na Nuvem Aplicações Web Tradicionais X Aplicações em Nuvem; Independente de metodologias de desenvolvimento Teste Sequencial X Teste Paralelo Máquinas virtuais concorrentes Testes Escaláveis e Pay-as-you-test Fornecedores utilizados no curso: Saucelabs, Browserstack e Testingbot

Projeto de Doutorado

Projeto de Doutorado Problema de Pesquisa: O Problema de vendor lock-in Aprisionamento do usuário; Falta de padronização e interoperabilidade entre os fornecedores de TaaS; Clientes - Dificuldade em migrar os testes;

Projeto de Doutorado Vendor lock-in

Projeto de Doutorado Vendor lock-in Um dos 10 maiores problemas enfrentados na Computação em Nuvem; A view of cloud computing (Michael Armbrust) Above the clouds: A berkeley view of cloud computing (Michael Armbrust) Afeta o Teste como Serviço (TaaS) Maiores obstáculos para a adoção da nuvem.

Projeto de Doutorado Objetivo do Projeto de Doutorado Investigar uma possível solução para o problema de lock-in no contexto de TaaS; Reduzir o esforço e custo; Favorecer a interoperabilidade e portabilidade; Favorecer a manutenibilidade

Projeto de Doutorado Interoperabilidade e Portabilidade

Projeto de Doutorado Questões de Pesquisa do Doutorado: 1 - Como solucionar o reduzir os impactos ocasionados pelo problema de lock-in no contexto de Teste como Serviço (TaaS)? 2 Quais as etapas do processo de teste na nuvem são afetadas pelo problema de lock-in?

Projeto de Doutorado

Projeto de Doutorado Abordagem Proposta Biblioteca.jar

Projeto de Doutorado Abordagem Proposta

Projeto de Doutorado Trabalhos Futuros Quem sabe uma abordagem Multi-TaaS? API REST

Publicações Artigo: Impact of the Vendor Lock-in Problem on Testing as a Service (TaaS) Aceito para publicação Congresso Vancouver no Canadá: IEEE International Conference on Cloud Engineering 2017

Publicações Em andamento Artigo: A Research Roadmap of Vendor Lock-in Solutions to Testing as a Service (TaaS) Journal Lacunas de Pesquisa: 1 - Evidências empíricas 2 - Teste Estrutural (Cobertura de Código...) 3 - Testes Baseados em Modelos 4 - Testes Multi-tenancy 5 - Testes Paralelos na Nuvem 6 - Abordagens Semânticas para o Teste na Nuvem 7 - Testes envolvendo Federação, Multi-cloud e Intercloud

Publicações Em andamento Experimento do Doutorado

Publicações Em andamento Experimento do Doutorado

Hipóteses Esforço Hipótese Nula (H0): Esforço da migração (com modelo) = Esforço da migração (sem modelo) Hipótese Alternativa (H1): Esforço da migração (com modelo) < Esforço da migração (sem modelo) Hipótese Alternativa (H2): Esforço da migração (com modelo) > Esforço da migração (sem modelo) Verificar o quanto as diferenças entre as hipóteses é significante...

Hipóteses Interoperabilidade Hipótese Nula (H0): Interoperabilidade (com modelo) = Interoperabilidade (sem modelo) Hipótese Alternativa (H1): Interoperabilidade (com modelo) > Interoperabilidade (sem modelo) Hipótese Alternativa (H2): Interoperabilidade (com modelo) < Interoperabilidade (sem modelo)

Hipóteses Manutenibilidade Hipótese Nula (H0): Manutenibilidade (com modelo) = Manutenibilidade (sem modelo) Hipótese Alternativa (H1): Manutenibilidade (com modelo) > Manutenibilidade (sem modelo) Hipótese Alternativa (H2): Manutenibilidade (com modelo) < Manutenibilidade (sem modelo)

Hipóteses Portabilidade Hipótese Nula (H0): Portabilidade (com modelo) = Portabilidade (sem modelo) Hipótese Alternativa (H1): Portabilidade (com modelo) > Portabilidade (sem modelo) Hipótese Alternativa (H2): Portabilidade (com modelo) < Portabilidade (sem modelo)

Projeto de Doutorado Mostrar os testes de aceitação com a arquitetura de teste na nuvem Executar os testes sequencialmente no Saucelabs, Browserstack e Testingbot Executar os testes paralelamente no Saucelabs, Browserstack e Testingbot

Perguntas? Habilidade é o que você é capaz de fazer. Motivação determina o que você faz. Atitude determina a qualidade do que você faz (Lou Holtz) Obrigado! Ricardo Ramos de Oliveira ricardoramos@icmc.usp.br 64/64