Advertisement

Service Oriented Computing and Applications

, Volume 13, Issue 2, pp 141–154 | Cite as

RaceTest: harmful data race detection based on testing technology in WS-BPEL

  • Zhijun DingEmail author
  • Zexia Zhou
Original Research Paper
  • 45 Downloads

Abstract

Web service composition is widely used nowadays, and it is realized by Web Service-Business Process Execution Language (WS-BPEL). WS-BPEL provides concurrency mechanisms so that data races commonly occur within it. Some researchers have focus on data race detection in WS-BPEL. However, none of them focus on identifying harmful data races from benign data races. This paper proposed RaceTest, a novel technique that aims to identify harmful data races in WS-BPEL effectively. Unlike previous detectors, RaceTest identifies harmful data races through dynamic detection based on testing technology. Firstly, it obtains potential data races with static detection. Secondly, it prunes the false positives statically with constraint solving and then generates test cases that contain feasible potential races. Finally, it executes test cases to identify harmful data races by deterministic technique which can actively control thread interleaving. The experimental results show that RaceTest is effective; it effectively reduces a lot of false positives and confirms harmful data races with high accuracy.

Keywords

Harmful data races Benign data races WS-BPEL Detection Test case generation 

Notes

Acknowledgements

This work is partially supported by the National Natural Science Foundation of China (Grant No. 61672381) and the Fundamental Research Funds for the Central Universities (Grant No. 22120180508). All support is gratefully acknowledged.

