Slicing of SOA based software and its application to testing

This Ph.D synopsis presents our work concerning slicing of SOA-based software and its application to testing. We first devise a technique for static slicing of SOA-based software based on SoaML service interface diagram. In this technique, we first design a model using SoaML service interface diagram. Then, we create an intermediate representation, called Service Interface Dependency Graph (SIDG) from the model that we created. The SIDG identifies service call dependency and composite dependency from SoaML model. Giving slicing criterion as an input, our proposed algorithm SSSIM traverses the SIDG and identifies the affected service interface nodes. Next, we extend our intermediate representation (SIDG) to be able to compute dynamic slices based on SoaML sequence diagram. In our technique, we first map each message in sequence diagram with the corresponding web service input and output messages. This mapping is static. After that, we construct an intermediate representation of SoaML sequence diagram which we said as Service-Oriented Software Dependence Graph (SOSDG), which is an intermediate representation that needs to be stored and traversed to get a dynamic slice as and when web service gets executed. The SOSDG identifies data, control, intra-service and inter-service dependencies from SoaML sequence diagram and corresponding web service execution. For a given slicing criterion, our proposed algorithm MBGDS computes global dynamic slice from SOSDG and identifies the affected messages from respective services. The novelty of our work lies in the computation of global dynamic slice based on SOSDG and its dependencies induced within and across organizations. To support the testing of SOA-based software at development phase, we propose an extension to WSDL for carrying out black-box testing. In this context, we apply program slicing artifact i.e dependence graph for testing SOA-based software. In this approach, we impose a hierarchical structure on Web Service Description Language (WSDL) document. The extension to WSDL is carried out by introducing Web Service Dependence Graph (WSDG) and dependencies both data and control in XSD (XML Schema Definition) document. This WSDG identifies both data and control dependencies from WSDG. Next, we presented two techniques to test SOA-based software using BPMN 2.0 diagram and SoaML service interface diagram. To test it using BPMN diagram, first we convert BPMN diagram into its Control Flow Graph (CFG) using our proposed algorithm. Then, we use Depth First Search (DFS) method to generate the test paths. Finally, we execute test cases on the generated test paths. The second technique of testing uses SoaML service interface diagram to model SOA-based software. Next, we generate XML Schema and its instance using Visual Paradigm Enterprise tool. At last, we apply test cases based on the schema constraints to test it. Additionally, we represented a new approach for white-box testing of web services assuming the developer wants to increase the quality of web services and have released service code. In this approach, we create an intermediate representation, called Service Dependence Graph (SDG) by merging the Service Client Dependence Graph (SCDG) of web service client code and Web Service Dependence Graph (WSDG) of web service code. The SDG identifies data dependency, control dependency, and novel dependency that arise at runtime which we named callee dependency. Giving slicing criterion as an input, our proposed algorithm, MBDSWS computes dynamic slice from SDG and identifies the affected statements in both service client and service code. Finally, we execute various test cases using the MBDSWS. Finally, for all the above techniques/approaches we have developed prototype tools to experimentally verify the correctness and preciseness of our proposed algorithms or techniques. The computed slices and generated test cases for several models or web services were found to be correct using both, manual procedure and our prototype tools.