A Framework for Integrating Formal Specification, Review, and Testing to Enhance Software Reliability

Software risk comes mainly from its poor reliability, but how to effectively achieve high reliability still remains a challenge. This paper puts forward a framework for systematically integrating formal specification, review, and testing, and shows how it can be applied to effectively eliminate errors in the major phases of software development process to enhance software reliability. In this framework, requirements errors can be removed and missing requirements can be identified by formalizing requirements into formal specifications whose validity can be ensured by rigorous review. The valid specification can then be used as a firm foundation for implementation and for rigorous inspection, testing, and walkthrough of the implemented program. We discuss how formalization, review, and testing work together at different levels of software development to improve software reliability through detecting and removing errors in documentation.

[1]  Shaoying Liu,et al.  Developing an Insulin Pump System Using the SOFL Method , 2007, 14th Asia-Pacific Software Engineering Conference (APSEC'07).

[2]  Shaoying Liu,et al.  Automated Software Specification and Design Using the SOFL Formal Engineering Method , 2009, 2009 WRI World Congress on Software Engineering.

[3]  Shaoying Liu Utilizing specification testing in review task trees for rigorous review of formal specifications , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[4]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[5]  Shaoying Liu Formal Engineering for Industrial Software Development: Using the SOFL Method , 2004 .

[6]  Li Zhang,et al.  A decision procedure for propositional projection temporal logic with infinite models , 2008, Acta Informatica.

[7]  Shaoying Liu Evolution: a more practical approach than refinement for software development , 1997, Proceedings. Third IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.97TB100168).

[8]  Shaoying Liu,et al.  A tool and case study for specification-based program review , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[9]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[10]  Shaoying Liu Verifying Consistency and Validity of Formal Specifications by Testing , 1999, World Congress on Formal Methods.

[11]  David A. Carrington,et al.  Test templates: a specification-based testing framework , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[12]  Robin W. Whitty Software Inspection: An Industry Best Practice, by David A. Wheeler, Bill Brykczynski and Reginald N Meeson, Jr., IEEE Computer Society, 1996 (Book Review) , 1997, Softw. Test. Verification Reliab..

[13]  Myla Archer,et al.  TAME: Using PVS strategies for special-purpose theorem proving , 2001, Annals of Mathematics and Artificial Intelligence.

[14]  Zhenhua Duan,et al.  A Unified Model Checking Approach with Projection Temporal Logic , 2008, ICFEM.

[15]  Shaoying Liu,et al.  An Automated Approach to Specification-Based Program Inspection , 2005, ICFEM.

[16]  David Lorge Parnas,et al.  Active design reviews: principles and practices , 1985, ICSE '85.

[17]  Marko Samer,et al.  Technology of Test-Case Generation , 2004, Model-Based Testing of Reactive Systems.

[18]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

[19]  Dan Craigen,et al.  Industrial applications of formal methods to model, design and analyze computer systems: an international survey , 1995 .

[20]  Zhenhua Duan,et al.  An Improved Decision Procedure for Propositional Projection Temporal Logic , 2010, ICFEM.

[21]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[22]  Shaoying Liu,et al.  A Decompositional Approach to Automatic Test Case Generation Based on Formal Specifications , 2010, 2010 Fourth International Conference on Secure Software Integration and Reliability Improvement.

[23]  Shaoying Liu,et al.  Generating test data from SOFL specifications , 1999, J. Syst. Softw..

[24]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[25]  Anthony Hall,et al.  Realising the Benefits of Formal Methods , 2005, J. Univers. Comput. Sci..

[26]  Anthony Hall Using Formal Methods to Develop an ATC Information System , 1996, IEEE Softw..

[27]  Harvey P. Siy,et al.  A Review of Software Inspections , 1995, Adv. Comput..

[28]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..

[29]  Maciej Koutny,et al.  Framed temporal logic programming , 2008, Sci. Comput. Program..

[30]  Shaoying Liu,et al.  Formal Engineering for Industrial Software Development , 2004, Springer Berlin Heidelberg.

[31]  Marie-Claude Gaudel,et al.  Software testing based on formal specifications: a theory and a tool , 1991, Softw. Eng. J..

[32]  Colin F. Snook,et al.  Practitioners' views on the use of formal methods: an industrial survey by structured interview , 2001, Inf. Softw. Technol..

[33]  Larry Apfelbaum,et al.  Model Based Testing , 1997 .

[34]  David Lorge Parnas,et al.  Precise Documentation of Well-Structured Programs , 1994, IEEE Trans. Software Eng..

[35]  Hao Wang,et al.  An automated approach to specification animation for validation , 2007, J. Syst. Softw..

[36]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[37]  Shaoying Liu,et al.  Generating test data from state‐based specifications , 2003, Softw. Test. Verification Reliab..

[38]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[39]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.