Experiences with formal engineering: Model-based specification, implementation and testing of a software bus at Neopost

被引:7
|
作者
Sijtema, M. [2 ]
Belinfante, A. [1 ]
Stoelinga, M. I. A. [1 ]
Marinelli, L. [3 ]
机构
[1] Univ Twente, Fac Comp Sci, NL-7500 AE Enschede, Netherlands
[2] Systemat Software, The Hague, Netherlands
[3] Neopost, Austin, TX USA
关键词
Formal methods; Formal engineering; Model-based testing; IOCO; JTorX; mCRL2; LTSmin; CADP; evaluator4; MCL; LPS; Ips2torx; TOOL;
D O I
10.1016/j.scico.2013.04.009
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We report on the actual industrial use of formal methods during the development of a software bus. During an internship at Neopost Inc., of 14 weeks, we developed the server component of a software bus, called the XBus, using formal methods during the design, validation and testing phase: we modeled our design of the XBus in the process algebra mCRL2, validated the design using the mCRL2-simulator, and fully automatically tested our implementation with the model-based test tool JTorX. This resulted in a well-tested software bus with a maintainable architecture. Writing the model (m(dev)), simulating it, and testing the implementation with JTorX only took 17% of the total development time. Moreover, the errors found with model-based testing would have been hard to find with conventional test methods. Thus, we show that formal engineering can be feasible, beneficial and cost-effective. The findings above, reported earlier by us in (Sijtema et al., 2011) [1], were well-received, also in industrially oriented conferences (Ferreira and Romanenko, 2010) [2] and [3]. In this paper, we look back on the case study, and carefully analyze its merits and shortcomings. We reflect on (1) the added benefits of model checking, (2) model completeness and (3) the quality and performance of the test process. Thus, in a second phase, after the internship, we model checked the XBus protocol-this was not done in [1] since the Neopost business process required a working implementation after 14 weeks. We used the CADP tool evaluator4 to check the behavioral requirements obtained during the development. Model checking did not uncover errors in model m(dev), but revealed that model m(dev) was neither complete nor optimized: in particular, requirements to the so-called bad weather behavior (exceptions, unexpected inputs, etc.) were missing. Therefore, we created several improved models, checked that we could validate them, and used them to analyze quality and performance of the test process. Model checking was expensive: it took us approx. 4 weeks in total, compared to 3 weeks for the entire model-based testing approach during the internship. In the second phase, we analyzed the quality and performance of the test process, where we looked at both code and model coverage. We found that high code coverage (almost 100%) is in most cases obtained within 1000 test steps and 2 minutes, which matches the fact that the faults in the XBus were discovered within a few minutes. Summarizing, we firmly believe that the formal engineering approach is cost-effective, and produces high quality software products. Model checking does yield significantly better models, but is also costly. Thus, system developers should trade off higher model quality against higher costs. (C) 2013 Elsevier B.V. All rights reserved.
引用
收藏
页码:188 / 209
页数:22
相关论文
共 50 条
  • [1] Experiences with Formal Engineering: Model-Based Specification, Implementation and Testing of a Software Bus at Neopost.
    Sijtema, Marten
    Stoelinga, Marielle T. A.
    Belinfante, Axel
    Marinelli, Lawrence
    [J]. FORMAL METHODS FOR INDUSTRIAL CRITICAL SYSTEMS, 2011, 6959 : 117 - +
  • [2] Software Testing Based on Formal Specification
    Gaudel, Marie-Claude
    [J]. TESTING TECHNIQUES IN SOFTWARE ENGINEERING, 2010, 6153 : 215 - 242
  • [3] A formal approach to AADL model-based software engineering
    Mkaouar, Hana
    Zalila, Bechir
    Hugues, Jerome
    Jmaiel, Mohamed
    [J]. INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2020, 22 (02) : 219 - 247
  • [4] A formal approach to AADL model-based software engineering
    Hana Mkaouar
    Bechir Zalila
    Jérôme Hugues
    Mohamed Jmaiel
    [J]. International Journal on Software Tools for Technology Transfer, 2020, 22 : 219 - 247
  • [5] Improving Model-Based Testing in Automotive Software Engineering
    Kriebel, Stefan
    Markthaler, Matthias
    Salman, Karin Samira
    Greifenberg, Timo
    Hillemacher, Steffen
    Rumpe, Bernhard
    Schulze, Christoph
    Wortmann, Andreas
    Orth, Philipp
    Richenhagen, Johannes
    [J]. 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - SOFTWARE ENGINEERING IN PRACTICE TRACK (ICSE-SEIP 2018), 2018, : 172 - 180
  • [6] Formal specification based software testing: An automated approach
    Gill, MS
    Bhatia, RK
    [J]. SERP'03: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING RESEARCH AND PRACTICE, VOLS 1 AND 2, 2003, : 656 - 659
  • [7] Engineering Model-Based Software Testing of WIMP Interactive Applications
    Canny, Alexandre
    Martinie, Célia
    Navarre, David
    Palanque, Philippe
    Barboni, Eric
    Gris, Christine
    [J]. Proceedings of the ACM on Human-Computer Interaction, 2021, 5 (EICS)
  • [8] Specification-Based Testing in Software Engineering Courses
    Fisher, Gene
    Johnson, Corrigan
    [J]. SIGCSE'18: PROCEEDINGS OF THE 49TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2018, : 800 - 805
  • [9] Integration testing in software product line engineering: A model-based technique
    Reis, Sacha
    Metzger, Andreas
    Pohl, Klaus
    [J]. FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, PROCEEDINGS, 2007, 4422 : 321 - +
  • [10] Formal specification languages in knowledge and software engineering
    Fensel, D
    [J]. KNOWLEDGE ENGINEERING REVIEW, 1995, 10 (04): : 361 - 404