Behavior Driven Development for circuit design and verification

The design of hardware systems is a challenging and erroneous task where about 70% of the effort in designing these systems is spent on verification. In general, testing and verification are usually tasks that are being applied as a post-process to the implementation. In this paper, we propose a new design flow based on Behavior Driven Development (BDD), an agile technique for the development of software in which acceptance tests written in natural language play a central role and are the starting point in the design flow. We advance the flow such that the specifics that arise when modeling hardware are taken into account. Furthermore, we present a technique that allows for the automatic generalization of test cases to properties that are suitable for formal verification. This allows the designer to apply formal verification techniques based on test cases without specifying properties. We implemented our approach and evaluated the flow for an illustrative example that successfully demonstrates the advantages of the proposed flow.

[1]  Robert Wille,et al.  Completeness-Driven Development , 2012, ICGT.

[2]  Lech Madeyski,et al.  Test-Driven Development - An Empirical Evaluation of Agile Practice , 2009 .

[3]  Sanjai Rayadurgam,et al.  Auto-generating Test Sequences Using Model Checkers: A Case Study , 2003, FATES.

[4]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[6]  Robert Wille,et al.  Assisted Behavior Driven Development Using Natural Language Processing , 2012, TOOLS.

[7]  Yongyan Zheng,et al.  A Model Checking based Test Case Generation Framework forWeb Services , 2007, Fourth International Conference on Information Technology (ITNG'07).

[8]  Matt Wynne,et al.  The Cucumber Book: Behaviour-Driven Development for Testers and Developers , 2012 .

[9]  Laurie A. Williams,et al.  Realizing quality improvement through test driven development: results and experiences of four industrial teams , 2008, Empirical Software Engineering.

[10]  O.A. Mohamed,et al.  Automatic generation of model checking properties and constraints from production based specification , 2004, The 2004 47th Midwest Symposium on Circuits and Systems, 2004. MWSCAS '04..

[11]  D. Fisman,et al.  A Practical Introduction to PSL (Series on Integrated Circuits and Systems) , 2006 .

[12]  Troels Mørch Test Driven Development , 2005 .

[13]  Hubert Baumeister Combining Formal Specifications with Test Driven Development , 2004, XP/Agile Universe.

[14]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[15]  David Flanagan,et al.  The Ruby Programming Language , 2007 .

[16]  Michael R. Smith,et al.  E-TDD - Embedded Test Driven Development a Tool for Hardware-Software Co-design Projects , 2005, XP.