3 research outputs found
Control-Theoretical Perspective in Feedback-Based Systems Testing
Self-Adaptive Systems (SAS) and Cyber-Physical Systems (CPS) have received significant attention in recent computer engineering research. This is due to their ability to improve the level of autonomy of engineering artefacts. In both cases, this autonomy increase is achieved through feedback. Feedback is the iteration of sens- ing and actuation to respectively acquire knowledge about the current state of said artefacts and steer them toward a desired state or behaviour. In this thesis we dis- cuss the challenges that the introduction of feedback poses on the verification and validation process for such systems, more specifically, on their testing. We highlight three types of new challenges with respect to traditional software testing: alteration of testing input and output definition, and intertwining of components with different nature. Said challenges affect the ways we can define different elements of the test- ing process: coverage criteria, testing set-ups, test-case generation strategies, and oracles in the testing process. This thesis consists of a collection of three papers and contributes to the definition of each of the mentioned testing elements. In terms of coverage criteria for SAS, Paper I proposes the casting of the testing problem, to a semi-infinite optimisation problem. This allows to leverage the Scenario Theory from the field of robust control, and provide a worst-case probabilistic bound on a given performance metric of the system under test. For what concerns the definition of testing set-ups for control-based CPS, Paper II investigates the implications of the use of different abstractions (i.e., the use of implemented or emulated compo- nents) on the significance of the testing. The paper provides evidence that confutes the common assumption present in previous literature on the existence of a hierar- chy among commonly used testing set-ups. Finally, regarding the test-case gener- ation and oracle definition, Paper III defines the problem of stress testing control- based CPS software. We contribute to the generation and identification of stress test cases for such software by proposing a novel test case parametrisation. Leveraging the proposed parametrisation we define metamorphic relations on the expected be- haviour of the system under test. We use said relations for the development of stress testing approach and sanity checks on the testing results
SERVICE-BASED AUTOMATION OF SOFTWARE CONSTRUCTION ACTIVITIES
The reuse of software units, such as classes, components and services require professional
knowledge to be performed. Today a multiplicity of different software unit technologies,
supporting tools, and related activities used in reuse processes exist. Each of these relevant
reuse elements may also include a high number of variations and may differ in the level and
quality of necessary reuse knowledge. In such an environment of increasing variations and,
therefore, an increasing need for knowledge, software engineers must obtain such knowledge
to be able to perform software unit reuse activities. Today many different reuse activities exist
for a software unit. Some typical knowledge intensive activities are: transformation,
integration, and deployment. In addition to the problem of the amount of knowledge required
for such activities, other difficulties also exist. The global industrial environment makes it
challenging to identify sources of, and access to, knowledge. Typically, such sources (e.g.,
repositories) are made to search and retrieve information about software unitsand not about
the required reuse activity knowledge for a special unit. Additionally, the knowledge has to be
learned by inexperienced software engineers and, therefore, to be interpreted. This
interpretation may lead to variations in the reuse result and can differ from the estimated result
of the knowledge creator. This makes it difficult to exchange knowledge between software
engineers or global teams. Additionally, the reuse results of reuse activities have to be
repeatable and sustainable. In such a scenario, the knowledge about software reuse activities
has to be exchanged without the above mentioned problems by an inexperienced software
engineer. The literature shows a lack of techniques to store and subsequently distribute
relevant reuse activity knowledge among software engineers. The central aim of this thesis is
to enable inexperienced software engineers to use knowledge required to perform reuse
activities without experiencing the aforementioned problems. The reuse activities:
transformation, integration, and deployment, have been selected as the foundation for the
research. Based on the construction level of handling a software unit, these activities are
called Software Construction Activities (SCAcs) throughout the research. To achieve the aim,
specialised software construction activity models have been created and combined with an
abstract software unit model. As a result, different SCAc knowledge is described and
combined with different software unit artefacts needed by the SCAcs. Additionally, the
management (e.g., the execution of an SCAc) will be provided in a service-oriented
environment. Because of the focus on reuse activities, an approach which avoids changing the
knowledge level of software engineers and the abstraction view on software units and
activities, the object of the investigation differs from other approaches which aim to solve the
insufficient reuse activity knowledge problem. The research devised novel abstraction models
to describe SCAcs as knowledge models related to the relevant information of software units.
The models and the focused environment have been created using standard technologies. As a
result, these were realised easily in a real world environment. Softwareengineers were able to
perform single SCAcs without having previously acquired the necessary knowledge. The risk
of failing reuse decreases because single activities can be performed. The analysis of the
research results is based on a case study. An example of a reuse environmenthas been created
and tested in a case study to prove the operational capability of the approach. The main result
of the research is a proven concept enabling inexperienced software engineers to reuse
software units by reusing SCAcs. The research shows the reduction in time for reuse and a
decrease of learning effort is significant