References

  1. 1.
    Schneider FB (ed) (1999) Trust in cyberspace. National Academies Press, WashingtonGoogle Scholar
  2. 2.
    Zheng Y, Zhang X (2012) Static detection of resource contention problems in server-side scripts. In: International conference on software engineering. IEEE, pp 584–594Google Scholar
  3. 3.
    Savage S, Burrows M, Nelson G, Sobalvarro P, Anderson T (1997) Eraser: a dynamic data race detector for multi-threaded programs. ACM SIGOPS Oper Syst Rev 31(5):27–37CrossRefGoogle Scholar
  4. 4.
    Li S, Lei X (2010) A static data race detecting method for BPEL based on Happen-Before and lockset. Comput Digit Eng 38(8):6–9Google Scholar
  5. 5.
    Ni Y, Zhang L, Li Z, Xie T, Mei H (2011) Detecting concurrency-related problematic activity arrangement in WS-BPEL programs. In: IEEE international conference on services computing. IEEE, pp 209–217Google Scholar
  6. 6.
    Song W., et al (2018) Workflow refactoring for maximizing concurrency and block-structuredness. IEEE Trans Serv Comput, pp 1–1Google Scholar
  7. 7.
    Xiu JP, Yan-Ting XU, Deng F, Liu C (2010) A petri net-based approach for data race detection in BPEL. J China Univ Posts Telecommun 17(09):10–15CrossRefGoogle Scholar
  8. 8.
    Sun J, Li DF (2016) Study of algorithm on evolution for BPEL structure. Appl Res Comput 33(9):2637–2640Google Scholar
  9. 9.
    Mi C (2016) Reliability modeling and verification of BPEL-based web services composition by probabilistic model checking. In: IEEE international conference on software engineering researchGoogle Scholar
  10. 10.
    Xu L, Sun Q, Xu B, Zhang W (2016) Statically detect data races for WS-BPEL web services by constraint solver. In: IEEE international conference on web services. IEEE, pp 476–483Google Scholar
  11. 11.
    Ye C, Cheung SC, Chan WK (2018) Sifter: a service isolation strategy for internet applications. IEEE Trans Serv ComputGoogle Scholar
  12. 12.
    Jia C, Yang C, Chan WK (2015) Architecturing dynamic data race detection as a cloud-based service. In: IEEE international conference on web services. IEEE, pp 345–352Google Scholar
  13. 13.
    Jia C, Yang C, Chan WK (2017) SDA-CLOUD: a multi-VM architecture for adaptive dynamic data race detection. IEEE Trans Serv Comput 10:99CrossRefGoogle Scholar
  14. 14.
    Yang X, Huang J, Gong Y (2011) Detecting dataraces for bpel-based services using weighted vector clock. J Comput Inf Syst 7(11):3870–3877Google Scholar
  15. 15.
    Kasikci B, Zamfir C, Candea G (2012) CoRD: a collaborative framework for distributed data race detection. In: Eighth usenix conference on hot topics in system dependability. USENIX AssociationGoogle Scholar
  16. 16.
    Xu L, Hu YL et al (2015) The method for detecting BPEL process data races in a web service composition. 104572445Google Scholar
  17. 17.
    Narayanasamy S, Wang Z, Tigani J, Edwards A, Calder B (2007) Automatically classifying benign and harmful data races using replay analysis. In: ACM Sigplan conference on programming language design and implementation. ACMGoogle Scholar
  18. 18.
    Narayanasamy S, Wang Z, Tigani J, Edwards A, Calder B (2007) Automatically classifying benign and harmful data races usin g replay analysis. Acm Sigplan Not 42(6):22–31CrossRefGoogle Scholar
  19. 19.
    Xiao-Hong SU, Zhen YU, Wang TT, Pei-Jun MA (2015) A survey on exposing, detecting and avoiding concurrency bugs. Chin J Comput 38:2215–2233Google Scholar
  20. 20.
    Cai Y, Zhang J, Cao L, Liu J (2016) A deployable sampling strategy for data race detection. In: ACM sigsoft international symposium on foundations of software engineering. ACM, pp 810–821)Google Scholar
  21. 21.
    Wu Z, Lu K, Wang X, Zhou X, Chen C (2015) Detecting harmful data races through parallel verification. J Supercomput 71(8):2922–2943CrossRefGoogle Scholar
  22. 22.
    Eslamimehr M, Palsberg J (2014) Race directed scheduling of concurrent programs. ACM SIGPLAN Not 49(8):301–314CrossRefGoogle Scholar
  23. 23.
    Sen K (2008) Race directed random testing of concurrent programs. ACM SIGPLAN Not 43(6):11–21CrossRefGoogle Scholar
  24. 24.
    Lu K, Wu Z, Wang X, Chen C, Zhou X (2015) RaceChecker: efficient identification of harmful data races. In: Euromicro international conference on parallel, distributed and network-based processing. IEEE Computer Society, pp 78–85Google Scholar
  25. 25.
    Kasikci B, Zamfir C, Candea G (2013) RaceMob:crowdsourced data race detection. In: Twenty-fourth ACM symposium on operating systems principles. ACM, pp 406–422Google Scholar
  26. 26.
    Wu Z, Lu K, Wang X (2015) Efficiently trigger data races through speculative execution. In: IEEE, international conference on High PERFORMANCE computing and communications. IEEE, pp 90–95Google Scholar
  27. 27.
    Kasikci B, Zamfir C, Candea G (2015) Automated classification of data races under both strong and weak memory models. ACM Trans Program Lang Syst 37(3):1–44CrossRefGoogle Scholar
  28. 28.
    Cai Y, Cao L (2015) Proceedings of the 2015 10th Joint meeting on foundations of software engineering: ESEC/FSE 2015—effective and precise dynamic detection of hidden races for Java programs, pp 450–461Google Scholar
  29. 29.
    Zhang M, Wu Y, Lu S, Qi S, Ren J, Zheng W (2016) A lightweight system for detecting and tolerating concurrency bugs. IEEE Trans Softw Eng 42:899–917CrossRefGoogle Scholar
  30. 30.
    OASIS technical committee. http://ode.apache.org/ws-bpel-20.html. 2006-08-30/2019-4-19
  31. 31.
    W3C, WSDL (2001) Web Services Description Language (WSDL) 1.1. http://www.w3.org/TR/ WSDL
  32. 32.
  33. 33.
    Oracle. http://www.oracle.com/technetwork/middleware/bpel/. Accessed date 19 April 2019
  34. 34.
    Sun CA, Shang Y, Zhao Y, Chen TY (2012) Scenario-Oriented testing for web service compositions using BPEL. Int Conf Qual Softw 430:171–174Google Scholar
  35. 35.
    Yan J, Li Z, Yuan Y, Sun W, Zhang J (2006) BPEL4WS unit testing: test case generation using a concurrent path analysis approach. In: Proc of the 17th international symposium on software reliability engineering (ISSRE), pp 75–84Google Scholar
  36. 36.
    Mei L, Chan WK, Tse TH (2009) Data flow testing of service choreography. In: Proc. of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT international symposium on foundations of software engineering (ESEC), pp 151–160Google Scholar
  37. 37.
    Du Z, Miao H (2018) Research review on web service composition testing. In: International workshop on structured object-oriented formal language and method, (11392), pp 39–51Google Scholar
  38. 38.
    Ding ZJ, Zhou ZX (2018) Survey on web service composition testing. J Softw 29(2):299–319 (in Chinese) Google Scholar
  39. 39.
    Ni Y, Hou SS, Zhang L, Zhu J, Li ZJ, Lan Q et al (2013) Effective message-sequence generation for testing BPEL programs. IEEE Trans Serv Comput 6(1):7–19CrossRefGoogle Scholar
  40. 40.
    NikolajBjorner. https://github.com/Z3Prover/z3. 2019-4-17/2019-4-19
  41. 41.
    Carver RH, Tai KC (1991) Replay and testing for concurrent programs. Softw IEEE 8(2):66–74CrossRefGoogle Scholar
  42. 42.
    Elwakil M, Yang Z, Wang L, Chen Q (2010) Message race detection for web services by an SMT-based analysis. In: International conference on autonomic and trusted computing. Springer, vol 6407, pp 182–194Google Scholar
  43. 43.

Copyright information

© Springer-Verlag London Ltd., part of Springer Nature 2019

Authors and Affiliations

  1. 1.Tongji UniversityShanghaiChina
  2. 2.Shanghai Electronic Transactions and Information Service Collaborative Innovation CenterTongji UniversityShanghaiChina

Personalised recommendations