Uma metodologia para captura e teste de requisitos não funcionais de ambientes em nuvem segundo uma abordagem mde
1. ROTEIRO
• Introdução
• Fundamentação teórica:
– Computação em Nuvem
– Engenharia Dirigida por Modelos (MDE)
– Teste de Software
• Problema
• Solução
• Referências
2. Introdução
• A importância dos campos de estudo: Computação em Nuvem,
Engenharia Dirigida por Modelo e Teste de Software.
• Computação em Nuvem: redução na quantidade de recursos físicos,
virtualização, contribuição para uma economia mais sustentável
(Dougherty et al. 2012), etc.;
• Engenharia Dirigida por Modelos: modelos formais,
interoperabilidade entre os modelos criados, garantia de qualidade,
etc.;
• Teste de Software: verificação e eliminação dos erros durante o
desenvolvimento do software, software com maior qualidade.
3. Introdução
• Estas áreas tem se relacionado com grande frequência nos
últimos anos, sendo objetos de muitas pesquisas.
• Esta apresentação tem por objetivo fazer uma breve
explanação destes campos de pesquisa, identificar o problema
com base no estudo realizado e propor uma solução para o
problema.
4. Fundamentação Teórica:
Computação em Nuvem
• Paradigma de computação que possui como principais características:
virtualização, orientação a serviço, baixo acoplamento, forte tolerância a
falhas, modelo de negócio e de fácil uso. (Gong et al. 2010)
• “Computação em Nuvem é um modelo que oferece um acesso conveniente
e sob demanda a um conjunto compartilhado de recursos computacionais
configuráveis, como redes, servidores, armazenamento, aplicações e
serviços que podem ser rapidamente ofertados e liberados com esforço
mínimo de gerenciamento ou interação do provedor do serviço.” (Priyanka
et al 2012)
• Os serviços mais comuns são:
– Software-as-a-Service (SaaS)
– Platform-as-a-Service (PaaS),
– Infrastructure-as-a-Service (IaaS)
5. Fundamentação Teórica:
Computação em Nuvem
Infrastructure as a Service Representa um ambiente completo e gerenciado, que
torna fácil a entrega de recursos acessíveis (como
memória e rede)
Platform as a Service Ambiente de desenvolvimento de software que permite
um usuário implantar aplicações sem custos e sem
complexidade. Oferece, por exemplo, sistemas
operacionais, bancos de dados, serviços de mensagens,
armazenamento de dados.
Software as a Service Aplicações completas que executam no ambiente de
nuvem. Caracteriza-se pelo acesso centralizado à
informação através da internet.
Tabela 1. Principais serviços da Computação em Nuvem
6. Fundamentação Teórica:
Computação em Nuvem
Outros tipos de serviços:
Database as a Service, Test
as a Service, Security as a
Service, Communication
as a Service, Modelling as
a Service (Brunelière et al.
2010), entre outros, que
são oferecidos como um
serviço.
Figura 1 – Hierarquia dos serviços na
Computação em Nuvem (retirado de
Hilley 2009)
7. Fundamentação Teórica: Engenharia
Dirigida por Modelos (MDE)
• Abordagem que coloca os modelos como os principais artefatos em
todas as fases de desenvolvimento de software;
• Possui como benefícios o baixo custo e a redução de tempo no
desenvolvimento de software.
• Lida com a complexidade das fases de desenvolvimento,
manutenção e evolução dos sistemas de software.
• Exemplos de abordagens MDE: MDA, MDT, MDD, EMF.
• Teste Dirigido por Modelo (MDT): reduzir os esforços na criação de
casos de teste de software, oferecendo geração automática de casos
de teste de software a partir dos modelos.
8. Fundamentação Teórica:
Teste de Software
• Teste de software consiste na verificação e eliminação de erros
nos requisitos funcionais e não funcionais presentes durante o
desenvolvimento de software.
• Teste de software é uma parte integral de um ciclo de vida de
desenvolvimento de software que se espalha sobre todas as
fases de desenvolvimento. (Inçki et al. 2012)
• Os tipos de testes mais conhecidos: testes funcionais, testes
não funcionais, testes de performance, teste de segurança, teste
de integração, entre outros.
10. Problema
• De acordo com a Figura 2, os tipos de teste mais usados na
literatura levantada por (Inçki et al. 2012) são o teste funcional
(teste das funcionalidades da aplicação) e o teste de
performance (teste do desempenho do aplicativo).
• Na literatura presente nessa Figura, podemos observar que os
testes não funcionais não foram considerados entre os tipos de
teste, fazendo com que requisitos não funcionais como
usabilidade, segurança, confiabilidade, portabilidade, etc.,
sejam colocados de lado, privilegiando apenas os requisitos
funcionais dos serviços e a performance dos mesmos.
11. Solução
• Diante do problema colocado, ou seja, a baixa ocorrência ou
mesmo a desconsideração com os testes não funcionais em
serviços e/ou aplicativos baseados na nuvem, torna-se
necessário desenvolver uma solução que realize a identificação
e o teste dos requisitos não funcionais de um serviço baseado
na Nuvem.
• A solução consiste na elaboração de uma metodologia que
realiza a identificação e o teste dos requisitos não funcionais
de um serviço baseado em nuvem segundo uma abordagem
MDE. Uma ferramenta será construída também com o objetivo
de implementar a metodologia.
12. Solução
Captura dos
requisitos não-
funcionais do
serviço da
nuvem
Geração dos
modelos e
casos de teste,
segundo a
abordagem do
Teste Dirigido
por Modelos
Utilização dos
casos de teste
não funcionais
no serviço da
nuvem para
fins de
Verificação e
Validação do
serviço.
13. REFERÊNCIAS
• B. Dougherty, J. White, and D. C. Schmidt. Model-driven Auto-scaling of
Green Cloud Computing Infrastructure. Future Gener. Comput. Syst.,
28(2):371-378, Feb. 2012.
• C. Gong, J. Liu, Q. Zhang, H. Chen, and Z. Gong, "The Characteristics of
Cloud Computing", 391h iEEE international Conference on Parallel
Processing Workshops 2010, IEEE Computer Society, pp. 275-279.
• D. Hilley. Cloud Computing: A Taxonomy of Platform and Infrastructure-
level Offerings. Technical Report 13, Center for Experimental Research in
Computer Systems – Georgia Institute of Technology, April 2009.
14. REFERÊNCIAS
• H. Brunelière, J. Cabot, and F. Houault, Combining Model-Driven
Engineering and Cloud Computing, AtlanMod, INRIA RBA Center &
EMN, France, Nantes, 2010
• K. Inçki, I. Ari, and H. Sozer, “A survey of software testing in the cloud,”
in Proceedings of the 2012 IEEE Sixth International Conference on
Software Security and Reliability Companion, ser. SERE-C ’12.
Washington, DC, USA: IEEE Computer Society, 2012, pp. 18–23.
• Kristoffer Dyrkorn and Frank Wathne. Automated testing of nonfunctional
requirements. In Companion to the 23rd ACM SIGPLAN conference on
Object-oriented programming systems languages and applications,
OOPSLA Companion ’08, pages 719–720, New York, NY, USA, 2008.
ACM.
15. REFERÊNCIAS
• Priyanka, I. Chana, and A. Rana, Empirical evaluation of cloud-based
testing techniques: a systematic review. ;In Proceedings of ACM SIGSOFT
Software Engineering Notes. 2012, 1-9.
• SOUSA, Helaine; LOPES, Denivaldo; ABDELOUAHAB, Zair; CLARO,
Daniela; HAMMOUDI, Slimane. An Approach for Model Driven Testing:
framework, metamodels and tools. Computer Systems Science and
Engineering, v. 26, p. 41-55, 2011. ISSN 0267-619