The purpose of this project has been to look at different approaches to test if a software program works as wanted or as expected. Testing is a broad term, and is used in different ways and for different purposes. This project has a look at how to test if a software program follows rules specifying requirements in system behavior. The focus has been to test in a manner that was accurate and efficient.
This project is based on work that has been done on policy-based management and on testing of sequence diagrams. Policy-based management has gotten increased attention the last decade, and this project used policies to define the rules of the software program. Sequence diagrams are diagrams that are used to model interactions, and are in this manner suitable for defining or specifying both policies and software programs. This project addresses the issue of generating test diagrams based on sequence diagrams, and then conduct testing with them.
Based on an evaluation of a tool, which address some of the questions in this project, we developed a method for testing a software specification against a policy specification. The method does the testing by generating test diagrams, which are later applied to the software specification by running tests. We also developed a tool to support the method.
From the evaluation in this project the artifacts we developed are solving some of the issues discussed in this project, but there is also room for improvements. Testing is a time-consuming task, and there is a need to work further with our artifacts in order for them to be employed.