Over the last decade, businesses and governments have been giving increasing attention to the description, automation, and management of business processes using IT technologies. This interest grows out of the need to streamline business operations, consolidate organizations, and save costs, reflecting the fact that the process is the basic unit of business value within an organization. The Business Process Execution Language for Web Services (BPEL4WS, BPEL for short) provides an XML notation and semantics for specifying business process behavior based on Web Services. A BPEL process is defined in terms of its interactions with partner processes. A partner process may provide services to the process, require services from the process, or participate in a two-way interaction with the process. Mission-critical business solutions need comprehensive testing to ensure it performs correctly and reliably in operation. A common strategy is to subject the solution to several phases of testing such as unit, integration and system testing, among which unit testing is used to verify the functions of a single module (class, component, process, etc). Often the later a bug is discovered, the more expensive it is to fix. Therefore it is no surprising that recently software engineering practice has been laying more emphasis on unit testing. However, in current industrial practice, business process testing focuses on system and user acceptance testing, whereas unit testing has not gained much attention. Business process unit testing treats an individual process as the unit under test, and tests its internal logic thoroughly.
The quality of software is a hot topic attracting attentions from both researchers and practitioners. Software testing is an important technique to guarantee the quality of software. It aims to reduce the software faults as much as possible. My main work is to study the problem of how to apply the constraint satisfaction techniques to software testing automatically. The study can be divided into the following three parts. The first part of is related to white-box testing. White-box testing is an accurate code-based software testing method. We can employ symbolic execution techniques to process the program paths, so as to test some features of programs. However, the complexity of symbolic execution technique makes it impossible to test all the paths of the program under test. Furthermore, some of the program paths may be infeasible. Therefore we need some test criteria and path selection strategies to guide the generation of the test paths. This work includes the following two aspects. 1) An efficient method is presented to generate a set of feasible basis paths. This method can generate feasible basis paths for real-world C unit programs automatically in acceptable time. The basis path set generated by this method has the minimum sum of weighted length.2)BPEL is a business description language that could express complex concurrent behaviors. In the future I will present a novel method of BPEL test case generation, which is based on concurrent path analysis. To avoid the combination explosion of the path number, some techniques and test criteria are used to restrict the combination. This method is modularized so that many test techniques, such as various test criteria and complex constraint solvers, can be applied. The second part of work is about black-box testing. Black-box Testing is used to test the functions and interfaces of programs. We can use constraints to describe the test criteria and the specifications of Software under Test. Therefore the test generation for black-box testing can be translated into the finite domain constraint satisfaction problem. This part also includes two aspects. 1)A SAT-based approach and a backtracking search algorithm are presented to solve the problem. A novel pruning strategy called SCEH is proposed to increase the efficiency of the methods. Several existing search heuristics and symmetry breaking techniques are also used in the backtracking search algorithm. The experiments show that our method outperforms other methods in many small size cases. 2) proposes a SAT-based method to generate the test cases automatically for MUMCUT testing of Boolean specifications. To speed up the processing for the complete SAT tools, we make use of some symmetry breaking techniques. The last part of work studies the problem of finding Boolean relations among a set of linear numerical constraints. In program analysis and verification, there are some constraints that have to be processed repeatedly. A possible way to speed up the processing is to find some relations among these constraints first. The relations can be represented by rules. It is believed that we can not generate all the rules in polynomial time. A search based algorithm with some heuristics to speed up the search process is proposed. Experimental results with various examples show that our method can generate enough rules in acceptable time.
WS-BPEL applications are a type of service-oriented workflow application. In these applications, a business process is specified as a BPEL program, and individual loosely-coupled workflow steps are linked up via the exchange of XML-based messages. Failing to extract a right piece of data from an XML message, for instance, will pose an integration error in such an application. On the other hand, XML is fundamental to many service-oriented workflow applications, and XPath is the means to query on XML documents. The extensive usage of XPath poses a demand to study how to test these applications effectively. BPEL unit testing is complex as we must handle a network of dependencies among individual processes. This test framework only provides a general discussion on methods, issues and techniques in BPEL process unit testing. Although specialized for BPEL, the basic ideas may be applicable to other business process definition languages after possible generalization. In future, I plan to work on automatic test generation from BPEL source code, which should be aligned with the proposed test framework. Driven by increasingly complex Web Service process, BPEL-based testing reduction faces demands from test case largeness. There is a need for techniques tailored to test case generation efficiently in BPEL-based testing. The further studies also include the research on the relationship of input parameter with non-uniform range and the efficient assignment of input parameter into relation set.地址：https://blog.sina.com.cn/bupt088