Titulo Estágio
Testes de Software com Base em Modelos
Áreas de especialidade
Engenharia de Software
Sistemas de Informação
Local do Estágio
Coimbra
Enquadramento
Com a evolução tecnológica a que temos vindo a assistir, e sendo a tendência continuar a ritmos ainda maiores, é percetível que os mais diversos sistemas serão cada vez maiores e mais complexos aumentado assim o desafio tecnológico. Uma possível e facilmente enumerada forma de mitigar esse acréscimo de complexidade será a utilização de mais recursos (humanos e materiais) e mais tempo de desenvolvimento.
No entanto, é também percetível que a evolução está a acontecer a ritmos demasiado elevados pelo que colocar mais pessoas ou estender os períodos de desenvolvimento/teste não será a melhor forma de endereçar tamanha evolução.
Uma forma de influenciar e suportar um desenho de software com boas características modulares é optar pelo desenvolvimento de software com base em modelos. Esta abordagem tem evoluído bastante nos últimos anos havendo diversas ferramentas capazes de auxiliar na modelação de software, incluindo a implementação de testes diretamente no modelo. A utilização deste tipo de técnicas permite uma eficiência maior já que os mesmos testes podem ser utilizados para validar o modelo (mais cedo), e através de geração de código podem posteriormente ser também utilizados para validar o software desenvolvido, reduzindo assim o tempo necessário à deteção de erros e falhas.
Pretende-se com este estágio estudar diversas formas de gerar casos de teste a partir de modelos em UML e SysML, que possam posteriormente ser executados na ferramenta de testes da Critical
Software. O objetivo primordial deste projeto é estudar uma forma de permitir a geração de casos de teste em linguagem C++ (de acordo com os interfaces do sistema de teste) a partir dos casos de teste modelados em UML e SysML numa ferramenta CASE.
Objetivo
O objetivo deste projeto de dissertação passa pela análise do estado da arte no que diz respeito ao desenvolvimento de software com base em modelos, ferramentas e processos existentes, com um focus na parte da validação de modelos e consequente geração de código de teste. Existe bastante matéria focada nesta problemática, no entanto é necessário o estudo e avaliação de metodologias por forma a perceber a melhor estratégia a aplicar a toda uma panóplia de sistemas críticos desenvolvidos nas áreas de ASDT (Aeronáutica, Espaço, Defesa e Transportes), tipicamente altamente reguladas por normas internacionais.
Além da análise do estado da arte, é importante entender a forma como o sistema de validação de sistemas da Critical software funciona, e quais os interfaces possíveis de serem utilizados na execução de um teste.
Com base nas informações recolhidas, e no entendimento do problema, o aluno deve definir e implementar uma ferramenta capaz de traduzir os testes definidos no modelo (em UML ou SysML) em testes capazes de serem executados no sistema de validação da Critical Software, ou seja, em linguagem C++.
Além disso deve ser desenvolvida uma prova de conceito onde se demonstra as funcionalidades da ferramenta previamente desenvolvida.
Plano de Trabalhos - Semestre 1
- T1: Analise do estado da arte.
- T2: Analise de ferramentas de suporte ao desenvolvimento orientado a modelos existentes,
com foco na parte de geração de casos de teste.
- T3: Definição e implementação de ferramenta para geração dos casos de teste a partir de modelos previamente definidos;
- T4: Elaboração do relatório intermédio;
Plano de Trabalhos - Semestre 2
- T5: Desenvolvimento de um modelo de uma aplicação para prova de conceito da ferramenta de geração dos testes.
- T6: Escrita da dissertação sobre os temas acima abordados, assim como a preparação de duas apresentações anexas, uma para a avaliação académica e outra, mais técnica, para apresentação interna na Critical Software.
Condições
Bolsa de dissertação
O presente projeto de dissertação prevê a atribuição de uma bolsa mensal de 450 euros (considerando tempo integral). Esta bolsa é paga mensalmente e pretende ser uma ajuda para as despesas de deslocação e alimentação do aluno durante este período.
De salientar que, em contexto de dissertação, o foco das mais-valias que o aluno poderá obter estão associadas à aquisição de conhecimentos científicos e desenvolvimento de competências inerentes à sua integração profissional.
Observações
Perfil do Estagiário
A Critical Software procura um aluno com formação base de engenharia informática ou similar e que apresente conhecimentos base engenharia de Software e Modelação, em particular bons conhecimentos de UML e SysML, assim commo conhecimento da linguagem de programação C++.
Na escolha do candidato, a CRITICAL Software tem em conta, não só as suas competências técnicas como as competências comportamentais, sendo que as duas categorias de competências são avaliadas com uma importância semelhante. Espera-se igualmente que o candidato esteja motivado para integrar o programa formativo e de acompanhamento proposto pela Critical Software.
Note-se que é condição para a atribuição do projeto de dissertação a realização de uma entrevista com os candidatos interessados, reservando a Critical Software o direito de escolha do candidato mais adequado ao projeto em questão.
Confidencialidade
A informação transmitida pela CRITICAL Software no âmbito do projeto de Dissertação, incluindo documentos técnicos ou de gestão, diagramas, código ou outra informação relevante deve ser tratada com a máxima confidencialidade. O candidato a quem for atribuído o projeto de Dissertação deve assinar um acordo de obrigação de confidencialidade(NDA, Non Disclosure Agreement).
Orientador
Vitor Hugo Simões Conceição
vhconceicao@criticalsoftware.com 📩