## 5 Related Work  
Previously researchers have approached the problem of service verification and certification by applying two families of techniques to prove that a service possesses a given property: _test-based techniques_, which require the application of suitable tests to the service, and _formal-based techniques_, where an abstract model of the service (e.g., a set of logic formulas, or a formal computational model such as a finite state automaton) is generated and used for validation [15]. Test-based certification of software components is a time-honored software engineering problem; for instance, assurance levels from \(1\) to \(4\) of the well-known Common Criteria standard [16] are themselves test-based [15]. Collecting evidence supporting security properties differs greatly from standard software testing procedures, making existing security certification schemes not applicable in the service ecosystem. The loosely coupled nature of Web Services (as compared to traditional component-based software systems) poses strict limits on the way testers can interact with the services, making the usual stub-based testing techniques hardly applicable to Web service security testing. A major problem is thatWeb service source code is usually inaccessible, and remote execution may involve a cost. In addition, existing certification techniques have been provided for static and monolithic software [16, 17], where certificates are usually human-readable statements signed by a trusted certification authority, and do not suit the service requirements in terms of run-time evaluation of certificates during the discovery process. There are two major approaches to testing a Web service [18, 19]: (_i_) consider Web Services as independent software components to which traditional interface testing methods can be adapted, by considering the released interfaces and protocol bindings; (_ii_) consider Web Services as composite elements, where integration testing methodologies should be adapted. Web Services can be tested from the perspective of the different stakeholders (_i.e._, developer, provider, integrator, certifier, and user) and there is the need to specify who can perform a test, which types of tests are needed, and what are the challenges in carrying out the tests and documenting their results. Others focused on the automatic generation of test cases starting from WSDL released by the service provider or general service specification [20, 21, 22, 23, 24, 25]. For example, [PERSON] and [PERSON] present a new methodology in which the Web service specification is used to generate test cases based on a decision table [23]. Moreover, an approach to testing Web services using fault-coverage to check the conformance of the Web services to their WSDL specification has been proposed by [PERSON] _et al._ with the goal of automating testing [25]. Model-based certification of Web services has also been used for service representation and certification [14]. Certificates based on formal proofs deal with verifying the properties of the models of Web services [26]. A milestone is the definition of Web Services Business Process Execution Language (WSBPEL) [27], an industry standard for specifying workflows. Other industry driven modeling approaches [28, 29] are based on the Unified Modeling Language (UML) [30]. A UML extension also exists and enables, with some limitations, the modeling of security properties to be provided by the system [31, 32]. The problem of service verification has been extensively studied and is the topic of several research projects, highlighting its intrinsic importance in the context of the future Internet. An interesting approach is the one taken by the AVISPA (Automated Validation of Internet Security Protocols and Applications) research project [33], which defines a High Level Protocol Specification Language (HLPSL) for modeling communication and security protocols [34].