Titulo Estágio
Modelação Automática de Graphical User Interfaces
Área Tecnológica
Sistemas de Informação
Local do Estágio
Sede da empresa.
Enquadramento
A criação de casos de teste para interfaces gráficas tem recorrido principalmente à gravação de sessões de utilização de uma aplicação, sendo os eventos posteriormente gravados em forma de script para mais rapidamente poderem ser duplicados e alterados. Este processo é muito lento, principalmente durante a fase de gravação, e por isso têm-se procurado gerar automaticamente casos de teste com o mínimo de intervenção humana. Em aplicações comerciais ainda há um grande vazio nesta área. No entanto, alguns investigadores, dos quais se destaca o Dr. Atif Memon da Universidade de Maryland, têm vindo a trabalhar em técnicas de engenharia reversa de modo a que se possa extrair automaticamente um modelo da aplicação a ser testada. Estas técnicas facilitam o uso de práticas de Testes Baseados em Modelos na área específica de testes à interface gráfica de aplicações, sendo desta maneira possível de gerar automaticamente casos de teste. Nas frameworks .Net e Java, por exemplo, já existe suporte para o uso de Reflection o que nos permite extrair dados sobre a estrutura e comportamento da aplicação. O facto de estas frameworks correrem em cima de uma máquina virtual facilita a extracção de informação sobre o programa que vai ser testado.
As interfaces gráficas são, por natureza, máquinas de estado, cuja combinação de estados possíveis tem uma evolução exponencial conforme a complexidade da aplicação a ser testada. Por esse motivo o próprio modelo da interface tem vindo a ser estudado de modo a que este seja: simples, para permitir que o uso do modelo seja eficiente; e completo, para que possa haver um elevado grau de confiança nos casos de teste gerados. Do trabalho de investigação já feito na área ressalta-se as estruturas propostas pelo Dr. Atif Memon, os Grafos de Fluxo de Eventos (EFG em inglês) e pela Dr. Ana Paiva, as Máquinas de Estado Finitas Hierárquicas (HFSM em inglês). Os primeiros permitem saber num determinado instante (sendo que instante não é dado pelo tempo mas sim pelas acções executadas anteriormente) que acções podem ser executadas, e é utilizado pelo autor para gerar sequências de acções que compõem os casos de teste. As segundas são uma abordagem mais natural à modelação de interfaces. O uso de HFSMs permite conter a explosão de estados possíveis da interface, isolando os elementos-filho dos elementos-filho de outros elementos-pai. Um possível modelo a ser testado poderá ser a combinação destas duas estruturas que permita ter a informação dos HFSMs numa estrutura “temporalmente” dinâmica como os EFGs.
Objetivo
Neste projecto pretende-se implementar uma aplicação para a instrumentação de aplicações com interface gráfico, aplicando técnicas de engenharia reversa para a extracção de modelos da interface gráfica que possam ser usados para gerar casos de teste.
Para tal, o estado da arte vai ter uma importância vital na procura de outras técnicas, para além das já mencionadas anteriormente, que possam ser aplicadas no desenvolvimento da aplicação.
Esta aplicação deverá conseguir abrir uma aplicação em Java (AWT/Swing/SWT) e/ou C# (WinForms/WPF), analisando a sua estrutura e comportamento (eventos possíveis de ser executados), criando um modelo que possa depois ser manipulado e usado para gerar casos de teste sobre uma aplicação alvo. O relevo deve ser dado sobre aplicações Java Swing e C# WinForms. O modelo adoptado deverá ser implementado não só como estrutura de dados, mas também visualmente de modo a que seja mais facilmente manipulado e validado pelo tester.
Plano de Trabalhos - Semestre 1
No primeiro semestre o trabalho de estágio deverá incidir sobre a análise do estado da arte (1ª fase) e a elaboração de uma proposta para a arquitectura da aplicação que irá instrumentar aplicações em Java e C# (2ª fase).
Durante a primeira fase, a decorrer de Setembro a Novembro, é requerido ao estagiário que produza resumos dos artigos lidos e que produza, no final desta fase, um resumo do estado da arte.
Na segunda fase, a decorrer de Dezembro a Fevereiro, o estagiário deverá elaborar um documento onde esteja descrita a sua proposta inicial para a aplicação.
Plano de Trabalhos - Semestre 2
No segundo semestre decorrerá a implementação da aplicação, que irá decorrer em três fases:
- implementação de uma aplicação que receberá a informação sobre a aplicação que está a ser instrumentada e deverá mostrar a visualização do modelo, durante o mês de Março;
- implementação da aplicação/módulo que irá instrumentar aplicações escritas em Java, a realizar durante o mês de Abril;
- implementação da aplicação/módulo que irá instrumentar aplicações escritas em C#, a realizar durante o mês de Maio.
- Durante o mês de Junho deverá ser escrito o relatório final de estágio.
Condições
Estágios Normais
Dissertação
Contrato
· É celebrado um contrato de complemento da formação escolar
ministrada ao estagiário pela sua Universidade, mantendo assim a sua
condição de estudante.
Benefícios financeiros
· Bolsa de estágio no montante de 520,00€ por cada mês de estágio.
· O estagiário beneficia de seguro escolar suportado integralmente pela Universidade.
Deveres do estagiário
· Elaborar e apresentar à Telbit, no final da dissertação, um
relatório geral sob a orientação do responsável designado pela
Universidade, no prazo de 15 dias após a conclusão do mesmo. O
incumprimento desta obrigação terá como consequência o não pagamento do
subsídio mensal correspondente ao último mês do estágio.
· Compensar, no final do estágio, toda e qualquer ausência por dias
completos, implicando as ausências não compensadas, a perda de eventual
subsídio de estágio pelos dias correspondentes.
Estágio Integrado
Dissertação + Estágio Profissional
Candidatos Elegíveis
A Telbit disponibiliza a estudantes com uma média igual ou superior
a 14 valores, estágios integrados, os quais consistem na realização de
uma dissertação e de um estágio profissional.
Bolsa de Incentivo
Os estagiários de estágios integrados, além dos benefícios e deveres
identificados anteriormente para dissertações, beneficiam ainda de uma
Bolsa de Incentivo, a qual consiste num montante pecuniário total e
único de 2.000,00 Euros (dois mil euros).
· A bolsa será paga em duas fases:
1ª fase: 30% com a assinatura do termo de aceitação;
2ª fase: 70% após a conclusão da formação académica final,
seja a Licenciatura Pré-Bolonha ou 2º ciclo de estudos de Bolonha,
mediante a entrega do certificado de habilitações.
· Por cada valor acima da média final da formação académica de 14
valores será atribuída uma bonificação de 250,00 Euros (duzentos e
cinquenta euros) a pagar na 2ª fase.
· Por cada valor igual ou acima de 18 na nota de estágio, será
atribuída uma bonificação de 250,00 Euros (duzentos e cinquenta euros),
(acumulável com a anterior) a pagar na 2ª fase.
· A atribuição do montante respeitante à 2ª fase está condicionada ao cumprimento das seguintes condições:
o Antes da conclusão do curso:
§ Realização do trabalho de fim de curso.
§ Realização da dissertação na Telbit. Nestes casos a Telbit atribuirá uma correspondente bolsa de dissertação.
o Após a conclusão do curso:
§ Obtenção de uma média final de curso igual ou superior a 14
valores (na Licenciatura pré-Bolonha ou nos 1º e 2º ciclos de estudos
de Bolonha);
§ Realização de um estágio profissional com um subsídio de estágio
no valor de 920,00€ na Telbit, com a duração de um ano, mediante a
celebração de um contrato a formalizar no momento de termo de aceitação
e condições de concessão da Bolsa.
· Os candidatos que não cumpram as condições estipuladas nos pontos
anteriores, em concreto a realização de Dissertação e/ou estágio
profissional, serão obrigados a devolver os montantes que tenham sido
abonados.
· Durante o estágio profissional o estagiário beneficiará de um
seguro de acidentes de trabalho da responsabilidade da Telbit.
· O estágio profissional poderá ser interrompido por um período não
superior a 20 dias úteis, seguidos ou interpolados, quer por
encerramento temporário da Telbit quer por impossibilidade do
estagiário.
·
O estágio decorrerá nas instalações da Telbit, ou
em qualquer estabelecimento indicado pela empresa e sob orientação e supervisão
de orientador designado pela Telbit, ao qual o estagiário se deverá reportar.
·
As despesas de deslocação para fora do
estabelecimento da Telbit, desde que enquadrados no âmbito do estágio e
solicitadas pela empresa, ocorrerão por conta desta mediante a apresentação de
documentos titulados, até a um valor máximo de acordo com as orientações em
vigor.
·
O estagiário deve guardar lealdade à Telbit,
designadamente comprometendo-se a, durante a vigência e após a cessação deste
contrato, manter total confidencialidade e a não tirar partido, directa ou
indirectamente, dos conhecimentos e informações a que tenha acesso no âmbito do
estágio.
·
O estagiário deve respeitar as normas vigentes na
Telbit, nomeadamente a ser assíduo e pontual.
Observações
De preferência o candidato deve ter conhecimentos em Java e C#.
Referências bibliográficas:
Paiva, A., Tillmann, N., Faria, J., & Vidal, R. (2005). Modeling and testing hierarchical GUIs.
Memon, A., Banerjee, I., & Nagarajan, A. (2003). GUI ripping: reverse engineering of graphical user interfaces for testing. In Proc. 10th Working Conference on Reverse Engineering WCRE 2003 (pp. 260-269).
Memon, A., Banerjee, I., Hashmi, N., & Nagarajan, A. (2003). DART: a framework for regression testing \"nightly/daily builds\" of GUI applications. In Proc. International Conference on Software Maintenance ICSM 2003 (pp. 410-419). IEEE Comput. Soc.
Orientador
José Pedro Tavares
jtavares@telbit.pt 📩