In a world where software gradually plays a key role daily, a failure may bring unpleasant
consequences for its users. An example of a serious failure was the case Apple
iCloud security exploit in 2014 where several private photos of celebrities have been
accessed without permission[icl14a][icl14b]. Apart from economic and commercial implications,
these faults lead to loss of trust in software by users, thus leading to the
consequent search for an alternative and even result in leaving the old software for a
new alternative. To address these shortcomings, the software industry started to use
software testing to make sure that the software contains the minimum possible failures
before is deployment.
Software tests are used to analyse the program, namely to search some bugs. This
analysis can be done without program execution (static analysis) or during execution
(dynamic analysis). Static analysis tools can be used to check for potential execution of
the program that have not been prematurely aborted due to unexpected event at runtime,
not ensuring that the program will display the correct result. We studied some
static analysis tools, JSFlow, JSPrime and TAJS, which analyse JavaScript code. These
tools have been modified so they can be integrated into the Nibiru framework.
Nibiru is a modular framework that aims to help in the implementation of software
testing. It uses a micro-services architecture, enabling the use of multiple programming
languages in his modules and has the ability to enable the implementation of its modules
on multiple machines. So far the Nibiru has three operating modules and its ready to
start growing with the community, so they can contribute in the construction of new
modules or make small adjustments on the existing testing software to integrate the
Nibiru framework.Num mundo onde cada vez mais o software tem um papel fundamental nas atividades do
dia-a-dia, uma falha pode trazer consequências desagradáveis para os seus utilizadores.
Como exemplo de uma falha grave, temos o caso Apple iCloud security exploit em 2014
[icl14a][icl14b], onde várias fotos de celebridades foram acedidas sem permissão. Para
além de repercussões económicas e comerciais estas falhas levam à perca de confiança
no software por parte dos utilizadores, levando assim à consequente procura de alternativas
ao mesmo, podendo até resultar no abandono do software antigo. Para colmatar
estas falhas, hoje em dia a indústria cada vez aposta mais nos testes de software para
certificar-se que o software contém o mínimo de falhas possíveis antes de sair para o
mercado.
Os testes de software servem para analisar o programa, nomeadamente na obtenção
de bugs. Esta análise pode ser feita sem execução do programa (análise estática) ou
durante a sua execução (análise dinâmica). As ferramentas de análise estática são utilizadas
para verificar se existem potenciais execuções do programa que possam falhar
durante a sua execução devido a eventos inesperados, isto faz com que o programa apresente
um resultado incorreto ou até mesmo bloqueie. Foram estudadas algumas ferramentas
de análise estática, JSFlow, JSPrime e TAJS, que analisam código JavaScript.
Estas ferramentas foram modificadas para serem integradas na framework Nibiru.
O Nibiru é uma framework modular que tem como intuito ajudar na execução de
testes de software. Esta utiliza uma arquitetura de micro-serviços, possibilitando o uso
de múltiplas linguagens de programação nos seus módulos e tem a capacidade de possibilitar
a execução dos seus módulos em várias máquinas. Até ao momento o Nibiru conta
com três módulos operacionais, encontrando-se pronto para crescer com a comunidade
informática, podendo esta contribuir na construção de novos módulos