Analysis of Network Attacks and Security Events using Modern Data Visualization Techniques - Pereira, Paulo Macedo (2015)
Modern society is nowadays evolving at a pace that has never been witnessed before. Regarding this evolution, it can be also observed that the technological evolution has been one of its main pillars. In this context, software systems have a crucial role and it is increasingly important to ensure that these systems reach the market on time and with quality guarantees. In order to ensure these goals, several new methodologies and software development environments have been proposed, together with modern tools that enable software systems evolution and continuous integration, as well as increasingly advanced strategies for software veri cation and validation. Concerning software veri cation and validation, which in different ways aim to ensure software quality, design and execution of software tests play a key role. However, the constant evolution of software system implies that test artifacts are able to evolve at the same pace. In fact, these artifacts are indeed evolving fast as well, and this implies that it is needed to deal with test suites of constantly increasing size. A major challenge of modern software engineering has to do precisely with the need to develop mechanisms that allow the software tests execution stage to imply less costs in terms of time and money, but also of human effort. These mechanisms must necessarily achieve a reduction in terms of costs without jeopardizing the quality of the software tests execution stage. In this dissertation an automatic test case selection technique is proposed, which aims, in each iteration of software test executions, to only select for execution test cases whose results might be in uenced by the changes that have been made to the code of the software under test. The proposed technique is based on static and dynamic dependency analysis between software tests and the software code (and the code itself), as well as on the identi cation of the differences between different software code versions. The development, implementation and validation of the technique presented in this dissertation were conducted in the industrial context of an international software house. Real development scenarios were used to conduct experiments and validations, and the nal results demonstrated that the proposed technique is effective in terms of its software fault detection capabilities and also showed signi cant bene ts in what concerns the time spent running software tests.