• Stars
    star
    3
  • Rank 3,963,521 (Top 79 %)
  • Language
    Java
  • Created about 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Software testing is essential, but also one of the costliest and time-consuming activities in the software development process. However, software testing has historically been a task that has been recognised to be time-consuming and tedious as well as expensive, given the size and complexity of large-scale software systems. Such cost and time involved in testing can be managed through test automation. Software testing, automated or not, has four major steps: tests suite generation, predicting the outcomes of the tests, execute the SUT with the suite tests to obtain the actual outcome and compare the predicted outcome against the actual outcome to obtain a verdict (pass/fail). There are two significant challenges in the testing process: find successful test inputs, i.e., such inputs that can reveal faults in SUT, and determine what should be the output of a system after the execution of the test cases. The second challenge refers to one of the most significant problems in software testing automation, i.e., the test oracle problem. In this research, we developed a methodology to generate tests oracles using the state information of the System Under Test (SUT) during the execution of the tests. We derive our approach in the form of rules using the Association Rule Mining (ARM) technique. ARM attempt to find relationships or associations between categorical variables in large transactional data sets. Therefore, we wanted to investigate the potential of ARM to model SUT state. In particular, we were interested in understanding whether the information provided by the resulting model can help to verify the correct operation of the SUT new versions. We focus at a level of software testing called unit testing, which tests each unit or component of the SUT separately. Furthermore, this research uses the Stack Class of the Java Collection framework as SUT. The rule mining approach can detect that something is wrong; this is when a rule is violated. Then, by analysing the rules violated, it is possible to localise the fault. However, in terms of time-consuming, the rule mining approach takes much time, in particular when the number of rules is high, for instance. We provide an analysis of different performance metrics and discuss the results obtained.

More Repositories

1

Predicting-Survived-and-Killed-Mutants

Python
1
star
2

FuzzingExp-GoogleOSS-Fuzz

This repo explores Google OSS-Fuzz
Python
1
star
3

MetaExplorex-MasterThesis

Python
1
star
4

SCminer

Extracting static features from source code
Python
1
star
5

Clustering_Microbial-growth

yeasts are important cell factories for the transition towards more sustainable industrial processes. Their physiological characterization in bioreactors generates large amounts of data that is manually analyzed by the scientists to find patterns and cluster the growth into different phases. The development of improved tools for efficient and accurate data analysis is essential for bioprocesses. We want to present a tool that can organize, cluster, and derive meaningful patterns from the physiological characterization of microbial cell factories.
Python
1
star
6

RENE-PredictingMetamorphicRelations

Metamorphic Test (MT) is a software testing technique that addresses the test oracle issue. It differs from traditional testing techniques in that it looks at the relations between the inputs and outputs of different test cases executions rather than specific test results. Such relations are known as Metamorphic Relationships (MRs), and they are the MT core aspect. In MT, testers may indirectly test the System Under Test (SUT) by looking at whether the inputs and outputs meet the MRs. If a particular MR is not violated, it does not guarantee that the program will be implemented correctly. However, if an MR is violated for certain test cases, then there must be a fault in the SUT. MRs are currently discovered manually, which necessitates a thorough grasp of the SUT and the application domain. As a result, MT might take a long time and be prone to errors. To mitigate this problem, the metamorphic relationship prediction (PMR) approach was proposed. PMR uses a classification model based on features gathered from the SUT source code, at the method level, to predict whether a new method would exhibit a particular predefined MR. The goal of our research is to investigate how effectively the suggested PMR approach, which has been tested on Java methods, may be applied to other programming languages. To do this, we first replicated the prior work and then expanded the PMR to Python and C++.
Python
1
star