23.02.2015 Views

D.3.3 ALGORITHMS FOR INCREMENTAL ... - SecureChange

D.3.3 ALGORITHMS FOR INCREMENTAL ... - SecureChange

D.3.3 ALGORITHMS FOR INCREMENTAL ... - SecureChange

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The requirement analysis is an iterative process that aims at refining the stakeholders’<br />

goals until all high-level goals are achieved. Different reasoning techniques for<br />

achievement can be applied based on goals [25] or arguments and logic-programs [12],<br />

or Datalog and logic programs [11], or a combination of qualitative and quantitative criteria<br />

[2]. Since testing may not provide full fledged evidence we may use the approach<br />

by Asnar et al [2] where we use the keyword SAT to denote that the evidence is in favor<br />

of the achievement of the the goal and DEN to denote that the evidence is against it.<br />

The evolution of a requirements model can be triggered by a change request that can<br />

be placed by stakeholders, or it can be a reaction to a previous change, or caused by external<br />

circumstances and merely observed. By means of evolution rules, it is possible to<br />

automatically detect changes in the requirement model and it is possible to define reactions<br />

to changes. Evolution rules are defined in conformance with the Event - Condition<br />

- Action semantics: basically, an Event captures a dynamic change in the requirement<br />

model, while Condition identifies the static context where this change happened. An<br />

Action is a list of operations that constitute the reaction to that event.<br />

An example of evolution that can be detected by an evolution rule is the addition<br />

of an actor to the requirement model and the delegation of a security goal by the actor<br />

to another actor which is not trusted. The Event and Condition part of the rule can be<br />

mapped on the addition of the new actor and the missing trust relationship while the Action<br />

part can specify appropriate reaction ranging from logging the event to automatic<br />

intervention like creating the missing trust relationship.<br />

Evolution rules can also be used to propagate changes in requirement models to<br />

other artefacts e.g risk models and test models (as in our case).<br />

5 Change management for evolving tests<br />

As testing generation process we consider SeTGaM [10]. The model-based testing generation<br />

process starts by the design of the test model by the test architect: the model<br />

should describe the expected behaviour of the system under test (SUT). Then, the test<br />

model is used to generate the test cases and the coverage matrix, relating the tests with<br />

the covered model elements. The tests are then exported, or published, in a test repository<br />

and then executed. After the test execution, test results and metrics are provided.<br />

The test model consists of three different types of UML diagrams (Fig. 5). First,<br />

a class diagram describes the data model, namely the set of classes that represent the<br />

entities of the system, with their attributes and operations. Second, an object diagram<br />

provides a given instantiation of the class diagram together with the test data (i.e. the<br />

objects) that will be used as parameters for the operations composing the tests. Finally,<br />

the behavior of the system is described by two (complementary) means: a statechart<br />

diagram, and/or OCL constraints associated with the operations of the class diagram.<br />

The test coverage of system requirements and test objectives is achieved byusing the<br />

tags @REM and @AIM to annotate the OCL code.<br />

When an evolution occurs, the status of the test changes depending on the impact<br />

of the evolution on the model elements covered by the test case. Evolution of status<br />

is defined by considering two versions of the test model, M and M ′ , in which addition,<br />

modification or deletion of model elements (operations, behaviors, transitions,<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!