Integrating Behavior-Driven Development into SDL
This unit describes an important model for testing, behavior-driven
development (BDD). You will integrate your Software Development Lab (SDL)
project. This unit is more than just an introduction to an important
software engineering topic. It also captures how your experience at MSOE
makes you distinctive. It relates very directly to the full MSOE
Mindeset, but
especially the Entrepreneurial Mindset:
- Curiosity: looking for errors in code that you or others believe works
and constantly re-examining the question “does this system meet our
client’s needs”? Identifying cases where future development could introduce
errors and ensuring there are tests that would identify such errors.
- Connections: this material pulls together concepts from many previous
courses, your understanding of your project’s goals, and your understanding
of what your client needs to see in the system. The ultimate goal is to
reduce the risk of project failures, giving your client confidence that
the solution you create meets their needs.
- Creating Value: executable tests provide stability. There are many
systems that “sort of work”; our goal is to deliver a system that
always works. You will add client-readable tests that will serve to
increase their confidence in the delivered system even if they did not
realize they needed such tests, and the testing methodology promotes the “test
first” model in which tests are written before code is implemented.
Do the following:
- Read the background material on behavior-driven development
(BDD).
- Pass the quiz with at most one error. You may retake the quiz multiple
times, but the set of questions may be different each time. If you do not
pass the quiz, re-read the background material before retaking it. If
you are having problems passing the quiz, talk to your instructor. You
may have identified places where additional material is needed!
- Learn the basics of Regular Expressions by going through the tutorial and
exercises at https://www.regexone.com/. These are critical to the tools
used in BDD. They are also very useful in many other programming contexts
and so well-worth learning even aside from BDD.
- Complete the assignment integrating BDD into your SDL project.