Behavior-Driven Development: An Expert Panel to evaluate benefits and challenges

Teaching modern software techniques is a challenging task as these practices tend to be collaborative and require a lot of preparation and environment setup. Among these techniques is Behavior-Driven Development (BDD), a development method which proposes software to be develop focusing primarily on its expected behavior. In this context, this paper investigates the perception of active-learning experts regarding the potential benefits and challenges of teaching BDD in active learning environments to software engineering students. To achieve this goal, we have conducted an expert panel with 28 active-learning experts from four countries. Our preliminary results indicate that experts perceive both benefits, like improvement in specification, and challenges to embrace the BDD "culture" when teaching BDD to software engineering students. Based in these findings, we found indicatives that BDD should benefit software engineering students in active learning environments, however it may require more setup, teacher preparation and engagement during the learning process.

[1]  Qusay H. Mahmoud,et al.  A mobile application development approach to teaching introductory programming , 2010, 2010 IEEE Frontiers in Education Conference (FIE).

[2]  Sabrina Marczak,et al.  How to Evaluate BDD Scenarios' Quality? , 2019, SBES.

[3]  Ken Pugh Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration , 2010 .

[4]  Afonso Sales,et al.  Combining Challenge-Based Learning and Scrum Framework for Mobile Application Development , 2015, ITiCSE.

[5]  Sanjay Misra,et al.  Influence of Human Factors in Software Quality and Productivity , 2011, ICCSA.

[6]  Tim Storer,et al.  Experimenting with Realism in Software Engineering Team Projects: An Experience Report , 2017, 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T).

[7]  Paul V. Gestwicki,et al.  Studio-based learning and app inventor for android in an introductory CS course for non-majors , 2013, SIGCSE '13.

[8]  L. Bickman,et al.  The SAGE Handbook of Applied Social Research Methods , 2009 .

[9]  J. Maxwell Designing a qualitative study. , 1998 .

[10]  Victor Matos,et al.  Building applications for the Android OS mobile platform: a primer and course materials , 2010 .

[11]  Tony Rosqvist,et al.  Software Quality Evaluation Based on Expert Judgement , 2003, Software Quality Journal.

[12]  Rick Mugridge Challenges in Teaching Test Driven Development , 2003, XP.

[13]  Dave Astels,et al.  The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends , 2010 .

[14]  Paul Luo Li,et al.  What Makes a Great Software Engineer? , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[15]  Xiaofeng Wang,et al.  A Study of the Characteristics of Behaviour Driven Development , 2011, 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications.

[16]  Sabrina Marczak,et al.  On the Empirical Evaluation of BDD Scenarios Quality: Preliminary Findings of an Empirical Study , 2017, 2017 IEEE 25th International Requirements Engineering Conference Workshops (REW).

[17]  Søren Lauesen,et al.  Preventing Requirement Defects: An Experiment in Process Improvement , 2001, Requirements Engineering.

[18]  Evans,et al.  Domain-driven design , 2003 .

[19]  Tore Dybå,et al.  An Instrument for Measuring the Key Factors of Success in Software Process Improvement , 2000, Empirical Software Engineering.

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

[21]  Kelly Miller,et al.  Measuring actual learning versus feeling of learning in response to being actively engaged in the classroom , 2019, Proceedings of the National Academy of Sciences.

[22]  Jennifer L. Wong,et al.  A model for teaching mobile application development for social changes: Implementation and lessons learned in senegal , 2009, 2009 International Multiconference on Computer Science and Information Technology.